偶是这么解决滴:procedure TshejiX.DBGridEh1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if DBGridEh1.Height-Y<40 then //最后一行FOOTER begin
OraTable8.Last; if OraTable8.FieldValues['jd']='合计' then exit; if messagEbox(HANDLE,'自己输入?','',mb_yesno)=Idno then exit; OraTable8.Append; OraTable8.FieldValues['jd']:='合计' ; OraTable8.FieldByName('zql').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[3]); OraTable8.FieldByName('qd').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[4]); OraTable8.FieldByName('zqcy').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[5]); OraTable8.FieldByName('zqscsj').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[6]); OraTable8.FieldByName('yqb').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[7]); DBGridEh1.FooterRowCount:=0; end;end;
可以使用ehlib sumlist,并把最后的结果修改到特定行!
Shift: TShiftState; X, Y: Integer);
begin if DBGridEh1.Height-Y<40 then //最后一行FOOTER
begin
OraTable8.Last;
if OraTable8.FieldValues['jd']='合计' then exit; if messagEbox(HANDLE,'自己输入?','',mb_yesno)=Idno then exit; OraTable8.Append;
OraTable8.FieldValues['jd']:='合计' ;
OraTable8.FieldByName('zql').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[3]);
OraTable8.FieldByName('qd').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[4]);
OraTable8.FieldByName('zqcy').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[5]);
OraTable8.FieldByName('zqscsj').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[6]);
OraTable8.FieldByName('yqb').AsString:=DBGridEh1.GetFooterValue(0, DBGridEh1.Columns[7]);
DBGridEh1.FooterRowCount:=0;
end;end;