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

📄 khzl.pas

📁 这是用Delphi编写的中小企业管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit khzl;

interface

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

type
  Tf_khzl = class(Tf_fram)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    khdm: TEdit;
    khmc: TEdit;
    fzr: TEdit;
    khjc: TEdit;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    chb: TListBox;
    n: TTabSheet;
    Panel3: TPanel;
    Label5: TLabel;
    Label7: TLabel;
    ksb: TComboBox;
    fktj: TComboBox;
    BCopy: TToolButton;
    BPaste: TToolButton;
    ztch: TCheckBox;
    tzsy: TCheckBox;
    Label15: TLabel;
    Label14: TLabel;
    xded: TComboBox;
    hcts: TEdit;
    xyed: TComboBox;
    Label16: TLabel;
    jzr: TEdit;
    Label17: TLabel;
    Label18: TLabel;
    wz: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure B1Click(Sender: TObject);
    procedure B4Click(Sender: TObject);
    procedure B3Click(Sender: TObject);
    procedure B2Click(Sender: TObject);
    procedure B5Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure khmcKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit3KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure chbKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure B9Click(Sender: TObject);
    procedure B10Click(Sender: TObject);
    procedure B11Click(Sender: TObject);
    procedure B12Click(Sender: TObject);
    procedure khdmKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);Override;
    procedure BCopyClick(Sender: TObject);
    procedure BPasteClick(Sender: TObject);
    procedure chbDblClick(Sender: TObject);
    procedure jzrKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure chbExit(Sender: TObject);
  private
    { Private declarations }
  public
    Procedure SelectTable(TableName: String);
    Procedure FindNext;
    Procedure EditClear;
    Procedure SetListPos(WinControl: TWinControl);
    Procedure EditValue;
    Procedure CopyToRecord;
    Procedure CopyToForm;
    Function  EditIsNull: Boolean;
    { Public declarations }
  end;
  TempKh = Record
    Rkhmc: String;
    Rkhjc: String;
    Rfzr: String;
    Rgj: String;
    Rsf: String;
    Rsx: String;
    Rdhhm: String;
    Rwz: String;
    Rcz: String;
    Rjzr: String;
    Rhcts: String;
    Rfktj: String;
    Rksb: String;
    Rxyed: String;
    Rxded: String;
  end;
var
  f_khzl: Tf_khzl;
  Temp: TempKh;
implementation
  uses DataModal;
{$R *.dfm}

{ Tf_khzl }

procedure Tf_khzl.EditClear;
var
  Num: Integer;
begin
  For Num := 0 to Panel2.ControlCount-1 do
    if Panel2.Controls[Num]is TEdit then
      TEdit(Panel2.Controls[Num]).Clear;
  For Num := 0 to Panel3.ControlCount-1 do
    if Panel3.Controls[Num]is TEdit then
      TEdit(Panel3.Controls[Num]).Clear;
  fktj.ItemIndex := 0;
  ksb.ItemIndex := 0;
  xyed.ItemIndex := 0;
  xded.ItemIndex := 0;
end;

function Tf_khzl.EditIsNull: Boolean;
var
  i: Integer;
begin
  Result := False;
  For i :=0 to Panel2.ControlCount-1 do
    if Panel2.Controls[i]is TEdit then
      //在保存数据时网址,传真可以为空
      if (TEdit(Panel2.Controls[i]).TabOrder<>8)and (TEdit(Panel2.Controls[i]).TabOrder<>9)and(Trim(TEdit(Panel2.Controls[i]).Text)='') then
      begin
        Result := True;
        Exit;
      end;
  For i := 0 to Panel3.ControlCount-1 do
    if Panel3.Controls[i]is TEdit then
    begin
      if Trim(TEdit(Panel3.Controls[i]).Text)='' then
      begin
        Result := True;
        Exit;
      end;
    end
    else if Panel3.Controls[i]is TCombobox then
      if Trim(TComboBox(Panel3.Controls[i]).Text)='' then
      begin
        Result := True;
        Exit;
      end;
end;

procedure Tf_khzl.EditValue;
begin
  with Data.Query2 do
  begin
    khdm.Text:= FieldByName('khdm').AsString;
    khmc.Text:= FieldByName('khmc').AsString;
    khjc.Text:= FieldByName('khjc').AsString;
    fzr.Text:= FieldByName('fzr').AsString;
    Edit1.Text:= FieldByName('gj').AsString;
    Edit2.Text:= FieldByName('sf').AsString;
    Edit3.Text:= FieldByName('sx').AsString;
    Edit4.Text := FieldByName('cz').AsString;
    Edit5.Text:= FieldByName('dhhm').AsString;
    wz.Text:= FieldByName('wz').AsString;
    fktj.ItemIndex := fktj.Items.IndexOf(Trim(FieldByName('fktj').AsString));
    ksb.ItemIndex:= ksb.Items.IndexOf(Trim(FieldByName('ksb').AsString)); 
    if FieldByName('ztch').AsInteger = 0 then 
      ztch.Checked := True
    else
      ztch.Checked := False;
    if FieldByName('tzsy').AsInteger = 0 then 
      tzsy.Checked := False
    else
      tzsy.Checked := True;
    xded.ItemIndex := FieldByName('edxz').AsInteger; 
    jzr.Text := FieldByName('jzr').AsString;
    hcts.Text := IntToStr(FieldByName('hcts').AsInteger);
    xyed.ItemIndex := xyed.Items.IndexOf(Trim(FieldByName('xyed').AsString));
  end;
end;

procedure Tf_khzl.FindNext;
begin
  if FindNextControl(ActiveControl,True,True,False)is TEdit then
    TEdit(FindNextControl(ActiveControl,True,True,False)).SetFocus
  else if FindNextControl(ActiveControl,True,True,False)is TComboBox then
    TComboBox(FindNextControl(ActiveControl,True,True,False)).SetFocus
  else if FindNextControl(ActiveControl,True,True,False)is TCheckBox then
    TCheckBox(FindNextControl(ActiveControl,True,True,False)).SetFocus;
end;

procedure Tf_khzl.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_khzl.SetListPos(WinControl: TWinControl);
begin
  chb.Top := WinControl.Top;
  chb.Left := WinControl.Left+(WinControl.Width-chb.Width);
  chb.Visible := True;
  chb.SetFocus;
end;

procedure Tf_khzl.B1Click(Sender: TObject);
begin
  inherited;
  PageControl1.ActivePage := TabSheet1;
  EditClear;
  khdm.SetFocus;
  B3.Enabled := True;//保存按钮可用
  B2.Enabled := False;//修改按钮不可用 
  B5.Enabled := False; 
end;

procedure Tf_khzl.B4Click(Sender: TObject);
begin
  inherited;
  B3.Enabled := False;//保存按钮不可用
  With Data.Query2 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from t_khzl');
    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;
      B9.Enabled := False;
      B10.Enabled := False;
      B11.Enabled := False;
      B12.Enabled := False;
    end;
  end;
end;

procedure Tf_khzl.B3Click(Sender: TObject);
begin
  inherited;
  if EditIsNull = False then
    Try
      if (StrToInt(jzr.Text)<1)or(StrToInt(jzr.Text)>31)then
      begin
        Application.MessageBox('结账日必须在1..31之间.','提示',64);
        Exit;
      end;
      if (StrToInt(hcts.Text)>31)then
      begin
        Application.MessageBox('缓冲天数不能大于31.','提示',64);
        Exit;
      end;
      With Data.Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('insert t_khzl values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n ,:o,:p,:q,:r)');
        ParamByName('a').AsString := Trim(khdm.Text);
        ParamByName('b').AsString := Trim(khmc.Text);
        ParamByName('c').AsString := Trim(khjc.Text);  
        ParamByName('d').AsString := Trim(fzr.Text);
        ParamByName('e').AsString := Trim(ksb.Text);
        if ztch.Checked = True then
          ParamByName('f').AsInteger := 0
        else
          ParamByName('f').AsInteger := 1;
        if tzsy.Checked = True then
          ParamByName('g').AsInteger := 1
        else
          ParamByName('g').AsInteger := 0;
        ParamByName('h').AsString := Trim(fktj.Text); 
        ParamByName('i').AsInteger := xded.ItemIndex;
        ParamByName('j').AsInteger := StrToInt(hcts.Text);
        ParamByName('k').AsString := Trim(xyed.Text);
        ParamByName('l').AsString := Trim(jzr.Text);
        ParamByName('m').AsString := Trim(Edit1.Text);
        ParamByName('n').AsString := Trim(Edit2.Text);
        ParamByName('o').AsString := Trim(Edit3.Text);
        ParamByName('p').AsString := Trim(Edit5.Text);
        ParamByName('q').AsString := Trim(Edit4.Text);
        ParamByName('r').AsString := Trim(wz.Text);
        ExecSQL;
      end;
      Application.MessageBox('操作成功.','提示',64);
      B4.OnClick(Sender);
      EditValue;
      B3.Enabled := False;
    Except
      Application.MessageBox('操作失败.','提示',64);
    End
  Else
  begin
    Application.MessageBox('数据项不能为空.','提示',64);
  end;
end;

procedure Tf_khzl.B2Click(Sender: TObject);
begin
  inherited;
  if Application.MessageBox('确实要修改当前记录吗?','提示',mb_YesNo)=ID_Yes then
  begin
    if EditIsNull = False then
    begin
      Try
        if (StrToInt(jzr.Text)<1)or(StrToInt(jzr.Text)>31)then
        begin
          Application.MessageBox('结账日必须在1..31之间.','提示',64);
          Exit;
        end;
        if (StrToInt(hcts.Text)>31)then
        begin
          Application.MessageBox('缓冲天数不能大于31.','提示',64);
          Exit;
        end;
        with Data.Query1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('update t_khzl set khdm = :a,khmc = :b,khjc = :c,fzr = :d,ksb = :e,ztch =:f,tzsy = :g,fktj = :h,edxz = :i,hcts = :j,xyed = :k,jzr= :l,gj= :m ,sf = :n,sx = :o,dhhm = :p,cz = :q,wz = :r where khdm = :s');
          ParamByName('a').AsString := Trim(khdm.Text);
          ParamByName('b').AsString := Trim(khmc.Text);
          ParamByName('c').AsString := Trim(khjc.Text);  
          ParamByName('d').AsString := Trim(fzr.Text);
          ParamByName('e').AsString := Trim(ksb.Text);
          if ztch.Checked = True then
            ParamByName('f').AsInteger := 0
          else
            ParamByName('f').AsInteger := 1;
          if tzsy.Checked = True then
            ParamByName('g').AsInteger := 1
          else
            ParamByName('g').AsInteger := 0;
          ParamByName('h').AsString := Trim(fktj.Text); 

⌨️ 快捷键说明

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