⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 dll接口,班別設定. dll接口,班別設定.
💻 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 + -