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

📄 ord140_02.pas.svn-base

📁 开源的网站整站程序,功能强大带采集系统.
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
  cbRange.ItemIndex:=cbRange.Items.IndexOf(ARangeList[ADOQuery1.FieldByName('O140A_020').AsInteger]);
  cbRangeChange(cbRange);
  AOldCode:=edtCode.Text;
  AOldSeqNo:=edtSeqNo.Text;

  adsOrd140B.Close;
  adsOrd140B.CreateDataSet;
  adsOrd140B.DisableControls;
  qryOrd140B.Close;
  qryOrd140B.SQL.Clear;
  qryOrd140B.SQL.Add('select * from ORD140B where O140B_001='+ADOQuery1.FieldByName('O140A_001').AsString);
  qryOrd140B.Open;
  while not qryOrd140B.Eof do
  begin
    adsOrd140B.Append;
    if qryItems.Locate('FNo',qryOrd140B.FieldByName('O140B_003').Value,[]) then
    begin
      adsOrd140B.FieldByName('FNo').Value:=qryItems.FieldByName('FNo').Value;
      adsOrd140B.FieldByName('FCode').Value:=qryItems.FieldByName('FCode').Value;
      adsOrd140B.FieldByName('FName').Value:=qryItems.FieldByName('FName').Value;
    end else
    begin
      adsOrd140B.FieldByName('FNo').Value:=null;
      adsOrd140B.FieldByName('FCode').Value:=null;
      adsOrd140B.FieldByName('FName').Value:=null;
    end;
    adsOrd140B.Post;
    qryOrd140B.Next;
  end;
  adsOrd140B.First;
  adsOrd140B.EnableControls;

  adsOrd140C.Close;
  adsOrd140C.CreateDataSet;
  adsOrd140C.DisableControls;
  qryOrd140C.Close;
  qryOrd140C.SQL.Clear;
  qryOrd140C.SQL.Add('select * from ORD140C where O140C_001='+ADOQuery1.FieldByName('O140A_001').AsString+' order by O140C_002,O140C_003');
  qryOrd140C.Open;
  while not qryOrd140C.Eof do
  begin
    adsOrd140C.Append;
    adsOrd140C.FieldByName('FNo').Value:=qryOrd140C.FieldByName('O140C_002').Value;
    adsOrd140C.FieldByName('FQtyAmt').Value:=qryOrd140C.FieldByName('O140C_003').Value;
    adsOrd140C.FieldByName('FPriDis').Value:=qryOrd140C.FieldByName('O140C_004').Value;
    adsOrd140C.Post;
    qryOrd140C.Next;
  end;
  adsOrd140C.EnableControls;
  adsOrd140C.First;
end;

procedure TOrd140_02Form.InsertInit;
var
  ADate:TDateTime;
  S:String;
  ASeqNo:Integer;
begin
  inherited;
  ADate:=GetServerDate;
  S:=GetValue('select max(O140A_009) from ORD140A');
  if S='' then S:='0';
  ASeqNo:=StrToInt(S)+1;
  edtCode.Text:='';
  cbCurr.ItemIndex:=cbCurr.Items.IndexOf(ACurrName);
  edtName.Text:='';
  edtFromDate.Date:=GetMonthFirstDate(ADate);
  edtToDate.Date:=GetMonthEndDate(ADate);
  cbType.ItemIndex:=0;
  edtSeqNo.Text:=IntToStr(ASeqNo);
  memRemark.Text:='';
  cbSumDis.Checked:=False;
  cbSumDisClick(cbSumDis);

  cbItemID.Checked:=False;
  edtItemID.Text:='';
  edtItemName.Text:='';
  cbItemClass.Checked:=False;
  edtItemClass.Text:='';
  cbCustID.Checked:=False;
  edtCustID.Text:='';
  edtCustName.Text:='';
  cbCustClass.Checked:=False;
  edtCustClass.Text:='';
  cbCustGrade.Checked:=False;
  edtCustGrade.Text:='';
  edtCustGradeName.Text:='';
  cbSaleID.Checked:=False;
  edtSaleID.Text:='';
  edtSaleName.Text:='';
  cbSaleGrade.Checked:=False;
  edtSaleGrade.Text:='';
  edtSaleGradeName.Text:='';
  cbRegion.Checked:=False;
  edtRegion.Text:='';

  adsOrd140B.Close;
  adsOrd140B.CreateDataSet;
  adsOrd140C.Close;
  adsOrd140C.CreateDataSet;

  cbSame.Checked:=True;
  cbRange.ItemIndex:=0;
end;

procedure TOrd140_02Form.SetEmptyInit;
begin
  inherited;
  InsertInit;
end;

procedure TOrd140_02Form.ActSetPage1Execute(Sender: TObject);
begin
  inherited;
  edtCode.SetFocus;
end;

procedure TOrd140_02Form.ActSetPage2Execute(Sender: TObject);
begin
  inherited;
  cbItemID.SetFocus;
end;

procedure TOrd140_02Form.ActSetPage3Execute(Sender: TObject);
begin
  inherited;
  cbRange.SetFocus;
  cbRange.Clear;
  cbRange.Items.AddStrings(ARangeList);
  if (cbItemID.Checked) or (cbItemClass.Checked) then
  begin
    cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[0]));
    cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[1]));
  end;
  if (cbCustID.Checked) or (cbCustClass.Checked) or (cbCustGrade.Checked) then
  begin
    cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[2]));
    cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[3]));
    cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[4]));
  end;
  if (cbSaleID.Checked) or (cbSaleGrade.Checked) then
  begin
    cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[5]));
    cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[6]));
  end;
  if cbRegion.Checked then cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[7]));

  //0=料品编号,1=料品分类,2=客户编号,3=客户分类,4=客户级别,5=销售员号,6=销售员级别,7=交货地区
  if cbSumDis.Checked then
  begin
    cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[0]));
    cbRange.Items.Delete(cbRange.Items.IndexOf(ARangeList[1]));
  end;

  if AMode='ADD' then
    cbRange.ItemIndex:=0
  else
    cbRange.ItemIndex:=cbRange.Items.IndexOf(ARangeList[ADOQuery1.FieldByName('O140A_020').AsInteger]);

  if cbType.ItemIndex in [0,1] then adsOrd140CFQtyAmt.DisplayLabel:=GetDBString('ORD14002050');  //数量
  if cbType.ItemIndex in [2,3] then adsOrd140CFQtyAmt.DisplayLabel:=GetDBString('ORD14002051');  //金额
  if cbType.ItemIndex in [0,2] then adsOrd140CFPriDis.DisplayLabel:=GetDBString('ORD14002052');  //折扣率
  if cbType.ItemIndex in [1,3] then adsOrd140CFPriDis.DisplayLabel:=GetDBString('ORD14002053');  //价格
  adsOrd140B.Next;
  adsOrd140B.Prior;
end;

procedure TOrd140_02Form.ActSetPage4Execute(Sender: TObject);
begin
  inherited;
  lblFinish3.Alignment:=taLeftJustify;
  lblFinish4.Alignment:=taLeftJustify;
  lblFinish5.Alignment:=taLeftJustify;
  lblFinish6.Alignment:=taLeftJustify;
  lblFinish7.Alignment:=taLeftJustify;
  lblFinish8.Alignment:=taLeftJustify;
  lblFinish3.Caption:=lblCode.Caption+': '+edtCode.Text;
  lblFinish4.Caption:=lblName.Caption+': '+edtName.Text;
  lblFinish5.Caption:=lblCurr.Caption+': '+cbCurr.Text;
  lblFinish6.Caption:=lblFromDate.Caption+': '+edtFromDate.Text;
  lblFinish7.Caption:=lblToDate.Caption+': '+edtToDate.Text;
  lblFinish8.Caption:=lblType.Caption+': '+cbType.Text;
end;

procedure TOrd140_02Form.ActCheckPage1Execute(Sender: TObject);
begin
  inherited;
  if trim(edtCode.Text)='' then
  begin
    ShowMsg('UMS10000570');  //特价编号不能为空
    edtCode.SetFocus;
    Abort;
  end;
  if edtCode.Text<>AOldCode then
  begin
    if IsExists('select 1 from ORD140A where O140A_002='+''''+edtCode.Text+'''') then
    begin
      ShowMsg('UMS10000571');  //特价编号已存在,请重新输入
      edtCode.SetFocus;
      Abort;
    end;
  end;
  if trim(edtName.Text)='' then
  begin
    ShowMsg('UMS10000572');  //特价名称不能为空
    edtName.SetFocus;
    Abort;
  end;
  if edtFromDate.Text='' then
  begin
    ShowMsg('UMS10000235');  //生效日期不能为空
    edtFromDate.SetFocus;
    Abort;
  end;
  if edtToDate.Text='' then
  begin
    ShowMsg('UMS10000573');  //失效日期不能为空
    edtToDate.SetFocus;
    Abort;
  end;
  if edtToDate.Date<edtFromDate.Date then
  begin
    ShowMsg('UMS10000574');  //生效日期不能大于失效日期
    edtToDate.SetFocus;
    Abort;
  end;
  if trim(edtSeqNo.Text)='' then
  begin
    ShowMsg('UMS10000575');  //顺序编号不能为空
    edtSeqNo.SetFocus;
    Abort;
  end;
  if edtSeqNo.Text<>AOldSeqNo then
  begin
    if IsExists('select 1 from ORD140A where O140A_009='+edtSeqNo.Text) then
    begin
      ShowMsg('UMS10000576');  //顺序编号已存在,请重新输入
      edtSeqNo.SetFocus;
      Abort;
    end;
  end;
end;

procedure TOrd140_02Form.ActCheckPage2Execute(Sender: TObject);
begin
  inherited;
  if (cbItemID.Checked) and (not qryInv150.Locate('I150_002',edtItemID.Text,[])) then
  begin
    ShowMsg('UMS10000498');  //无效的料品编号,请重新输入
    edtItemID.SetFocus;
    Abort;
  end;
  if (cbItemClass.Checked) and (not qryInv120.Locate('I120_003',edtItemClass.Text,[])) then
  begin
    ShowMsg('UMS10000577');  //无效的料品分类,请重新输入
    edtItemClass.SetFocus;
    Abort;
  end;
  if (cbCustID.Checked) and (not qryOrd150.Locate('O150_002',edtCustID.Text,[])) then
  begin
    ShowMsg('UMS10000497');  //无效的客户编号,请重新输入
    edtCustID.SetFocus;
    Abort;
  end;
  if (cbCustClass.Checked) and (not qryOrd110.Locate('O110_002',edtCustClass.Text,[])) then
  begin
    ShowMsg('UMS10000578');  //无效的客户分类编号,请重新输入
    edtCustClass.SetFocus;
    Abort;
  end;
  if (cbCustGrade.Checked) and (not qryCustGrade.Locate('S100_002',edtCustGrade.Text,[])) then
  begin
    ShowMsg('UMS10000579');  //无效的客户级别,请重新输入
    edtCustGrade.SetFocus;
    Abort;
  end;
  if (cbSaleID.Checked) and (not qryHrm150.Locate('H150_002',edtSaleID.Text,[])) then
  begin
    ShowMsg('UMS10000580');  //无效的销售员号,请重新输入
    edtSaleID.SetFocus;
    Abort;
  end;
  if (cbSaleGrade.Checked) and (not qrySaleGrade.Locate('S100_002',edtSaleGrade.Text,[])) then
  begin
    ShowMsg('UMS10000581');  //无效的销售员级别,请重新输入
    edtSaleGrade.SetFocus;
    Abort;
  end;
  if (cbRegion.Checked) and (not qryOrd120.Locate('O120_002',edtRegion.Text,[])) then
  begin
    ShowMsg('UMS10000582');  //无效的交货地区,请重新输入
    edtRegion.SetFocus;
    Abort;
  end;
end;

procedure TOrd140_02Form.ActCheckPage3Execute(Sender: TObject);
var
  ANo:Integer;
  AQty:Double;
  ABookmark:TBookmark;
begin
  inherited;
  if adsOrd140B.State in [dsInsert,dsEdit] then adsOrd140B.Post;
  if adsOrd140C.State in [dsInsert,dsEdit] then adsOrd140C.Post;
  adsOrd140C.DisableControls;
  adsOrd140C.Filter:='';
  adsOrd140C.Filtered:=False;
  if adsOrd140C.IsEmpty then
  begin
    ShowMsg('UMS10000583');  //数量金额等级不能为空
    adsOrd140C.EnableControls;
    dbgOrd140C.SetFocus;
    Abort;
  end;
  adsOrd140C.First;
  while not adsOrd140C.Eof do
  begin
    ANo:=adsOrd140CFNo.Value;
    AQty:=adsOrd140CFQtyAmt.Value;
    ABookmark:=adsOrd140C.GetBookmark;
    adsOrd140C.Next;
    while not adsOrd140C.Eof do
    begin
      if (adsOrd140CFNo.Value=ANo) and (adsOrd140CFQtyAmt.Value=AQty) then
      begin
        ShowMsg('UMS10000592');  //数量或金额中不能输入重复的数值
        adsOrd140C.GotoBookmark(ABookmark);
        adsOrd140C.FreeBookmark(ABookmark);
        adsOrd140C.EnableControls;
        adsOrd140B.Next;
        adsOrd140B.Prior;
        adsOrd140BAfterScroll(adsOrd140B);
        Abort;
      end;
      adsOrd140C.Next;
    end;
    adsOrd140C.GotoBookmark(ABookmark);
    adsOrd140C.FreeBookmark(ABookmark);
    adsOrd140C.Next;
  end;
  adsOrd140C.EnableControls;
end;

procedure TOrd140_02Form.ActCheckPage4Execute(Sender: TObject);
begin
  inherited;
  if AMode='ADD' then ADOQuery1.Append else ADOQuery1.Edit;
  ADOQuery1.FieldByName('O140A_002').AsString:=edtCode.Text;
  ADOQuery1.FieldByName('O140A_003').AsString:=edtName.Text;
  ADOQuery1.FieldByName('O140A_004').AsInteger:=cbType.ItemIndex;
  ADOQuery1.FieldByName('O140A_005').AsString:=edtFromDate.Text;
  ADOQuery1.FieldByName('O140A_006').AsString:=edtToDate.Text;
  qryGld100.Locate('G100_003',cbCurr.Text,[]);
  if cbCurr.ItemIndex<>0 then
    ADOQuery1.FieldByName('O140A_007').Value:=qryGld100.FieldByName('G100_001').Value
  else
    ADOQuery1.FieldByName('O140A_007').Value:=null;
  ADOQuery1.FieldByName('O140A_008').AsBoolean:=cbSumDis.Checked;
  ADOQuery1.FieldByName('O140A_009').AsString:=edtSeqNo.Text;
  ADOQuery1.FieldByName('O140A_010').AsString:=memRemark.Text;

  if cbItemID.Checked then ADOQuery1.FieldByName('O140A_011').Value:=qryInv150.FieldByName('I150_001').Value;
  if cbItemClass.Checked then ADOQuery1.FieldByName('O140A_012').Value:=qryInv120.FieldByName('I120_001').Value;
  if cbCustID.Checked then ADOQuery1.FieldByName('O140A_013').Value:=qryOrd150.FieldByName('O150_001').Value;
  if cbCustClass.Checked then ADOQuery1.FieldByName('O140A_014').Value:=qryOrd110.FieldByName('O110_001').Value;
  if cbCustGrade.Checked then ADOQuery1.FieldByName('O140A_015').Value:=qryCustGrade.FieldByName('S100_001').Value;
  if cbSaleID.Checked then ADOQuery1.FieldByName('O140A_016').Value:=qryHrm150.FieldByName('H150_001').Value;
  if cbSaleGrade.Checked then ADOQuery1.FieldByName('O140A_017').Value:=qrySaleGrade.FieldByName('S100_001').Value;
  if cbRegion.Checked then ADOQuery1.FieldByName('O140A_018').Value:=qryOrd120.FieldByName('O120_001').Value;

  ADOQuery1.FieldByName('O140A_019').AsBoolean:=cbSame.Checked;
  ADOQuery1.FieldByName('O140A_020').AsInteger:=ARangeList.IndexOf(cbRange.Text);
  ADOQuery1.FieldByName('O140A_021').AsInteger:=cbAmtType.ItemIndex;
  ADOQuery1.FieldByName('O140A_022').AsBoolean:=cbOrder.Checked;
  ADOQuery1.Post;
  ADOQuery1.Refresh;


  ExecSQL('delete from ORD140B where O140B_001='+ADOQuery1.FieldByName('O140A_001').AsString);
  qryOrd140B.Close;
  qryOrd140B.SQL.Clear;
  qryOrd140B.SQL.Add('select * from ORD140B where O140B_001='+ADOQuery1.FieldByName('O140A_001').AsString);
  qryOrd140B.Open;

  adsOrd140B.First;
  while not adsOrd140B.Eof do
  begin
    qryOrd140B.Append;
    qryOrd140B.FieldByName('O140B_001').Value:=ADOQuery1.FieldByName('O140A_001').Value;
    qryOrd140B.FieldByName('O140B_002').Value:=ARangeList.IndexOf(cbRange.Text);
    qryOrd140B.FieldByName('O140B_003').Value:=adsOrd140B.FieldByName('FNo').Value;
    qryOrd140B.Post;
    adsOrd140B.Next;
  end;

  ExecSQL('delete from ORD140C where O140C_001='+ADOQuery1.FieldByName('O140A_001').AsString);
  qryOrd140C.Close;
  qryOrd140C.SQL.Clear;
  qryOrd140C.SQL.Add('select * from ORD140C where O140C_001='+ADOQuery1.FieldByName('O140A_001').AsString);
  qryOrd140C.Open;

  adsOrd140C.Filter:='';
  adsOrd140C.Filtered:=False;
  adsOrd140C.First;
  while not adsOrd140C.Eof do
  begin
    qryOrd140C.Append;
    qryOrd140C.FieldByName('O140C_001').Value:=ADOQuery1.FieldByName('O140A_001').Value;
    if cbSame.Checked then
      qryOrd140C.FieldByName('O140C_002').Value:=0
    else
      qryOrd140C.FieldByName('O140C_002').Value:=adsOrd140C.FieldByName('FNo').Value;
    qryOrd140C.FieldByName('O140C_003').Value:=adsOrd140C.FieldByName('FQtyAmt').Value;
    qryOrd140C.FieldByName('O140C_004').Value:=adsOrd140C.FieldByName('FPriDis').Value;
    qryOrd140C.Post;
    adsOrd140C.Next;
  end;
  ShowMsg('UMS10000591');  //特殊价格设置成功
end;

procedure TOrd140_02Form.sbItemIDClick(Sender: TObject);
begin
  inherited;
//料品编号
  if not edtItemID.Focused then edtItemID.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv150,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtItemID.Text:=qryInv150.FieldByName('I150_002').AsString;
    edtItemName.Text:=qryInv150.FieldByName('I150_003').AsString;
  end;
end;

procedure TOrd140_02Form.edtItemIDExit(Sender: TObject);
begin
  inherited;
//料品编号
  if trim(edtItemID.Text)='' then Exit;
  if qryInv150.Locate('I150_002',edtItemID.Text,[]) then
  begin
    edtItemID.Text:=qryInv150.FieldByName('I150_002').Value;
    edtItemName.Text:=qryInv150.FieldByName('I150_003').Value;
  end else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -