📄 gl_enter_accountsubject_d.pas
字号:
unit Gl_Enter_AccountSubject_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, Db, AdODB, ExtCtrls, StdCtrls, linkedit, Mask;
Type
TFrm_Gl_Enter_AccountSubject_D = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Edt_KmHelpCode: TEdit;
Edt_KmName: TEdit;
Cmb_KmType: TComboBox;
Cmb_KmProperty: TComboBox;
Cmb_PageType: TComboBox;
Edt_FCurrecy: TLinkEdit;
Edt_UomCode: TLinkEdit;
Edt_CurrencyName: TEdit;
Edt_UomName: TEdit;
Cmb_CashControl: TComboBox;
Cmb_KmFreeze: TComboBox;
Cmb_DepArtCalculate: TComboBox;
Cmb_PersonCalculate: TComboBox;
Cmb_CustomerCalculate: TComboBox;
Cmb_VendorCalculate: TComboBox;
Cmb_ProjectCalculate: TComboBox;
Cmb_AmountCalculate: TComboBox;
Lab_KmLevel: TLabel;
Edt_KmCode: TEdit;
procedure Edt_UomCodeExit(Sender: TObject);
procedure Edt_FCurrecyExit(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure Edt_KmCodeExit(Sender: TObject);
procedure Cmb_KmTypeExit(Sender: TObject);
private
KmLevel:Integer;
procedure SaveGl_AccountSubjectHistoryHistory(AdoConnection:TAdoConnection;KmCode:string;UserCode:string;HisType:integer);
function KmCodeCheck(var_KmCode:String):Integer;
procedure SetParentKm(km: string; Level: integer);
function ModifyendKm(var_KmCode:String):Boolean;
{ Private declarations }
public
procedure InitControls; Override;
procedure SaveData; Override;
{ Public declarations }
end;
var
Frm_Gl_Enter_AccountSubject_D: TFrm_Gl_Enter_AccountSubject_D;
implementation
uses Sys_Global, Gl_Enter_AccountSubject;
{$R *.DFM}
procedure TFrm_Gl_Enter_AccountSubject_D.Edt_UomCodeExit(Sender: TObject);
var
SqlText:String;
begin
inherited;
if Trim(Edt_UomCode.Text)<> '' then
begin
SqlText:='Select UomCode,UomName From Uom Where UomCode='''+Trim(Edt_UomCode.Text)+''' ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text := SqlText;
AdoQry_Tmp.Open;
if AdoQry_Tmp.Eof then
begin
DispInfo('计量单位输入错误!',1);
Edt_UomCode.SetFocus;
Abort;
end
else
Edt_UomName.Text := AdoQry_Tmp.fieldbyname('UomName').AsString;
end
else
Edt_UomName.Text := '';
end;
procedure TFrm_Gl_Enter_AccountSubject_D.Edt_FCurrecyExit(Sender: TObject);
var
SqlText:String;
begin
inherited;
if not BlankCheck(Edt_FCurrecy.Text,'结算货币') then
begin
Edt_FCurrecy.SetFocus;
abort;
end;
if Trim(Edt_FCurrecy.Text)<> '' then
begin
SqlText:='Select CurrencyCode,CurrencyName From Currency Where CurrencyCode='''+Trim(Edt_FCurrecy.Text)+''' ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text := SqlText;
AdoQry_Tmp.Open;
if AdoQry_Tmp.Eof then
begin
DispInfo('货币输入错误!',1);
Edt_FCurrecy.SetFocus;
Abort;
end
else
Edt_CurrencyName.Text := AdoQry_Tmp.fieldbyname('CurrencyName').AsString;
end
else
Edt_CurrencyName.Text := '';
end;
procedure TFrm_Gl_Enter_AccountSubject_D.InitControls;
begin
inherited;
If (status='Add') Then
begin
Lab_KmLevel.Caption := '';
Edt_KmCode.Text := '';
Edt_KmHelpCode.Text := '';
Edt_KmName.Text := '';
//Edt_TotalKmCode.Text := '';
ExecuteSql(AdoQry_Tmp,'select * from currency where isMaster=1 ',0);
Edt_FCurrecy.Text := AdoQry_Tmp.fieldbyname('CurrencyCode').AsString;
Edt_CurrencyName.Text := AdoQry_Tmp.fieldbyname('CurrencyName').AsString;
Edt_UomCode.Text := '';
Edt_UomName.Text := '';
With Frm_Gl_Enter_AccountSubject do
begin
if PageControl1.ActivePageIndex = 0 then
Cmb_KmType.ItemIndex := 1
else
if PageControl1.ActivePageIndex = 1 then
Cmb_KmType.ItemIndex := 1
else
if PageControl1.ActivePageIndex = 2 then
Cmb_KmType.ItemIndex := 2
else
if PageControl1.ActivePageIndex = 3 then
Cmb_KmType.ItemIndex := 3
else
if PageControl1.ActivePageIndex = 4 then
Cmb_KmType.ItemIndex := 4
else
Cmb_KmType.ItemIndex := 5;
end;
Cmb_KmProperty.ItemIndex := 1;
Cmb_PageType.ItemIndex := 1;
Cmb_AmountCalculate.ItemIndex := 0;
Cmb_KmFreeze.ItemIndex := 0;
Cmb_CashControl.ItemIndex := 0;
Cmb_PersonCalculate.ItemIndex := 0;
Cmb_DepArtCalculate.ItemIndex := 0;
Cmb_VendorCalculate.ItemIndex := 0;
Cmb_CustomerCalculate.ItemIndex := 0;
Cmb_ProjectCalculate.ItemIndex := 0;
Edt_KmCode.Enabled := True;
if Edt_KmCode.CanFocus then
Edt_KmCode.SetFocus ;
end
else
begin
with AdoQry_Maintain do
begin
Lab_KmLevel.Caption := fieldbyname('KmLevel').AsString;
Edt_KmCode.Text := fieldbyname('KmCode').AsString;
Edt_KmHelpCode.Text := fieldbyname('KmHelpCode').AsString;
Edt_KmName.Text := fieldbyname('KmName').AsString;
//Edt_TotalKmCode.Text := fieldbyname('TotalKmCode').AsString;
Edt_FCurrecy.Text := fieldbyname('FCurrecy').AsString;
Edt_UomCode.Text := fieldbyname('UomCode').AsString;
if fieldbyname('FCurrecy').AsString = '' then
Edt_CurrencyName.Text :=''
else
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Add('Select * From Currency Where CurrencyCode='''+Edt_FCurrecy.Text+''' ');
AdoQry_Tmp.Open;
Edt_CurrencyName.Text := AdoQry_Tmp.fieldbyname('CurrencyName').AsString;
end;
if fieldbyname('UomCode').AsString = '' then
Edt_UomName.Text := ''
else
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Add('Select * From Uom Where UomCode='''+Edt_UomCode.Text+''' ');
AdoQry_Tmp.Open;
Edt_UomName.Text := AdoQry_Tmp.fieldbyname('UomName').AsString;
end;
Cmb_KmType.ItemIndex := fieldbyname('KmType').AsInteger;
Cmb_KmProperty.ItemIndex := fieldbyname('KmProperty').AsInteger;
Cmb_PageType.ItemIndex := fieldbyname('PageType').AsInteger;
Cmb_AmountCalculate.ItemIndex := fieldbyname('AmountCalculate').AsInteger;
Cmb_KmFreeze.ItemIndex := fieldbyname('KmFreeze').AsInteger;
Cmb_CashControl.ItemIndex := fieldbyname('CashControl').AsInteger;
Cmb_PersonCalculate.ItemIndex := fieldbyname('PersonCalculate').AsInteger;
Cmb_DepArtCalculate.ItemIndex := fieldbyname('DepArtCalculate').AsInteger;
Cmb_VendorCalculate.ItemIndex := fieldbyname('VendorCalculate').AsInteger;
Cmb_CustomerCalculate.ItemIndex := fieldbyname('CustomerCalculate').AsInteger;
Cmb_ProjectCalculate.ItemIndex := fieldbyname('ProjectCalculate').AsInteger;
If Pos('Edit',Status)>0 Then
Edt_KmHelpCode.SetFocus;
Edt_KmCode.Enabled :=False;
end;
end;
end;
procedure TFrm_Gl_Enter_AccountSubject_D.SaveData;
var
AdoQuery:TAdoQuery;
IntAccountUseYear:Integer;
IntAccountUseMonth:Integer;
begin
inherited;
AdoQuery := TAdoQuery.Create(Nil);
AdoQuery.Connection := DbConnect;
try
DbConnect.beginTrans ;
if (Add) then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Text:= ' Insert into Gl_AccountSubject '
+' (KmCode,KmLevel,KmHelpCode,KmName,FCurrecy,UomCode,KmType,KmProperty,'
+' PageType,AmountCalculate,KmFreeze,CashControl,'
+' PersonCalculate,DepArtCalculate,VendorCalculate,'
+' CustomerCalculate,ProjectCalculate ) '
+' Values('
+' '''+Trim(Edt_KmCode.Text)+''','
+' '''+IntToStr(KmLevel)+''','
+' '''+Trim(Edt_KmHelpCode.Text)+''','
+' '''+Trim(Edt_KmName.Text)+''','
+' '''+Trim(Edt_FCurrecy.Text)+''','
+' '''+Trim(Edt_UomCode.Text)+''','
+''''+IntToStr(Cmb_KmType.ItemIndex)+''','
+''''+IntToStr(Cmb_KmProperty.ItemIndex)+''','
+''''+IntToStr(Cmb_PageType.ItemIndex)+''','
+''''+IntToStr(Cmb_AmountCalculate.ItemIndex)+''','
+''''+IntToStr(Cmb_KmFreeze.ItemIndex)+''','
+''''+IntToStr(Cmb_CashControl.ItemIndex)+''','
+''''+IntToStr(Cmb_PersonCalculate.ItemIndex)+''','
+''''+IntToStr(Cmb_DepArtCalculate.ItemIndex)+''','
+''''+IntToStr(Cmb_VendorCalculate.ItemIndex)+''','
+''''+IntToStr(Cmb_CustomerCalculate.ItemIndex)+''','
+''''+IntToStr(Cmb_ProjectCalculate.ItemIndex)+''''
+')';
ExecSQL;
if KmLevel>1 then
SetParentKm(Trim(Edt_kmCode.text),KmLevel);
AdoQuery.Close;
AdoQuery.SQL.clear;
AdoQuery.SQL.Text:= ' Select * From Gl_AccountParam ';
AdoQuery.Prepared;
AdoQuery.open;
IntAccountUseYear:=AdoQuery.fieldbyname('AccountUseYear').AsInteger;
IntAccountUseMonth:=AdoQuery.fieldbyname('AccountUseMonth').AsInteger;
AdoQuery.Close;
AdoQuery.SQL.clear;
AdoQuery.SQL.Text:= ' Select @@Identity As KmID ';
AdoQuery.Prepared;
AdoQuery.open;
Close;
SQL.clear;
SQL.Text:= ' Insert Gl_AccountSubjectBalance (kmId,BalanceDirection,AccountPeriodYear,AccountPeriodMonth) '+
'Values('''+IntToStr(AdoQuery.fieldbyname('KmId').AsInteger)+''','+IntToStr(Cmb_KmProperty.ItemIndex)+','+IntToStr(IntAccountUseYear)+','+IntToStr(IntAccountUseMonth)+') ';
ExecSQL;
If not ModifyendKm(Trim(Edt_KmCode.Text)) then
Abort;
SaveGl_AccountSubjectHistoryHistory(DbConnect,Trim(Edt_KmCode.Text),UserCode,1);
end;
end
else
begin
SaveGl_AccountSubjectHistoryHistory(DbConnect,Edt_KmCode.Text,UserCode,2);
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Text:= ' UpDate Gl_AccountSubject Set '
+' KmCode ='''+Trim(Edt_KmCode.Text)+''', '
+' KmHelpCode ='''+Trim(Edt_KmHelpCode.Text)+''','
+' KmName = '''+Trim(Edt_KmName.Text)+''','
//+' TotalKmCode = '''+Trim(Edt_TotalKmCode.Text)+''','
+' FCurrecy = '''+Trim(Edt_FCurrecy.Text)+''','
+' UomCode = '''+Trim(Edt_UomCode.Text)+''','
+' KmType = '''+IntToStr(Cmb_KmType.ItemIndex)+''','
+' KmProperty = '''+IntToStr(Cmb_KmProperty.ItemIndex)+''','
+' PageType = '''+IntToStr(Cmb_PageType.ItemIndex)+''','
// +' FCurrecyCalculate = '''+IntToStr(Cmb_FCurrecyCalculate.ItemIndex)+''','
+' AmountCalculate = '''+IntToStr(Cmb_AmountCalculate.ItemIndex)+''','
+' KmFreeze = '''+IntToStr(Cmb_KmFreeze.ItemIndex)+''','
+' CashControl = '''+IntToStr(Cmb_CashControl.ItemIndex)+''','
+' PersonCalculate = '''+IntToStr(Cmb_PersonCalculate.ItemIndex)+''','
+' DepArtCalculate = '''+IntToStr(Cmb_DepArtCalculate.ItemIndex)+''','
+' VendorCalculate = '''+IntToStr(Cmb_VendorCalculate.ItemIndex)+''','
+' CustomerCalculate = '''+IntToStr(Cmb_CustomerCalculate.ItemIndex)+''','
+' ProjectCalculate = '''+IntToStr(Cmb_ProjectCalculate.ItemIndex)+''''
+' Where KmCode ='''+Trim(Edt_KmCode.Text)+''' ' ;
ExecSQL;
end
end;
DbConnect.CommitTrans;
except
DbConnect.RollBackTrans;
abort;
end;
//给AdoQry_Item各字段赋值
with AdoQry_Maintain do
begin
edit;
fieldbyname('KmLevel').AsString := Lab_KmLevel.Caption ;
fieldbyname('KmCode').AsString := Edt_KmCode.Text;
fieldbyname('KmHelpCode').AsString := Edt_KmHelpCode.Text;
fieldbyname('KmName').AsString := Edt_KmName.Text ;
//fieldbyname('TotalKmCode').AsString := Edt_TotalKmCode.Text;
fieldbyname('FCurrecy').AsString := Edt_FCurrecy.Text;
fieldbyname('UomCode').AsString := Edt_UomCode.Text ;
fieldbyname('KmType').AsInteger := Cmb_KmType.ItemIndex;
fieldbyname('KmProperty').AsInteger := Cmb_KmProperty.ItemIndex;
fieldbyname('PageType').AsInteger := Cmb_PageType.ItemIndex;
// fieldbyname('FCurrecyCalculate').AsInteger := Cmb_FCurrecyCalculate.ItemIndex;
fieldbyname('AmountCalculate').AsInteger := Cmb_AmountCalculate.ItemIndex;
fieldbyname('KmFreeze').AsInteger := Cmb_KmFreeze.ItemIndex;
fieldbyname('CashControl').AsInteger := Cmb_CashControl.ItemIndex;
fieldbyname('PersonCalculate').AsInteger := Cmb_PersonCalculate.ItemIndex;
fieldbyname('DepArtCalculate').AsInteger := Cmb_DepArtCalculate.ItemIndex;
fieldbyname('VendorCalculate').AsInteger := Cmb_VendorCalculate.ItemIndex;
fieldbyname('CustomerCalculate').AsInteger := Cmb_CustomerCalculate.ItemIndex;
fieldbyname('ProjectCalculate').AsInteger := Cmb_ProjectCalculate.ItemIndex ;
Post;
end;
end;
procedure TFrm_Gl_Enter_AccountSubject_D.btn_okClick(Sender: TObject);
begin
if not BlankCheck(Edt_FCurrecy.Text,'结算货币') then
begin
Edt_FCurrecy.SetFocus;
abort;
end;
KmLevel:=KmCodeCheck(Trim(Edt_KmCode.Text));
If (status='Add') Then
Lab_KmLevel.Caption := IntToStr(KmLevel)
//else
;//emdkm:=endKmCheck(fieldbyname('endKm').AsString);
if Trim(Edt_KmHelpCode.Text)='' Then
begin
DispInfo('助记码不能为空!',3);
Edt_KmHelpCode.SetFocus;
Abort;
end;
if Trim(Edt_KmName.Text)='' Then
begin
DispInfo('科目名称不能为空!',3);
Edt_KmName.SetFocus;
Abort;
end;
if Cmb_KmType.ItemIndex <= 0 then
begin
DispInfo('科目类型选择错误!',3);
Cmb_KmType.SetFocus;
Abort;
end;
if Cmb_KmProperty.ItemIndex <= 0 then
begin
DispInfo('科目性质选择错误!',3);
Cmb_KmProperty.SetFocus;
Abort;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -