A
aspire
Unregistered / Unconfirmed
GUEST, unregistred user!
CICN前两个贴子(ID-493103 和 ID--494827)都对,只是496425有点不清,你的数据源应
为两个字段(产品名称, 销售额 )。现你要分栏打印(即如你报表所示,一行两个产品记
录)。为此,你得先将数据源进行加工,变成四个字段(产品名称1,销售额1,产品名2,
销售额2), CICN的第三贴(ID-49625)是为了实现此功能,只是有点小问题。请你先在
DELPHI下建一TABLE,有四个字段(产品名称1,销售额1,产品名2,销售额2);
然后,用如下代码将原数据源的数据黑心入新建表:
Var
i:integer;
====================
if NewTable.active then
NewTable.active:=false;
NewTable.EmptyTble;
NewTable.active:=true;
i:=0;
with OldTable (Or OldQuery)do
begin
if not active then
active:=true
else
first;
while not eofdo
begin
if i=0 then
begin
newtable.append;
newtable.edit;
newtable.fieldbyname('品名称1').value:=fields[0].value;
newable.fieldbyname('销售额1').value:=fields[1].value;
i:=1;
end
else
begin
newtable.fieldbyname('品名称2').value:=fields[0].value;
newable.fieldbyname('销售额2').value:=fields[1].value;
newtable.post;
i:=0;
end;
next;
end;
newtable1.post;
end;
接下来,用此NEWTABLE做为你要做的报表的数据源,再参考
此问题的其它贴子设置列小计、页小计(如CICN的两个贴子
(ID-493103 和 ID--494827))、以及总计。
在最后一页打印总计时,为了使列小计和页小计置于总计之上,
最好用PAGRFOOTER,在其中放一表达式及一LABEL,表达式为
SUM(销售额1)+SUM(销售额2),ENABLED:=FALSE。在QRLABEL的
ON PRINTER中判断是否是最后一页,若是则打印了(=表达式的值)。
为两个字段(产品名称, 销售额 )。现你要分栏打印(即如你报表所示,一行两个产品记
录)。为此,你得先将数据源进行加工,变成四个字段(产品名称1,销售额1,产品名2,
销售额2), CICN的第三贴(ID-49625)是为了实现此功能,只是有点小问题。请你先在
DELPHI下建一TABLE,有四个字段(产品名称1,销售额1,产品名2,销售额2);
然后,用如下代码将原数据源的数据黑心入新建表:
Var
i:integer;
====================
if NewTable.active then
NewTable.active:=false;
NewTable.EmptyTble;
NewTable.active:=true;
i:=0;
with OldTable (Or OldQuery)do
begin
if not active then
active:=true
else
first;
while not eofdo
begin
if i=0 then
begin
newtable.append;
newtable.edit;
newtable.fieldbyname('品名称1').value:=fields[0].value;
newable.fieldbyname('销售额1').value:=fields[1].value;
i:=1;
end
else
begin
newtable.fieldbyname('品名称2').value:=fields[0].value;
newable.fieldbyname('销售额2').value:=fields[1].value;
newtable.post;
i:=0;
end;
next;
end;
newtable1.post;
end;
接下来,用此NEWTABLE做为你要做的报表的数据源,再参考
此问题的其它贴子设置列小计、页小计(如CICN的两个贴子
(ID-493103 和 ID--494827))、以及总计。
在最后一页打印总计时,为了使列小计和页小计置于总计之上,
最好用PAGRFOOTER,在其中放一表达式及一LABEL,表达式为
SUM(销售额1)+SUM(销售额2),ENABLED:=FALSE。在QRLABEL的
ON PRINTER中判断是否是最后一页,若是则打印了(=表达式的值)。