怎么取dbgrid中的数据?急!!!在线等(100分)

  • 主题发起人 主题发起人 boy8899
  • 开始时间 开始时间
B

boy8899

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么取dbgrid中的数据?

select ID as 编号, NAME as 名称, AMOUNT as 数量, UNIT_PRICE as 单价, PRICES as 金额 from XSSJK_TEMP
union all
select '合计金额',NULL, NULL,NULL,sum(PRICES) from XSSJK_TEMP


1.我想取得dbgrid显示出来的表格中sum(prices)的值怎么做?

2.我想让‘合计金额’这一行显示出带颜色的一条。(用dbgrid控件)
 
设置要变颜色的那个Column的Color属性
 
procedure TFrmCertificate_Virtual.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if ds.DataSet.FieldByName('id).Asstring='合计金额' then
begin
canvas.font.color:=clred;//如果是合计就变红。
end else
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
 
你如果是通过SQL server数据库的话,可以在ADOQuery中操作得到sun(prices)的值,很容易。
第二个就不知道了。
 
蓝叶菱 的可以
 
为什么不变颜色?我实验过了?
 
刷新一下就有颜色
 
不会吧,用什么命令刷?我实验了总也不变色
 
我的是简略写法。。展示一下如何制作。我认为你一看就懂呢。。。。
begin
if ds.DataSet.FieldByName('id).Asstring='合计金额' then
begin
canvas.font.color:=clred;//如果是合计就变红。
end else
canvas.font.color=cldefault;//省略了。。
//---绘制默认的东西。
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
 
begin
if ds.DataSet.FieldByName('编号').Asstring='合计金额' then
begin
canvas.font.color:=clred;//如果是合计就变红。
showmessage('red?');
end else
canvas.font.color=cldefault;//省略了。。
//---绘制默认的东西。
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;


运行了以后 canvas.font.color:=clred;语句执行了,但是没有起作用.
 
begin
if ds.DataSet.FieldByName('编号').Asstring='合计金额' then
begin
canvas.font.color:=clred;//如果是合计就变红。
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end else
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
//---绘制默认的东西。

end;
没有问题的,自己改改了。。。老帖子了。。。思路都给你了。。
如果找不到编号字段干脆使用FILEDS[0].。。没有问题。。。
对了,记得把你的DefaultDrawing=false才可以。
 
找到问题了,!

问题在canvas.font.color:=clred; 如果改成DBgrid.canvas.font.color:=clred;就可以了。

老蓝,还有我的第一个问题呢。
 
我的第一个问题真的没有回答的么?
 
1.我想取得dbgrid显示出来的表格中sum(prices)的值怎么做?
 
时间很长,结束问题,第1个问题待续
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部