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

📄 ord510_02.pas.svn-base

📁 开源的网站整站程序,功能强大带采集系统.
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
    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 + -