?? frmbjbb.~pas
字號:
unit frmbjbb;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
ComboBox1: TComboBox;
Button1: TButton;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
OleContainer1: TOleContainer;
Button3: TButton;
ExcelApplication1: TExcelApplication;
ExcelWorkbook1: TExcelWorkbook;
ExcelWorksheet1: TExcelWorksheet;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
procedure N2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ComboBox2Select(Sender: TObject);
procedure ComboBox3Select(Sender: TObject);
procedure ComboBox1Select(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses frmmain;
{$R *.dfm}
procedure TForm2.N2Click(Sender: TObject);
begin
self.Close;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
bbml,sbmb,search,lujing,s1,cjml:string;
MyIni:TIniFile;
begin
//初始化路徑
MyIni:=Tinifile.create('.\lj.ini');
sbmb:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\識別模板\'+trim(ComboBox1.Text);
lujing:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text;
search:=filesearch(ComboBox1.Text,lujing);
bbml:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text+'\'+trim(ComboBox1.Text);
s1:=combobox1.text;
//結束
//判斷年列表是否為空
if ComboBox2.Text='' then
begin
application.MessageBox('請選擇要打開的報表所屬的年份!','系統提示');
exit;
end;
//判斷年列表結束
//判斷月列表是否為空
if ComboBox3.Text='' then
begin
application.MessageBox('請選擇要打開的報表所屬的月份!','系統提示');
exit;
end;
//判斷月列表結束
//判斷報表類型列表的內容是否為空
if ComboBox1.Text<>'' then
begin
s1:=ComboBox1.Text;
label1.Caption:=search;
//判斷打開的報表是否存在
if search='' then //如果要打開的報表不存在,則自動創建模板
begin
cjml:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+ComboBox2.Text+ComboBox3.Text;
MkDir(cjml);
//復制報表
CopyFile(pchar(sbmb),pchar(bbml),false);
//復制報表結束
end;
//判斷打開的報表是否存在結束
end
else
begin
application.MessageBox('請選擇要打開的報表名稱!','系統提示');
exit;
end;
//判斷報表類型列表結束
//打開指定的報表
//////////////////////////
Begin
//關閉已經打開的程序
Try
ExcelApplication1.Quit;
ExcelWorkbook1.Disconnect;
ExcelWorksheet1.Disconnect;
ExcelApplication1.Disconnect;
Except
End;
//結束
//OLEContaner打開報表
OleContainer1.DestroyObject;
OleContainer1.CreateObjectFromFile(label1.Caption,false);
//OleContainer1.CreateLinkToFile(label1.Caption,false);
//OLEContaner打開報表結束
//打開Excel
Try
ExcelApplication1.Connect;
Except
application.MessageBox('打開失敗,可能系統沒有安裝Excel,請重試!','提示信息');
exit;
End;
//ExcelApplication1.Visible[0]:=True;
//打開結束
End;
/////////////////////////
//結束
Button3.Enabled:=true;
OleContainer1.Enabled:=true;
myini.Free;
end;
procedure TForm2.FormShow(Sender: TObject);
var
year:string;
i:integer;
j:integer;
begin
//更新報表年列表
ComboBox2.Items.Clear;
year:=datetostr(date());
ComboBox2.Items.Add(inttostr(strtoint(copy(year,0,4))+1));
ComboBox2.Items.Add(copy(year,0,4));
ComboBox2.Items.Add(inttostr(strtoint(copy(year,0,4))-1));
//更新年列表結束
//更新報表類型列表
try
form1.ADOQuery1.Close;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('select * from template');
form1.ADOQuery1.Open;
i:=form1.ADOQuery1.RecordCount;
ComboBox1.Clear;
for j := 1 to i do
begin
form1.ADOQuery1.Close;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('select * from template');
form1.ADOQuery1.SQL.Add('where id=:a1');
form1.adoquery1.Parameters.ParamValues['a1']:=inttostr(j);
form1.ADOQuery1.Open;
if (form1.ADOQuery1.Fields.Fields[3].AsString='1') then
if (form1.ADOQuery1.Fields.Fields[4].AsString='1') then
ComboBox1.Items.Add(form1.ADOQuery1.Fields.Fields[1].AsString);
end;
except;
end;
//更新報表類型列表結束
end;
procedure TForm2.ComboBox2Select(Sender: TObject);
var
bbml,sbmb,search,lujing,s1,cjml:string;
MyIni:TIniFile;
begin
//初始化路徑
MyIni:=Tinifile.create('.\lj.ini');
sbmb:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\識別模板\'+trim(ComboBox1.Text);
lujing:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text;
search:=filesearch(ComboBox1.Text,lujing);
bbml:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text+'\'+trim(ComboBox1.Text);
s1:=combobox1.text;
//結束
//判斷年列表是否為空
if ComboBox2.Text='' then
begin
application.MessageBox('請選擇要打開的報表所屬的年份!','系統提示');
exit;
end;
//判斷年列表結束
//判斷月列表是否為空
if ComboBox3.Text='' then
begin
exit;
end;
//判斷月列表結束
//判斷報表類型列表的內容是否為空
if ComboBox1.Text<>'' then
begin
s1:=ComboBox1.Text;
label1.Caption:=search;
//判斷打開的報表是否存在
if search='' then //如果要打開的報表不存在,則自動創建模板
begin
cjml:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+ComboBox2.Text+ComboBox3.Text;
MkDir(cjml);
//復制報表
CopyFile(pchar(sbmb),pchar(bbml),false);
//復制報表結束
end;
//判斷打開的報表是否存在結束
end
else
begin
exit;
end;
//判斷報表類型列表結束
Button3.Enabled:=true;
OleContainer1.Enabled:=true;
//結束
end;
procedure TForm2.ComboBox3Select(Sender: TObject);
var
bbml,sbmb,search,lujing,s1,cjml:string;
MyIni:TIniFile;
begin
//初始化路徑
MyIni:=Tinifile.create('.\lj.ini');
sbmb:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\識別模板\'+trim(ComboBox1.Text);
lujing:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text;
search:=filesearch(ComboBox1.Text,lujing);
bbml:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text+'\'+trim(ComboBox1.Text);
s1:=combobox1.text;
//結束
//判斷年列表是否為空
if ComboBox2.Text='' then
begin
application.MessageBox('請選擇要打開的報表所屬的年份!','系統提示');
exit;
end;
//判斷年列表結束
//判斷月列表是否為空
if ComboBox3.Text='' then
begin
exit;
end;
//判斷月列表結束
//判斷報表類型列表的內容是否為空
if ComboBox1.Text<>'' then
begin
s1:=ComboBox1.Text;
label1.Caption:=search;
//判斷打開的報表是否存在
if search='' then //如果要打開的報表不存在,則自動創建模板
begin
cjml:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+ComboBox2.Text+ComboBox3.Text;
MkDir(cjml);
//復制報表
CopyFile(pchar(sbmb),pchar(bbml),false);
//復制報表結束
end;
//判斷打開的報表是否存在結束
end
else
begin
exit;
end;
//判斷報表類型列表結束
//結束
end;
procedure TForm2.ComboBox1Select(Sender: TObject);
var
bbml,sbmb,search,lujing,s1,cjml:string;
MyIni:TIniFile;
begin
//初始化路徑
MyIni:=Tinifile.create('.\lj.ini');
sbmb:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\識別模板\'+trim(ComboBox1.Text);
lujing:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text;
search:=filesearch(ComboBox1.Text,lujing);
bbml:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text+'\'+trim(ComboBox1.Text);
s1:=combobox1.text;
//結束
//判斷年列表是否為空
if ComboBox2.Text='' then
begin
application.MessageBox('請選擇要打開的報表所屬的年份!','系統提示');
exit;
end;
//判斷年列表結束
//判斷月列表是否為空
if ComboBox3.Text='' then
begin
exit;
end;
//判斷月列表結束
//判斷報表類型列表的內容是否為空
if ComboBox1.Text<>'' then
begin
s1:=ComboBox1.Text;
label1.Caption:=search;
//判斷打開的報表是否存在
if search='' then //如果要打開的報表不存在,則自動創建模板
begin
cjml:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+ComboBox2.Text+ComboBox3.Text;
MkDir(cjml);
//復制報表
CopyFile(pchar(sbmb),pchar(bbml),false);
//復制報表結束
end;
//判斷打開的報表是否存在結束
end
else
begin
application.MessageBox('請選擇要打開的報表名稱!','系統提示');
exit;
end;
//判斷報表類型列表結束
//結束
end;
procedure TForm2.Button3Click(Sender: TObject);
var
search,s1,lujing:STRING;
MyIni:TIniFile;
begin
MyIni:=Tinifile.create('.\lj.ini');
lujing:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text;
s1:=ComboBox1.Text;
search:=FileSearch(s1,lujing);
label1.Caption:=search;
OleContainer1.SaveAsDocument(label1.Caption);
myini.Free;
end;
procedure TForm2.N3Click(Sender: TObject);
begin
if (application.MessageBox('是否真的要退出該系統?(Y/N)','系統提示',MB_YESNO)=IDNO) then
exit
else
application.Terminate;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
var
search,s1,lujing:STRING;
MyIni:TIniFile;
begin
try
MyIni:=Tinifile.create('.\lj.ini');
lujing:=myini.ReadString('系統路徑設置','系統路徑','')+'\報表\報表目錄\'+combobox2.text+combobox3.text;
s1:=ComboBox1.Text;
search:=FileSearch(s1,lujing);
label1.Caption:=search;
OleContainer1.SaveAsDocument(label1.Caption);
myini.Free;
OleContainer1.DestroyObject;
except;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -