gl_enter_credencearh.pas

来自「一个MRPII系统源代码版本」· PAS 代码 · 共 867 行 · 第 1/5 页

PAS
867
字号
unit Gl_Enter_CredenceArH;
                         
Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Check, ExtPrintReport, Menus, Db, ActnList, AdODB, Grids, DBGridEh,
  StdCtrls, ExtCtrls, ComCtrls, ToolWin, jpeg;

Type
  TFrm_Gl_Enter_CredenceArH = Class(TFrm_Base_Check)
    AdoQry_HeadCheckFlag: TIntegerField;
    AdoQry_HeadKmCode: TStringField;
    AdoQry_HeadKmName: TStringField;
    AdoQry_HeadFDebitAmount: TFloatField;
    AdoQry_HeadFCreditAmount: TFloatField;
    AdoQry_HeadDebitAmount: TFloatField;
    AdoQry_HeadCreditAmount: TFloatField;
    AdoQry_HeadCredenceType: TIntegerField;
    AdoQry_HeadRemArk: TStringField;
    AdoQry_HeadCredenceId: TIntegerField;
    AdoQry_HeadInvoiceNo: TStringField;
    AdoQry_HeadExchRate: TFloatField;
    AdoQry_HeadFlag: TIntegerField;
    AdoQry_HeadCredenceClass: TStringField;
    AdoQry_HeadCurrencyCode: TStringField;
    AdoQry_HeadCurrencyName: TStringField;
    AdoQry_HeadCurrencyFlag: TStringField;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Act_CheckExecute(Sender: TObject);
    procedure Act_ModifyExecute(Sender: TObject);
    procedure DBGridEhTitleClick(Column: TColumnEh);
    procedure AdoQry_HeadCheckFlagChange(Sender: TField);
    procedure DBGridEhGetCellParams(Sender: TObject; Column: TColumnEh;
      AFont: TFont; var Background: TColor; State: TGridDrawState);
    procedure AdoQry_HeadBeforeInsert(DataSet: TDataSet);
  private
    Flag : Boolean;
    { Private declarations }
  public
    DebitAmount : Double;{借方总金额}
    CreditAmount : Double; {贷方总金额}
    CredenceNo : String; {凭证号}
    SySCredenceNo : String; {系统凭证号}
    procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
    procedure GetCredenceNo;
    { Public declarations }
  end;

var
  Frm_Gl_Enter_CredenceArH: TFrm_Gl_Enter_CredenceArH;

implementation
uses Sys_Global,Gl_Enter_CredenceAr;
{$R *.DFM}

{ TFrm_Gl_Enter_CredenceArH }

procedure TFrm_Gl_Enter_CredenceArH.GetCredenceNo;
var PreStr :String;
    SqlText : String;
begin
  SqlText := 'select SysProduceCrendentNoWay,ProduceCrendentNoWay from Gl_AccountParam ';
  ExecuteSQl(AdoQry_Tmp,SqlText,0);
  case AdoQry_Tmp.fieldbyname('SysProduceCrendentNoWay').AsInteger of
    1: begin
         // PerStr := OrderOrdinalBLetter;
          SqlText := ' Select Max(SySCredenceNo) As MaxOrderNo From Gl_Credence ';
                 //   +' Where SySCredenceNo Like '''+PerStr+'''+''%''';
          AdoQry_Tmp.Close;
          AdoQry_Tmp.SQL.clear;
          AdoQry_Tmp.SQL.Text := SqlText;
          AdoQry_Tmp.Open;
          if AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString <> '' then
          begin
             SySCredenceNo := copy(InttoStr(100000000+StrToInt(AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString)+1),2,8);
          end
          else
          begin
            SySCredenceNo := '00000001';
          end;

       end;
     2 : begin
            PreStr :=copy(FormatDateTime('YYYY',date()),3,2);
            SqlText := ' Select Max(SySCredenceNo) As MaxOrderNo From Gl_Credence '
                      +' Where SySCredenceNo Like '''+PreStr+'''+''%''';
            AdoQry_Tmp.Close;
            AdoQry_Tmp.SQL.clear;
            AdoQry_Tmp.SQL.Text := SqlText;
            AdoQry_Tmp.Open;
            if AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString <> '' then
            begin
               SySCredenceNo := PreStr+Copy(InttoStr(10000000+StrToInt(Copy(AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString,Length(PreStr)+1,7))+1),2,7);
            end
            else
            begin
              SySCredenceNo := PreStr+'0000001';
            end;

         end;  
    3:begin
        PreStr := copy(FormatDateTime('YYYY',date()),3,2)+FormatDateTime('MM',date());
        SqlText :=' Select Max(SySCredenceNo) As MaxOrderNo From Gl_Credence '
                      +' Where SySCredenceNo Like '''+PreStr+'''+''%''';
        AdoQry_Tmp.Close;
        AdoQry_Tmp.SQL.clear;
        AdoQry_Tmp.SQL.Text := SqlText;
        AdoQry_Tmp.Open;
        if AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString <> '' then
        begin
           SySCredenceNo := PreStr+Copy(InttoStr(10000+StrToInt(Copy(AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString,Length(PreStr)+1,4))+1),2,4);
        end
        else
        begin
          SySCredenceNo := PreStr+'0001';
        end;
      end;
           
  end;
  SqlText := 'select SysProduceCrendentNoWay,ProduceCrendentNoWay from Gl_AccountParam ';
  ExecuteSQl(AdoQry_Tmp,SqlText,0);
  case AdoQry_Tmp.fieldbyname('ProduceCrendentNoWay').AsInteger of
    1: begin
         // PerStr := OrderOrdinalBLetter;
          SqlText := ' Select Max(CredenceNo) As MaxOrderNo From Gl_Credence ';
                 //   +' Where CredenceNo Like '''+PerStr+'''+''%''';
          AdoQry_Tmp.Close;
          AdoQry_Tmp.SQL.clear;
          AdoQry_Tmp.SQL.Text := SqlText;
          AdoQry_Tmp.Open;
          if AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString <> '' then
          begin
             CredenceNo := copy(InttoStr(100000000+StrToInt(AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString)+1),2,8);
          end
          else
          begin
            CredenceNo := '00000001';
          end;

       end;
     2 : begin
            PreStr :=copy(FormatDateTime('YYYY',date()),3,2);
            SqlText := ' Select Max(CredenceNo) As MaxOrderNo From Gl_Credence '
                      +' Where CredenceNo Like '''+PreStr+'''+''%''';
            AdoQry_Tmp.Close;
            AdoQry_Tmp.SQL.clear;
            AdoQry_Tmp.SQL.Text := SqlText;
            AdoQry_Tmp.Open;
            if AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString <> '' then
            begin
              CredenceNo := PreStr+Copy(InttoStr(10000000+StrToInt(Copy(AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString,Length(PreStr)+1,7))+1),2,7);
            end
            else
            begin
              CredenceNo := PreStr+'0000001';
            end;

         end;  
    3:begin
        PreStr := copy(FormatDateTime('YYYY',date()),3,2)+FormatDateTime('MM',date());
        SqlText :=' Select Max(CredenceNo) As MaxOrderNo From Gl_Credence '
                      +' Where CredenceNo Like '''+PreStr+'''+''%''';
        AdoQry_Tmp.Close;
        AdoQry_Tmp.SQL.clear;
        AdoQry_Tmp.SQL.Text := SqlText;
        AdoQry_Tmp.Open;
        if AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString <> '' then
        begin
           CredenceNo := PreStr+Copy(InttoStr(10000+StrToInt(Copy(AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString,Length(PreStr)+1,4))+1),2,4);
        end
        else
        begin

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?