📄 stk_otherprice_d.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 + -