📄 inv_saleprice2_d.pas
字号:
unit Inv_SalePrice2_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, Mask, ExtEdit;
Type
TFrm_Inv_SalePrice2_D = Class(TFrm_Base_Detail)
ExtEdt_CustomerCode: TExtEdit;
ExtEdt_ItemCode: TExtEdit;
MEdt_SP2StArtDate: TMaskEdit;
MEdt_SP2endDate: TMaskEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Lbl_CustomerName: TLabel;
Label7: TLabel;
Label8: TLabel;
Lbl_ItemName: TLabel;
Edt_SP2Price: TEdit;
Label6: TLabel;
Edt_SP2NoTaxPrice: TEdit;
Label9: TLabel;
Lbl_TaxRate: TLabel;
procedure CustomerCodeCheck(Sender: TObject);
procedure MEdt_SP2endDateExit(Sender: TObject);
procedure Edt_SP2PriceExit(Sender: TObject);
procedure Edt_SP2NoTaxPriceExit(Sender: TObject);
procedure ItemCodeCheck(Sender: TObject);
private
{ Private declarations }
TaxRate:Integer;
public
{ Public declarations }
procedure InitControls; Override;
procedure SaveData; Override;
procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
procedure InitDate(ItemCode,CustomerCode:String);
end;
var
Frm_Inv_SalePrice2_D: TFrm_Inv_SalePrice2_D;
implementation
uses Sys_Global;
{$R *.DFM}
procedure TFrm_Inv_SalePrice2_D.InitControls;
begin
inherited;
Edt_SP2NoTaxPrice.Text:='0';
with AdoQry_Maintain do
begin
ExtEdt_CustomerCode.Text:=fieldbyname('CustomerCode').AsString;
ExtEdt_ItemCode.Text:=fieldbyname('ItemCode').AsString;
Lbl_ItemName.Caption:=fieldbyname('ItemName').AsString;
Lbl_CustomerName.Caption:=fieldbyname('CustomerName').AsString;
MEdt_SP2StArtDate.Text:=fieldbyname('SP2StArtDate').AsString;
MEdt_SP2endDate.text:=fieldbyname('SP2endDate').AsString;
InitDate(fieldbyname('ItemCode').AsString,fieldbyname('CustomerCode').AsString);
TaxRate:=0;
TaxRate:=fieldbyname('TaxRate').AsInteger;
Lbl_TaxRate.Caption:=fieldbyname('TaxRate').AsString;
Edt_SP2Price.Text:=fieldbyname('SP2Price').AsString;
Edt_SP2NoTaxPrice.Text:=fieldbyname('SP2NoTaxPrice').AsString;
end;
end;
procedure TFrm_Inv_SalePrice2_D.SaveData;
begin
Inherited;
if Status='Add' then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Insert SalePrice2'
+'(CustomerCode,ItemCode,SP2StArtDate,SP2endDate,SP2Price,SP2NoTaxPrice,TaxRate)'
+' Values ('
+' '''+ExtEdt_CustomerCode.Text+''''
+','''+ExtEdt_ItemCode.Text+''''
+','''+MEdt_SP2StArtDate.Text+''''
+','''+MEdt_SP2endDate.Text+''''
+','+Edt_SP2Price.Text+''
+','+Edt_SP2NoTaxPrice.Text+''
+','+IntToStr(TaxRate)+''
+')';
AdoQry_Tmp.ExecSQL;
end
else
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Update SalePrice2 Set'
+' CustomerCode='''+ExtEdt_CustomerCode.Text+''''
+',ItemCode='''+ExtEdt_ItemCode.Text+''''
+',SP2StArtDate='''+MEdt_SP2StArtDate.Text+''''
+',SP2endDate='''+MEdt_SP2endDate.Text+''''
+',SP2Price='+Edt_SP2Price.Text+''
+',SP2NoTaxPrice='+Edt_SP2NoTaxPrice.Text+''
+',TaxRate='+IntToStr(TaxRate)+''
+' Where CustomerCode='''+AdoQry_Maintain.fieldbyname('CustomerCode').AsString+''''
+' And ItemCode='''+AdoQry_Maintain.fieldbyname('ItemCode').AsString+''''
+' And SP2StArtDate='''+AdoQry_Maintain.fieldbyname('SP2StArtDate').AsString+''''
+' And SP2endDate='''+AdoQry_Maintain.fieldbyname('SP2endDate').AsString+'''';
AdoQry_Tmp.ExecSQL;
end;
with AdoQry_Maintain do
begin
fieldbyname('CustomerCode').AsString:=ExtEdt_CustomerCode.Text;
fieldbyname('CustomerName').AsString:=Lbl_CustomerName.Caption;
fieldbyname('ItemCode').AsString:=ExtEdt_ItemCode.Text;
fieldbyname('ItemName').AsString:=Lbl_ItemName.Caption;
fieldbyname('SP2StArtDate').AsString:=MEdt_SP2StArtDate.Text;
fieldbyname('SP2endDate').AsString:=MEdt_SP2endDate.Text;
fieldbyname('TaxRate').AsInteger:=TaxRate;
fieldbyname('SP2Price').AsString:=Edt_SP2Price.Text;
fieldbyname('SP2NoTaxPrice').AsString:=Edt_SP2NoTaxPrice.Text;
Post;
end;
end;
procedure TFrm_Inv_SalePrice2_D.InitDate(ItemCode,CustomerCode:String);
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Select Max(SP2endDate) As SP2endDate,Min(SP2StArtDate) As SP2StArtDate'
+' From SalePrice2'
+' Where ItemCode='''+ItemCode+''''
+' And CustomerCode='''+CustomerCode+'''';
AdoQry_Tmp.Open;
if Status='Edit' then
begin
if AdoQry_Tmp.fieldbyname('SP2StArtDate').AsDateTime<>
AdoQry_Maintain.fieldbyname('SP2StArtDate').AsDateTime then
MEdt_SP2StArtDate.ReadOnly:=True
else
MEdt_SP2StArtDate.ReadOnly:=False;
if AdoQry_Tmp.fieldbyname('SP2endDate').AsDateTime<>
AdoQry_Maintain.fieldbyname('SP2endDate').AsDateTime then
MEdt_SP2endDate.ReadOnly:=True
else
MEdt_SP2endDate.ReadOnly:=False;
end
else
begin
if AdoQry_Tmp.fieldbyname('SP2endDate').AsString<>'' then
begin
MEdt_SP2StArtDate.Text:=AdoQry_Tmp.fieldbyname('SP2endDate').AsString;
MEdt_SP2StArtDate.ReadOnly:=True;
end
else
begin
MEdt_SP2StArtDate.Text:=LoginDate;
MEdt_SP2StArtDate.ReadOnly:=False;
end;
MEdt_SP2endDate.ReadOnly:=False;
end;
end;
procedure TFrm_Inv_SalePrice2_D.CustomerCodeCheck(Sender: TObject);
begin
inherited;
if Changed then
begin
InitDate(ExtEdt_ItemCode.Text,ExtEdt_CustomerCode.Text);
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Select CustomerTaxRate_Percent From Customer'
+' Where CustomerCode='''+TEdit(Sender).Text+'''';
AdoQry_Tmp.Open;
Lbl_TaxRate.Caption:=AdoQry_Tmp.fieldbyname('CustomerTaxRate_Percent').AsString+'%';
TaxRate:=AdoQry_Tmp.fieldbyname('CustomerTaxRate_Percent').AsInteger;
Edt_SP2Price.Text:=FloatToStr((StrToFloat(Edt_SP2NoTaxPrice.Text)*(1+TaxRate/100)));
end;
end;
procedure TFrm_Inv_SalePrice2_D.SetStatus(CurrentStatus: String;
var EnableControls: String);
begin
inherited;
if Status='Add' then
begin
SetFocus_Control:=ExtEdt_ItemCode;
EnableControls:='ExtEdt_ItemCode,ExtEdt_CustomerCode,MEdt_SP2StArtDate,'
+'MEdt_SP2endDate,Edt_SP2Price,Edt_SP2NoTaxPrice,';
end
else
begin
SetFocus_Control:=MEdt_SP2StArtDate;
EnableControls:='MEdt_SP2StArtDate,MEdt_SP2endDate,Edt_SP2Price,Edt_SP2NoTaxPrice,';
end;
end;
procedure TFrm_Inv_SalePrice2_D.MEdt_SP2endDateExit(Sender: TObject);
begin
inherited;
DateCheck(Sender);
if StrToDate(MEdt_SP2endDate.Text)<StrToDate(MEdt_SP2StArtDate.Text) then
begin
DispInfo('终止日期不能小于起止日期!',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
procedure TFrm_Inv_SalePrice2_D.Edt_SP2PriceExit(Sender: TObject);
begin
inherited;
FloatCheck(Sender);
if Changed then
begin
Edt_SP2NoTaxPrice.Text:=FloatToStr((StrToFloat(Edt_SP2Price.Text)/(1+TaxRate/100)));
end;
end;
procedure TFrm_Inv_SalePrice2_D.Edt_SP2NoTaxPriceExit(Sender: TObject);
begin
inherited;
FloatCheck(Sender);
if Changed then
begin
Edt_SP2Price.Text:=FloatToStr((StrToFloat(Edt_SP2NoTaxPrice.Text)*(1+TaxRate/100)));
end;
end;
procedure TFrm_Inv_SalePrice2_D.ItemCodeCheck(Sender: TObject);
begin
inherited;
if Changed then
InitDate(ExtEdt_ItemCode.Text,ExtEdt_CustomerCode.Text);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -