Word文档数据的存取机制
解决方案 »
- 用delphi 7写一个查看远程IP地址
- 建议版主把一些关于初学者遇到的已解决问题的帖子整理出来
- 关于ShellExecute如何传递参数的问题
- RAVE报表奇怪的问题,请各位帮助!紧急!
- 刚来上海,请多多关照。
- 请问高手:IDUDPClient控件能否用于ACTIVEX编程式?
- http://expert.csdn.net/Expert/topic/3036/3036638.xml?temp=.8686792
- 超级难题!关于数据库导出~~~
- 江湖救急,动态创建控件的事件注册
- 有谁用delphi做过发送邮件的程序?
- 大家谁知道google轰炸是什么技术?怎么弄的?原理是什么?
- 哪位大侠帮小弟一把
WORDAPPLICATION
WORDDOCUMENT
两个控件.
unit Uzdgcgl;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBClient, MConnect, SConnect, Grids, DBGridEh, ComCtrls,
DatasetNavigator, ExtCtrls, DBLocator, ToolWin, OleCtnrs, StdCtrls, Mask,
DBCtrls;type
Tfrmzdgcgl = class(TForm)
PageControl1: TPageControl;
ToolBar1: TToolBar;
DBLocator1: TDBLocator;
DatasetNavigator1: TDatasetNavigator;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGridEh1: TDBGridEh;
sc_zdgcgl: TSocketConnection;
cds_zdgcgl: TClientDataSet;
ds_zdgcgl: TDataSource;
cds_zdgcglBM: TStringField;
cds_zdgcglNY: TStringField;
cds_zdgcglBT: TStringField;
cds_zdgcglNR: TMemoField;
cds_zdgcglBZ: TStringField;
cds_zdgcglZYBZ: TStringField;
Panel1: TPanel;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
Label5: TLabel;
DBEdit4: TDBEdit;
OleContainer1: TOleContainer;
cds_com: TClientDataSet;
SocketConnection1: TSocketConnection;
procedure DBGridEh1DblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DatasetNavigator1Click(Sender: TObject;
Button: TdbNavigateBtn);
procedure OleContainer1Exit(Sender: TObject);
procedure cds_zdgcglAfterScroll(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cds_zdgcglBeforeScroll(DataSet: TDataSet);
procedure sc_zdgcglBeforeConnect(Sender: TObject);
procedure SocketConnection1BeforeConnect(Sender: TObject);
private
{ Private declarations }
bm:string;
public
{ Public declarations }
end;var
frmzdgcgl: Tfrmzdgcgl;implementationuses g_var;{$R *.dfm}procedure Tfrmzdgcgl.DBGridEh1DblClick(Sender: TObject);
begin
pagecontrol1.Pages[1].Show;
end;procedure Tfrmzdgcgl.FormShow(Sender: TObject);
begin
pagecontrol1.Pages[0].Show;
cds_com.Close ;
cds_com.CommandText :='select to_char(to_number(max(bm))) bm1 from dd_zdgcgl ';
cds_com.Open ;
cds_com.First ;
bm:=cds_com.fieldbyname('bm1').AsString ;
cds_com.Close ;
if bm='' then bm:='0';
cds_zdgcgl.Open ;
end;procedure Tfrmzdgcgl.DatasetNavigator1Click(Sender: TObject;
Button: TdbNavigateBtn);
var
stream1:Tmemorystream;
begin
case button of
nbsave :begin
olecontainer1.Iconic :=false;
stream1:=Tmemorystream.Create ;
olecontainer1.SaveToStream(stream1);
stream1.Position :=0;
cds_zdgcgl.Edit ;
Tblobfield(cds_zdgcgl.FieldByName('nr') ).LoadFromStream(stream1);
cds_zdgcgl.ApplyUpdates(0);
stream1.Free ;
end;
nbdel :begin
if messagebox(self.Handle ,'你确定删除当前这条记录吗?','提示',mb_okcancel)=1 then
begin
cds_zdgcgl.Delete ;
cds_zdgcgl.ApplyUpdates(0);
if cds_zdgcgl.RecordCount =0 then
begin
olecontainer1.DestroyObject ;
olecontainer1.CreateObject('word.document',true);
olecontainer1.Iconic :=false;
end; end; end;
nbappend:begin
pagecontrol1.Pages[1].Show;
cds_zdgcgl.Append ;
bm:=bm ;
bm:=inttostr(strtoint(bm)+1);
olecontainer1.DestroyObject ;
olecontainer1.CreateObject('word.document',true);
olecontainer1.Iconic :=false;
cds_zdgcgl.FieldByName('bm').AsString :=bm;
cds_zdgcgl.FieldByName('zybz').AsString :='2'; end;
nbclose :close;
end;
end;procedure Tfrmzdgcgl.OleContainer1Exit(Sender: TObject);
var
stream1:Tmemorystream;
begin
try
stream1:=Tmemorystream.create;
olecontainer1.SaveToStream(stream1);
stream1.Position :=0;
stream1.Size ;
if (stream1.Size >0) and (cds_zdgcgl.RecordCount >0) then
begin
if not (cds_zdgcgl.State in [dsinsert,dsedit]) then cds_zdgcgl.Edit ;
Tblobfield(cds_zdgcgl.FieldByName('nr') ).LoadFromStream(stream1);
cds_zdgcgl.ApplyUpdates(0);
end;
finally
stream1.Free ;
end;
end;procedure Tfrmzdgcgl.cds_zdgcglAfterScroll(DataSet: TDataSet);
var
stream1:Tmemorystream;
begin
try
stream1:=Tmemorystream.Create ;
Tblobfield(cds_zdgcgl.FieldByName('nr')).SaveToStream(stream1) ;
stream1.Position :=0;
stream1.Size ;
if (stream1.Size >0) and (cds_zdgcgl.RecordCount>0) then
begin
OleContainer1.LoadFromStream(stream1);
end;
finally
stream1.Free ;
end;
end;procedure Tfrmzdgcgl.FormClose(Sender: TObject; var Action: TCloseAction);
begin
OleContainer1.OnExit(self) ;
end;procedure Tfrmzdgcgl.cds_zdgcglBeforeScroll(DataSet: TDataSet);
begin
OleContainer1.OnExit(self) ;
olecontainer1.DestroyObject ;
olecontainer1.CreateObject('word.document',true);
olecontainer1.Iconic :=false;end;procedure Tfrmzdgcgl.sc_zdgcglBeforeConnect(Sender: TObject);
begin
sc_zdgcgl.Address :=gsappserver;
end;procedure Tfrmzdgcgl.SocketConnection1BeforeConnect(Sender: TObject);
begin
socketconnection1.Address :=gsappserver;
end;end.