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

📄 gl_enter_passaccount.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      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 + -