如报表如: 王二 20 王大 60
李四 30 王三 20
赵七 30 李七 10 小计 80 小计 90总和: 170报表分了两列显示数据,现在想让表格自动算出两个“小计”的数据和“总和”的数据。
如何做呢?
李四 30 王三 20
赵七 30 李七 10 小计 80 小计 90总和: 170报表分了两列显示数据,现在想让表格自动算出两个“小计”的数据和“总和”的数据。
如何做呢?
解决方案 »
- 怎样限定用户输入的EMAIL是合法的?
- 赫赫赫赫把一个减法函数强行变成加法函数!赫赫赫
- I'm a frog who is learning delphi!(注:女生与恐龙不的入内!!!!)
- 高手们帮帮忙,出错了,不会解决。
- 那位可以给我讲讲form和frame的区别?
- 如何处理拖动条上放控件
- ExpressPrinting System 的问题。
- 请问VSS的最新版本是什么?是不是Visual Studio里面的?
- 我在做打印报表时,纸张尺寸为26.5mm x 12.5mm,在打印预览时正常,但是打印时总是右边少一些内容.
- 如何提取应用程序的小图标?
- ****多表查询,只更新单表如何解决****
- 串口控件安装问题
由于给你一个Demo实现起来需要做的许多的工作见谅
var
temp :array [1..6] of real;
i:integer;
begin
for i:=1 to 6 do
temp[i]:=0;while not table3.IsEmpty do
table3.Delete;
table1.First;
while not(table1.Eof)do
begin
if table1.FieldByName('使用单位').asstring=combobox1.Text then
begin
{ with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM upkeep.db WHERE 车牌号码='+'"'+table1['车牌号码']+'"');
prepare;
open;
end; } table3.Last; if not table3.FindKey([table1['车牌号码']]) then
try
table3.append;
table3['车牌号码']:=table1['车牌号码'];
table3['基本费']:=table1['基本费'];
table3['车况维修费']:=table1['车况维修费'];
table3['里程维修费']:=table1['里程维修费'];
table3['维修费总额']:=table1['维修费总额'];
table3['维修费支出']:=table1['维修费总额']-table1['维修费节余'];
table3['维修费节余']:=table1['维修费节余'];
table3.Post;
except
end
else
try
table3.edit;
table3['车牌号码']:=table1['车牌号码'];
table3['基本费']:=table1['基本费'];
table3['车况维修费']:=table1['车况维修费'];
table3['里程维修费']:=table1['里程维修费'];
table3['维修费总额']:=table1['维修费总额'];
table3['维修费支出']:=table1['维修费总额']-table1['维修费节余'];
table3['维修费节余']:=table1['维修费节余'];
table3.Post;
except
end;
end;
table1.Next;
end;
table3.First;
while not table3.Eof do
begin
for i:=1 to 6 do
temp[i]:=temp[i]+table3.Fields[i].AsFloat;
table3.Next;
end;
table3.Append;
for i:=1 to 6 do
table3.Fields[i].AsFloat:=temp[i];
table3['车牌号码']:='总 计';
statusbar1.Panels[0].Text:='当前计录 '+(inttostr(table3.RecordCount))+' 条';
end;procedure TFrm_MAllTongji.FormCreate(Sender: TObject);
begin
Height:=Constraints.MinHeight;
Width:=Constraints.MinWidth;
table1.Close;
table3.Close;
//query1.Close;
table1.DatabaseName:=extractfilepath(paramstr(0))+'data\';
table3.DatabaseName:=extractfilepath(paramstr(0))+'data\';
query1.DatabaseName:=extractfilepath(paramstr(0))+'data\';
table1.Open;
table3.Open;
//query1.Open;
while not table3.IsEmpty do
table3.Delete;
end;
我认为应该从数据库的读取数据时入手。也就是用SQL语言实现比较好。
主要解答者: happyzsl 提交人: jihlz
感谢: happyzsl
审核者: ddvboy 社区对应贴子: 查看
A : 如何对报表中的一个字段的记录进行计算?比如计算总数和平均数。
---------------------------------------------------------------
QuickRep.Banks有一个hasSummary
在SummaryBank中放QRExpr组件,编写汇总表达式
定义一个变量,在detailBandBeforePrint里Inc这个变量,得出来的就是小计了,小计得到总计就不难了,
我以前做会计系统的报表的时候就是这样做的,不过速度会慢一点,呵
总计..用QrExpress..