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

📄 spjcxx.~pas

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

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

type
  Tf_spjcxx = class(Tf_fram)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    spdm: TEdit;
    spmc: TEdit;
    cs: TComboBox;
    jbdw: TComboBox;
    cd: TEdit;
    gg: TEdit;
    wsj: TEdit;
    hsj: TEdit;
    sl: TEdit;
    se: TEdit;
    BCopy: TToolButton;
    BPaste: TToolButton;
    Label11: TLabel;
    cgdw: TComboBox;
    Label12: TLabel;
    Edit1: TEdit;
    Label13: TLabel;
    Edit2: TEdit;
    Label14: TLabel;
    spzl: TComboBox;
    procedure spdmKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure B1Click(Sender: TObject);
    procedure B2Click(Sender: TObject);
    procedure B3Click(Sender: TObject);
    procedure B4Click(Sender: TObject);
    procedure B5Click(Sender: TObject);
    procedure B9Click(Sender: TObject);
    procedure B10Click(Sender: TObject);
    procedure B11Click(Sender: TObject);
    procedure B12Click(Sender: TObject);
    procedure BCopyClick(Sender: TObject);
    procedure BPasteClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure wsjKeyPress(Sender: TObject; var Key: Char);
    procedure wsjChange(Sender: TObject);
    procedure hsjChange(Sender: TObject);
    procedure slChange(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);override;
    procedure wsjEnter(Sender: TObject);
    procedure hsjEnter(Sender: TObject);
    procedure jbdwChange(Sender: TObject);
    procedure cgdwChange(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
    Procedure FindNext;
    Procedure EditClear;
    Procedure CopyToRecord;
    Procedure CopyToForm;
    Procedure EditValue;
    Function EditIsNull: Boolean;
  end;
  TempSP = Record
    Rspmc: String;
    Rcs: integer;
    Rjbdw: integer;
    Rcgdw: Integer;
    Rjhsgx: String;
    Rhsgx: String;
    Rcd: String;
    Rspzl: integer;
    Rgg: String;
    Rwsj: String;
    Rhsj: String;
    Rsl: String;
    Rse: String;
  end;
var
  f_spjcxx: Tf_spjcxx;
  Temp: TempSP;
  Copydisable: Boolean= False;//在复制时不触发未税价,含税价,税率的OnChange事件
  disableChange:Boolean= False;//在未税价变化时防止触发含税价的OnChange事件,在含税价变化时防止触发未税价的OnChange事件
  insertState1: Boolean= False;//确定当前是否处于插入状态,如果是,在输入为税价时,含税价为只读,
  //输入含税价时,未税价为只读,如果没有处于插入状态,在修改未税价时,可以修改含税价,修改含税价时,也
  //可以修改未税价
implementation
  uses DataModal;
{$R *.dfm}

{ Tf_spjcxx }

procedure Tf_spjcxx.EditClear;
var
  Num: Integer;
begin
  For Num := 0 to Panel1.ControlCount-1 do
  begin
    if Panel1.Controls[Num]is TEdit then
      TEdit(Panel1.Controls[Num]).Clear
  end;
  sl.Text := '0.17';
  Edit1.Text := '1';
  jbdw.ItemIndex := 0;
  cgdw.ItemIndex := 0;
  cs.ItemIndex := 0;
end;

procedure Tf_spjcxx.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;
end;

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

procedure Tf_spjcxx.B1Click(Sender: TObject);
begin
  inherited;
  insertState1 := True;
  wsj.ReadOnly := False;
  hsj.ReadOnly := False;
  EditClear;
  spdm.SetFocus;
  B3.Enabled := True;//保存按钮可用
  B2.Enabled := False;//修改按钮不可用 
  B5.Enabled := False;
end;

function Tf_spjcxx.EditIsNull: Boolean;
var
  i: Integer;
begin
  Result := False;
  For i := 0 to Panel1.ControlCount-1 do
  begin
    if Panel1.Controls[i]is TEdit then
    begin
      if Trim(TEdit(Panel1.Controls[i]).Text)='' then
      begin
        Result := True;
        Exit;
      end;
    end
    else if Panel1.Controls[i]is TComboBox then
    begin
      if Trim(TComboBox(Panel1.Controls[i]).Text)='' then
      begin
        Result := True;
        Exit;
      end;
    end;
  end;
end;

procedure Tf_spjcxx.B2Click(Sender: TObject);
begin
  inherited;
  if Application.MessageBox('确实要修改当前记录吗?','提示',mb_YesNo)=ID_Yes then
  begin
    if EditIsNull = False then
    begin
      if StrToInt(Edit2.Text)<1 then
      begin
        Application.MessageBox('换算关系小于1.','提示',64);
        Edit2.SetFocus;
        Exit;
      end;
      Try
        with Data.Query1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('update t_spjcxx set spdm = :a,spmc = :b,cs = :c,jbdw = :d,cgdw =:aa,hsgx = :bb,cd = :e,gg =:f,wsj = :g,hsj = :h,sl = :i,se = :j,spzl = :l where spdm = :k');
          ParamByName('a').AsString := Trim(spdm.Text);
          ParamByName('b').AsString := Trim(spmc.Text);
          ParamByName('c').AsString := Trim(cs.Text);  
          ParamByName('d').AsString := Trim(jbdw.Text);
          ParamByName('aa').AsString := Trim(cgdw.Text);
          ParamByName('bb').AsInteger := StrToInt(Edit2.Text);
          ParamByName('e').AsString := Trim(cd.Text);
          ParamByName('f').AsString := Trim(gg.Text);
          ParamByName('g').AsFloat := StrToFloat(wsj.Text);
          ParamByName('h').AsFloat := StrToFloat(hsj.Text); 
          ParamByName('i').AsFloat := StrToFloat(sl.Text);
          ParamByName('j').AsFloat := StrToFloat(se.Text);
          ParamByName('l').AsString := Trim(spzl.Text);
          ParamByName('k').AsString := Trim(Data.Query2.FieldByName('spdm').AsString);
          ExecSQL;
        end;  
        Application.MessageBox('修改成功.','提示',64);
        B4.OnClick(Sender);
      Except
        Application.MessageBox('修改失败.','提示',64);
      End;
    end
    else
      Application.MessageBox('数据项不能为空.','提示',64);
  end;
end;

procedure Tf_spjcxx.B3Click(Sender: TObject);
begin
  inherited;
  if EditIsNull = False then
    Try
      if StrToInt(Edit2.Text)<1 then
      begin
        Application.MessageBox('换算关系小于1.','提示',64);
        Edit2.SetFocus;
        Exit;
      end;
      With Data.Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('insert t_spjcxx values(:a,:b,:c,:d,:aa,:bb,:e,:f,:g,:h,:i,:j,:k)');
        ParamByName('a').AsString := Trim(spdm.Text);
        ParamByName('b').AsString := Trim(spmc.Text);
        ParamByName('c').AsString := Trim(cs.Text);  
        ParamByName('d').AsString := Trim(jbdw.Text);
        ParamByName('aa').AsString := Trim(cgdw.Text);
        ParamByName('bb').AsInteger := StrToInt(Edit2.Text);
        ParamByName('e').AsString := Trim(cd.Text);
        ParamByName('f').AsString := Trim(gg.Text);
        ParamByName('g').AsFloat := StrToFloat(wsj.Text);
        ParamByName('h').AsFloat := StrToFloat(hsj.Text); 
        ParamByName('i').AsFloat := StrToFloat(sl.Text);
        ParamByName('j').AsFloat := StrToFloat(se.Text);
        ParamByName('k').AsString := Trim(spzl.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_spjcxx.B4Click(Sender: TObject);
begin
  inherited;
  insertState1 := False;
  wsj.ReadOnly := False;
  hsj.ReadOnly := False;
  B3.Enabled := False;//保存按钮不可用
  With Data.Query2 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from t_spjcxx');
    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;
      EditClear;
    end;
  end;
end;

procedure Tf_spjcxx.B5Click(Sender: TObject);
begin
  if Application.MessageBox('确实要删除当前记录吗?','提示',mb_YesNo)=ID_Yes then
  begin
    Try
      With Data.Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('delete t_spjcxx where spdm = :a');
        ParamByName('a').AsString := Trim(Data.Query2.FieldByName('spdm').AsString);
        ExecSQL;
      end;
      Application.MessageBox('删除成功.','提示',64);
      B4.OnClick(Sender);
    Except
      Application.MessageBox('操作失败.','提示',64);
    end;
  end;
end;

procedure Tf_spjcxx.B9Click(Sender: TObject);
begin
  inherited;
  insertState1 := False;
  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;
  wsj.ReadOnly := False;
  hsj.ReadOnly := False;
end;

procedure Tf_spjcxx.B10Click(Sender: TObject);
begin
  inherited;
  insertState1 := False;
  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;
  wsj.ReadOnly := False;
  hsj.ReadOnly := False;
end;

procedure Tf_spjcxx.B11Click(Sender: TObject);
begin
  inherited;
  insertState1 := False;
  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;
  wsj.ReadOnly := False;
  hsj.ReadOnly := False;
end;

procedure Tf_spjcxx.B12Click(Sender: TObject);
begin
  inherited;
  Data.Query2.Last;

⌨️ 快捷键说明

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