Z
zgl198171
Unregistered / Unconfirmed
GUEST, unregistred user!
各位大哥啊!我今天看了别人的导出到模板的数据库程序!试了一下,可是我要导出多页相同的表格时不行啊,哪位大哥指点一下啊!
程序如下:
var
templateName: OleVariant;
newTemplate: OleVariant;
vSelection: Selection;
vTable: Table;
I,j,pItemIndex,k: Integer;
pCountouble;
begin
//构造打印模板文件名全路径
templateName := folderName + '工艺模板1.dot';
newTemplate := False;
try
wordApp.Connect();
except
MessageDlg('您的计算机上还未安装Microsoft Office Word97或更高的版本!', mtError, [mbOK], 0);
Abort;
end;
//以指定的模板文件创建新Word文档
aqGY.Open;
pCount:=aqGY.RecordCount/20;
if pCount<1 then
pItemIndex:=1
else
begin
if Trunc(pCount)<pCount then
pItemIndex:=Trunc(pCount)+1
else
pItemIndex:=Trunc(pCount);
//总页数
end;
wordApp.Documents.AddOld(templateName, newTemplate);
wordApp.Caption :=' ';
// vSelection := wordApp.Selection;
//取文档中的第1张表
j:=1;
vTable := wordApp.ActiveDocument.Tables.Item(1);
//pItemIndex
With aqGYdo
begin
i:=0;
First;
While Not Eofdo
begin
vTable.Cell(1, 4).Range.Text := aqTZ.FieldByName('内部图号').AsString;
vTable.Cell(1, 6).Range.Text := aqTZ.FieldByName('客户图号').AsString;
vTable.Cell(1, 8).Range.Text := aqTZ.FieldByName('客户').AsString;
vTable.Cell(2, 4).Range.Text := aqTZ.FieldByName('品名').AsString;
vTable.Cell(2, 6).Range.Text := aqTZ.FieldByName('品名').AsString;
vTable.Cell(2, 8).Range.Text :='共'+inttostr(pItemIndex)+'页';
vTable.Cell(3, 2).Range.Text := aqTZ.FieldByName('材料牌号').AsString;;
vTable.Cell(3, 4).Range.Text := aqTZ.FieldByName('毛坯种类').AsString;;
vTable.Cell(3, 6).Range.Text := aqTZ.FieldByName('成品尺寸').AsString;;
vTable.Cell(3, 8).Range.Text := aqTZ.FieldByName('毛坯可做件数').AsString;
vTable.Cell(3, 10).Range.Text := aqTZ.FieldByName('每件台数').AsString;
vTable.Cell(3, 12).Range.Text := aqTZ.FieldByName('备注').AsString;
vTable.Cell(i+6, 1).Range.Text := Fields[1].AsString;
vTable.Cell(i+6, 2).Range.Text := Fields[2].AsString;
vTable.Cell(i+6, 3).Range.Text := Fields[3].AsString;
vTable.Cell(i+6, 4).Range.Text := Fields[4].AsString;
vTable.Cell(i+6, 5).Range.Text := Fields[5].AsString;
vTable.Cell(i+6, 6).Range.Text := Fields[6].AsString;
vTable.Cell(i+6, 7).Range.Text := Fields[7].AsString;
vTable.Cell(i+6, 8).Range.Text := Fields[8].AsString;
vTable.Cell(i+6, 9).Range.Text := Fields[9].AsString;
Next;
Inc(i);
//if i>20 then
// begin
/// INC(j);
我想在这里做点什么啊,让他到下一张的相同表格中啊,怎么办啊!
// i:=0;
// end;
}
end;
end;
程序如下:
var
templateName: OleVariant;
newTemplate: OleVariant;
vSelection: Selection;
vTable: Table;
I,j,pItemIndex,k: Integer;
pCountouble;
begin
//构造打印模板文件名全路径
templateName := folderName + '工艺模板1.dot';
newTemplate := False;
try
wordApp.Connect();
except
MessageDlg('您的计算机上还未安装Microsoft Office Word97或更高的版本!', mtError, [mbOK], 0);
Abort;
end;
//以指定的模板文件创建新Word文档
aqGY.Open;
pCount:=aqGY.RecordCount/20;
if pCount<1 then
pItemIndex:=1
else
begin
if Trunc(pCount)<pCount then
pItemIndex:=Trunc(pCount)+1
else
pItemIndex:=Trunc(pCount);
//总页数
end;
wordApp.Documents.AddOld(templateName, newTemplate);
wordApp.Caption :=' ';
// vSelection := wordApp.Selection;
//取文档中的第1张表
j:=1;
vTable := wordApp.ActiveDocument.Tables.Item(1);
//pItemIndex
With aqGYdo
begin
i:=0;
First;
While Not Eofdo
begin
vTable.Cell(1, 4).Range.Text := aqTZ.FieldByName('内部图号').AsString;
vTable.Cell(1, 6).Range.Text := aqTZ.FieldByName('客户图号').AsString;
vTable.Cell(1, 8).Range.Text := aqTZ.FieldByName('客户').AsString;
vTable.Cell(2, 4).Range.Text := aqTZ.FieldByName('品名').AsString;
vTable.Cell(2, 6).Range.Text := aqTZ.FieldByName('品名').AsString;
vTable.Cell(2, 8).Range.Text :='共'+inttostr(pItemIndex)+'页';
vTable.Cell(3, 2).Range.Text := aqTZ.FieldByName('材料牌号').AsString;;
vTable.Cell(3, 4).Range.Text := aqTZ.FieldByName('毛坯种类').AsString;;
vTable.Cell(3, 6).Range.Text := aqTZ.FieldByName('成品尺寸').AsString;;
vTable.Cell(3, 8).Range.Text := aqTZ.FieldByName('毛坯可做件数').AsString;
vTable.Cell(3, 10).Range.Text := aqTZ.FieldByName('每件台数').AsString;
vTable.Cell(3, 12).Range.Text := aqTZ.FieldByName('备注').AsString;
vTable.Cell(i+6, 1).Range.Text := Fields[1].AsString;
vTable.Cell(i+6, 2).Range.Text := Fields[2].AsString;
vTable.Cell(i+6, 3).Range.Text := Fields[3].AsString;
vTable.Cell(i+6, 4).Range.Text := Fields[4].AsString;
vTable.Cell(i+6, 5).Range.Text := Fields[5].AsString;
vTable.Cell(i+6, 6).Range.Text := Fields[6].AsString;
vTable.Cell(i+6, 7).Range.Text := Fields[7].AsString;
vTable.Cell(i+6, 8).Range.Text := Fields[8].AsString;
vTable.Cell(i+6, 9).Range.Text := Fields[9].AsString;
Next;
Inc(i);
//if i>20 then
// begin
/// INC(j);
我想在这里做点什么啊,让他到下一张的相同表格中啊,怎么办啊!
// i:=0;
// end;
}
end;
end;