📄 ord500_02.pas.svn-base
字号:
sbPlaceContact: TSpeedButton;
edtPriority: TEdit;
UpDown1: TUpDown;
lblPriority: TLabel;
ADOQuery1O500A_027: TSmallintField;
qryOrd153O153_012: TSmallintField;
Label1: TLabel;
edtReporter: TEdit;
sbReporter: TSpeedButton;
edtReporterName: TEdit;
qryHrm1502: TADOQuery;
AutoIncField1: TAutoIncField;
WideStringField1: TWideStringField;
WideStringField2: TWideStringField;
ADOQuery1O500A_028: TIntegerField;
ADOQuery1FReporterName: TStringField;
ADOQuery1FReporter: TStringField;
qryOrd153O153_008: TDateTimeField;
qryOrd153O153_010: TDateTimeField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ADOQuery1O500A_004GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure ADOQuery1O500A_010GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure ADOQuery1O500A_019GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure sbPersonClick(Sender: TObject);
procedure edtPersonExit(Sender: TObject);
procedure wwDBGrid1Enter(Sender: TObject);
procedure wwDBGrid1Exit(Sender: TObject);
procedure sbCustClick(Sender: TObject);
procedure edtCustExit(Sender: TObject);
procedure sbPlaceClick(Sender: TObject);
procedure edtPlaceExit(Sender: TObject);
procedure memTermDblClick(Sender: TObject);
procedure wwDBGrid1UpdateFooter(Sender: TObject);
procedure wwDBGrid2ColExit(Sender: TObject);
procedure wwDBGrid2UpdateFooter(Sender: TObject);
procedure adsOrd500BBeforePost(DataSet: TDataSet);
procedure adsOrd500BNewRecord(DataSet: TDataSet);
procedure adsOrd500BeforePost(DataSet: TDataSet);
procedure adsOrd500NewRecord(DataSet: TDataSet);
procedure Action1Execute(Sender: TObject);
procedure Action2Execute(Sender: TObject);
procedure Action3Execute(Sender: TObject);
procedure edtItemCustomDlg(Sender: TObject);
procedure edtChargeCustomDlg(Sender: TObject);
procedure mmiAddClick(Sender: TObject);
procedure mmiEditClick(Sender: TObject);
procedure mmiDelClick(Sender: TObject);
procedure pmOrd500BPopup(Sender: TObject);
procedure edtUnitCustomDlg(Sender: TObject);
procedure cbCurrChange(Sender: TObject);
procedure adsOrd500BAfterScroll(DataSet: TDataSet);
procedure adsOrd500AfterScroll(DataSet: TDataSet);
procedure ActPrintExecute(Sender: TObject);
procedure edtItemEnter(Sender: TObject);
procedure wwDBGrid1ColExit(Sender: TObject);
procedure Action4Execute(Sender: TObject);
procedure edtAmountChange(Sender: TObject);
procedure sbItemClick(Sender: TObject);
procedure sbMacNoClick(Sender: TObject);
procedure edtItemIDExit(Sender: TObject);
procedure edtMacNoExit(Sender: TObject);
procedure qryOrd153O153_012GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure sbPlaceContactClick(Sender: TObject);
procedure sbReporterClick(Sender: TObject);
private
ALastNo:Integer;
AOldCustNo:Integer;
AOldItem,AOldCharge,AOldUnit:String;
AOldQty:Double;
AKeyEvent:TKeyEvent;
ALineSumAmt,ALineDisAmt:Double;
ABusy,AIsChanged:Boolean;
AStatus:array[0..5] of string;
APick:array[0..4] of string;
AFrom:array[0..1] of string;
procedure GetDetailData;
procedure GetCustPlaceInfo;
procedure ChangePrice;
procedure CheckItem;
procedure CheckUnit;
procedure CheckQty;
procedure CheckCharge;
procedure CheckAmount;
procedure CalcNetAmount;
procedure SetDBGridA;
procedure SetDBGridB;
procedure SetAmount;
procedure SetPrice;
procedure SetDisAmt;
procedure SetDisRate;
procedure GetOrderInfo(AItemNo,AUnitNo:Integer;AQty:Double;var AOrderInfo:TOrderInfo);
procedure UpdagePriceBySum(ADataSet:TADODataSet);
{ Private declarations }
public
procedure OpenData(ACode:String);
procedure SetInterface; override;
procedure GetDataInfo; override;
procedure InsertEvent; override;
procedure UpdateEvent; override;
procedure DeleteEvent; override;
procedure SetEmptyInit; override;
procedure TableBeforePost; override;
procedure TableAfterPost; override;
procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
{ Public declarations }
end;
var
Ord500_02Form: TOrd500_02Form;
implementation
uses SYSDATA, HwSelData, OrdComm, HwSelDataA;
{$R *.dfm}
procedure TOrd500_02Form.OpenData(ACode:String);
begin
if ACode='' then AMode:='ADD' else AMode:='UPD';
ADOQuery1.DisableControls;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select A.*,');
ADOQuery1.SQL.Add(' B.O100_002,');
ADOQuery1.SQL.Add(' C.O150_002,C.O150_003,C.O150_005,C.O150_006,C.O150_012,');
ADOQuery1.SQL.Add(' D.G100_002,D.G100_003,');
ADOQuery1.SQL.Add(' E.G110_002');
ADOQuery1.SQL.Add('from ORD500A A,ORD100 B,ORD150 C,GLD100 D,GLD110 E');
ADOQuery1.SQL.Add('where A.O500A_002=B.O100_001 and A.O500A_017=C.O150_001 and A.O500A_007=D.G100_001 and A.O500A_009=E.G110_001');
ADOQuery1.SQL.Add('order by A.O500A_022 asc');
ADOQuery1.Open;
ADOQuery1.Locate('O500A_001',ACode,[]);
ADOQuery1.EnableControls;
// ADOQuery1AfterScroll(ADOQuery1);
end;
procedure TOrd500_02Form.GetOrderInfo(AItemNo,AUnitNo:Integer;AQty:Double;var AOrderInfo:TOrderInfo);
begin
AOrderInfo.CustNo:=0;
AOrderInfo.SaleNo:=0;
AOrderInfo.RegionNo:=0;
AOrderInfo.OrderDate:=edtDate.Date;
AOrderInfo.CurrNo:=qryGld100.FieldByName('G100_001').AsInteger;
AOrderInfo.ItemNo:=AItemNo;
AOrderInfo.UnitNo:=AUnitNo;
AOrderInfo.OrderQty:=AQty;
AOrderInfo.LineSumAmt:=StrToFloatA(FloatToStrF(ALineSumAmt,ffNumber,18,2)); //定单行销售总额
AOrderInfo.LineDisAmt:=StrToFloatA(FloatToStrF(ALineDisAmt,ffNumber,18,2)); //定单行总折扣额
AOrderInfo.ChargeAmt:=StrToFloatA(edtSumCharge.Text); //特殊费用
AOrderInfo.OrdDisAmt:=StrToFloatA(edtDiscount.Text); //定单总折扣额
if trim(edtCust.Text)<>'' then AOrderInfo.CustNo:=qryOrd150.FieldByName('O150_001').AsInteger;
if trim(edtPerson.Text)<>'' then AOrderInfo.SaleNo:=qryHrm150.FieldByName('H150_001').AsInteger;
if trim(edtPlace.Text)<>'' then AOrderInfo.RegionNo:=qryOrd152.FieldByName('O152_003').AsInteger;
AOrderInfo.IsSumDis:=False;
AOrderInfo.IsOrderDis:=False;
end;
procedure TOrd500_02Form.SetDBGridA;
var
I:Integer;
begin
for I:=0 to wwDBGrid1.Selected.Count-1 do
begin
wwDBGrid1.Columns[I].ReadOnly:=True;
end;
wwDBGrid1.ColumnByName('FItemID').ReadOnly:=False;
wwDBGrid1.ColumnByName('FUnitID').ReadOnly:=False;
wwDBGrid1.ColumnByName('FQty').ReadOnly:=False;
wwDBGrid1.ColumnByName('FTax').ReadOnly:=False;
wwDBGrid1.ColumnByName('FTaxAmt').ReadOnly:=False;
wwDBGrid1.ColumnByName('FDate').ReadOnly:=False;
wwDBGrid1.ColumnByName('FRemark').ReadOnly:=False;
//允许手工修改销售报价和销售定单中的产品的价格
wwDBGrid1.ColumnByName('FPrice').ReadOnly:=GetSysParams('ORD0001')<>'Y';
wwDBGrid1.ColumnByName('FAmount').ReadOnly:=GetSysParams('ORD0001')<>'Y';
//允许手工修改销售报价和销售定单中的产品折扣金额
wwDBGrid1.ColumnByName('FDisRate').ReadOnly:=GetSysParams('ORD0002')<>'Y';
wwDBGrid1.ColumnByName('FDisAmt').ReadOnly:=GetSysParams('ORD0002')<>'Y';
//允许同一张销售报价单或销售定单中选择多个交货地址
tsPlace.TabVisible:=GetSysParams('ORD0003')='N';
//销售定单中必须输入对应的产品信息(维修和服务行业使用)
tsProduct.TabVisible:=GetSysParams('ORD0005')='Y';
adsOrd500BFPlace.Visible:=not tsPlace.TabVisible;
wwDBGrid1.Refresh;
end;
procedure TOrd500_02Form.SetDBGridB;
var
I:Integer;
begin
for I:=0 to wwDBGrid2.Selected.Count-1 do
begin
wwDBGrid2.Columns[I].ReadOnly:=True;
end;
wwDBGrid2.ColumnByName('FItemID').ReadOnly:=False;
wwDBGrid2.ColumnByName('FRemark').ReadOnly:=False;
//允许手工修改销售定单和销售报价中的特特费用项目的金额
wwDBGrid2.ColumnByName('FAmount').ReadOnly:=GetSysParams('ORD0004')<>'Y';
wwDBGrid2.Refresh;
end;
procedure TOrd500_02Form.SetInterface;
begin
inherited;
Caption:=GetDBString('ORD50002001'); //销售报价维护
gbInfo.Caption:=GetDBString('ORD50002002'); //基本信息
tsCust.Caption:=GetDBString('ORD50002003'); //客户信息
tsPlace.Caption:=GetDBString('ORD50002004'); //交货地址
tsTerm.Caption:=GetDBString('ORD50002005'); //条款信息
tsRemark.Caption:=GetDBString('ORD50002006'); //备注信息
tsItem.Caption:=GetDBString('ORD50002007'); //产品信息
tsCharge.Caption:=GetDBString('ORD50002008'); //特殊费用
lblCode.Caption:=GetDBString('ORD50002009'); //报价单号
lblType.Caption:=GetDBString('ORD50002010'); //报价类型
lblDate.Caption:=GetDBString('ORD50002011'); //报价日期
lblStatues.Caption:=GetDBString('ORD50002012'); //报价状态
lblPerson.Caption:=GetDBString('ORD50002013'); //销售人员
lblPick.Caption:=GetDBString('ORD50002014'); //提货方式
lblCurr.Caption:=GetDBString('ORD50002015'); //币别名称
lblRate.Caption:=GetDBString('ORD50002016'); //币别汇率
lblPriority.Caption:=GetDBString('ORD50002148'); //优先级别
lblPayment.Caption:=GetDBString('ORD50002017'); //付款方式
lblFrom.Caption:=GetDBString('ORD50002018'); //来源类型
// lblOrder.Caption:=GetDBString('ORD50002019'); //来源单号
lblAmount.Caption:=GetDBString('ORD50002020'); //金额总计
lblDisRate.Caption:=GetDBString('ORD50002021'); //折扣比率
lblDiscount.Caption:=GetDBString('ORD50002022'); //折扣金额
lblCharge.Caption:=GetDBString('ORD50002023'); //特殊费用
lblNetAmt.Caption:=GetDBString('ORD50002024'); //应收金额
lblCust.Caption:=GetDBString('ORD50002025'); //客户编号
lblPhone.Caption:=GetDBString('ORD50002026'); //电话号码
lblAddress.Caption:=GetDBString('ORD50002027'); //客户地址
lblFax.Caption:=GetDBString('ORD50002028'); //传真号码
lblContact.Caption:=GetDBString('ORD50002029'); //联系人员
lblDept.Caption:=GetDBString('ORD50002030'); //部门名称
lblPosit.Caption:=GetDBString('ORD50002031'); //职务名称
lblPlace.Caption:=GetDBString('ORD50002032'); //交货地点
lblRegion.Caption:=GetDBString('ORD50002033'); //所属地区
lblPlacePhone.Caption:=GetDBString('ORD50002034'); //电话号码
lblPlaceAddress.Caption:=GetDBString('ORD50002035'); //交货地址
lblPlaceFax.Caption:=GetDBString('ORD50002036'); //传真号码
lblPlaceContact.Caption:=GetDBString('ORD50002037'); //联系人员
lblPlaceDept.Caption:=GetDBString('ORD50002038'); //部门名称
lblPlacePosit.Caption:=GetDBString('ORD50002039'); //职务名称
ADOQuery1O500A_001.DisplayLabel:=GetDBString('ORD50002040'); //报价单号
ADOQuery1O100_002.DisplayLabel:=GetDBString('ORD50002041'); //报价类型
ADOQuery1O500A_003.DisplayLabel:=GetDBString('ORD50002042'); //报价日期
ADOQuery1O500A_004.DisplayLabel:=GetDBString('ORD50002043'); //报价状态
ADOQuery1H150_002.DisplayLabel:=GetDBString('ORD50002044'); //销售员号
ADOQuery1H150_003.DisplayLabel:=GetDBString('ORD50002045'); //销售员名
ADOQuery1G100_002.DisplayLabel:=GetDBString('ORD50002046'); //币别编号
ADOQuery1G100_003.DisplayLabel:=GetDBString('ORD50002047'); //币别名称
ADOQuery1O500A_008.DisplayLabel:=GetDBString('ORD50002048'); //币别汇率
ADOQuery1G110_002.DisplayLabel:=GetDBString('ORD50002049'); //付款方式
ADOQuery1O500A_010.DisplayLabel:=GetDBString('ORD50002050'); //来源类型
ADOQuery1O500A_012.DisplayLabel:=GetDBString('ORD50002052'); //金额总计
ADOQuery1O500A_013.DisplayLabel:=GetDBString('ORD50002053'); //折扣比率
ADOQuery1O500A_014.DisplayLabel:=GetDBString('ORD50002054'); //折扣金额
ADOQuery1O500A_015.DisplayLabel:=GetDBString('ORD50002055'); //特殊费用
ADOQuery1O500A_016.DisplayLabel:=GetDBString('ORD50002056'); //应收金额
ADOQuery1O150_002.DisplayLabel:=GetDBString('ORD50002057'); //客户编号
ADOQuery1O150_003.DisplayLabel:=GetDBString('ORD50002058'); //客户名称
ADOQuery1O150_005.DisplayLabel:=GetDBString('ORD50002059'); //电话号码
ADOQuery1O150_006.DisplayLabel:=GetDBString('ORD50002060'); //传真号码
ADOQuery1O150_012.DisplayLabel:=GetDBString('ORD50002061'); //客户址址
ADOQuery1O120_002.DisplayLabel:=GetDBString('ORD50002093'); //所属地区
ADOQuery1O500A_018.DisplayLabel:=GetDBString('ORD50002062'); //交货地址
ADOQuery1O500A_019.DisplayLabel:=GetDBString('ORD50002063'); //提货方式
ADOQuery1O500A_020.DisplayLabel:=GetDBString('ORD50002064'); //销售条款
ADOQuery1O500A_021.DisplayLabel:=GetDBString('ORD50002065'); //备注说明
ADOQuery1O500A_022.DisplayLabel:=GetDBString('ORD50002066'); //制单日期
ADOQuery1O500A_023.DisplayLabel:=GetDBString('ORD50002067'); //制单人员
ADOQuery1O500A_024.DisplayLabel:=GetDBString('ORD50002068'); //修改日期
ADOQuery1O500A_025.DisplayLabel:=GetDBString('ORD50002069'); //修改人员
ADOQuery1O500A_026.DisplayLabel:=GetDBString('ORD50002029'); //联系人名
ADOQuery1O500A_027.DisplayLabel:=GetDBString('ORD50002148'); //优先级别
ADOQuery1O152_002.DisplayLabel:=GetDBString('ORD50002150'); //交货地点
ADOQuery1O152_003.DisplayLabel:=GetDBString('ORD50002151'); //所属地区
ADOQuery1O152_004.DisplayLabel:=GetDBString('ORD50002152'); //交货地址
ADOQuery1O152_005.DisplayLabel:=GetDBString('ORD50002153'); //邮政编码
ADOQuery1O152_006.DisplayLabel:=GetDBString('ORD50002154'); //电话号码
ADOQuery1O152_007.DisplayLabel:=GetDBString('ORD50002155'); //传真号码
ADOQuery1O152_008.DisplayLabel:=GetDBString('ORD50002156'); //联系人名
adsOrd500B.Close;
adsOrd500B.CreateDataSet;
adsOrd500.Close;
adsOrd500.CreateDataSet;
SetDBGridA;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -