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

📄 gl_enter_credence.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
      DbConnect.RollBackTrans;
      recOrderror(self,AdoQry_tmp,e.message);
      DispInfo('保存数据失败,请重试!',1);
      Abort;
    end;
  end;
  with AdoQry_Head do
  begin
    fieldbyname('Credenceid').Asinteger:=Credenceid;//Trim(Edt_CredenceNo.Text);
    fieldbyname('Credenceno').AsString:=Trim(Edt_CredenceNo.Text);
    fieldbyname('CharacterCode').AsString:=Trim(Edt_ChCode.Text);
    fieldbyname('CharacterName').asstring:=Trim(edt_ChName.text);
    fieldbyname('Credencedate').AsString:=mEdt_Createdate.text;
    fieldbyname('CredenceType').asinteger:=1;
    fieldbyname('BillAmount').asinteger:=strtoint(Trim(edt_BillAmount.text));
    fieldbyname('TotaldebitAmount').asfloat:=strtofloat(Trim(edt_Totaldebit.text));
    fieldbyname('TotalcreditAmount').asfloat:=strtofloat(Trim(edt_Totalcredit.text));
    fieldbyname('createEmployeeCode').AsString:=Trim(Edt_CreateEmployeeCode.Text);
    fieldbyname('createEmployeeName').AsString:=Trim(Edt_CreateEmployeeName.Text);
    fieldbyname('cashierEmployeeCode').AsString:=Trim(Edt_CashierEmployeeCode.Text);
    fieldbyname('cashierEmployeeName').AsString:=Trim(Edt_CashierEmployeeName.Text);
    fieldbyname('tallyEmployeeCode').AsString:=Trim(Edt_tallyEmployeeCode.Text);
    fieldbyname('tallyEmployeeName').AsString:=Trim(Edt_tallyEmployeeName.Text);
    fieldbyname('assessorEmployeeCode').AsString:=Trim(Edt_assessEmployeeCode.Text);
    fieldbyname('assessorEmployeeName').AsString:=Trim(Edt_assessEmployeeName.Text);
  end;
end;

procedure TFrm_Gl_Enter_Credence.SetStatus(CurrentStatus: String;
  var AnswerStatus, EnableControls: String);
begin
  inherited;
    If Status<>'Add' then
  begin
    CurrentFormStatus:='PArtEdit';
    SetFocus_Control:=Edt_ChCode;
  end
  Else
  begin
    CurrentFormStatus:='Add';
    SetFocus_Control:=Edt_ChCode;
  end;

  if Currentstatus='Add' then
  begin
    AnswerStatus:='Add';
    EnableControls:='edt_ChCode,'
                   +' MEdt_CreateDate,edt_Billno,';
  end
  Else If Pos('Edit',CurrentStatus)>0 Then
  begin
    AnswerStatus:='PArtEdit';
    EnableControls:='edt_ChCode,edt_Billno,';
  end;  
end;

procedure TFrm_Gl_Enter_Credence.FormCreate(Sender: TObject);
begin
  inherited;
//  ExtendCaption:=False;
  Frm_Gl_Enter_Credence_D:=TFrm_Gl_Enter_Credence_D.Create(Self);
  Frm_Entry_Detail:=Frm_Gl_Enter_Credence_D;
end;

procedure TFrm_Gl_Enter_Credence.Act_DeleteLineExecute(Sender: TObject);
begin
  if (not AdoQry_Body.IsEmpty)and
     (DispInfo(' 真的删除当前记录吗? ',2)='y') then
    AdoQry_Body.Delete;
end;

procedure TFrm_Gl_Enter_Credence.AdoQry_BodyAfterPost(DataSet: TDataSet);
var
  TotaldebitAmount,TotalcreditAmount:double;
  BookMArk:String;
begin
  inherited;
  TotaldebitAmount:=0;
  TotalcreditAmount:=0;
  if  AdoQry_Body.RecordCount >0 then
    BookMArk:=AdoQry_Body.BookMArk;
  AdoQry_Body.First;
  while not AdoQry_Body.Eof do
  begin
     TotaldebitAmount:= TotaldebitAmount +AdoQry_Body.fieldbyname('debitAmount').asfloat;
     TotalcreditAmount:= TotalcreditAmount +AdoQry_Body.fieldbyname('creditAmount').asfloat;
     AdoQry_Body.Next;
  end;
 if  AdoQry_Body.RecordCount >0 then
    AdoQry_Body.BookMArk:=BookMArk;

  Edt_Totaldebit.Text:= floattostr(TotaldebitAmount);
  Edt_Totalcredit.Text:= floattostr(TotalcreditAmount);
end;

procedure TFrm_Gl_Enter_Credence.edt_ChCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  If key=120 Then
  CommOnHint(Sender,AdoQry_Tmp,'CharacterCode','凭证类别字名称','Characterno',
             '凭证类别字代码',' Gl_CredenceType ');
end;

procedure TFrm_Gl_Enter_Credence.edt_ChCodeButtonClick(Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'CharacterCode','凭证类别字名称','Characterno',
             '凭证类别字代码',' Gl_CredenceType ');
end;

procedure TFrm_Gl_Enter_Credence.Act_ModifyExecute(Sender: TObject);
begin
  Application.ProcessMessages;
  inherited;

end;

procedure TFrm_Gl_Enter_Credence.Act_InsertLineExecute(Sender: TObject);
begin
  if Trim(Edt_ChCode.Text)='' then
  begin
    DispInfo('凭证字不能为空!',3);
    Edt_ChCode.SetFocus;
    abort;
  end;  
  Executesql(AdoQry_tmp,'select * from Gl_CredenceType where Characterno='+quotedstr(Trim(edt_ChCode.text)),0);
  if AdoQry_tmp.RecordCount=0 then 
  begin
    DispInfo('凭证字错误!',3);
    edt_ChCode.SetFocus;
    abort;
  end; 
  edt_ChName.Text:=AdoQry_tmp.fieldbyname('CharacterCode').asstring;
  inherited;

end;

procedure TFrm_Gl_Enter_Credence.edt_ChCodeExit(Sender: TObject);
begin
  inherited;
  if Trim(edt_ChCode.Text)='' then exit;
  Executesql(AdoQry_tmp,'select * from Gl_CredenceType where Characterno='+quotedstr(Trim(edt_ChCode.text)),0);
  if AdoQry_tmp.RecordCount=0 then
  begin
    DispInfo('凭证字错误!',3);
    edt_ChCode.SetFocus;
    abort;
  end;
  edt_ChName.Text:=AdoQry_tmp.fieldbyname('CharacterCode').asstring;
end;

procedure TFrm_Gl_Enter_Credence.MEdt_CreateDateChange(Sender: TObject);
begin
  inherited;
  nowMonth:=copy(MEdt_CreateDate.Text,1,7);
end;

function TFrm_Gl_Enter_Credence.getValue(Value: string): string;
begin
  if Trim(Value)='' then Result:='null'
  else Result:=Trim(Value);
end;

procedure TFrm_Gl_Enter_Credence.Act_PreviewExecute(Sender: TObject);
var
  I:Integer;
begin
  Frm_Gl_Enter_Credence_P:=TFrm_Gl_Enter_Credence_P.Create(Self);
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Connection:=DbConnect;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' Create Table #TmpGl (AutoID [bigint] IDENTITY (1, 1) NOT NULL, DocketName varchAr(50),'
                                              +' KMFlag varchAr(100),DebitAmount Decimal(18,2),CreditAmount Decimal(18,2)) ';
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.ExecSQL;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' Insert #TmpGl (DocketName,KMFlag,DebitAmount,CreditAmount) '
                                              +' Select DocketName,Gl_CredenceLine.KMCode+'' ''+KMName As KMFlag,'
                                              +' DebitAmount,CreditAmount '
                                              +' from Gl_CredenceLine '
                                              +' Join Gl_Credence On Gl_Credence.CredenceID=Gl_CredenceLine.CredenceID '
                                              +' left join Gl_AccountSubject  on Gl_AccountSubject.kmCode=Gl_CredenceLine.kmCode '
                                              +' Where  CredenceNo='''+Trim(Edt_Credenceno.Text)+'''';
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.ExecSQL;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' Select Count(*) As TCount From #TmpGl ';
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Open;
  If (Frm_Gl_Enter_Credence_P.AdoQry_Tmp.fieldbyname('TCount').AsInteger Mod 15)<>0 Then
  begin
    I:=(Frm_Gl_Enter_Credence_P.AdoQry_Tmp.fieldbyname('TCount').AsInteger Mod 15);
    Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
    Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' DeclAre @I Int '
                                                +' DeclAre @J int '
                                                +' Select @I='+intToStr(14-I)
                                                +' Select @J=0 '
                                                +' While @J<@I '
                                                +' begin '
                                                +'   Insert #TmpGl (DocketName,KMFlag,DebitAmount,CreditAmount) '
                                                +'   Values (Null,Null,0,0) '
                                                +'   Select @J=@J+1 '
                                                +' end ';
    Frm_Gl_Enter_Credence_P.AdoQry_Tmp.ExecSQL;
  end;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' Select * From #TmpGl '
                                              +' Drop Table #TmpGl ';
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Open;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:=' Select SysParamValueC From SysParam Where SysParamCode=''Name0''';
  AdoQry_Tmp.Open;
  Frm_Gl_Enter_Credence_P.QrLbl_Company.Caption:=Trim(AdoQry_Tmp.fieldbyname('SysParamValueC').AsString);
  Frm_Gl_Enter_Credence_P.QLbl_Date.Caption:=Medt_CreateDate.Text;  //制单日期
  Frm_Gl_Enter_Credence_P.QLbl_CredenceNo.Caption:=Trim(Edt_CredenceNo.Text);  //凭证号
  Frm_Gl_Enter_Credence_P.QLbl_BorrowCount.Caption:=Trim(Edt_Totaldebit.Text);//借方合计
  Frm_Gl_Enter_Credence_P.QLbl_LenderCount.Caption:=Trim(edt_Totalcredit.Text); //贷方合计
  Frm_Gl_Enter_Credence_P.QLbl_Bill.Caption:=Trim(edt_BillAmount.Text)+' 张'; //附单据张数;
  Frm_Gl_Enter_Credence_P.QLbl_MBEmp.Caption:=Trim(edt_CreateEmployeeName.Text);  //制单人姓名
  Frm_Gl_Enter_Credence_P.QLbl_CredItemp.Caption:=Trim(edt_assessEmployeeName.Text);//审核人姓名
  Frm_Gl_Enter_Credence_P.QLbl_PayEmp.Caption:=Trim(edt_CashierEmployeeName.Text);  //出纳姓名
  Frm_Gl_Enter_Credence_P.QLbl_tallyEmp.Caption:=Trim(edt_tallyEmployeeName.Text); //记账人姓名
  Frm_Gl_Enter_Credence_P.QR_Credence.Prepare;
  Frm_Gl_Enter_Credence_P.PageCount:=Frm_Gl_Enter_Credence_P.QR_Credence.QRPrinter.PageCount;
  Frm_Gl_Enter_Credence_P.QR_Credence.PreviewModal;
  Frm_Gl_Enter_Credence_P.Release;
end;

procedure TFrm_Gl_Enter_Credence.Act_PrintExecute(Sender: TObject);
var
  I:Integer;
begin
  Frm_Gl_Enter_Credence_P:=TFrm_Gl_Enter_Credence_P.Create(Self);
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Connection:=DbConnect;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' Create Table #TmpGl (AutoID [bigint] IDENTITY (1, 1) NOT NULL, DocketName varchAr(50),'
                                              +' KMFlag varchAr(100),DebitAmount Decimal(18,2),CreditAmount Decimal(18,2)) ';
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.ExecSQL;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' Insert #TmpGl (DocketName,KMFlag,DebitAmount,CreditAmount) '
                                              +' Select DocketName,Gl_CredenceLine.KMCode+'' ''+KMName As KMFlag,'
                                              +' DebitAmount,CreditAmount '
                                              +' from Gl_CredenceLine '
                                              +' Join Gl_Credence On Gl_Credence.CredenceID=Gl_CredenceLine.CredenceID '
                                              +' left join Gl_AccountSubject  on Gl_AccountSubject.kmCode=Gl_CredenceLine.kmCode '
                                              +' Where  CredenceNo='''+Trim(Edt_Credenceno.Text)+'''';
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.ExecSQL;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' Select Count(*) As TCount From #TmpGl ';
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Open;
  If (Frm_Gl_Enter_Credence_P.AdoQry_Tmp.fieldbyname('TCount').AsInteger Mod 15)<>0 Then
  begin
    I:=(Frm_Gl_Enter_Credence_P.AdoQry_Tmp.fieldbyname('TCount').AsInteger Mod 15);
    Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
    Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' DeclAre @I Int '
                                                +' DeclAre @J int '
                                                +' Select @I='+intToStr(14-I)
                                                +' Select @J=0 '
                                                +' While @J<@I '
                                                +' begin '
                                                +'   Insert #TmpGl (DocketName,KMFlag,DebitAmount,CreditAmount) '
                                                +'   Values (Null,Null,0,0) '
                                                +'   Select @J=@J+1 '
                                                +' end ';
    Frm_Gl_Enter_Credence_P.AdoQry_Tmp.ExecSQL;
  end;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Close;
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.SQL.Text:=' Select * From #TmpGl '
                                              +' Drop Table #TmpGl ';
  Frm_Gl_Enter_Credence_P.AdoQry_Tmp.Open;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:=' Select SysParamValueC From SysParam Where SysParamCode=''Name0''';
  AdoQry_Tmp.Open;
  Frm_Gl_Enter_Credence_P.QrLbl_Company.Caption:=Trim(AdoQry_Tmp.fieldbyname('SysParamValueC').AsString);
  Frm_Gl_Enter_Credence_P.QLbl_Date.Caption:=Medt_CreateDate.Text;  //制单日期
  Frm_Gl_Enter_Credence_P.QLbl_CredenceNo.Caption:=Trim(Edt_CredenceNo.Text);  //凭证号
  Frm_Gl_Enter_Credence_P.QLbl_BorrowCount.Caption:=Trim(Edt_Totaldebit.Text);//借方合计
  Frm_Gl_Enter_Credence_P.QLbl_LenderCount.Caption:=Trim(edt_Totalcredit.Text); //贷方合计
  Frm_Gl_Enter_Credence_P.QLbl_Bill.Caption:=Trim(edt_BillAmount.Text)+' 张'; //附单据张数;
  Frm_Gl_Enter_Credence_P.QLbl_MBEmp.Caption:=Trim(edt_CreateEmployeeName.Text);  //制单人姓名
  Frm_Gl_Enter_Credence_P.QLbl_CredItemp.Caption:=Trim(edt_assessEmployeeName.Text);//审核人姓名
  Frm_Gl_Enter_Credence_P.QLbl_PayEmp.Caption:=Trim(edt_CashierEmployeeName.Text);  //出纳姓名
  Frm_Gl_Enter_Credence_P.QLbl_tallyEmp.Caption:=Trim(edt_tallyEmployeeName.Text); //记账人姓名
  Frm_Gl_Enter_Credence_P.QR_Credence.Prepare;
  Frm_Gl_Enter_Credence_P.PageCount:=Frm_Gl_Enter_Credence_P.QR_Credence.QRPrinter.PageCount;
  Frm_Gl_Enter_Credence_P.QR_Credence.QRPrinter.PrintSetup;
  Frm_Gl_Enter_Credence_P.QR_Credence.Print;
  Frm_Gl_Enter_Credence_P.Release;
end;

procedure TFrm_Gl_Enter_Credence.MEdt_CreateDateExit(Sender: TObject);
var SqlText : String;
begin
  inherited;
  DateCheck(Sender);
  SqlText := 'select minDate=Convert(varchAr,AccountPeriodYear)+''.''+Convert(varchAr,AccountPeriodMonth)+''.01'', '
            +'       MaxDate=DateAdd(mm,2,Convert(varchAr,AccountPeriodYear)+''.''+Convert(varchAr,AccountPeriodMonth)+''.01'') '
            +' from Gl_AccountPeriod '
            +' where CurrentPeriod=1 ';
  ExecuteSql(AdoQry_Tmp,SqlText,0)  ;
  If not ( (StrToDateTime(MEdt_CreateDate.Text)>=AdoQry_Tmp.fieldbyname('MinDate').AsDateTime) 
   and (StrToDateTime(Medt_CreateDate.Text)<AdoQry_Tmp.fieldbyname('MaxDate').AsDateTime)   ) then
  begin
    DispInfo('跨已结帐月份太多,不可输入该月份的凭证!',3);
    Medt_CreateDate.SetFocus;
    Abort;
  end;   
end;

end.

⌨️ 快捷键说明

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