📄 gl_enter_credence.pas
字号:
GetCredenceNo;
Edt_CredenceNo.Text := CredenceNo;
edt_Totaldebit.Text:='0';
edt_Totalcredit.Text:='0';
edt_CreateEmployeeCode.Text:=userCode;
Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_CreateEmployeeCode.text)),0);
edt_CreateEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
edt_CashierEmployeeCode.Text:='';
edt_CashierEmployeeName.Text:='';
edt_tallyEmployeeCode.Text:='';
edt_tallyEmployeeName.text:='';
edt_assessEmployeeCode.Text:='';
edt_assessEmployeeName.Text:='';
edt_BillAmount.Text:='0';
edt_CreateEmployeeCode.Enabled:=False;
edt_CreateEmployeeName.Enabled:=False;
edt_CashierEmployeeCode.Enabled:=False;
edt_CashierEmployeeName.Enabled:=False;
edt_tallyEmployeeCode.Enabled:=False;
edt_tallyEmployeeName.Enabled:=False;
edt_assessEmployeeCode.Enabled:=False;
edt_assessEmployeeName.Enabled:=False;
edt_Totaldebit.Enabled:=False;
edt_Totalcredit.Enabled:=False;
edt_Credenceno.Enabled:=False;
// cmb_CredenceType.Enabled:=False;
edt_ChName.Enabled:=False;
end;
procedure TFrm_Gl_Enter_Credence.setbodyInfo;
var sqltext:string;
begin
if UpperCase(Status)=UpperCase('Add') then
SqlText:='select top 0 '// t1.*,'
+' t1.Credenceid , t1.Gl_CredenceLineNo, t1.DocketName, t1.KMCode,'
+' t1.DebitAmount, t1.CreditAmount, t1.FCurrencyRate, t1.FDebitAmount,'
+' t1.FCreditAmount, t1.Amount, t1.Price, t1.DepArtCode,'
+' t1.PersonEmployeeCode, t1.CustomerCode, t1.VendorCode,'
+' t1.ProjectCode, t1.BalanceTypeCode, t1.BillNo, t1.CashWay, '
+' t2.kmName, t3.projectName '
+' from Gl_Credenceline t1 '
+' left join Gl_AccountSubject t2 on t1.kmCode=t2.kmCode '
+' left join Gl_CashReport t3 on t1.CashWay=t3.projectCode '
{SqlText:='select top 0 t1.*,'
+' t2.kmName '
+' from Gl_Credenceline t1 '
+' left join Gl_AccountSubject t2 on t1.kmCode=t2.kmCode '}
else
begin
//Executesql(AdoQry_tmp,'select * from Gl_Credence where Credenceno='+quotedstr(AdoQry_Head.fieldbyname('Credenceno').asstring),0);
// Now Change the above line as the following line.
Executesql(AdoQry_tmp,'select * from Gl_Credence where Credenceid='+quotedstr(AdoQry_Head.fieldbyname('Credenceid').asstring),0);
Credenceid:=AdoQry_tmp.fieldbyname('Credenceid').asinteger;
{SqlText:='select '
+' t1.Credenceid , t1.Gl_CredenceLineNo, t1.DocketName, t1.KMCode,'
//+' convert(varchAr(10),t1.Credenceid) as Credenceid , t1.Gl_CredenceLineNo, t1.DocketName, t1.KMCode,'
+' t1.DebitAmount, t1.CreditAmount, t1.FCurrencyRate, t1.FDebitAmount,'
+' t1.FCreditAmount, t1.Amount, t1.Price, t1.DepArtCode,'
+' t1.PersonEmployeeCode, t1.CustomerCode, t1.VendorCode,'
+' t1.ProjectCode, t1.BalanceTypeCode, t1.BillNo, t1.CashWay, '
+' t2.kmName, t3.projectName '
+' from Gl_Credenceline t1 '
+' left join Gl_AccountSubject t2 on t1.kmCode=t2.kmCode '
+' left join Gl_CashReport t3 on t1.CashWay=t3.projectCode '
+' where Credenceid='+inttostr(Credenceid);}
SqlText:='select t1.*,'
+' t2.kmName , t3.projectName '
+' from Gl_Credenceline t1 '
+' left join Gl_AccountSubject t2 on t1.kmCode=t2.kmCode '
+' left join Gl_CashReport t3 on t1.CashWay=t3.projectCode '
+' where Credenceid='+inttostr(Credenceid);
end;
Executesql(AdoQry_Body,sqltext,0);
end;
procedure TFrm_Gl_Enter_Credence.InitControls;
var
SqlText:string;
begin
Application.ProcessMessages;
inherited;
if Status<>'Add' then
setCredenceInfotoedit
Else
initedit;
setbodyInfo;
end;
procedure TFrm_Gl_Enter_Credence.checkCredenceInfo;
var sqltext:string;
chno:string;
canPass:boolean;
limitType:integer;
begin
canPass:=False;
{ if Trim(edt_Credenceno.text)='' then
begin
DispInfo('凭证号不能为空!',3);
edt_Credenceno.SetFocus;
abort;
end;
if (CurrentFormStatus='Add') or ((Currentformstatus<>'Add') and (Trim(edt_Credenceno.text)<>AdoQry_Head.fieldbyname('Credenceno').asstring)) then
if Trim(Edt_CredenceNo.Text)<>'' then
begin
SqlText:= 'Select CredenceNo From Gl_Credence Where CredenceNo='+quotedstr(Trim(edt_Credenceno.text));
Executesql(AdoQry_tmp,sqltext,0);
If AdoQry_tmp.RecordCount>0 then
begin
DispInfo('凭证号不可重复!',3);
Edt_Credenceno.SetFocus;
abort;
end;
end; }
If AdoQry_Body.RecordCount=0 Then
begin
DispInfo('没有行数据,不能保存!',1);
Abort;
end;
try
Executesql(AdoQry_tmp,'select * from Gl_CredenceType where CharacterCode='+quotedstr(Trim(edt_ChCode.text)),0) ;
chno:=AdoQry_tmp.fieldbyname('Characterno').asstring;
limitType:=AdoQry_tmp.fieldbyname('limitType').asinteger;
if limitType<>0 then
begin
sqltext:='select Gl_CredenceTypeline.kmCode,Gl_AccountSubject.kmName from Gl_CredenceTypeline,Gl_AccountSubject'
+' where Gl_CredenceTypeline.kmCode=Gl_AccountSubject.kmCode'
+' and Gl_CredenceTypeline.Characterno='+quotedstr(chno);
Executesql(AdoQry_tmp,sqltext,0);
while not AdoQry_tmp.Eof do
begin
canPass:=False;
AdoQry_Body.First;
while not AdoQry_Body.Eof do
begin
if AdoQry_Body.fieldbyname('kmCode').asstring=AdoQry_tmp.fieldbyname('kmCode').asstring then
begin
canPass:=True;
break;
end;
AdoQry_Body.next;
end;
if canPass=False then
begin
DispInfo('必须要有科目'+quotedstr(AdoQry_tmp.fieldbyname('kmCode').asstring+' '+AdoQry_tmp.fieldbyname('kmName').asstring)+'!',3);
abort;
end;
AdoQry_tmp.Next;
end;
end;
finally
end;
if edt_Totaldebit.Text<>edt_Totalcredit.Text then
begin
DispInfo('本位币借方合计与贷方合计不平衡!',3);
abort;
end;
end;
procedure TFrm_Gl_Enter_Credence.saveHeaddata;
var sqltext:string;
begin
{ Executesql(AdoQry_tmp,'select isnull(max(isnull(Credenceno,0)),0)+1 as Credenceno from Gl_Credence where Characterno='+quotedstr(Trim(edt_ChCode.text)),0);
Credenceno:=AdoQry_tmp.fieldbyname('Credenceno').asString;
}
edt_Credenceno.Text:=Credenceno;
SqlText:=' Insert Gl_Credence '
+' (Characterno,Credenceno,SySCredenceNo,CredenceDate,CredenceType,BillAmount,TotaldebitAmount,TotalcreditAmount, '
+' CreateEmployeeCode,cashierEmployeeCode,tallyEmployeeCode,assessorEmployeeCode,remArk )'
+' Values('
+quotedstr(Trim(edt_ChCode.text))+','
//+quotedstr(Trim(edt_Credenceno.text))+','
+quotedStr(Credenceno)+','
+QuotedStr(SySCredenceNo)+','
+quotedstr(Trim(medt_Createdate.text))+','
+inttostr(1)+','
+edt_BillAmount.text+','
+edt_Totaldebit.text+','
+edt_Totalcredit.text+','
+quotedstr(Trim(edt_CreateEmployeeCode.text))+','
+quotedstr(Trim(edt_CashierEmployeeCode.text))+','
+quotedstr(Trim(edt_tallyEmployeeCode.text))+','
+quotedstr(Trim(edt_assessEmployeeCode.text))+','
+quotedstr(Trim(edt_RemArk.text))
+')';
Executesql(AdoQry_tmp,sqltext,1);
Executesql(AdoQry_tmp,'select @@identity as dd',0);
Credenceid:=AdoQry_tmp.fieldbyname('dd').asinteger;
saveCredenceHistory(dbconnect,Trim(edt_Credenceno.text),userCode,0);
end;
procedure TFrm_Gl_Enter_Credence.savebodydata;
var sqltext:string;
begin
AdoQry_Body.First;
While Not AdoQry_Body.Eof Do
begin
SqlText:='Insert Gl_Credenceline '
+' (Credenceid,Gl_CredenceLineNo,docketName,kmCode,debitAmount,creditAmount,fCurrencyRate,'
+' FdebitAmount,FcreditAmount,Amount,Price,'
+' depArtCode,personEmployeeCode,customerCode,VendorCode,projectCode,BalanceTypeCode,Billno,CashWay)'
+'Values('
+inttostr(Credenceid)+','
+inttostr(AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger)+','
+quotedstr(AdoQry_Body.fieldbyname('docketName').asstring)+','
+quotedstr(AdoQry_Body.fieldbyname('kmCode').asstring)+','
+floattostr(AdoQry_Body.fieldbyname('debitAmount').asfloat)+','
+floattostr(AdoQry_Body.fieldbyname('creditAmount').asfloat)+','
+floattostr(AdoQry_Body.fieldbyname('fCurrencyRate').asfloat)+','
+floattostr(AdoQry_Body.fieldbyname('fdebitAmount').asfloat)+','
+floattostr(AdoQry_Body.fieldbyname('fcreditAmount').asfloat)+','
+floattostr(AdoQry_Body.fieldbyname('Amount').asfloat)+','
+floattostr(AdoQry_Body.fieldbyname('Price').asfloat)+','
+quotedstr(AdoQry_Body.fieldbyname('depArtCode').asstring)+','
+quotedstr(AdoQry_Body.fieldbyname('personEmployeeCode').asstring)+','
+quotedstr(AdoQry_Body.fieldbyname('customerCode').asstring)+','
+quotedstr(AdoQry_Body.fieldbyname('VendorCode').asstring)+','
+quotedstr(AdoQry_Body.fieldbyname('projectCode').asstring)+','
+quotedstr(AdoQry_Body.fieldbyname('BalanceTypeCode').asstring)+','
+quotedstr(AdoQry_Body.fieldbyname('Billno').asstring) +','
+getValue(AdoQry_Body.fieldbyname('CashWay').asstring)
+')';
Executesql(AdoQry_tmp,sqltext,1);
saveCredenceLineHistory(dbconnect,Credenceid,AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger,userCode,0);
AdoQry_Body.Next;
end;
end;
procedure TFrm_Gl_Enter_Credence.updateHeaddata;
var sqltext:string;
begin
saveCredenceHistory(dbconnect,AdoQry_Head.fieldbyname('Credenceno').asstring,userCode,1);
SqlText:='update Gl_Credence '
+' set Characterno='+quotedstr(Trim(edt_ChCode.text))+','
+' Credenceno='+quotedstr(Trim(edt_Credenceno.text))+','
+' TotaldebitAmount='+Trim(edt_Totaldebit.text)+','
+' TotalcreditAmount='+Trim(edt_Totalcredit.text)+','
+' remArk='+quotedstr(Trim(edt_RemArk.text))+','
+' BillAmount='+Trim(edt_BillAmount.text)
+' where Credenceid='+quotedstr(AdoQry_Head.fieldbyname('Credenceid').asstring);
Executesql(AdoQry_tmp,sqltext,1);
end;
procedure TFrm_Gl_Enter_Credence.updatebodydata;
var sqltext:string;
begin
AdoQry_Body.First;
While Not AdoQry_Body.Eof Do
begin
// showmessage(inttostr(AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger));
saveCredenceLineHistory(dbconnect,AdoQry_Body.fieldbyname('Credenceid').asinteger,AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger,userCode,1);
SqlText:=' UpDate Gl_Credenceline '
+' Set '
+' docketName='+quotedstr(AdoQry_Body.fieldbyname('docketName').asstring)+','
+' kmCode='+quotedstr(AdoQry_Body.fieldbyname('kmCode').AsString)+','
+' debitAmount='+floattostr(AdoQry_Body.fieldbyname('debitAmount').asfloat)+','
+' creditAmount='+floattostr(AdoQry_Body.fieldbyname('creditAmount').asfloat)+','
+' fdebitAmount='+floattostr(AdoQry_Body.fieldbyname('fdebitAmount').asfloat)+','
+' fcreditAmount='+floattostr(AdoQry_Body.fieldbyname('fcreditAmount').asfloat)+','
+' fCurrencyRate='+floattostr(AdoQry_Body.fieldbyname('fCurrencyRate').asfloat)+','
+' Amount='+floattostr(AdoQry_Body.fieldbyname('Amount').asfloat)+','
+' Price='+floattostr(AdoQry_Body.fieldbyname('Price').asfloat)+','
+' depArtCode='+quotedstr(AdoQry_Body.fieldbyname('depArtCode').AsString)+','
+' personEmployeeCode='+quotedstr(AdoQry_Body.fieldbyname('personEmployeeCode').AsString)+','
+' customerCode='+quotedstr(AdoQry_Body.fieldbyname('customerCode').AsString)+','
+' VendorCode='+quotedstr(AdoQry_Body.fieldbyname('VendorCode').AsString)+','
+' projectCode='+quotedstr(AdoQry_Body.fieldbyname('projectCode').AsString)+','
+' BalanceTypeCode='+quotedstr(AdoQry_Body.fieldbyname('BalanceTypeCode').AsString)+','
+' Billno='+quotedstr(AdoQry_Body.fieldbyname('Billno').AsString)+','
+' CashWay='+getValue(AdoQry_Body.fieldbyname('CashWay').asstring)
+' where Credenceid='+inttostr(Credenceid)
+' and Gl_Credencelineno='+inttostr(AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger);
Executesql(AdoQry_tmp,sqltext,1);
AdoQry_Body.Next;
end;
end;
procedure TFrm_Gl_Enter_Credence.SaveData;
var
SqlText:String;
// SySCredenceNo : String;
// PreStr : String;
begin
inherited;
checkCredenceInfo;//校验数据
DbConnect.beginTrans;
Try
AdoQry_Tmp.Close;
If CurrentFormStatus='Add' Then
begin
Application.ProcessMessages;
GetCredenceNo;
Edt_CredenceNo.Text := CredenceNo;
saveHeaddata; //保存表头
savebodydata; //保存表体
end
else
If CurrentFormStatus='PArtEdit' Then
begin
updateHeaddata; //修改表头
updatebodydata; //修改表体
end;
DbConnect.CommitTrans;
Act_Save.Enabled:=False;
DispInfo('数据保存成功!',3);
Except
on e:exception do
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -