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

📄 bas_currency_d.pas

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