📄 gl_enter_credence.pas
字号:
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 + -