📄 main.pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SUISkinEngine,IniFiles, DB, ADODB, jpeg, ExtCtrls, StdCtrls,
Buttons, ComCtrls, PageControlEx, Grids, BaseGrid, AdvGrid;
type
TMForm = class(TForm)
Panel3: TPanel;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn2: TBitBtn;
Panel2: TPanel;
Image1: TImage;
AdvStringGrid1: TAdvStringGrid;
Panel4: TPanel;
AllModules: TPageControlEx;
TabSheet1: TTabSheet;
Label3: TLabel;
Edit1: TEdit;
Button2: TBitBtn;
TabSheet2: TTabSheet;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit2: TEdit;
Edit5: TEdit;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Button1: TBitBtn;
TabSheet3: TTabSheet;
Label8: TLabel;
Label9: TLabel;
Edit6: TEdit;
Edit7: TEdit;
Button3: TBitBtn;
TW: TADOConnection;
ADOQuery1: TADOQuery;
suiSkinEngine1: TsuiSkinEngine;
CheckBox1: TCheckBox;
Label2: TLabel;
ComboBox3: TComboBox;
Label10: TLabel;
ComboBox4: TComboBox;
CheckBox2: TCheckBox;
Label1: TLabel;
ComboBox5: TComboBox;
Label11: TLabel;
ComboBox6: TComboBox;
Label12: TLabel;
Label13: TLabel;
ComboBox7: TComboBox;
Label14: TLabel;
Label15: TLabel;
ComboBox8: TComboBox;
Procedure GlobalSetupFile(p_path,p_Action,p_scope,p_session,p_group:string;out p_ret:integer; out p_msg:string);
Procedure SelectModules(ID:integer);
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure AdvStringGrid1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MForm: TMForm;
implementation
{$R *.dfm}
Procedure TMForm.GlobalSetupFile(p_path,p_Action,p_scope,p_session,p_group:string;out p_ret:integer; out p_msg:string);
var
MESIni:Tinifile;
v_InternalName,v_msg:string;
begin
p_ret:=1;
v_InternalName:='[GlobalSetupFile]';
MESini:=Tinifile.Create(p_path+'Global.ini');
if (p_Action='READ')then
begin
if p_scope='Str' then
begin
v_msg:=MESini.ReadString(p_session,p_group,'');
end;
if p_scope='Int' then
begin
v_msg:=MESini.ReadString(p_session,p_group,'0');
end;
end
else
begin
MESini.WriteString(p_session,p_group,p_scope);
end;
p_msg:=v_msg;
MESIni.Free;
end;
Procedure TMForm.SelectModules(ID:integer);
var
v_rurrentModule:integer;
begin
AllModules.TabPosition:=tpBottom;
for v_rurrentModule:=0 to AllModules.PageCount-1 do
AllModules.Pages[v_rurrentModule].TabVisible:=false;
AllModules.Pages[ID].TabVisible:=true;
end;
procedure TMForm.FormShow(Sender: TObject);
var
v_ret:Integer;
GlServerName:string; //服务器名;
GlServerDBName:string;// 数据库名;
GlServerUserName:string;// 数据库用户名sa;
GlServerUserPass:string; //用户密码;
myTmpStr,P_MSG,v_t1,v_t2,v_sql:string;//ADOCONNECTIONSTRING;
begin
try
Panel4.Height:=0;
GlobalSetupFile(ExtractFilePath(Application.ExeName),'READ','Int','DABASE','SERVER',v_ret,GlServerName);
GlobalSetupFile(ExtractFilePath(Application.ExeName),'READ','Int','DABASE','DB',v_ret,GlServerDBName);
GlobalSetupFile(ExtractFilePath(Application.ExeName),'READ','Int','DABASE','USER',v_ret,GlServerUserName);
GlobalSetupFile(ExtractFilePath(Application.ExeName),'READ','Int','DABASE','PWD',v_ret,GlServerUserPass);
with TW do
begin
Connected:= false;
Provider:= 'SQLOLEDB.1';
Properties['Data Source'].Value:= GlServerName; //服务器名或者ip地址
Properties['Initial Catalog'].Value:= GlServerDBName; //表名
Properties['User ID'].Value:='sa';// GlServerUserName; //用户名
Properties['password'].Value:='sa';// 'minaik2006cn';// 密码
Properties['Connect Timeout'].Value:=15;
Properties['Use Procedure for Prepare'].Value:=1;
Properties['Auto Translate'].Value:=True;
Properties['Packet Size'].Value:=4096;
LoginPrompt:= false;
Connected:= true;
end;
except
on E:exception do
begin
MessageDlg('[无法连接数据库,请检查设置是否正确.]'+#13+#10+e.Message, mtError, [mbOK], 0);
end;
end;
end;
procedure TMForm.BitBtn1Click(Sender: TObject);
var
v_sql:string;
begin
try
Panel4.Height:=46;
BitBtn1.Enabled:=false;
BitBtn2.Enabled:=true;
BitBtn3.Enabled:=true;
BitBtn4.Enabled:=true;
SelectModules(0);
except
on E:exception do
begin
end;
end;
end;
procedure TMForm.BitBtn2Click(Sender: TObject);
begin
try
Panel4.Height:=76;
Edit6.Text:='';
Edit7.Text:='';
ComboBox1.Text:='';
ComboBox2.Text:='';
BitBtn1.Enabled:=true;
BitBtn2.Enabled:=false;
BitBtn3.Enabled:=true;
BitBtn4.Enabled:=true;
SelectModules(2);
except
on E:exception do
begin
end;
end;
end;
procedure TMForm.BitBtn3Click(Sender: TObject);
begin
try
Panel4.Height:=76;
BitBtn1.Enabled:=true;
BitBtn2.Enabled:=true;
BitBtn3.Enabled:=false;
BitBtn4.Enabled:=true;
SelectModules(1);
except
on E:exception do
begin
end;
end;
end;
procedure TMForm.Button1Click(Sender: TObject);
var
v_sql:string;
begin
try
if Edit2.Text='' then
begin
MessageDlg('请输入班别代码!', mtError, [mbOK], 0);
exit;
end;
Button1.Cursor:=crSQLWait;
v_sql:='insert into shift (name,description,HOUR_s,min_s,HOUR_e,min_e,Date_f) values (';
v_sql:=v_sql+ansiquotedstr(Edit2.Text,#39)+',';
v_sql:=v_sql+ansiquotedstr(Edit5.Text,#39)+','+ansiquotedstr(ComboBox1.Text,#39);
v_sql:=v_sql+','+ansiquotedstr(ComboBox5.Text,#39);
v_sql:=v_sql+','+ansiquotedstr(ComboBox2.Text,#39);
v_sql:=v_sql+','+ansiquotedstr(ComboBox6.Text,#39)+','+booltostr(CheckBox1.Checked)+')';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(v_sql);
ADOQuery1.ExecSQL;
Edit1.Text:='';
Button2Click(NIL);
MessageDlg('保存成功.', mtInformation, [mbOK], 0);
except
on E:exception do
begin
MessageDlg('保存失败.<'+E.Message+'>', mtError, [mbOK], 0);
end;
end;
Button1.Cursor:=crDefault;
end;
procedure TMForm.Button2Click(Sender: TObject);
var
v_sql:string;
v_row:integer;
begin
try
Button2.Cursor:=crSQLWait;
v_sql:='select name,description,HOUR_s,min_s,HOUR_e,min_e,Date_f from shift where id is not null';
if Edit1.Text<>'' then
v_sql:=v_sql+' and name like '+ansiquotedstr('%'+Edit1.Text+'%',#39);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(v_sql);
ADOQuery1.Open;
ADOQuery1.First;
if ADOQuery1.RecordCount>0 then
AdvStringGrid1.RowCount:=ADOQuery1.RecordCount+1
else
begin
AdvStringGrid1.RowCount:=2;
end;
AdvStringGrid1.Rows[1].Clear;
v_row:=1;
while not ADOQuery1.Eof do
begin
AdvStringGrid1.Cells[0,v_row]:=inttostr(v_row);
AdvStringGrid1.Cells[1,v_row]:=ADOQuery1.FieldByName('name').AsString;
AdvStringGrid1.Cells[2,v_row]:=ADOQuery1.FieldByName('HOUR_s').AsString;
AdvStringGrid1.Cells[3,v_row]:=ADOQuery1.FieldByName('min_s').AsString;
AdvStringGrid1.Cells[4,v_row]:=ADOQuery1.FieldByName('HOUR_e').AsString;
AdvStringGrid1.Cells[5,v_row]:=ADOQuery1.FieldByName('min_e').AsString;
AdvStringGrid1.Cells[6,v_row]:=ADOQuery1.FieldByName('Date_f').AsString;
AdvStringGrid1.Cells[7,v_row]:=ADOQuery1.FieldByName('description').AsString;
inc(v_row);
ADOQuery1.next;
end;
except
on E:exception do
begin
MessageDlg(e.Message, mtError, [mbOK], 0);
end;
end;
Button2.Cursor:=crDefault;
end;
procedure TMForm.Button3Click(Sender: TObject);
var
v_sql:string;
begin
try
Button3.Cursor:=crSQLWait;
if Edit6.Text='' then
begin
Button3.Cursor:=crDefault;
MessageDlg('请选择更新资料', mtError, [mbOK], 0);
exit;
end;
v_sql:='update shift set description='+ansiquotedstr(Edit7.Text,#39)+',';
v_sql:=v_sql+'HOUR_s='+ansiquotedstr(ComboBox3.Text,#39)+',';
v_sql:=v_sql+'min_s='+ansiquotedstr(ComboBox7.Text,#39)+',';
v_sql:=v_sql+'HOUR_e='+ansiquotedstr(ComboBox4.Text,#39)+',';
v_sql:=v_sql+'min_e='+ansiquotedstr(ComboBox8.Text,#39)+',';
v_sql:=v_sql+'Date_f='+booltostr(CheckBox2.Checked);
v_sql:=v_sql+' where name='+ansiquotedstr(Edit6.Text,#39);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(v_sql);
ADOQuery1.ExecSQL;
Edit1.Text:='';
Button2Click(NIL);
MessageDlg('['+Edit6.Text+']更新完成', mtInformation, [mbOK], 0);
except
on E:exception do
begin
MessageDlg('更新失败<'+e.Message+'>', mtError, [mbOK], 0);
end;
end;
Button3.Cursor:=crDefault;
end;
procedure TMForm.AdvStringGrid1Click(Sender: TObject);
begin
try
if AllModules.ActivePageIndex=2 then
begin
Edit6.Text:=AdvStringGrid1.Rows[AdvStringGrid1.Row].Strings[1];
ComboBox3.Text:=AdvStringGrid1.Rows[AdvStringGrid1.Row].Strings[2];
ComboBox4.Text:=AdvStringGrid1.Rows[AdvStringGrid1.Row].Strings[4];
ComboBox7.Text:=AdvStringGrid1.Rows[AdvStringGrid1.Row].Strings[3];
ComboBox8.Text:=AdvStringGrid1.Rows[AdvStringGrid1.Row].Strings[5];
CheckBox2.Checked:=strtobool(AdvStringGrid1.Rows[AdvStringGrid1.Row].Strings[6]);
Edit7.Text:=AdvStringGrid1.Rows[AdvStringGrid1.Row].Strings[7];
end;
except
on E:exception do
begin
MessageDlg(e.Message, mtError, [mbOK], 0);
end;
end;
end;
procedure TMForm.BitBtn4Click(Sender: TObject);
var
v_sql:string;
begin
try
Panel4.Height:=0;
BitBtn4.Cursor:=crSQLWait;
if (AdvStringGrid1.Cells[0,1]='') then
begin
MessageDlg('请选择要删除的内容', mtInformation, [mbOK], 0);
BitBtn4.Cursor:=crDefault;
exit;
end;
BitBtn1.Enabled:=true;
BitBtn2.Enabled:=true;
BitBtn3.Enabled:=true;
BitBtn4.Enabled:=true;
if MessageDlg('你确定要删除['+AdvStringGrid1.Rows[AdvStringGrid1.Row].Strings[1]+']', mtWarning, [mbYes,mbNo], 0) = mrYes then
begin
v_sql:='delete from shift where NAME='+ansiquotedstr(AdvStringGrid1.Rows[AdvStringGrid1.Row].Strings[1],#39);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(v_sql);
ADOQuery1.ExecSQL;
Edit1.Text:='';
Button2Click(NIL);
end;
except
on E:exception do
begin
MessageDlg(E.Message, mtError, [mbOK], 0);
end;
end;
BitBtn4.Cursor:=crDefault;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -