?? mc_bgswd.pas
字號:
unit MC_BGSWD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, DBCtrls, Mask, ExtCtrls, ComCtrls, Buttons,
Word97, OleServer,CLipbrd, Word2000;
type
TBGSWD = class(TForm)
Table1: TTable;
Table1BDEDesigner: TIntegerField;
Table1BDEDesigner2: TStringField;
Table1BDEDesigner3: TStringField;
Table1BDEDesigner4: TDateTimeField;
Table1BDEDesigner5: TMemoField;
DataSource1: TDataSource;
GroupBox1: TGroupBox;
DBMemo1: TDBMemo;
Panel1: TPanel;
DBEdit2: TDBEdit;
Label2: TLabel;
DBEdit3: TDBEdit;
Label3: TLabel;
Label1: TLabel;
DateTimePicker1: TDateTimePicker;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
DBNavigator1: TDBNavigator;
Query1: TQuery;
WordApplication1: TWordApplication;
WordDocument1: TWordDocument;
BitBtn5: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
procedure BitBtn4Click(Sender: TObject);
procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
BGSWD: TBGSWD;
implementation
uses MC_WDLL, MC_MainForm;
{$R *.DFM}
procedure TBGSWD.FormShow(Sender: TObject); //判斷操作員操作權限
begin
If Table1.RecordCount <> 0 Then
begin
DateTimePicker1.DateTime:=Table1.FieldByName('起草日期').AsDateTime;
end;
if MainForm.Query1.Locate('使用選項','辦公室文檔管理',[loCaseInsensitive]) then
begin
if MainForm.Query1.FieldByName('讀寫').AsString='讀' then
begin
BitBtn1.Enabled:=False;
BitBtn2.Enabled:=False;
BitBtn3.Enabled:=False;
end;
end;
end;
procedure TBGSWD.BitBtn3Click(Sender: TObject); //刪除文檔
begin
If Table1.RecordCount <> 0 Then
if MessageDLG('是否刪除選中文檔?' ,mtCustom,[mbYes,mbNo],0)=mrYes then Table1.Delete;
end;
procedure TBGSWD.BitBtn1Click(Sender: TObject); //添加或保存操作
begin
if BitBtn1.Caption='添加新文檔[&I]' then //添加新文檔操作
begin
Table1.Append; //添加一條新記錄
Query1.Close;
Query1.Open;
BitBtn1.Caption:='保存新文檔[&S]';
BitBtn2.Caption:='取消保存文檔[&U]';
Table1.FieldByName('文檔編號').AsInteger:=Query1.Fields[0].AsInteger+1;
Panel1.Enabled:=True;
GroupBox1.Enabled:=True;
DbNavigator1.Enabled:=False;
BitBtn3.Enabled:=False;
BitBtn4.Enabled:=False;
DBEdit2.SetFocus;
End
Else //保存操作
begin
if Length(Table1.FieldByName('文檔標題').AsString)=0 then //如果文檔標題為空,提示
begin
ShowMessage('請輸入文檔標題.');
DBEdit2.SetFocus;
End
Else //保存文檔添加或修改
begin
BitBtn1.Caption:='添加新文檔[&I]';
BitBtn2.Caption:='編輯文檔[&E]';
BitBtn3.Enabled:=True;
BitBtn4.Enabled:=True;
Panel1.Enabled:=False;
GroupBox1.Enabled:=False;
DbNavigator1.Enabled:=True;
Table1.FieldByName('起草日期').AsDateTime:=DateTimePicker1.Date;
Table1.Post; //提交保存
end;
end;
end;
procedure TBGSWD.BitBtn2Click(Sender: TObject); //編輯或取消文檔
begin
if BitBtn2.Caption='編輯文檔[&E]' then //編輯文檔
begin
If Table1.RecordCount <> 0 Then //如果數據不為空
begin
Table1.Edit; //編輯文檔
BitBtn1.Caption:='保存新文檔[&S]';
BitBtn2.Caption:='取消保存文檔[&U]';
Panel1.Enabled:=True;
GroupBox1.Enabled:=True;
DbNavigator1.Enabled:=False;
BitBtn3.Enabled:=False;
BitBtn4.Enabled:=False;
DBEdit2.SetFocus;
end;
End
Else //取消操作
begin
BitBtn1.Caption:='添加新文檔[&I]';
BitBtn2.Caption:='編輯文檔[&E]';
BitBtn3.Enabled:=True;
BitBtn4.Enabled:=True;
Panel1.Enabled:=False;
GroupBox1.Enabled:=False;
DbNavigator1.Enabled:=True;
Table1.Cancel;
end;
end;
procedure TBGSWD.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
If Table1.RecordCount <> 0 Then
begin
DateTimePicker1.DateTime:=Table1.FieldByName('起草日期').AsDateTime;
end;
end;
procedure TBGSWD.BitBtn4Click(Sender: TObject); //調入瀏覽文檔窗口
begin
If Not Assigned(WDLL) Then
begin
WDLL:=TWDLL.Create(Self);
WDLL.ShowModal;
end;
end;
procedure TBGSWD.DBEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then PerForm(WM_NEXTDLGCTL,0,0);
end;
procedure TBGSWD.BitBtn5Click(Sender: TObject); //導出文檔到WORD
var TempLate,NewTemplate,ItemIndex: OLEVariant;
a,b:integer;
begin
Try
WordApplication1.Quit;
WordApplication1.Disconnect;
NewTemplate:=True;
WordApplication1.Connect;
WordApplication1.Caption:=Table1.FieldByName('文檔標題').AsString;
WordApplication1.Visible:=True;
WordDocument1.Range.InsertAfter(' '+#13);
WordDocument1.Range.InsertAfter(Table1.FieldByname('文檔標題').AsString+#13);
WordDocument1.Range.InsertAfter(''+#13);
For a:=0 to DBMemo1.Lines.Count-1 do
begin
WordDocument1.Range.InsertAfter((DBMemo1.Lines.Strings[a])+#13);
end;
WordDocument1.Range.InsertAfter(''+#13);
WordDocument1.Range.InsertAfter(Table1.FieldByName('起草日期').AsString+#13);
WordDocument1.Range.InsertAfter(''+#13);
WordDocument1.Range.InsertAfter(Table1.FieldByName('起草人').AsString+#13);
Except
ShowMessage('連接Word異常');
End;
end;
procedure TBGSWD.FormClose(Sender: TObject; var Action: TCloseAction);
begin
BGSWD.Release;
BGSWD:=Nil;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -