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

📄 inv120_02.pas

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 PAS
字号:
unit Inv120_02;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Bas100_01, Menus, StdCtrls, Buttons, DB, ADODB, dxdbtrel;

type
  TInv120_02Form = class(TBas100_01Form)
    gbInfo: TGroupBox;
    lblName: TLabel;
    lblParent: TLabel;
    cbIsSale: TCheckBox;
    edtName: TEdit;
    lblCode: TLabel;
    edtCode: TEdit;
    gbAcct: TGroupBox;
    lblAcct1: TLabel;
    lblAcct2: TLabel;
    edtAcct1: TEdit;
    edtAcct2: TEdit;
    sbAcct1: TSpeedButton;
    sbAcct2: TSpeedButton;
    lblAcct3: TLabel;
    lblAcct4: TLabel;
    edtAcct3: TEdit;
    edtAcct4: TEdit;
    sbAcct3: TSpeedButton;
    sbAcct4: TSpeedButton;
    lblAcct5: TLabel;
    lblAcct6: TLabel;
    edtAcct5: TEdit;
    edtAcct6: TEdit;
    sbAcct5: TSpeedButton;
    sbAcct6: TSpeedButton;
    bbtnOk: TBitBtn;
    bbtnExit: TBitBtn;
    ADOQuery1: TADOQuery;
    edtAcctName1: TEdit;
    edtAcctName2: TEdit;
    edtAcctName3: TEdit;
    edtAcctName4: TEdit;
    edtAcctName5: TEdit;
    edtAcctName6: TEdit;
    qryInv120: TADOQuery;
    dsInv120: TDataSource;
    DataSource1: TDataSource;
    cbParent: TdxLookupTreeView;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ADOQuery1AfterScroll(DataSet: TDataSet);
    procedure bbtnOkClick(Sender: TObject);
    procedure bbtnExitClick(Sender: TObject);
    procedure cbParentKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    AMode:string;
    AOldCode:string;
    AOldParent:Integer;
    procedure SetInterface;
    { Private declarations }
  public
    procedure OpenData(ACode:Integer);
    { Public declarations }
  end;

var
  Inv120_02Form: TInv120_02Form;

implementation

uses SYSDATA, CommFun;

{$R *.dfm}

procedure TInv120_02Form.OpenData(ACode:Integer);
begin
  if ACode=0 then AMode:='ADD' else AMode:='UPD';
  ADOQuery1.DisableControls;
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select * from INV120 order by I120_002');
  ADOQuery1.Open;
  ADOQuery1.Locate('I120_001',ACode,[]);
  ADOQuery1.EnableControls;
  ADOQuery1AfterScroll(ADOQuery1);
end;

procedure TInv120_02Form.SetInterface;
begin
  Caption:=GetDBString('INV12002001');  //料品分类维护
  lblCode.Caption:=GetDBString('INV12002002');  //类别编号
  lblName.Caption:=GetDBString('INV12002003');  //类别名称
  cbIsSale.Caption:=GetDBString('INV12002004');  //是否销售
  lblParent.Caption:=GetDBString('INV12002005');  //上级类别
  lblAcct1.Caption:=GetDBString('INV12002006');  //销售收入科目
  lblAcct2.Caption:=GetDBString('INV12002007');  //销售成本科目
  lblAcct3.Caption:=GetDBString('INV12002008');  //采购差异科目
  lblAcct4.Caption:=GetDBString('INV12002009');  //应付帐款科目
  lblAcct5.Caption:=GetDBString('INV12002010');  //退货折让科目
  lblAcct6.Caption:=GetDBString('INV12002011');  //退货成本科目
  gbAcct.Enabled:=GetSetup('GLD');
  bbtnOk.Caption:=GetDBString('INV12002012');  //保存(&S)
  bbtnExit.Caption:=GetDBString('INV12002013');  //退出(&X)

  if gbAcct.Enabled then
  begin
    edtAcct1.Color:=AEnableColor;
    edtAcct2.Color:=AEnableColor;
    edtAcct3.Color:=AEnableColor;
    edtAcct4.Color:=AEnableColor;
    edtAcct5.Color:=AEnableColor;
    edtAcct6.Color:=AEnableColor;
  end else
  begin
    edtAcct1.Color:=ADisableColor;
    edtAcct2.Color:=ADisableColor;
    edtAcct3.Color:=ADisableColor;
    edtAcct4.Color:=ADisableColor;
    edtAcct5.Color:=ADisableColor;
    edtAcct6.Color:=ADisableColor;
  end;
end;

procedure TInv120_02Form.FormCreate(Sender: TObject);
begin
  inherited;
  qryInv120.Open;
  ADOQuery1.Open;
  SetInterface;
end;

procedure TInv120_02Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  qryInv120.Close;
  ADOQuery1.Close;
end;

procedure TInv120_02Form.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
  inherited;
  if ADOQuery1.State in [dsInsert,dsEdit] then Exit;
  if AMode='ADD' then
  begin
    edtCode.Text:='';
    edtName.Text:='';
    cbIsSale.Checked:=False;
    cbParent.Text:='';
    edtAcct1.Text:='';
    edtAcct2.Text:='';
    edtAcct3.Text:='';
    edtAcct4.Text:='';
    edtAcct5.Text:='';
    edtAcct6.Text:='';
    edtAcctName1.Text:='';
    edtAcctName2.Text:='';
    edtAcctName3.Text:='';
    edtAcctName4.Text:='';
    edtAcctName5.Text:='';
    edtAcctName6.Text:='';
  end else
  begin
    edtCode.Text:=ADOQuery1.FieldByName('I120_002').AsString;
    edtName.Text:=ADOQuery1.FieldByName('I120_003').AsString;
    cbIsSale.Checked:=ADOQuery1.FieldByName('I120_011').AsBoolean;
    if qryInv120.Locate('I120_001',ADOQuery1.FieldByName('I120_004').AsInteger,[]) then
      cbParent.Text:=qryInv120.FieldByName('I120_003').AsString;
    edtAcct1.Text:=ADOQuery1.FieldByName('I120_005').AsString;
    edtAcct2.Text:=ADOQuery1.FieldByName('I120_006').AsString;
    edtAcct3.Text:=ADOQuery1.FieldByName('I120_007').AsString;
    edtAcct4.Text:=ADOQuery1.FieldByName('I120_008').AsString;
    edtAcct5.Text:=ADOQuery1.FieldByName('I120_009').AsString;
    edtAcct6.Text:=ADOQuery1.FieldByName('I120_010').AsString;
    edtAcctName1.Text:=ADOQuery1.FieldByName('I120_005').AsString;
    edtAcctName2.Text:=ADOQuery1.FieldByName('I120_006').AsString;
    edtAcctName3.Text:=ADOQuery1.FieldByName('I120_007').AsString;
    edtAcctName4.Text:=ADOQuery1.FieldByName('I120_008').AsString;
    edtAcctName5.Text:=ADOQuery1.FieldByName('I120_009').AsString;
    edtAcctName6.Text:=ADOQuery1.FieldByName('I120_010').AsString;
  end;
  AOldCode:=trim(edtCode.Text);
  AOldParent:=ADOQuery1.FieldByName('I120_004').AsInteger;
end;

procedure TInv120_02Form.bbtnOkClick(Sender: TObject);
var
  AClassNo,AParentNo:Integer;
  AUpdateFlag:Boolean;
begin
  inherited;
//保存(&S)
  if trim(edtCode.Text)='' then
  begin
    ShowMsg('UMS10000226');  //类别编号不能为空
    edtCode.SetFocus;
    Abort;
  end;
  if trim(edtName.Text)='' then
  begin
    ShowMsg('UMS10000227');  //类别名称不能为空
    edtName.SetFocus;
    Abort;
  end;
  if AOldCode<>trim(edtCode.Text) then
  begin
    if IsExists('select 1 from INV120 where I120_002='+''''+trim(edtCode.Text)+'''') then
    begin
      ShowMsg('UMS10000228');  //类别编号已存在,请重新输入
      edtCode.SetFocus;
      Abort;
    end;
  end;

  AUpdateFlag:=False;

  //检查上级业务是否已在使用
  if cbParent.Text<>'' then
  begin
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('select 1 from INV150 where I150_005='+qryInv120.FieldByName('I120_001').AsString);
    SYSDM.qryQuery.Open;
    if not SYSDM.qryQuery.IsEmpty then
    begin
      SYSDM.qryQuery.Close;
      SYSDM.qryQuery.SQL.Clear;
      SYSDM.qryQuery.SQL.Add('select 1 from INV120 where I120_004='+qryInv120.FieldByName('I120_001').AsString);
      SYSDM.qryQuery.Open;
      if SYSDM.qryQuery.IsEmpty then
      begin
        if ShowDialog('UMS10000260')<>IDYES then Abort;  //上级类别已存在相关资料,如果增加下级类别,则相关记录会被替换,是否继续?
        AUpdateFlag:=True;
      end;
    end;
  end;

  if AMode='ADD' then ADOQuery1.Append else ADOQuery1.Edit;
  //设置上级类别编号
  if cbParent.Text='' then
  begin
    ADOQuery1.FieldByName('I120_004').Value:=0;
    ADOQuery1.FieldByName('I120_012').Value:=True;
    //当修改的上级类别,没有其他任务的子类时,修改其“最低层否”字段为 “真”
    if (AOldParent<>0) and (not IsExists('select 1 from INV120 where I120_004='+IntToStr(AOldParent))) then
    begin
      SYSDM.qryQuery.Close;
      SYSDM.qryQuery.SQL.Clear;
      SYSDM.qryQuery.SQL.Add('update INV120 set I120_012='+GetBoolean(True)+' where I120_001='+IntToStr(AOldParent));
      SYSDM.qryQuery.ExecSQL;
    end;
  end else
  begin
    if not IsExists('select 1 from INV120 where I120_004='+IntToStr(AOldParent)) then
    begin
      qryInv120.Edit;
      qryInv120.FieldByName('I120_012').Value:=False;
      qryInv120.Post;
    end;
    ADOQuery1.FieldByName('I120_004').Value:=qryInv120.FieldByName('I120_001').Value;
    ADOQuery1.FieldByName('I120_012').Value:=True;
  end;
  ADOQuery1.FieldByName('I120_002').Value:=edtCode.Text;
  ADOQuery1.FieldByName('I120_003').Value:=edtName.Text;
  ADOQuery1.FieldByName('I120_011').Value:=cbIsSale.Checked;
  if gbAcct.Enabled then
  begin
    edtAcct1.Text:=ADOQuery1.FieldByName('I120_005').Value;
    edtAcct2.Text:=ADOQuery1.FieldByName('I120_006').Value;
    edtAcct3.Text:=ADOQuery1.FieldByName('I120_007').Value;
    edtAcct4.Text:=ADOQuery1.FieldByName('I120_008').Value;
    edtAcct5.Text:=ADOQuery1.FieldByName('I120_009').Value;
    edtAcct6.Text:=ADOQuery1.FieldByName('I120_010').Value;
  end;
  ADOQuery1.Post;

  ADOQuery1.Refresh;
  AClassNo:=ADOQuery1.FieldByName('I120_001').Value;
  AParentNo:=ADOQuery1.FieldByName('I120_004').Value;
  //替换上级类别
  if AUpdateFlag then
  begin
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('update INV150 set I150_005='+IntToStr(AClassNo)+' where I150_005='+IntToStr(AParentNo));
    SYSDM.qryQuery.ExecSQL;
  end;

  if AMode='ADD' then
  begin
    if ShowDialog('['+edtCode.Text+'] '+GetDBString('UMS10000309'),1)=IDYES then  //记录保存成功,是否继续增加新记录?
    begin
      edtCode.Text:='';
      edtName.Text:='';
      cbIsSale.Checked:=False;
      cbParent.Text:='';
      edtAcct1.Text:='';
      edtAcct2.Text:='';
      edtAcct3.Text:='';
      edtAcct4.Text:='';
      edtAcct5.Text:='';
      edtAcct6.Text:='';
      edtAcctName1.Text:='';
      edtAcctName2.Text:='';
      edtAcctName3.Text:='';
      edtAcctName4.Text:='';
      edtAcctName5.Text:='';
      edtAcctName6.Text:='';
      edtCode.SetFocus;
    end;
  end else
  begin
    ModalResult:=1;
  end;
end;

procedure TInv120_02Form.bbtnExitClick(Sender: TObject);
begin
  inherited;
//退出(&X)
  Close;
end;

procedure TInv120_02Form.cbParentKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if (Key=vk_delete) or (key=vk_back) then cbParent.Text:='';
end;

end.

⌨️ 快捷键说明

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