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

📄 gl_enter_credence.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit Gl_Enter_Credence;

Interface


uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Entry_Body, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
  ExtCtrls, ComCtrls, ToolWin, StdCtrls, Mask, ExtEdit, linkedit, jpeg;

Type
  TFrm_Gl_Enter_Credence = Class(TFrm_Base_Entry_Body)
    Label1: TLabel;
    Label3: TLabel;
    Label9: TLabel;
    Label15: TLabel;
    MEdt_CreateDate: TMaskEdit;
    Edt_Credenceno: TEdit;
    Lab_ShipAddressName: TLabel;
    lab_ShipModeName: TLabel;
    Lab_SaleTermName: TLabel;
    Lab_CurrencyName: TLabel;
    Lab_SaleDeptName: TLabel;
    Lab_CustomerName: TLabel;
    Label2: TLabel;
    edt_BillAmount: TEdit;
    edt_ChCode: TLinkEdit;
    edt_ChName: TEdit;
    AdoQry_BodydocketName: TStringField;
    AdoQry_BodykmCode: TStringField;
    AdoQry_BodykmName: TStringField;
    AdoQry_BodydebitAmount: TFloatField;
    AdoQry_BodycreditAmount: TFloatField;
    AdoQry_BodyFCurrencyRate: TFloatField;
    AdoQry_BodyFDebitAmount: TFloatField;
    AdoQry_BodyFCreditAmount: TFloatField;
    AdoQry_BodyAmount: TFloatField;
    AdoQry_BodyPrice: TFloatField;
    AdoQry_BodyDepArtCode: TStringField;
    AdoQry_BodyPersonEmployeeCode: TStringField;
    AdoQry_BodyCustomerCode: TStringField;
    AdoQry_BodyVendorCode: TStringField;
    AdoQry_BodyProjectCode: TStringField;
    AdoQry_BodyBalanceTypeCode: TStringField;
    AdoQry_BodyBillNo: TStringField;
    AdoQry_BodyGl_CredenceLineNo: TIntegerField;
    Label5: TLabel;
    edt_CreateEmployeeName: TEdit;
    edt_CashierEmployeeName: TEdit;
    edt_tallyEmployeeName: TEdit;
    Label7: TLabel;
    Label6: TLabel;
    edt_assessEmployeeName: TEdit;
    Label10: TLabel;
    Label4: TLabel;
    Edt_Totaldebit: TEdit;
    Label16: TLabel;                                                                    
    edt_Totalcredit: TEdit;
    edt_CreateEmployeeCode: TLinkEdit;
    edt_assessEmployeeCode: TLinkEdit;
    edt_CashierEmployeeCode: TLinkEdit;
    edt_tallyEmployeeCode: TLinkEdit;
    AdoQry_BodyCashWay: TStringField;
    edt_RemArk: TEdit;
    Label8: TLabel;
    AdoQry_BodyprojectName: TStringField;
    AdoQry_BodyCredenceId: TIntegerField;
    procedure FormCreate(Sender: TObject);
    procedure Act_DeleteLineExecute(Sender: TObject);
    procedure AdoQry_BodyAfterPost(DataSet: TDataSet);
    procedure edt_ChCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edt_ChCodeButtonClick(Sender: TObject);
    procedure Act_ModifyExecute(Sender: TObject);
    procedure Act_InsertLineExecute(Sender: TObject);
    procedure edt_ChCodeExit(Sender: TObject);
    procedure MEdt_CreateDateChange(Sender: TObject);
    procedure Act_PreviewExecute(Sender: TObject);
    procedure Act_PrintExecute(Sender: TObject);
    procedure MEdt_CreateDateExit(Sender: TObject);
  private
    Enter_CustomerCode,CurrentFormStatus:String;
    function getValue(Value: string): string;
    { Private declarations }
  public
    CredenceNo,SySCredenceNo :String;
    procedure SetStatus(CurrentStatus:String;var AnswerStatus,EnableControls:String); Override;
    procedure InitControls; Override;
    procedure SaveData; Override;
    procedure setCredenceInfotoedit;
    procedure initedit;
    procedure setbodyInfo;
    procedure checkCredenceInfo;
    procedure saveHeaddata;
    procedure savebodydata;
    procedure updateHeaddata;
    procedure updatebodydata;
    procedure GetCredenceNo;
    { Public declarations }
  end;

var
  Frm_Gl_Enter_Credence: TFrm_Gl_Enter_Credence;
  TaxRate_Percent,CustomerCode:string;
  Credenceid:integer;
//  Credenceno:integer;
  nowMonth: string;
implementation

uses Sys_Global, Gl_Enter_Credence_D, Gl_Enter_Credence_P;

{$R *.DFM}

{ TFrm_Sal_Enter_SaleOrder }
procedure TFrm_Gl_Enter_Credence.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
          CredenceNo := PreStr+'0001';
        end;
      end;
    4: begin
          PreStr := userCode;
          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(100000000+StrToInt(Copy(AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString,Length(PreStr)+1,8))+1),2,8);
          end
          else
          begin
            CredenceNo := PreStr+'00000001';
          end;

       end;
    5: begin
          PreStr := Edt_ChCode.Text;
          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(100000000+StrToInt(Copy(AdoQry_Tmp.fieldbyname('MaxOrderNo').AsString,Length(PreStr)+1,8))+1),2,8);
          end
          else
          begin
            CredenceNo := PreStr+'00000001';
          end;

       end;
           
  end;
end;

procedure TFrm_Gl_Enter_Credence.setCredenceInfotoedit;
begin
  With AdoQry_Head do
    begin
      Edt_ChCode.Text :=fieldbyname('CharacterCode').AsString;
      Executesql(AdoQry_tmp,'select * from Gl_CredenceType where Characterno='+quotedstr(Trim(edt_ChCode.text)),0);
      edt_ChName.Text:=AdoQry_tmp.fieldbyname('CharacterCode').asstring;
      medt_Createdate.Text:=fieldbyname('Credencedate').asstring;
      edt_Credenceno.Text:=fieldbyname('Credenceno').asstring;
//      cmb_CredenceType.ItemIndex:=fieldbyname('CredenceType').asinteger-1;
      edt_Totaldebit.Text:=floattostr(fieldbyname('TotaldebitAmount').asfloat);
      edt_Totalcredit.Text:=floattostr(fieldbyname('TotalcreditAmount').asfloat)      ;
      edt_CreateEmployeeCode.Text:=fieldbyname('createEmployeeCode').asstring;
      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:=fieldbyname('cashierEmployeeCode').asstring;
      Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_CashierEmployeeCode.text)),0);
      edt_CashierEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
      edt_tallyEmployeeCode.Text:=fieldbyname('tallyEmployeeCode').asstring;
      Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_tallyEmployeeCode.text)),0);
      edt_tallyEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
      edt_assessEmployeeCode.Text:=fieldbyname('assessorEmployeeCode').asstring;
      Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_assessEmployeeCode.text)),0);
      edt_assessEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
      edt_BillAmount.Text:=inttostr(fieldbyname('BillAmount').asinteger);
      //Credenceid:=fieldbyname('Credenceid').asinteger;
      edt_RemArk.Text:=fieldbyname('RemArk').asstring;
    end
end;

procedure TFrm_Gl_Enter_Credence.initedit;
begin
  ExecuteSql(AdoQry_Tmp,'select * from Gl_CredenceType',0);
  edt_ChCode.Text:=IIFString(Trim(AdoQry_Head.fieldbyname('CharacterCode').AsString)<>'',Trim(AdoQry_Head.fieldbyname('CharacterCode').AsString),AdoQry_Tmp.fieldbyname('CharacterNo').AsString);
  edt_ChCode.SetFocus;
  Edt_ChCode.OnExit(Edt_ChCode);
  medt_Createdate.Text:=formatdatetime('yyyy.mm.dd',strtodatetime(GetServerDateTime(dbconnect)));
  edt_Credenceno.Text:='';

⌨️ 快捷键说明

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