📄 gl_enter_foreigncurrencyrate.pas
字号:
SaveHistoryFCurrencyRateLine(DbConnect,IdentityNo,IntToStr(AdoQry_Body.fieldbyname('AccountPeriodDate').AsInteger),UserCode,0);
AdoQry_Body.Next;
end;
end
else
begin
{ Select CURRENCYCode ,AccountPeriod ,ForeignRate, ChangeForeignRate, RemArk
From Gl_ForeignCurrencyRate }
SaveHistoryFCurrencyRate(DbConnect,IdentityNo,UserCode,1);
SqlText:='Update Gl_ForeignCurrencyRate '
+' Set CURRENCYCode='''+Trim(Edt_CURRENCYCode.Text)+''','
+' AccountPeriod= '''+Trim(Edt_AccountPeriod.Text)+''','
+' ForeignRate='''+Trim(Edt_ForeignRate.Text)+''','
+' ChangeForeignRate='''+Trim(Edt_ChangeForeignRate.Text)+''','
+' RemArk='''+Trim(Edt_RemArk.Text)+''' '
+' Where ForeignCurrencyRateID='''+IdentityNo +'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
AdoQry_Body.First;
While Not AdoQry_Body.Eof Do
begin
{Select ForeignCurrencyRateID,AccountPeriodDate,ForeignRate,ChangeForeignRate,RemArk
From Gl_ForeignCurrencyRateLine}
SaveHistoryFCurrencyRateLine(DbConnect,IdentityNo,IntToStr(AdoQry_Body.fieldbyname('AccountPeriodDate').AsInteger),UserCode,1);
SqlText:=' UpDate Gl_ForeignCurrencyRateLine '
+' Set AccountPeriodDate='+''''+AdoQry_Body.fieldbyname('AccountPeriodDate').AsString+''''+','
+' ForeignRate='+''''+AdoQry_Body.fieldbyname('ForeignRate').AsString+''''+','
+' ChangeForeignRate='+''''+AdoQry_Body.fieldbyname('ChangeForeignRate').AsString+''''+','
+' RemArk='''+AdoQry_Body.fieldbyname('RemArk').AsString+''''
+' Where ForeignCurrencyRateID='+''''+IdentityNo+''''
+' And AccountPeriodDate='+''''+AdoQry_Body.fieldbyname('AccountPeriodDate').AsString+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
AdoQry_Body.Next;
end; //end while
end; //end if
DbConnect.CommitTrans;
Act_Save.Enabled:=False;
DispInfo('数据保存成功!',3);
Except
on e:Exception do
begin
If DbConnect.InTransaction Then
DbConnect.RollBackTrans;
RecOrderror(Self,AdoQry_tmp,E.message);
DispInfo('保存数据失败,请重试!',1);
Abort;
end ;
end;
with AdoQry_Head do
begin
fieldbyname('CurrencyCode').AsString := Edt_CurrencyCode.Text;
fieldbyname('CurrencyName').AsString := Edt_CurrencyName.Text;
fieldbyname('AccountPeriod').AsString := Edt_AccountPeriod.Text ;
fieldbyname('ForeignRate').AsString := Edt_ForeignRate.Text;
fieldbyname('ChangeForeignRate').AsString := Edt_ChangeForeignRate.Text;
fieldbyname('RemArk').AsString := Edt_RemArk.Text;
end;
end;
procedure TFrm_Gl_Enter_ForeignCurrencyRate.Edt_AccountPeriodEnter(
Sender: TObject);
begin
inherited;
Month := Trim(Edt_AccountPeriod.Text);
end;
procedure TFrm_Gl_Enter_ForeignCurrencyRate.Edt_AccountPeriodExit(
Sender: TObject);
begin
inherited;
try
StrToDateTime(Trim(Edt_AccountPeriod.Text)+'.01');
except
DispInfo('月份输入错误!',1);
Edt_AccountPeriod.SetFocus;
abort;
end;
if Trim(Edt_AccountPeriod.Text) <> Month then
begin
while not AdoQry_Body.Eof do
begin
AdoQry_Body.Delete;
end;
ChangeDetill;
Month := Trim(Edt_AccountPeriod.Text);
end;
end;
procedure TFrm_Gl_Enter_ForeignCurrencyRate.ChangeDetill;
var
Dates:String;
Days,I:integer;
begin
Dates := Edt_AccountPeriod.Text+'.01';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text := ' Select DatePArt(Day,DateAdd(Month,1,Convert(DateTime,'''+Dates+'''))-1) As days ';
AdoQry_Tmp.Open;
Days := AdoQry_Tmp.fieldbyname('Days').AsInteger;
for I := 1 to Days do
begin
with AdoQry_Body do
begin
Append;
fieldbyname('AccountPeriodDate').AsInteger := I;
AdoQry_Body.fieldbyname('ForeignRate').AsString := '0';
AdoQry_Body.fieldbyname('ChangeForeignRate').AsString := '0';
AdoQry_Body.fieldbyname('RemArk').AsString := '';
Post;
end;
end;
end;
procedure TFrm_Gl_Enter_ForeignCurrencyRate.SaveHistoryFCurrencyRate(
AdoConnection: TAdoConnection; ForeignCurrencyRateID, UserCode: string;
HisType: integer);
var AdoQry:TAdoQuery;
AdoQrytmp:TAdoQuery;
sqltext:string;
chgType:string;
begin
case hisType of
0: chgType:='新增';
1: chgType:='修改';
2: chgType:='删除';
end;
AdoQry:=TAdoQuery.Create(Application);
AdoQry.EnableBCD:=False;
AdoQry.Connection:=AdoConnection;
AdoQrytmp:=TAdoQuery.Create(Application);
AdoQrytmp.EnableBCD:=False;
AdoQrytmp.Connection:=AdoConnection;
SqlText := ' Select * From Gl_ForeignCurrencyRate Where ForeignCurrencyRateID='''+ForeignCurrencyRateID+''' ';
AdoQry.Close;
AdoQry.SQL.clear;
AdoQry.Sql.Text := SqlText;
AdoQry.Open;
SqlText:='Insert Gl_ForeignCurrencyRateHistory '
+' (ForeignCurrencyRateID,CurrencyCode,AccountPeriod,ForeignRate,ChangeForeignRate,RemArk, '
+' ChgEmployeeCode,ChgTime,ChgType )'
+' Values('
+''''+ AdoQry.fieldbyname('ForeignCurrencyRateID').AsString+''','
+''''+ AdoQry.fieldbyname('CurrencyCode').AsString+''','
+''''+ AdoQry.fieldbyname('AccountPeriod').AsString+''','
+''''+ AdoQry.fieldbyname('ForeignRate').AsString+''','
+''''+ AdoQry.fieldbyname('ChangeForeignRate').AsString+''','
+''''+ AdoQry.fieldbyname('RemArk').AsString+''','
+Quotedstr(userCode)+','
+'getdate(),'
+quotedstr(chgType)+')';
with AdoQrytmp do
begin
Close;
sql.clear;
sql.Text:=sqltext;
try
execsql;
except
end;
end;
try
AdoQry.Free;
AdoQrytmp.Free;
except
end;
end;
procedure TFrm_Gl_Enter_ForeignCurrencyRate.SaveHistoryFCurrencyRateLine(
AdoConnection: TAdoConnection; ForeignCurrencyRateID, days,
UserCode: string; HisType: integer);
var AdoQry:TAdoQuery;
AdoQrytmp:TAdoQuery;
sqltext:string;
chgType:string;
begin
case hisType of
0: chgType:='新增';
1: chgType:='修改';
2: chgType:='删除';
end;
AdoQry:=TAdoQuery.Create(Application);
AdoQry.EnableBCD:=False;
AdoQry.Connection:=AdoConnection;
AdoQrytmp:=TAdoQuery.Create(Application);
AdoQrytmp.EnableBCD:=False;
AdoQrytmp.Connection:=AdoConnection;
with AdoQry do
begin
Close;
sql.clear;
sql.Text:='select * from Gl_ForeignCurrencyRateLine where ForeignCurrencyRateID='+ForeignCurrencyRateID
+' and AccountPeriodDate='+Days;
Prepared;
open;
end;
SqlText:='Insert Gl_ForeignCurrencyRateLineHist '
+' (ForeignCurrencyRateID,AccountPeriodDate,ForeignRate,ChangeForeignRate, '
+' RemArk,ChgEmployeeCode,ChgTime,ChgType)'
+' Values('
+ Quotedstr(AdoQry.fieldbyname('ForeignCurrencyRateID').AsString)+','
+ Quotedstr(AdoQry.fieldbyname('AccountPeriodDate').AsString)+','
+ Quotedstr(AdoQry.fieldbyname('ForeignRate').AsString)+','
+ Quotedstr(AdoQry.fieldbyname('ChangeForeignRate').AsString)+','
+ Quotedstr(AdoQry.fieldbyname('RemArk').AsString)+','
+ quotedstr(userCode)+','
+'getdate(),'
+ quotedstr(chgType)+')';
with AdoQrytmp do
begin
Close;
sql.clear;
sql.Text:=sqltext;
try
execsql;
except
end;
end;
try
AdoQry.Free;
AdoQrytmp.Free;
except
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -