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

📄 stk_otherprice_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Stk_OtherPrice_D;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Detail, Db, AdODB, ExtCtrls, StdCtrls, ExtEdit, linkedit;

Type
  TFrm_Stk_OtherPrice_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    Label2: TLabel;
    Lbl_VendorName1: TLabel;
    Label4: TLabel;
    ExtEdt_VendorCode1: TExtEdit;
    ExtEdt_ItemCode1: TExtEdit;
    Label6: TLabel;
    Lbl_ItemName1: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Lbl_TaxRate1: TLabel;
    Edt_Price: TEdit;
    Edt_NoTaxPrice: TEdit;
    Label7: TLabel;
    Lbl_VendorName: TEdit;
    Lbl_TaxRate: TEdit;
    Lbl_ItemName: TEdit;
    ExtEdt_VendorCode: TLinkEdit;
    ExtEdt_ItemCode: TLinkEdit;
    procedure btn_okClick(Sender: TObject);
    procedure VendorCodeCheck(Sender: TObject);
    procedure Edt_PriceExit(Sender: TObject);
    procedure Edt_NoTaxPriceExit(Sender: TObject);
    procedure ExtEdt_VendorCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ExtEdt_VendorCodeButtonClick(Sender: TObject);
    procedure ExtEdt_ItemCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ExtEdt_ItemCodeButtonClick(Sender: TObject);
    procedure ExtEdt_ItemCodeExit(Sender: TObject);
  private
    { Private declarations }
    TaxRate:Integer;
  public
    { Public declarations } 
    procedure SetStatus(CurrentStatus:String;var EnableControls:String);Override;
    procedure InitControls; Override;
    procedure SaveData; Override;
  end;

var
  Frm_Stk_OtherPrice_D: TFrm_Stk_OtherPrice_D;

implementation

uses Sys_Global;

{$R *.DFM}

procedure TFrm_Stk_OtherPrice_D.InitControls;
begin
  inherited;
  Edt_NoTaxPrice.Text:='0';
  with AdoQry_Maintain do
  begin
    TaxRate:=0;
    TaxRate:=fieldbyname('TaxRate').AsInteger;
    ExtEdt_VendorCode.Text:=fieldbyname('VendorCode').AsString;
    Lbl_VendorName.text:=fieldbyname('VendorName').AsString;
    ExtEdt_ItemCode.Text:=fieldbyname('ItemCode').AsString;
    Lbl_ItemName.text:=fieldbyname('ItemName').AsString;
    Edt_Price.Text:=fieldbyname('Price').AsString;
    Edt_NoTaxPrice.Text:=fieldbyname('NoTaxPrice').AsString;
    Lbl_TaxRate.text:=fieldbyname('TaxRate').AsString;
  end;
  Lbl_VendorName.Enabled :=False;
  Lbl_TaxRate.Enabled :=False;
  Lbl_ItemName.Enabled :=False;
end;

procedure TFrm_Stk_OtherPrice_D.SaveData;
begin
  inherited;
  AdoQry_Tmp.Close;
  if Status='Add' then
    AdoQry_Tmp.SQL.Text:='Insert OtherPrice'
      +'(VendorCode,ItemCode,Price,NoTaxPrice,TaxRate)'
      +' Values ('
      +' '''+ExtEdt_VendorCode.Text+''''
      +','''+ExtEdt_ItemCode.Text+''''
      +','+Edt_Price.Text+''
      +','+Edt_NoTaxPrice.Text+''
      +','+IntToStr(TaxRate)+''
      +')'
  else
    AdoQry_Tmp.SQL.Text:='Update OtherPrice Set'
      +' VendorCode='''+ExtEdt_VendorCode.Text+''''
      +',ItemCode='''+ExtEdt_ItemCode.Text+''''
      +',Price='+Edt_Price.Text+''
      +',NoTaxPrice='+Edt_NoTaxPrice.Text+''
      +',TaxRate='+IntToStr(TaxRate)+''
      +' Where VendorCode='''+AdoQry_Maintain.fieldbyname('VendorCode').AsString+''''
      +' And ItemCode='''+AdoQry_Maintain.fieldbyname('ItemCode').AsString+'''';
  AdoQry_Tmp.ExecSQL;
  
  with AdoQry_Maintain do
  begin
    fieldbyname('VendorCode').AsString:=ExtEdt_VendorCode.Text;
    fieldbyname('VendorName').AsString:=Lbl_VendorName.text;
    fieldbyname('ItemCode').AsString:=ExtEdt_ItemCode.Text;
    fieldbyname('ItemName').AsString:=Lbl_ItemName.text;
    fieldbyname('Price').AsString:=Edt_Price.Text;
    fieldbyname('NoTaxPrice').AsString:=Edt_NoTaxPrice.Text;
    fieldbyname('TaxRate').AsString:=IntToStr(TaxRate);
    Post;
  end;
end;

procedure TFrm_Stk_OtherPrice_D.SetStatus(CurrentStatus:String;
      var EnableControls:String);
begin
  //控制修改时的状态
  if CurrentStatus='Edit' then
    EnableControls:='ExtEdt_Price,Edt_NoTaxPrice,'
  else if CurrentStatus='Add' then
    EnableControls:='ExtEdt_VendorCode,ExtEdt_ItemCode,ExtEdt_Price,Edt_NoTaxPrice,';
    //设置光标
  if Status='Add' then
    SetFocus_Control:=ExtEdt_VendorCode
  else
    SetFocus_Control:=Edt_Price;
end;

procedure TFrm_Stk_OtherPrice_D.btn_okClick(Sender: TObject);
begin  
  if Status='Add' then
  begin
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Select VendorCode'
      +' From OtherPrice'
      +' Where VendorCode='''+ExtEdt_VendorCode.text+''''
      +' And ItemCode='''+ExtEdt_ItemCode.text+'''';
    AdoQry_Tmp.Open;
    if AdoQry_Tmp.fieldbyname('VendorCode').AsString<>'' then
    begin
      DispInfo('该物料价格己经定义!',1);
      TWinControl(Sender).SetFocus;
      Abort;
    end;
  end;
  inherited;
end;

procedure TFrm_Stk_OtherPrice_D.VendorCodeCheck(Sender: TObject);
begin
  inherited;
  if Changed then
  begin
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Select VendorTaxRate_Percent From Vendor'
      +' Where VendorCode='''+Trim(TEdit(Sender).Text)+'''';
    AdoQry_Tmp.Open;
    Lbl_TaxRate.text:=AdoQry_Tmp.fieldbyname('VendorTaxRate_Percent').AsString+'%';
    TaxRate:=AdoQry_Tmp.fieldbyname('VendorTaxRate_Percent').AsInteger;
    if Trim(Edt_NoTaxPrice.Text)<>'' then
      Edt_Price.Text:=FloatToStr((StrToFloat(Edt_NoTaxPrice.Text)*(1+TaxRate/100)))
    else
      Edt_Price.Text:='0';
  end;
end;

procedure TFrm_Stk_OtherPrice_D.Edt_PriceExit(Sender: TObject);
begin
  inherited;
  FloatCheck(Sender);
  if Changed then
  begin
    Edt_NoTaxPrice.Text:=FloatToStr((StrToFloat(Edt_Price.Text)/(1+TaxRate/100)));
  end;
end;

procedure TFrm_Stk_OtherPrice_D.Edt_NoTaxPriceExit(Sender: TObject);
begin
  inherited;         
  FloatCheck(Sender);
  if Changed then
  begin
    Edt_Price.Text:=FloatToStr((StrToFloat(Edt_NoTaxPrice.Text)*(1+TaxRate/100)));
  end;
end;

procedure TFrm_Stk_OtherPrice_D.ExtEdt_VendorCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if(Key=120)then
    CommonHint(Sender,AdoQry_Tmp,'VendorName','供应商名称','VendorCode',
      '供应商代码','Vendor','VendorUsable=1');
end;

procedure TFrm_Stk_OtherPrice_D.ExtEdt_VendorCodeButtonClick(
  Sender: TObject);
begin
  inherited;
   CommonHint(Sender,AdoQry_Tmp,'VendorName','供应商名称','VendorCode',
      '供应商代码','Vendor','VendorUsable=1');
end;

procedure TFrm_Stk_OtherPrice_D.ExtEdt_ItemCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if(Key=120)then
    CommonHint(Sender,AdoQry_Tmp,'ItemName','物料名称','ItemCode','物料代码','Item');
end;

procedure TFrm_Stk_OtherPrice_D.ExtEdt_ItemCodeButtonClick(Sender: TObject);
begin
  inherited;
  CommonHint(Sender,AdoQry_Tmp,'ItemName','物料名称','ItemCode','物料代码','Item');
end;

procedure TFrm_Stk_OtherPrice_D.ExtEdt_ItemCodeExit(Sender: TObject);
begin
  inherited;
  if(ActiveControl.Name='btn_Cancel')then
    Abort;
  if(TEdit(Sender).Text<>'')then
  begin
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Select SysParamValueN,SysParamValueC'
      +' From  SysParam'
      +' Where SysParamCode=''ItemCodeLen''';
    AdoQry_Tmp.Open;
    if AdoQry_Tmp.fieldbyname('SysParamValueC').AsString='0' then
    begin
      if Length(TEdit(Sender).Text)<>AdoQry_Tmp.fieldbyname('SysParamValueN').AsInteger then
      begin
        DispInfo('物料代码长度必须是'+AdoQry_Tmp.fieldbyname('SysParamValueN').AsString+'位',3);
        TWinControl(Sender).SetFocus;
        Abort;
      end;
    end
    else if AdoQry_Tmp.fieldbyname('SysParamValueC').AsString='1' then
    begin
      if Length(TEdit(Sender).Text)>AdoQry_Tmp.fieldbyname('SysParamValueN').AsInteger then
      begin
        DispInfo('物料代码长度不能超过'+AdoQry_Tmp.fieldbyname('SysParamValueN').AsString+'位',3);
        TWinControl(Sender).SetFocus;
        Abort;
      end;
    end;
  end
  else
  begin
    DispInfo('物料代码不能为空',3);
    TWinControl(Sender).SetFocus;
    Abort;
  end;
  with AdoQry_tmp do
  begin
    Close;
    sql.clear;
    sql.text:='select ItemName from Item where ItemCode='''+Trim(ExtEdt_ItemCode.text)+'''';
    open;
    Lbl_ItemName.text:=fieldbyname('ItemName').asstring;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -