📄 inv120_02.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 + -