DBGrid1.DataSource.DataSet.First; while not(DBGrid1.DataSource.DataSet.Eof)do begin if (DBGrid1.DataSource.DataSet.FieldByName('Field1').AsFloat > 0) then ShowMessage(' > 0 ') else if (DBGrid1.DataSource.DataSet.FieldByName('Field1').AsFloat < 0) then ShowMessage(' < 0 ') DBGrid1.DataSource.DataSet.Next; end;
while not(DBGrid1.DataSource.DataSet.Eof)do
begin
if (DBGrid1.DataSource.DataSet.FieldByName('Field1').AsFloat > 0) then
ShowMessage(' > 0 ')
else
if (DBGrid1.DataSource.DataSet.FieldByName('Field1').AsFloat < 0) then
ShowMessage(' < 0 ')
DBGrid1.DataSource.DataSet.Next;
end;
我在report 中用的时候 fieldbyname 不能出现
fieldbyname 不能出现
是因为类型不匹配,
你重新开一行写就会出现
我的语句如下 qr2.QRLabel.caption:=dbgrid.
dbgrid 后面没有fieldbyname
这样的话 我就不能选择是那列的 名字了
procedure TForm1.Button2Click(Sender: TObject);
begin
是不是我得qr2 没有设置好 还是 在report 中不能 用 dbgrid 中的 东西?
不过 我在 form 中 另外一个按钮 用 可以 不过那不是report 中
dbgrid.DataSource.DataSet.FieldByName('charge')
会不会是 qr2.qrlabel.caption 不行?
begin
DBGrid1.DataSource.DataSet. 1. //此时FieldByName就可以出来了
//等写完后再移下去就可以了,
qr2.QRLabel.caption:= dbgrid.DataSource.DataSet.
2. //此时FieldByName不出来是因为类型不是String类型 跟caption的类型不一 致, 你可以直接手写把FieldByName加上去就可以了 最终的语句:
qr2.QRLabel.caption:= dbgrid.DataSource.DataSet.FieldByName('charge').asString;
end;
这样吧 我把所有思路告诉你,你告诉我怎么办?
我先通过查询 得到一组数据.出现在dbgrid 中 比如有10组 现在我要打印出来
但是不是打印grid 中的数据 是要打印 合计的 比如 charge 一列 中 正的 合计多少
负的合计多少. 所以我想 用一个循环来 判断 然后在report 中用 QRLabel 来显示 合计的数目.这个思路 对的吧 可是写的时候有问题啊