⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bas_exchrate_d.pas

📁 一个MRPII系统源代码版本
💻 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 + -