各位:下面的报表如何实现:
的
现有一下若干条数据:(一次性查询出来的)
用户名称 用户信息 编号 产品批号 重量
A1 B1 E1 C1 D1
........(用户A1共有11条记录)
A1 B1 E1 C11 D11
A2 B2 E2 C12 D12
........(用户A2共有4条记录)
A2 B2 E2 C15 D15
要求打印出来的报表格式是这样的(一张报表最多只能打印5条记录):
表头: 用户名称: 用户信息: (注意不同用户不能在同一张报表上)
重量:(这一张报表上的记录的重量合计) 编号: (如果一个用户在一张报表上不能打印完要标出这是第几张,如果能够一张打完则不用标记。)表体:产品批号: 重量:
举例:上面共有15条记录,但是有2个用户,所以就要打印4张(因为A1用户有11条,要打印3张,而不同用户不能在同一报表上,所以A2用户要一张)第一页 表头:用户名称:A1 用户信息:B1 重量合计:D1+..+D5 编号:E1-1 (-1是指三张中的第一张的意思)
表体:产品批号:C1 重量D1
...........
产品批号:C5 重量D5 (一张报表最多只能打印5条记录)第二页 表头:用户名称:A1 用户信息:B1 重量:D6+..+D10 编号:E1-2 (-2是指三张中的第二张的意思)
表体:产品批号:C6 重量D6
...........
产品批号:C10 重量D10 (一张报表最多只能打印5条记录)第三页 表头:用户名称:A1 用户信息:B1 重量:D11 编号:E1-3 (-3是指三张中的第三张的意思)
表体:产品批号:C11 重量D11 (只有一条记录)第四页 表头:用户名称:A2 用户信息:B2 重量:D1+..+D5 编号:E2 (因为就一张所以不用标识)
表体:产品批号:C12 重量D12
...........
产品批号:C15 重量D15 (只有4条记录)我现在的想法是:想采用主从表的做法,让主表去强行换页(这样似乎只能解决不同用户换页的问题) 而每页上的重量合计 ,以及如果一个用户是多页,如何标识第几页的问题好象没有解决啊!希望高手指点解决,或者提供一个解决的思路。谢谢!分不够可以再加!谢谢!
的
现有一下若干条数据:(一次性查询出来的)
用户名称 用户信息 编号 产品批号 重量
A1 B1 E1 C1 D1
........(用户A1共有11条记录)
A1 B1 E1 C11 D11
A2 B2 E2 C12 D12
........(用户A2共有4条记录)
A2 B2 E2 C15 D15
要求打印出来的报表格式是这样的(一张报表最多只能打印5条记录):
表头: 用户名称: 用户信息: (注意不同用户不能在同一张报表上)
重量:(这一张报表上的记录的重量合计) 编号: (如果一个用户在一张报表上不能打印完要标出这是第几张,如果能够一张打完则不用标记。)表体:产品批号: 重量:
举例:上面共有15条记录,但是有2个用户,所以就要打印4张(因为A1用户有11条,要打印3张,而不同用户不能在同一报表上,所以A2用户要一张)第一页 表头:用户名称:A1 用户信息:B1 重量合计:D1+..+D5 编号:E1-1 (-1是指三张中的第一张的意思)
表体:产品批号:C1 重量D1
...........
产品批号:C5 重量D5 (一张报表最多只能打印5条记录)第二页 表头:用户名称:A1 用户信息:B1 重量:D6+..+D10 编号:E1-2 (-2是指三张中的第二张的意思)
表体:产品批号:C6 重量D6
...........
产品批号:C10 重量D10 (一张报表最多只能打印5条记录)第三页 表头:用户名称:A1 用户信息:B1 重量:D11 编号:E1-3 (-3是指三张中的第三张的意思)
表体:产品批号:C11 重量D11 (只有一条记录)第四页 表头:用户名称:A2 用户信息:B2 重量:D1+..+D5 编号:E2 (因为就一张所以不用标识)
表体:产品批号:C12 重量D12
...........
产品批号:C15 重量D15 (只有4条记录)我现在的想法是:想采用主从表的做法,让主表去强行换页(这样似乎只能解决不同用户换页的问题) 而每页上的重量合计 ,以及如果一个用户是多页,如何标识第几页的问题好象没有解决啊!希望高手指点解决,或者提供一个解决的思路。谢谢!分不够可以再加!谢谢!
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Excel2000, OleServer;type
TForm1 = class(TForm)
ExcelWorkbook1: TExcelWorkbook;
ExcelWorksheet1: TExcelWorksheet;
ExcelApplication1: TExcelApplication;
ExcelWorksheet2: TExcelWorksheet;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
bexeclvisible: boolean;
i1,i2,j1,j2: integer;
begin
if application.MessageBox('启动Excel','请回答',MB_yesno+mb_defbutton2)<>idno
then
begin
bexeclvisible:=true;
end
else
bexeclvisible:=false;
if bexeclvisible then
excelapplication1.Visible[0]:=true;
try
excelapplication1.Connect;
except
showmessage('error');
abort;
end;
excelapplication1.Caption:='转换';
excelapplication1.Workbooks.add('d:\aa\扫描电镜(第一天)5.xls',0);
excelworkbook1.ConnectTo(excelapplication1.Workbooks[1]);
excelworksheet1.ConnectTo(excelworkbook1.Worksheets[1] as _worksheet);
excelworksheet2.ConnectTo(excelworkbook1.Worksheets[2] as _worksheet);
i1:=3;
j1:=2;
i2:=1;
j2:=1; while datetimetostr(excelworksheet1.Cells.Item[3,2].value)<>'' do
begin
excelworksheet2.Cells.Item[i2,j2].value:=datetimetostr(excelworksheet1.Cells.Item[i1,j1].value); excelworksheet2.Cells.Item[i2,j2+1].value:=excelworksheet1.Cells.Item[i1+3,j1].value;
excelworksheet2.Cells.Item[i2,j2+2].value:=excelworksheet1.Cells.Item[i1+3,j1+1].value;
excelworksheet2.Cells.Item[i2,j2+3].value:=excelworksheet1.Cells.Item[i1+3,j1+2].value;
excelworksheet2.Cells.Item[i2,j2+4].value:=excelworksheet1.Cells.Item[i1+3,j1+3].value;
excelworksheet2.Cells.Item[i2,j2+5].value:=excelworksheet1.Cells.Item[i1+3,j1+4].value;
excelworksheet2.Cells.Item[i2,j2+6].value:=excelworksheet1.Cells.Item[i1+3,j1+5].value;
excelworksheet2.Cells.Item[i2,j2+7].value:=excelworksheet1.Cells.Item[i1+3,j1+6].value;
excelworksheet2.Cells.Item[i2,j2+8].value:=excelworksheet1.Cells.Item[i1+3,j1+7].value;
excelworksheet2.Cells.Item[i2,j2+9].value:=excelworksheet1.Cells.Item[i1+3,j1+8].value;
excelworksheet2.Cells.Item[i2,j2+10].value:=excelworksheet1.Cells.Item[i1+3,j1+9].value;
excelworksheet2.Cells.Item[i2,j2+11].value:=excelworksheet1.Cells.Item[i1+3,j1+10].value;
excelworksheet2.Cells.Item[i2,j2+12].value:=excelworksheet1.Cells.Item[i1+3,j1+11].value;
i2:=i2+1;
i1:=i1+12; end; excelworksheet2.SaveAs('d:\aa\扫描电镜(第一天)5.xls');
showmessage('OK!');
excelapplication1.Disconnect;
excelapplication1.Quit;end;
end.