我用DELPHI写了个程序,让程序把数据库里的表的结构导出到了WORD文档中,以下是导出内容的一部分,其他问题都解决了,就是标题链界的问题没解决,请各未高手指教,付部分代码。
1.存货及存货跌价准备说明 3
2.长期投资说明_股权投资 4
3.长期投资说明_债权投资 5
1.存货及存货跌价准备说明
中文名称 英文名称 数据类型 是否主键 是否为空 备注
GUID Varchar
T_CHJCHDJZBSM_ID Varchar
股票代码 T_GSZB_ID Integer
2.长期投资说明_股权投资
//在WORD里点1就定位到下面相应的内容。
procedure TCreateWordForm.SaveToDOC;
var
Tablename:string;
Begin
TableNum:=0;
wrdApp := CreateOleObject('Word.Application'); wrdApp.Visible := true;
wrdDoc := wrdApp.Documents.Add();
wrdDoc.Select; wrdSelection := wrdApp.Selection;
wrdMailMerge := wrdDoc.MailMerge; BTNum:=1;
IF ActiveADO(TableListADO,'EXEC sp_tables')>0 Then
begin
InsertLines(2); while not(TableListADO.Eof) do
begin
application.ProcessMessages;
sleep(1);
if TableListADO.fieldbyname('Table_type').AsString<>'TABLE' then
begin
TableListADO.Next ;
continue;
end;
Tablename:=TableListADO.fieldbyname('Table_Name').AsString;
sqlstring:='select cname from Table_Name where tname='''+Tablename+'''';
IF ActiveADO(CHNNameADO,sqlstring)>0 Then
begin
wrdApp.Selection.GoTo(wdGotoLine,wdGoToLast);
wrdSelection.Style := '标题 3';
wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphLeft;
wrdSelection.TypeText(inttostr(BTNum)+'.'+CHNNameADO.fieldbyname('CName').AsString); try
DrawTableRow(TableName);//插入表格的内容,自己写的过程
except
end;
inc(BTNum);
end;
TableListADO.Next ;
end; end; {wrdApp.Selection.GoTo(wdGotoLine, wdGoToFirst); //移动到头 wrdApp.ActiveDocument.TablesOfContents.Add (Range:=wrdApp.Selection.Range); //插入WORD文档的目录
end;
1.存货及存货跌价准备说明 3
2.长期投资说明_股权投资 4
3.长期投资说明_债权投资 5
1.存货及存货跌价准备说明
中文名称 英文名称 数据类型 是否主键 是否为空 备注
GUID Varchar
T_CHJCHDJZBSM_ID Varchar
股票代码 T_GSZB_ID Integer
2.长期投资说明_股权投资
//在WORD里点1就定位到下面相应的内容。
procedure TCreateWordForm.SaveToDOC;
var
Tablename:string;
Begin
TableNum:=0;
wrdApp := CreateOleObject('Word.Application'); wrdApp.Visible := true;
wrdDoc := wrdApp.Documents.Add();
wrdDoc.Select; wrdSelection := wrdApp.Selection;
wrdMailMerge := wrdDoc.MailMerge; BTNum:=1;
IF ActiveADO(TableListADO,'EXEC sp_tables')>0 Then
begin
InsertLines(2); while not(TableListADO.Eof) do
begin
application.ProcessMessages;
sleep(1);
if TableListADO.fieldbyname('Table_type').AsString<>'TABLE' then
begin
TableListADO.Next ;
continue;
end;
Tablename:=TableListADO.fieldbyname('Table_Name').AsString;
sqlstring:='select cname from Table_Name where tname='''+Tablename+'''';
IF ActiveADO(CHNNameADO,sqlstring)>0 Then
begin
wrdApp.Selection.GoTo(wdGotoLine,wdGoToLast);
wrdSelection.Style := '标题 3';
wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphLeft;
wrdSelection.TypeText(inttostr(BTNum)+'.'+CHNNameADO.fieldbyname('CName').AsString); try
DrawTableRow(TableName);//插入表格的内容,自己写的过程
except
end;
inc(BTNum);
end;
TableListADO.Next ;
end; end; {wrdApp.Selection.GoTo(wdGotoLine, wdGoToFirst); //移动到头 wrdApp.ActiveDocument.TablesOfContents.Add (Range:=wrdApp.Selection.Range); //插入WORD文档的目录
end;
比较急,请高手帮忙!
wrdDoc.Books.Add('book1',wrdSelection.Range);
加入书签链接:
wrdDoc.Hyperlinks.Add(wrdSelection.Range,'','book1');