📄 bas_currency_d.pas
字号:
unit Bas_Currency_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, StdCtrls, Db, AdODB, ExtCtrls ;
Type
TFrm_Bas_Currency_D = Class(TFrm_Base_Detail)
Edt_CurrencyCode: TEdit;
Edt_CurrencyName: TEdit;
Edt_CurrencyFlag: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
cmb_isMaster: TComboBox;
procedure FormCreate(Sender: TObject);
procedure Edt_CurrencyCodeExit(Sender: TObject);
procedure btn_okClick(Sender: TObject);
private
{ Private declarations }
protected
//虚拟函数,要把数据保存到数据库库中时调用,用于把控件之值保存到数据库库中,
//这时还必须给AdoQry_Maintain各字段赋值
public
procedure InitControls; Override;
procedure SaveData; Override;
{ Public declarations }
end;
var
Frm_Bas_Currency_D: TFrm_Bas_Currency_D;
implementation
uses Bas_Currency,Sys_Global;
{$R *.DFM}
procedure TFrm_Bas_Currency_D.FormCreate(Sender: TObject);
begin
inherited;
SetFocus_Control:=Edt_CurrencyCode;
end;
procedure TFrm_Bas_Currency_D.Edt_CurrencyCodeExit(Sender: TObject);
begin
inherited;
if ActiveControl.Name='btn_Cancel' then
exit;
if (Add)or ((not Add) and
(TEdit(Sender).Text<>AdoQry_Maintain.fieldbyname('CurrencyCode').AsString)) then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Add('Select CurrencyCode '+
'From Currency '+
'Where CurrencyCode='''+TEdit(Sender).Text+'''');
Open;
if fieldbyname('CurrencyCode').AsString<>'' then
begin
DispInfo('货币代码已经存在,不允许增加或修改! ',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
end;
procedure TFrm_Bas_Currency_D.InitControls;
begin
inherited;
with AdoQry_Maintain do
begin
Edt_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
Edt_CurrencyName.Text:=fieldbyname('CurrencyName').AsString;
Edt_CurrencyFlag.Text:=fieldbyname('CurrencyFlag').AsString;
cmb_isMaster.ItemIndex:=fieldbyname('isMaster').asinteger;
end;
if Add then
begin
edt_CurrencyCode.Enabled:=True;
edt_CurrencyName.Enabled:=True;
edt_Currencyflag.Enabled:=True;
cmb_isMaster.Enabled:=True;
edt_CurrencyCode.SetFocus;
end;
if not Add then
begin
ActiveControl:=btn_Cancel;
Edt_CurrencyCode.Enabled:=False;
edt_CurrencyName.SetFocus;
end;
end;
procedure TFrm_Bas_Currency_D.SaveData;
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
if(Add)then
begin
//把增加的数据插入数据库中
SQL.Add('Insert into Currency( '+
' CurrencyCode,'+
' CurrencyName,'+
' CurrencyFlag,IsMaster) '+
'Values( '+
' '''+Edt_CurrencyCode.Text+''', '+
' '''+Edt_CurrencyName.Text+''', '+
' '''+Edt_CurrencyFlag.Text+''','+inttostr(cmb_isMaster.Itemindex)+') ');
end
Else
begin
//把更改的数据更新数据库
SQL.Add('Update Currency '+
'Set CurrencyName='''+Edt_CurrencyName.Text+''', '+
' IsMaster='+inttostr(cmb_isMaster.Itemindex)+','+
' CurrencyFlag='''+Edt_CurrencyFlag.Text+''' '+
'where CurrencyCode='''+Edt_CurrencyCode.Text+''' ');
end;
ExecSQL;
end;
with AdoQry_Maintain do
begin
//把当前Frm_Bas_Customer_D的内容写回Frm_Bas_Customer的缓存
fieldbyname('CurrencyCode').AsString:=Edt_CurrencyCode.Text;
fieldbyname('CurrencyName').AsString:=Edt_CurrencyName.Text;
fieldbyname('CurrencyFlag').AsString:=Edt_CurrencyFlag.Text;
fieldbyname('isMaster').asinteger:=cmb_isMaster.ItemIndex;
Post;
end;
end;
procedure TFrm_Bas_Currency_D.btn_okClick(Sender: TObject);
var
sSQL:string;
begin
if cmb_isMaster.ItemIndex=1 then
begin
sSQL:=' select Count(*) as iCount from currency where ISMaster=1 ';
with AdoQry_tmp do
begin
Close;
SQL.clear;
SQL.Add(sSQL);
Open;
if fieldbyname('iCount').AsInteger>=1 then
begin
DispInfo('本位币已存在 !',1);
cmb_isMaster.SetFocus;
abort;
end;
end;
end;
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -