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