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