📄 ord510_02.pas.svn-base
字号:
edtPriority: TEdit;
lblPriority: TLabel;
UpDown1: TUpDown;
adsOrd510BFInvoice: TFloatField;
adsOrd510BFDiscount: TFloatField;
adsOrd510BFTotalAmt: TFloatField;
adsOrd510BFInAmount: TFloatField;
adsOrd510FInvoice: TFloatField;
adsOrd510FDiscount: TFloatField;
adsOrd510FTotalAmt: TFloatField;
adsOrd510FInAmount: TFloatField;
lblCOrder: TLabel;
edtCOrder: TEdit;
ADOQuery1O510A_028: TWideStringField;
qryOrd153O153_008: TDateTimeField;
qryOrd153O153_010: TDateTimeField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ADOQuery1O510A_004GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure ADOQuery1O510A_010GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure ADOQuery1O510A_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 adsOrd510BBeforePost(DataSet: TDataSet);
procedure adsOrd510BNewRecord(DataSet: TDataSet);
procedure adsOrd510BeforePost(DataSet: TDataSet);
procedure adsOrd510NewRecord(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 pmOrd510BPopup(Sender: TObject);
procedure edtUnitCustomDlg(Sender: TObject);
procedure cbCurrChange(Sender: TObject);
procedure adsOrd510BAfterScroll(DataSet: TDataSet);
procedure adsOrd510AfterScroll(DataSet: TDataSet);
procedure ActPrintExecute(Sender: TObject);
procedure edtItemEnter(Sender: TObject);
procedure wwDBGrid1ColExit(Sender: TObject);
procedure edtAmountChange(Sender: TObject);
procedure sbItemClick(Sender: TObject);
procedure sbMacNoClick(Sender: TObject);
procedure edtItemIDExit(Sender: TObject);
procedure edtMacNoExit(Sender: TObject);
procedure sbPlaceContactClick(Sender: TObject);
procedure edtPersonEnter(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..2] of string;
APersonNo:Integer;
APersonID,APersonName: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);
function GetTotalAmt(Amount:Double):Double;
{ 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
Ord510_02Form: TOrd510_02Form;
implementation
uses SYSDATA, HwSelData, OrdComm, HwSelDataA;
{$R *.dfm}
//计算应开发票金额
//每行记录应开发票金额=(定单折扣额/定单行应收额总计)*每行记录的应收帐款额
function TOrd510_02Form.GetTotalAmt(Amount:Double):Double;
var
ARate:Double;
begin
Result:=Amount;
if StrToFloatA(edtAmount.Text)=0 then Exit;
ARate:=StrToFloatA(edtDiscount.Text)/StrToFloatA(edtAmount.Text);
Result:=Amount-Amount*ARate;
end;
procedure TOrd510_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 ORD510A A,ORD100 B,ORD150 C,GLD100 D,GLD110 E');
ADOQuery1.SQL.Add('where A.O510A_002=B.O100_001 and A.O510A_017=C.O150_001 and A.O510A_007=D.G100_001 and A.O510A_009=E.G110_001');
ADOQuery1.SQL.Add('order by A.O510A_022 asc');
ADOQuery1.Open;
ADOQuery1.Locate('O510A_001',ACode,[]);
ADOQuery1.EnableControls;
ADOQuery1AfterScroll(ADOQuery1);
end;
procedure TOrd510_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 TOrd510_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';
adsOrd510BFPlace.Visible:=not tsPlace.TabVisible;
wwDBGrid1.Refresh;
end;
procedure TOrd510_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 TOrd510_02Form.SetInterface;
begin
inherited;
Caption:=GetDBString('ORD51002001'); //销售定单维护
gbInfo.Caption:=GetDBString('ORD51002002'); //基本信息
tsCust.Caption:=GetDBString('ORD51002003'); //客户信息
tsPlace.Caption:=GetDBString('ORD51002004'); //交货地址
tsTerm.Caption:=GetDBString('ORD51002005'); //条款信息
tsRemark.Caption:=GetDBString('ORD51002006'); //备注信息
tsItem.Caption:=GetDBString('ORD51002007'); //产品信息
tsCharge.Caption:=GetDBString('ORD51002008'); //特殊费用
lblCode.Caption:=GetDBString('ORD51002009'); //销售单号
lblType.Caption:=GetDBString('ORD51002010'); //销售类型
lblDate.Caption:=GetDBString('ORD51002011'); //销售日期
lblStatues.Caption:=GetDBString('ORD51002012'); //定单状态
lblPerson.Caption:=GetDBString('ORD51002013'); //销售人员
lblPick.Caption:=GetDBString('ORD51002014'); //提货方式
lblCurr.Caption:=GetDBString('ORD51002015'); //币别名称
lblRate.Caption:=GetDBString('ORD51002016'); //币别汇率
lblPayment.Caption:=GetDBString('ORD51002017'); //付款方式
lblFrom.Caption:=GetDBString('ORD51002018'); //来源类型
// lblOrder.Caption:=GetDBString('ORD51002019'); //来源单号
lblAmount.Caption:=GetDBString('ORD51002020'); //金额总计
lblDisRate.Caption:=GetDBString('ORD51002021'); //折扣比率
lblDiscount.Caption:=GetDBString('ORD51002022'); //折扣金额
lblCharge.Caption:=GetDBString('ORD51002023'); //特殊费用
lblNetAmt.Caption:=GetDBString('ORD51002024'); //应收金额
lblCust.Caption:=GetDBString('ORD51002025'); //客户编号
lblPhone.Caption:=GetDBString('ORD51002026'); //电话号码
lblAddress.Caption:=GetDBString('ORD51002027'); //客户地址
lblFax.Caption:=GetDBString('ORD51002028'); //传真号码
lblContact.Caption:=GetDBString('ORD51002029'); //联系人员
lblDept.Caption:=GetDBString('ORD51002030'); //部门名称
lblPosit.Caption:=GetDBString('ORD51002031'); //职务名称
lblPlace.Caption:=GetDBString('ORD51002032'); //交货地点
lblRegion.Caption:=GetDBString('ORD51002033'); //所属地区
lblPlacePhone.Caption:=GetDBString('ORD51002034'); //电话号码
lblPlaceAddress.Caption:=GetDBString('ORD51002035'); //交货地址
lblPlaceFax.Caption:=GetDBString('ORD51002036'); //传真号码
lblPlaceContact.Caption:=GetDBString('ORD51002037'); //联系人员
lblPlaceDept.Caption:=GetDBString('ORD51002038'); //部门名称
lblPlacePosit.Caption:=GetDBString('ORD51002039'); //职务名称
ADOQuery1O510A_001.DisplayLabel:=GetDBString('ORD51002040'); //销售单号
ADOQuery1O100_002.DisplayLabel:=GetDBString('ORD51002041'); //销售类型
ADOQuery1O510A_003.DisplayLabel:=GetDBString('ORD51002042'); //销售日期
ADOQuery1O510A_004.DisplayLabel:=GetDBString('ORD51002043'); //定单状态
ADOQuery1H150_002.DisplayLabel:=GetDBString('ORD51002044'); //员工编号
ADOQuery1H150_003.DisplayLabel:=GetDBString('ORD51002045'); //员工姓名
ADOQuery1G100_002.DisplayLabel:=GetDBString('ORD51002046'); //币别编号
ADOQuery1G100_003.DisplayLabel:=GetDBString('ORD51002047'); //币别名称
ADOQuery1O510A_008.DisplayLabel:=GetDBString('ORD51002048'); //币别汇率
ADOQuery1G110_002.DisplayLabel:=GetDBString('ORD51002049'); //付款方式
ADOQuery1O510A_010.DisplayLabel:=GetDBString('ORD51002050'); //来源类型
ADOQuery1O510A_012.DisplayLabel:=GetDBString('ORD51002052'); //金额总计
ADOQuery1O510A_013.DisplayLabel:=GetDBString('ORD51002053'); //折扣比率
ADOQuery1O510A_014.DisplayLabel:=GetDBString('ORD51002054'); //折扣金额
ADOQuery1O510A_015.DisplayLabel:=GetDBString('ORD51002055'); //特殊费用
ADOQuery1O510A_016.DisplayLabel:=GetDBString('ORD51002056'); //应收金额
ADOQuery1O150_002.DisplayLabel:=GetDBString('ORD51002057'); //客户编号
ADOQuery1O150_003.DisplayLabel:=GetDBString('ORD51002058'); //客户名称
ADOQuery1O150_005.DisplayLabel:=GetDBString('ORD51002059'); //电话号码
ADOQuery1O150_006.DisplayLabel:=GetDBString('ORD51002060'); //传真号码
ADOQuery1O150_012.DisplayLabel:=GetDBString('ORD51002061'); //客户址址
ADOQuery1O510A_018.DisplayLabel:=GetDBString('ORD51002062'); //交货地址
ADOQuery1O510A_019.DisplayLabel:=GetDBString('ORD51002063'); //提货方式
ADOQuery1O510A_020.DisplayLabel:=GetDBString('ORD51002064'); //销售条款
ADOQuery1O510A_021.DisplayLabel:=GetDBString('ORD51002065'); //备注说明
ADOQuery1O510A_022.DisplayLabel:=GetDBString('ORD51002066'); //制单日期
ADOQuery1O510A_023.DisplayLabel:=GetDBString('ORD51002067'); //制单人员
ADOQuery1O510A_024.DisplayLabel:=GetDBString('ORD51002068'); //修改日期
ADOQuery1O510A_025.DisplayLabel:=GetDBString('ORD51002069'); //修改人员
ADOQuery1O510A_026.DisplayLabel:=GetDBString('ORD51002152'); //联系人名
ADOQuery1O510A_027.DisplayLabel:=GetDBString('ORD51002153'); //优先级别
adsOrd510B.Close;
adsOrd510B.CreateDataSet;
adsOrd510.Close;
adsOrd510.CreateDataSet;
SetDBGridA;
SetDBGridB;
wwDBGrid1.ColumnByName('FItemID').DisplayLabel:=GetDBString('ORD51002070'); //产品编号
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -