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

📄 gl_enter_credencearh.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 5 页
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -