📄 bas_exchrate_d.pas
字号:
unit Bas_ExchRate_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, Db, AdODB, ExtCtrls, StdCtrls, ExtEdit, Mask;
Type
TFrm_Bas_ExchRate_D = Class(TFrm_Base_Detail)
Edt_ExchRate: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edt_ExchRateremArk: TEdit;
ExtEdt_CurrencyCode: TExtEdit;
Lbl_CurrencyName: TLabel;
Edt_ExchMonth: TMaskEdit;
procedure FormCreate(Sender: TObject);
procedure CurrencyCodeCheck(Sender: TObject);
procedure FloatCheck(Sender: TObject);
private
procedure InitControls; Override;
procedure SaveData; Override;
procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_Bas_ExchRate_D: TFrm_Bas_ExchRate_D;
implementation
{$R *.DFM}
uses Sys_Global;
procedure TFrm_Bas_ExchRate_D.InitControls;
begin
//从数据库库中取数据时调用,
//子类必须重载,用于为控件赋值,从AdoQry_Item取值
inherited;
If Add then SetFocus_Control := Edt_ExchMonth
else SetFocus_Control := ExtEdt_CurrencyCode;
with AdoQry_Maintain do
begin
Edt_exchMonth.Text:=fieldbyname('exchMonth').AsString;
ExtEdt_CurrencyCode.Text:=fieldbyname('currencyCode').AsString;
Lbl_CurrencyName.Caption:=fieldbyname('currencyName').asstring;
Edt_ExchRate.Text:=fieldbyname('ExchRate').AsString;
Edt_ExchRateremArk.text:=fieldbyname('ExchRateremArk').asstring;
end;
end;
procedure TFrm_Bas_ExchRate_D.SaveData;
begin//把数据保存到数据库库中时调用,
//子类必须重载,用于把控件之值保存到数据库库中,可以使用AdoQuery
//这时还必须给AdoQry_Item各字段赋值
inherited;
if (Add) then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Add('Insert ExchRate (exchMonth,currencyCode,ExchRate,ExchRateremArk) ');
SQL.Add('ValueS ('''+Edt_exchMonth.Text+''','''+ExtEdt_CurrencyCode.Text+''','''+Edt_ExchRate.Text+''','''+Edt_ExchRateremArk.text+''')');
ExecSQL;
end
end
else
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Add('Update ExchRate '
+' Set ExchRate='+Edt_ExchRate.Text+','
+' ExchRateremArk='''+Edt_ExchRateremArk.text+''''
+' Where currencyCode='+QuotedStr(ExtEdt_CurrencyCode.Text)
+' and ExchMonth='+QuotedStr(Edt_ExchMonth.Text)
);
ExecSQL;
end
end;
//给AdoQry_Item各字段赋值
with AdoQry_Maintain do
begin
fieldbyname('exchMonth').AsString:=Edt_exchMonth.Text;
fieldbyname('currencyCode').AsString:=ExtEdt_CurrencyCode.Text;
fieldbyname('currencyName').asstring:=Lbl_CurrencyName.Caption;
fieldbyname('ExchRate').AsString:=Edt_ExchRate.Text;
fieldbyname('ExchRateremArk').AsString:=Edt_ExchRateremArk.text;
Post;
end;
end;
procedure TFrm_Bas_ExchRate_D.FormCreate(Sender: TObject);
begin
inherited;
Lbl_CurrencyName.Caption:='';
SetFocus_Control:=Edt_ExchMonth;
end;
procedure TFrm_Bas_ExchRate_D.CurrencyCodeCheck(Sender: TObject);
begin
inherited;
if ExtEdt_CurrencyCode.Text='00' then
begin
DispInfo(' 人民币不允许输入汇率! ',1);
TWinControl(Sender).SetFocus;
Abort;
end;
if (Add)or
((not Add) and
(ExtEdt_CurrencyCode.Text<>AdoQry_Maintain.fieldbyname('currencyCode').AsString)) then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Add('Select Count(*) recCount '+
' From ExchRate '+
' Where currencyCode=:Code and '+
' exchMonth=:Month ');
Parameters.ParambyName('Code').Value:=ExtEdt_CurrencyCode.text;
Parameters.ParambyName('Month').Value:=Edt_ExchMonth.text;
Open;
if fieldbyname('recCount').asinteger<>0 then
begin
DispInfo(' 该月份该外币的汇率已经存在,不允许增加或修改! ',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
end;
procedure TFrm_Bas_ExchRate_D.FloatCheck(Sender: TObject);
begin
inherited;
if strtofloat(Edt_ExchRate.Text)<=0 then
begin
DispInfo(' 汇率必须大于零! ',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
procedure TFrm_Bas_ExchRate_D.SetStatus(CurrentStatus: String;
var EnableControls: String);
begin
inherited;
If Add then
EnableControls := 'Edt_ExcHMonth,ExtEdt_CurrencyCode,Edt_ExchRate,Edt_ExchRateremArk,'
else
EnableControls := 'Edt_ExchRate,Edt_ExchRateremArk,'
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -