急问一个问题~如何在获得DBGRID里所有行的一个记录相加数 但是不移动数据记录的情况下但是不用 select sum(money) from table 有什么方式???给分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那就使用 DBGridEh 来实现吧, 设置Footer的属性就可以了,很方便的. 1.可以用TClientDataSet的fkAggregate类字段.(仅TClientDataSet,并且不会显示在DBGRID中)2.直接用SQL语句加上WITH { CUBE | ROLLUP } ] (可以显示在DBGRID中)3.第三方控件.如DBGridEh 给你一段BCB的代码参考,看起来dbgrid中的记录没有移动:代码功能为累加dbgrid中选中的单元格的那一列Query是adoquery int ln;//记录当前行号 int col=DBGrid1->SelectedIndex + 1; Screen->Cursor=crHourGlass; Query->DisableControls(); ln=Query->RecNo-1; Query->First(); float sum=0.0; try { while(!Query->Eof) { sum+=Query->Fields->FieldByNumber(col)->AsFloat; Query->Next(); } edt_sum->Text=FloatToStr(sum); Clipboard()->SetTextBuf(FloatToStr(sum).c_str()); } __finally { Query->First(); Query->MoveBy(ln);//恢复到保存前查看的行号 Query->EnableControls(); Screen->Cursor=crDefault; } 用三方控件就很容易,用DBGRID就要写代码. tfieldtype 定义时显示无法识别 delphi:如何实现控件数组的单击事件? 如何在网内向另一台主机发送消息?并且能够看到对方收到后的提示? delphi 编译EXE文件 图像二值化的问题:请问怎样用双峰法对灰度直方图进行二值化 请问连续两个cds.applyupdates在服务器方如何用事务控制?? 怎样锁定dbgrid中的一列? 关于SynEditor的几个问题 请问各位大师:如何使用adoquery的筛选功能,filter功能,多谢多谢,给分100. Delphi中TEdit GetWindowLong参数问题 怎样控制系统总音量?分不够可以加!
代码功能为累加dbgrid中选中的单元格的那一列Query是adoquery
int ln;//记录当前行号
int col=DBGrid1->SelectedIndex + 1;
Screen->Cursor=crHourGlass;
Query->DisableControls();
ln=Query->RecNo-1;
Query->First();
float sum=0.0;
try
{
while(!Query->Eof)
{
sum+=Query->Fields->FieldByNumber(col)->AsFloat;
Query->Next();
}
edt_sum->Text=FloatToStr(sum);
Clipboard()->SetTextBuf(FloatToStr(sum).c_str()); }
__finally
{
Query->First();
Query->MoveBy(ln);//恢复到保存前查看的行号
Query->EnableControls();
Screen->Cursor=crDefault;
}