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

📄 gszt.pas

📁 已经给出使用的每个SQL Server数据库
💻 PAS
字号:
unit gszt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, fram, ImgList, ExtCtrls, ComCtrls, ToolWin, StdCtrls, Buttons;

type
  Tf_gszt = class(Tf_fram)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    dz: TEdit;
    dzyj: TEdit;
    wz: TEdit;
    yzbm: TEdit;
    sx: TEdit;
    gj: TEdit;
    sf: TEdit;
    dhhm: TEdit;
    cz: TEdit;
    frdm: TEdit;
    sjbh: TEdit;
    Label15: TLabel;
    tybh: TEdit;
    fzr: TEdit;
    gsmc: TEdit;
    gsdm: TEdit;
    chb: TListBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure gsdmKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure gsmcKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure chbKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure gjKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure sfKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure sxKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure dzKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure dhhmKeyPress(Sender: TObject; var Key: Char);
    procedure chbDblClick(Sender: TObject);
    procedure B1Click(Sender: TObject);
    procedure B3Click(Sender: TObject);
    procedure B4Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure B9Click(Sender: TObject);
    procedure B10Click(Sender: TObject);
    procedure B11Click(Sender: TObject);
    procedure B12Click(Sender: TObject);
    procedure B2Click(Sender: TObject);
    procedure B5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure chbExit(Sender: TObject);
  private
    { Private declarations }
  public
    Procedure FindNext;//查找下一个控件
    Procedure SelectTable(TableName: String);
    Procedure ClearEdit;
    Procedure EditValue;//将记录集当前数据赋给编辑框
    Function  EditIsNull: Boolean;
    Procedure SetListPos(WinControl: TWinControl);
    { Public declarations }
  end;

var
  f_gszt: Tf_gszt;

implementation
  uses DataModal;
{$R *.dfm}

{ Tf_gszt }

procedure Tf_gszt.FindNext;
begin
  if FindNextControl(ActiveControl,True,True,False)is TEdit then
    TEdit(FindNextControl(ActiveControl,True,True,False)).SetFocus;
end;

procedure Tf_gszt.gsdmKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Return then
    FindNext;
end;

procedure Tf_gszt.gsmcKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  gsdmKeyDown(Sender,Key,Shift);
  if Key = vk_Next then
  begin
    SelectTable('t_gsxz');
    chb.Tag := 1;
    SetListPos(gsmc);
  end;
end;
procedure Tf_gszt.SelectTable(TableName: String);
begin
  with Data.Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from '+ TableName);
    Open;
    if RecordCount>0 then
    begin
      chb.Clear;
      while Not Eof do
      begin
        chb.Items.Add(Fields[0].AsString);
        Next;
      end;
    end;
  end;
end;

procedure Tf_gszt.SetListPos(WinControl: TWinControl);
begin
  chb.Top := WinControl.Top;
  chb.Left := WinControl.Left+(WinControl.Width-chb.Width);
  chb.Visible := True;
  chb.ItemIndex := 0;
  chb.SetFocus; 
end;


procedure Tf_gszt.chbKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if Key = vk_Return then
  begin
    Case chb.Tag of
      1: begin
           gsmc.Text := gsmc.Text+chb.Items[chb.ItemIndex];
           gsmc.SetFocus;
         end;
      2:
         begin
           gj.Text := gj.Text+chb.Items[chb.ItemIndex];
           gj.SetFocus;
         end;
      3: begin
           sf.Text := sf.Text+chb.Items[chb.ItemIndex];
           sf.SetFocus;
         end;
      4: begin
           sx.Text := sx.Text+chb.Items[chb.ItemIndex];
           sx.SetFocus;
         end;
      5: begin
        dz.Text := dz.Text+chb.Items[chb.ItemIndex];
        dz.SetFocus;
      end;
    end;
    chb.Visible := False;
  end;
end;

procedure Tf_gszt.gjKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  gsdmKeyDown(Sender,Key,Shift);
  if Key = vk_Next then
  begin
    SelectTable('t_state');
    chb.Tag := 2;
    SetListPos(gj);
  end;
end;

procedure Tf_gszt.sfKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;   
  gsdmKeyDown(Sender,Key,Shift);
  if Key = vk_Next then
  begin
    SelectTable('t_sf');
    chb.Tag := 3;
    SetListPos(sf);
  end;
end;

procedure Tf_gszt.sxKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  gsdmKeyDown(Sender,Key,Shift);
  if Key = vk_Next then
  begin
    SelectTable('t_city');
    chb.Tag := 4;
    SetListPos(sx);
  end;
end;

procedure Tf_gszt.dzKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  gsdmKeyDown(Sender,Key,Shift);
  if Key = vk_Next then
  begin
    SelectTable('t_add');
    chb.Tag := 5;
    SetListPos(dz);
  end;
end;

procedure Tf_gszt.dhhmKeyPress(Sender: TObject; var Key: Char);
var
  i: Boolean;
begin
  inherited;
  i := (Key<#8)or(Key>#8)and(key<#45)or(Key>#45)and(Key<#48)or(Key>#57);
  if i then
    Key := #0;
end;

procedure Tf_gszt.chbDblClick(Sender: TObject);
var
  Key: Word;
begin
  inherited;
  Key:= vk_ReTurn;
  chb.OnKeyDown(nil,Key,[ssLeft]);
end;

procedure Tf_gszt.ClearEdit;
var
  Num: Integer;
begin
  For Num := 0 to Panel1.ControlCount-1 do
    if Panel1.Controls[Num]is TEdit then
      TEdit(Panel1.Controls[Num]).Clear;
end;

procedure Tf_gszt.B1Click(Sender: TObject);
begin
  inherited;
  ClearEdit;
  gsdm.SetFocus;
  B3.Enabled := True;//保存按钮可用
  B2.Enabled := False;//修改按钮不可用 
  B5.Enabled := False; 
end;

function Tf_gszt.EditIsNull: Boolean;
var
  i: Integer;
begin
  Result := False;
  For i :=0 to Panel1.ControlCount-1 do
    if Panel1.Controls[i]is TEdit then
      //在保存数据时电话号码与传真可以为空
      if (TEdit(Panel1.Controls[i]).TabOrder<>6)and(TEdit(Panel1.Controls[i]).TabOrder<>7)
        and(Trim(TEdit(Panel1.Controls[i]).Text)='') then
      begin
        Result := True;
        Exit;
      end;
end;

procedure Tf_gszt.B3Click(Sender: TObject);
begin
  inherited;
  if EditIsNull = False then
    Try
      With Data.Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('insert t_company values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o)');
        ParamByName('a').AsString := Trim(gsdm.Text);
        ParamByName('b').AsString := Trim(gsmc.Text);
        ParamByName('c').AsString := Trim(fzr.Text);  
        ParamByName('d').AsString := Trim(tybh.Text);
        ParamByName('e').AsString := Trim(sjbh.Text);
        ParamByName('f').AsString := Trim(frdm.Text);
        ParamByName('g').AsString := Trim(dhhm.Text);  
        ParamByName('h').AsString := Trim(cz.Text); 
        ParamByName('i').AsString := Trim(gj.Text);
        ParamByName('j').AsString := Trim(sf.Text);
        ParamByName('k').AsString := Trim(sx.Text);
        ParamByName('l').AsString := Trim(yzbm.Text);
        ParamByName('m').AsString := Trim(dzyj.Text);
        ParamByName('n').AsString := Trim(wz.Text);
        ParamByName('o').AsString := Trim(dz.Text);
        ExecSQL;
      end;
      Application.MessageBox('操作成功.','提示',64);
      B4.OnClick(Sender);
      ClearEdit;
      B3.Enabled := False;
    Except
      Application.MessageBox('操作失败.','提示',64);
    End
  Else
  begin
    Application.MessageBox('数据项不能为空.','提示',64);
  end;
end;

procedure Tf_gszt.B4Click(Sender: TObject);
begin
  B3.Enabled := False;//保存按钮不可用
  With Data.Query2 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from t_company');
    Open;
    if RecordCount>0 then
    begin
      B2.Enabled := True;
      B5.Enabled := True;
      B9.Enabled := True;
      B10.Enabled := True;
      B11.Enabled := True;
      B12.Enabled := True;
      EditValue;
    end
    else
    begin
      B2.Enabled := False;//修改按钮不可用
      B5.Enabled := False;
    end;
  end;      
end;

procedure Tf_gszt.EditValue;
begin
  with Data.Query2 do
  begin
    gsdm.Text:= FieldByName('gsdm').AsString;
    gsmc.Text:= FieldByName('gsmc').AsString;
    fzr.Text:= FieldByName('fzr').AsString;
    tybh.Text:=FieldByName('tybh').AsString;
    sjbh.Text:= FieldByName('sjbh').AsString;
    frdm.Text:= FieldByName('frdm').AsString;
    dhhm.Text:= FieldByName('dhhm').AsString;
    cz.Text:= FieldByName('czh').AsString;
    gj.Text:= FieldByName('gj').AsString;
    sf.Text:= FieldByName('sf').AsString;
    sx.Text:= FieldByName('sx').AsString; 
    yzbm.Text:= FieldByName('yzbm').AsString;
    dzyj.Text:= FieldByName('dzyj').AsString;
    wz.Text:= FieldByName('wz').AsString; 
    dz.Text:= FieldByName('dz').AsString;
  end;
end;

procedure Tf_gszt.FormShow(Sender: TObject);
begin
  B4.OnClick(Sender);
end;

procedure Tf_gszt.B9Click(Sender: TObject);
begin
  inherited;
  Data.Query2.First;
  B2.Enabled := True;
  B5.Enabled := True;
  B3.Enabled := False;
  B9.Enabled := False;
  B10.Enabled := False;
  B11.Enabled := True;
  B12.Enabled := True;
  EditValue;
end;

procedure Tf_gszt.B10Click(Sender: TObject);
begin
  inherited;
  Data.Query2.Prior;
  B2.Enabled := True;
  B5.Enabled := True;
  B3.Enabled := False;
  B11.Enabled := True;
  B12.Enabled := True;
  if Data.Query2.Bof = True then
  begin
    B9.Enabled := False;
    B10.Enabled := False;
  end;  
  EditValue;
end;

procedure Tf_gszt.B11Click(Sender: TObject);
begin
  inherited;
  Data.Query2.Next;
  B2.Enabled := True;
  B5.Enabled := True;
  B3.Enabled := False;
  B9.Enabled := True;
  B10.Enabled := True;
  if Data.Query2.Eof = True then
  begin
    B11.Enabled := False;
    B12.Enabled := False;
  end;
  EditValue;
end;

procedure Tf_gszt.B12Click(Sender: TObject);
begin
  inherited;
  Data.Query2.Last;
  B2.Enabled := True;
  B3.Enabled := False;
  B5.Enabled := True;
  B9.Enabled := True;
  B10.Enabled := True;
  B11.Enabled := False;
  B12.Enabled := False;
  EditValue;
end;

procedure Tf_gszt.B2Click(Sender: TObject);
begin
  inherited;
  if Application.MessageBox('确实要修改当前记录吗?','提示',mb_YesNo)=ID_Yes then
  begin
    if EditIsNull = False then
    begin
      Try
        with Data.Query1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('update t_company set gsdm = :a,gsmc = :b,fzr = :c,tybh = :d,sjbh = :e,frdm =:f,dhhm = :g,czh = :h,gj = :i,sf = :j,sx = :k,yzbm = :l,dzyj = :m,wz =:n,dz = :o where gsdm = :p');
          ParamByName('a').AsString := Trim(gsdm.Text);
          ParamByName('b').AsString := Trim(gsmc.Text);
          ParamByName('c').AsString := Trim(fzr.Text);  
          ParamByName('d').AsString := Trim(tybh.Text);
          ParamByName('e').AsString := Trim(sjbh.Text);
          ParamByName('f').AsString := Trim(frdm.Text);
          ParamByName('g').AsString := Trim(dhhm.Text);  
          ParamByName('h').AsString := Trim(cz.Text); 
          ParamByName('i').AsString := Trim(gj.Text);
          ParamByName('j').AsString := Trim(sf.Text);
          ParamByName('k').AsString := Trim(sx.Text);
          ParamByName('l').AsString := Trim(yzbm.Text);
          ParamByName('m').AsString := Trim(dzyj.Text);
          ParamByName('n').AsString := Trim(wz.Text);
          ParamByName('o').AsString := Trim(dz.Text);
          ParamByName('p').AsString := Trim(Data.Query2.FieldByName('gsdm').AsString);
          ExecSQL;
        end;  
        Application.MessageBox('修改成功.','提示',64);
        B4.OnClick(Sender);
      Except
        Application.MessageBox('修改失败.','提示',64);
      End;
    end
    else
      Application.MessageBox('数据项不能为空.','提示',64);
  end;
end;

procedure Tf_gszt.B5Click(Sender: TObject);
begin
  inherited;
  if Application.MessageBox('确实要删除当前记录吗?','提示',mb_YesNo)=ID_Yes then
    if Data.Query2.RecordCount>0 then
      Data.Query2.Delete;
end;

procedure Tf_gszt.Button1Click(Sender: TObject);
var
  Key: Word;
begin
  inherited;
  Key := vk_Next;
  gsmc.OnKeyDown(Nil,Key,[ssLeft]);
end;

procedure Tf_gszt.Button2Click(Sender: TObject);
var
  Key: Word;
begin
  inherited;
  Key := vk_Next;
  gj.OnKeyDown(Nil,Key,[ssLeft]);
end;

procedure Tf_gszt.Button3Click(Sender: TObject);
var
  Key: Word;
begin
  inherited;
  Key := vk_Next;
  sf.OnKeyDown(Nil,Key,[ssLeft]);
end;

procedure Tf_gszt.Button4Click(Sender: TObject);
var
  Key: Word;
begin
  inherited;
  Key := vk_Next;
  sx.OnKeyDown(Nil,Key,[ssLeft]);
end;

procedure Tf_gszt.Button5Click(Sender: TObject);
var
  Key: Word;
begin
  inherited;
  Key := vk_Next;
  dz.OnKeyDown(Nil,Key,[ssLeft]);
end;

procedure Tf_gszt.chbExit(Sender: TObject);
begin
  inherited;
  chb.Visible := False;  
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -