📄 frmmain1.pas
字号:
unit frmmain1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGridEh, RzTabs, ComCtrls, RzTreeVw, RzSplit, Menus,shellapi,
ToolWin, ExtCtrls, RzPanel, ADODB, DB, ehlibado, DBCtrls, RzStatus, ImgList,DBGridEhImpExp,
StdCtrls, RzEdit, Buttons;
type
Tfrmmain = class(TForm)
RzStatusBar1: TRzStatusBar;
mm1: TMainMenu;
tlb1: TToolBar;
N22551: TMenuItem;
RzSizePanel1: TRzSizePanel;
tv1: TRzTreeView;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
TabSheet2: TRzTabSheet;
TabSheet3: TRzTabSheet;
ds1: TDataSource;
con1: TADOConnection;
qry1: TADOQuery;
cmd1: TADOCommand;
btn1: TToolButton;
dlgOpen1: TOpenDialog;
pnl1: TPanel;
dbnvgr1: TDBNavigator;
grid1: TDBGridEh;
RzClockStatus1: TRzClockStatus;
RzStatusPane1: TRzStatusPane;
bar3: TRzStatusPane;
btn2: TToolButton;
btn3: TToolButton;
btn4: TToolButton;
il1: TImageList;
btn5: TToolButton;
dlgSave1: TSaveDialog;
N1: TMenuItem;
N2: TMenuItem;
pnl2: TPanel;
RzMemo1: TRzMemo;
btn6: TBitBtn;
btn7: TBitBtn;
btn8: TToolButton;
pnl3: TPanel;
btn9: TBitBtn;
btn10: TBitBtn;
RzMemo2: TRzMemo;
RzSizePanel2: TRzSizePanel;
grid2: TDBGridEh;
ds2: TDataSource;
qry2: TADOQuery;
procedure btn1Click(Sender: TObject);
procedure setgridsort(mDBGrid: TDBGrideh);
procedure tv1Change(Sender: TObject; Node: TTreeNode);
procedure btn4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btn2Click(Sender: TObject);
procedure urlink(url:pchar); //打开外部文件
procedure outexcel(dataset:TADOQuery;grid1:TDBGridEh);
procedure btn3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btn7Click(Sender: TObject);
procedure btn6Click(Sender: TObject);
procedure btn8Click(Sender: TObject);
procedure btn9Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
SConnectionString='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';
var
frmmain: Tfrmmain;
dbname:string;//数据库名
isquit:Boolean;
implementation
{$R *.dfm}
procedure Tfrmmain.outexcel(dataset:TADOQuery;grid1:TDBGridEh);
var
s1:string;
begin
if dataset.isempty then Application.MessageBox('没有数据输出','错误', MB_OK +MB_ICONSTOP)
else
begin
frmmain.dlgsave1.filename:='';
frmmain.dlgsave1.filter:='EXCEL文件(*.xls)|*.xls';
frmmain.dlgsave1.Execute;
if frmmain.dlgsave1.filename<>'' then //是否已打开文件
begin
s1:=trim(frmmain.dlgsave1.filename);
if StrPos(PChar(s1), PChar('.xls'))=nil then s1:=trim(frmmain.dlgsave1.filename)+'.xls';
SaveDBGridEhToExportFile(TDBGridEhExportAsxls,Grid1,s1,true);
if MessageDlg('文件'+s1+'已建立,是否打开文件?', mtInformation, [mbOK, mbCancel], 0)=mrOK then frmmain.urlink(pchar(s1));
end;
end;
end;
procedure Tfrmmain.setgridsort(mDBGrid: TDBGrideh);
var
i:integer;
begin
mdbgrid.SortLocal:=true;
mdbgrid.OptionsEh:=[dghFixed3D,dghHighlightFocus,dghClearSelection,dghAutoSortMarking,dghEnterAsTab,dghDialogFind];
for i:=0 to mdbgrid.columns.count-1 do if mdbgrid.columns[i].Visible then mdbgrid.columns[i].Title.TitleButton:=true;
end;
procedure Tfrmmain.urlink(url:pchar); //打开外部文件
var
s:integer;
begin
s:=shellexecute(0,nil,url,nil,nil,sw_normal);
if s=2 then MessageDlg('文件不存在', mtInformation, [mbOK], 0);
if s=31 then MessageDlg('没有相关联的程序打开文件。', mtInformation, [mbOK], 0);
end;
procedure Tfrmmain.btn1Click(Sender: TObject);
var
liststr:TStringList;
i:Integer;
ss:TTreeNode;
begin
dbname:='';
dlgOpen1.Execute;
dbname:=dlgopen1.filename;
if trim(dbname)<>'' then
begin
//===判定是否是数据文件
if Con1.Connected then Con1.Close;
con1.ConnectionString:=format(SConnectionString,[dbname,'']);
try
con1.Open;
except
showmessage(dlgopen1.filename+'不是数据库文件');
abort;
end;
bar3.Caption:=dbname;
tv1.Items.Clear;
liststr:=TStringList.Create;
con1.GetTableNames(liststr,false);
for i:=0 to liststr.Count-1 do
begin
tv1.Items.AddChild(ss,liststr.Strings[i]);
end;
liststr.Free;
end;
end;
procedure Tfrmmain.tv1Change(Sender: TObject; Node: TTreeNode);
begin
if isquit then Abort;
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('select * from '+tv1.Selected.Text);
tv1.Cursor:=crHourGlass;
qry1.DisableControls;
qry1.Open;
setgridsort(grid1);
qry1.EnableControls;
tv1.Cursor:=crDefault;
end;
procedure Tfrmmain.btn4Click(Sender: TObject);
begin
frmmain.close;
end;
procedure Tfrmmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if con1.Connected then con1.close;
end;
procedure Tfrmmain.btn2Click(Sender: TObject);
begin
con1.Close;
isquit:=True;
tv1.Items.Clear;
bar3.Caption:='';
isquit:=False;
end;
procedure Tfrmmain.btn3Click(Sender: TObject);
begin
if not qry1.active then
begin
ShowMessage('没有数据表没有打开');
Abort;
end;
if qry1.IsEmpty then
begin
ShowMessage('没有数据导出');
Abort;
end;
outexcel(qry1,grid1);
end;
procedure Tfrmmain.FormShow(Sender: TObject);
begin
isquit:=False;
end;
procedure Tfrmmain.btn7Click(Sender: TObject);
begin
RzMemo1.Clear;
end;
procedure Tfrmmain.btn6Click(Sender: TObject);
begin
if not con1.Connected then
begin
ShowMessage('数据库文件没有打开');
Abort;
end;
cmd1.CommandText:=RzMemo1.Text;
try
cmd1.Execute;
except
showmessage('没有执行成功,请检查SQL语句');
abort;
end;
ShowMessage('已成功执行');
end;
procedure Tfrmmain.btn8Click(Sender: TObject);
begin
if qry1.Active then
begin
qry1.Close;
qry1.Open;
end;
end;
procedure Tfrmmain.btn9Click(Sender: TObject);
begin
if not con1.Connected then
begin
ShowMessage('数据库文件没有打开');
Abort;
end;
qry2.Close;
qry2.SQL.Clear;
qry2.SQL.Add(RzMemo2.Text);
//cmd1.CommandText:=RzMemo1.Text;
try
qry2.open;
except
showmessage('没有执行成功,请检查SQL语句');
abort;
end;
ShowMessage('已成功执行');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -