📄 gl_enter_passaccount.pas
字号:
Else begin
DbConnect.CommitTrans;
DispInfo('当前凭证记录已被其他用户过帐了',3);
Abort;
end;
end;
AdoQry_Head.Next;
end;
AdoQry_Head.BookMArk:=BkmBookMArk;
}
end;
Function TFrm_Gl_Enter_PassAccount.CheckPassInfo(R_StrCredenceNo:String):Boolean;
var StrSqlText:String;
begin
StrSqlText:='Select * '+
'From Gl_Credence '+
'Where CredenceNo='+QuotedStr(R_StrCredenceNo)+'';
ExecuteSql(AdoQry_Tmp,StrSqlText,0);
If AdoQry_Tmp.fieldbyname('TallyFlag').AsInteger = 0 Then
Result:=True
Else
Result:=False;
end;
procedure TFrm_Gl_Enter_PassAccount.UpdateSubjectBalance(R_StrCredenceNo:String);
var StrSqlText:String;
AdoQry_Tmp1:TAdoQuery;
AdoQry_Tmp2:TAdoQuery;
StrKMCode:String;
IntKmLength1:Integer;
IntKmLength2:Integer;
IntKmLength3:Integer;
IntKmLength4:Integer;
IntKmLength5:Integer;
IntKmLength6:Integer;
DblDebitAmount:Double;
DblCreditAmount:Double;
DblFDebitAmount:Double;
DblFCreditAmount:Double;
begin
AdoQry_Tmp1:=TAdoQuery.Create(Nil);
AdoQry_Tmp1.EnableBCD:=False;
AdoQry_Tmp1.Connection:=DBConnect;
AdoQry_Tmp2:=TAdoQuery.Create(Nil);
AdoQry_Tmp2.EnableBCD:=False;
AdoQry_Tmp2.Connection:=DBConnect;
StrSqlText:='Select * From Gl_AccountParam';
ExecuteSql(AdoQry_Tmp1,StrSqlText,0);
IntKmLength1:=AdoQry_Tmp1.fieldbyname('KmLength1').AsInteger;
IntKmLength2:=AdoQry_Tmp1.fieldbyname('KmLength2').AsInteger;
IntKmLength3:=AdoQry_Tmp1.fieldbyname('KmLength3').AsInteger;
IntKmLength4:=AdoQry_Tmp1.fieldbyname('KmLength4').AsInteger;
IntKmLength5:=AdoQry_Tmp1.fieldbyname('KmLength5').AsInteger;
IntKmLength6:=AdoQry_Tmp1.fieldbyname('KmLength6').AsInteger;
StrSqlText:='Select KmCode, '
+' Sum(DebitAmount) as DebitAmount, '
+' Sum(CreditAmount) as CreditAmount, '
+' Sum(FDebitAmount) as FDebitAmount, '
+' Sum(FCreditAmount) as FCreditAmount '
+' From Gl_CredenceLine '
+' Join Gl_Credence On Gl_CredenceLine.CredenceID=Gl_Credence.CredenceID '
+' and CredenceNo In (select CredenceNo from #Gl_PassAccount where CheckFlag=1) '
+' group by KmCode ';
ExecuteSql(AdoQry_Tmp,StrSqlText,0);
While Not AdoQry_Tmp.Eof Do
begin
StrKMCode:=Trim(AdoQry_Tmp.fieldbyname('KmCode').AsString);
DblDebitAmount:=AdoQry_Tmp.fieldbyname('DebitAmount').AsFloat;
DblCreDitAmount:=AdoQry_Tmp.fieldbyname('CreditAmount').AsFloat;
DblFDebitAmount:=AdoQry_Tmp.fieldbyname('FDebitAmount').AsFloat;
DblFCreDitAmount:=AdoQry_Tmp.fieldbyname('FCreditAmount').AsFloat;
While Length(StrKMCode)>0 Do
begin
StrSqlText := ' declAre @CurrentPeriodYear int,'
+' @CurrentPeriodMonth int '
+' select @CurrentPeriodYear=AccountPeriodYear, '
+' @CurrentPeriodMonth=AccountPeriodMonth '
+' from Gl_AccountPeriod '
+' where CurrentPeriod=1 '
+' Update Gl_AccountSubjectBalance '+
' Set debitBalance=IsNull(DebitBalance,0.0)+'+FloatToStr(DblDebitAmount)+','+
'CreditBalance=IsNull(CreditBalance,0.0)+'+FloatToStr(DblCreditAmount)+','+
'FDebitBalance=IsNull(FDebitBalance,0.0)+'+FloatToStr(DblDebitAmount)+'/FCurrencyRate,'+
'FCreditBalance=IsNull(FCreditBalance,0.0)+'+FloatToStr(DblCreditAmount)+'/FCurrencyRate,'
+' endBalanceDirection= case when ( case when KmProperty=1 then case when BalanceDirection=1 then FirstBalance '
+' else -FirstBalance '
+' end '
+' else case when BalanceDirection=2 then FirstBalance '
+' else -FirstBalance '
+' end '
+' end '
+' +case when KmProperty=1 then IsNull(DebitBalance,0.0)+('+FloatToStr(DblDebitAmount)+')'
+' else -(IsNull(DebitBalance,0.0)+('+FloatToStr(DblDebitAmount)+'))'
+' end '
+' -case when KmProperty=1 then IsNull(CreditBalance,0.0)+('+FloatToStr(DblCreditAmount)+')'
+' else -(IsNull(CreditBalance,0.0)+('+FloatToStr(DblCreditAmount)+'))'
+' end) <0 then case when KmProperty=1 then 2 else 1 end '
+' else KMProperty '
+' end , '
+' endBalance= abs( case when KmProperty=1 then case when BalanceDirection=1 then FirstBalance '
+' else -FirstBalance '
+' end '
+' else case when BalanceDirection=2 then FirstBalance '
+' else -FirstBalance '
+' end '
+' end '
+' +case when KmProperty=1 then IsNull(DebitBalance,0.0)+('+FloatToStr(DblDebitAmount)+')'
+' else -(IsNull(DebitBalance,0.0)+('+FloatToStr(DblDebitAmount)+'))'
+' end '
+' -case when KmProperty=1 then IsNull(CreditBalance,0.0)+('+FloatToStr(DblCreditAmount)+')'
+' else -(IsNull(CreditBalance,0.0)+('+FloatToStr(DblCreditAmount)+'))'
+' end) , '
+' endFBalance= abs( case when KmProperty=1 then case when BalanceDirection=1 then FirstBalance '
+' else -FirstBalance '
+' end '
+' else case when BalanceDirection=2 then FirstBalance '
+' else -FirstBalance '
+' end '
+' end '
+' +case when KmProperty=1 then IsNull(DebitBalance,0.0)+('+FloatToStr(DblDebitAmount)+')'
+' else -(IsNull(DebitBalance,0.0)+('+FloatToStr(DblDebitAmount)+'))'
+' end '
+' -case when KmProperty=1 then IsNull(CreditBalance,0.0)+('+FloatToStr(DblCreditAmount)+')'
+' else -(IsNull(CreditBalance,0.0)+('+FloatToStr(DblCreditAmount)+'))'
+' end) /FCurrencyRate '
+' from Gl_AccountSubjectBalance '
+' join Gl_AccountSubject on Gl_AccountSubjectBalance.KmId=Gl_AccountSubject.KmId '
+' and Gl_AccountSubject.KMCode = '+QuotedStr(StrKmCode)
// +' Where KmID In (Select KmId From Gl_AccountSubject Where KMCode='+Quotedstr(StrKmCode)+')'
+' where AccountPeriodYear=@CurrentPeriodYear '
+' and AccountPeriodMonth=@CurrentPeriodMonth ';
ExecuteSql(AdoQry_Tmp1,StrSqlText,1);
If IntKmLength1=Length(StrKMCode) Then
StrKMCode:='';
If IntKmLength1+IntKmLength2=Length(StrKMCode) Then
StrKMCode:=Copy(StrKMCode,1,IntKmLength1);
If IntKmLength1+IntKmLength2+IntKmLength3=Length(StrKMCode) Then
StrKMCode:=Copy(StrKMCode,1,IntKmLength1+IntKmLength2);
If IntKmLength1+IntKmLength2+IntKmLength3+IntKmLength4=Length(StrKMCode) Then
StrKMCode:=Copy(StrKMCode,1,IntKmLength1+IntKmLength2+IntKmLength3);
If IntKmLength1+IntKmLength2+IntKmLength3+IntKmLength4+IntKmLength5=Length(StrKMCode) Then
StrKMCode:=Copy(StrKMCode,1,IntKmLength1+IntKmLength2+IntKmLength3+IntKmLength4);
If IntKmLength1+IntKmLength2+IntKmLength3+IntKmLength4+IntKmLength5+IntKmLength6=Length(StrKMCode) Then
StrKMCode:=Copy(StrKMCode,1,IntKmLength1+IntKmLength2+IntKmLength3+IntKmLength4+IntKmLength5);
end;
AdoQry_Tmp.Next;
end;
end;
procedure TFrm_Gl_Enter_PassAccount.Act_LookExecute(Sender: TObject);
begin
inherited;
If Frm_Gl_Enter_Credence=nil then
begin
Frm_Gl_Enter_Credence:=TFrm_Gl_Enter_Credence.Create(Application);
Frm_Gl_Enter_Credence.SetUserParam(Param1,Param2,Param3,Param4,Param5,Param6);
Frm_Gl_Enter_Credence.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Gl_Enter_Credence.InitForm(DBConnect,'Query',AdoQry_Head);
end;
Frm_Gl_Enter_Credence.ShowModal;
end;
procedure TFrm_Gl_Enter_PassAccount.FormCreate(Sender: TObject);
begin
inherited;
ToolButton6.Enabled:=True;
ToolButton6.Visible:=True;
ToolButton6.Action:=Act_look;
ToolButton6.Enabled:=True;
ToolButton6.Visible:=True;
end;
procedure TFrm_Gl_Enter_PassAccount.FormDestroy(Sender: TObject);
var StrSqlText:STring;
begin
inherited;
Frm_Gl_Enter_Credence:=Nil;
StrSqlText:='Drop Table #Gl_PassAccount ';
ExecuteSql(AdoQry_Tmp,StrSqlText,1);
end;
procedure TFrm_Gl_Enter_PassAccount.AdoQry_HeadAfterPost(
DataSet: TDataSet);
begin
inherited;
ExecuteSql(AdoQry_Tmp,'update #Gl_PassAccount'
+' set CheckFlag='+IntToStr(AdoQry_Head.fieldbyname('CheckFlag').AsInteger)
+' where CredenceNo='+QuotedStr(AdoQry_Head.fieldbyname('CredenceNo').AsString)
,1);
end;
procedure TFrm_Gl_Enter_PassAccount.TlBtn_CancelCheckClick(
Sender: TObject);
begin
inherited;
If AdoQry_Head.State In [dsEdit,DsInsert] then AdoQry_Head.Post;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -