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

📄 ord500_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
    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 + -