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

📄 uoutputreimburse.pas

📁 天涯進銷存系統
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  BillKeyDown(Key, BillBodyData, 15);
end;

procedure TfrmOutPutReimburse.UnitDBEditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    DepotPlaceDBEdit.SetFocus;
  end;  
  BillKeyDown(Key, BillBodyData, 15);
end;

procedure TfrmOutPutReimburse.DepotPlaceDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    QuantityDBEdit.SetFocus;
  end;
  BillKeyDown(Key, BillBodyData, 15);
end;

procedure TfrmOutPutReimburse.QuantityDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    PriceDBEdit.SetFocus;
  end;
  BillKeyDown(Key, BillBodyData, 15);
end;

procedure TfrmOutPutReimburse.PriceDBEditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    AgioDBEdit.SetFocus;
  end;
  BillKeyDown(Key, BillBodyData, 15);
end;

procedure TfrmOutPutReimburse.AgioDBEditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    CessDBEdit.SetFocus;
  end;
  BillKeyDown(Key, BillBodyData, 15);
end;

procedure TfrmOutPutReimburse.CessDBEditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  BillKeyDown(Key, BillBodyData, 15);
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    if BillBodyData.Fieldbyname('PartCode').asstring='' then
    begin
      PartCodeDBEdit.SetFocus;
      Exit;
    end;
    if not isStateEdit then
    begin
      if BillBodyData.RecordCount>BillBodyData.RecNo then
        BillBodyData.Next;
      PartCodeDBEdit.SetFocus;
      Exit;
    end;
    BillBodyData.Next;
    PartCodeDBEdit.SetFocus;
    if BillBodyData.Eof then
    begin
      BillBodyData.Append;
      BillBodyData.Fieldbyname('BillCode').asstring:='新单据';
      BillBodyData.Fieldbyname('ID').asinteger:=BillBodyData.RecordCount+1;
      BillBodyData.Post;
    end;
  end;
end;

procedure TfrmOutPutReimburse.QuantityDBEditExit(Sender: TObject);
begin
  if not isStateEdit then Exit;
  if Trim(QuantityDBEdit.Text)='' then QuantityDBEdit.Text:='0';
  if StrTOFloat(QuantityDBEdit.Text)>BillBodyData.Fieldbyname('REIMBURSEQRY').asfloat then
  begin
    Application.MessageBox('退货数量不可大于收货数量。',Hintinfo,$30);
    BillBodyData.Edit;
    BillBodyData.FieldByName('Quantity').asfloat:=OldSaleQty;
    BillBodyData.Post;
    Exit;
  end;
  OpenData('select PartCode, BillQuantity From StockPart where PartCode='+
           #39+Trim(PartCodeDBEdit.Text)+#39+' and DepotCode='+
           #39+BillHandData.Fieldbyname('DepotCode').asstring+#39, dmData.sdsPublic);
  if dmData.sdsPublic.FieldByName('BillQuantity').asfloat<StrTOFloat(QuantityDBEdit.Text) then
    if Application.MessageBox('库存数量不足,是否继续?',Hintinfo,$24)=idNo then
    begin
      BillBodyData.Edit;
      BillBodyData.FieldByName('Quantity').asfloat:=OldSaleQty;
      BillBodyData.Post;
    end;
  GetSum;
end;

procedure TfrmOutPutReimburse.AgioDBEditExit(Sender: TObject);
begin
  if isStateEdit then
  begin
    if Trim(AgioDBEdit.Text)='' then
    begin
      BillBodyData.Edit;
      BillBodyData.Fieldbyname('Agio').asfloat:=0;
    end;
    if (StrToFloat(AgioDBEdit.Text)>=10)or(StrToFloat(AgioDBEdit.Text)<0) then
    begin
      Application.MessageBox('折扣率只能是小于“10”和大于“0”之间的数字。',Hintinfo,$30);
      BillBodyData.Edit;
      BillBodyData.Fieldbyname('Agio').asfloat:=0;
    end;
    GetSum;
  end;
end;

procedure TfrmOutPutReimburse.CessDBEditExit(Sender: TObject);
begin
  if isStateEdit then
  begin
    if Trim(CessDBEdit.Text)='' then
    begin
      BillBodyData.Edit;
      BillBodyData.Fieldbyname('Cess').asfloat:=0;
    end;
    if StrToFloat(CessDBEdit.Text)<0 then
    begin
      Application.MessageBox('税率只能是大于“0”的数字。',Hintinfo,$30);
      BillBodyData.Edit;
      BillBodyData.Fieldbyname('Cess').asfloat:=0;
    end;
    GetSum;
  end;
end;

procedure TfrmOutPutReimburse.BillNextButtonClick(Sender: TObject);
begin
  if isStateEdit then Exit;
  BillHandData.Next;
  if BillHandData.RecNo=1 then
    BillHandData.Next;
  if BillHandData.RecordCount=BillHandData.RecNo then
  begin
    if BillHandData.GetNextPacket=0 then
      BillInfoLabel.Caption:='已经是移到第一张单据了!'
    else
      BillInfoLabel.Caption:='';
    BillHandData.Next;
  end
  else
    BillInfoLabel.Caption:='';
end;

procedure TfrmOutPutReimburse.BillPriorButtonClick(Sender: TObject);
begin
  if isStateEdit then Exit;
  BillHandData.Prior;
  if BillHandData.RecNo=1 then
    BillHandData.Prior;
  if BillHandData.Bof then
    BillInfoLabel.Caption:='已经是移到最后一张单据了!'
  else
    BillInfoLabel.Caption:='';
end;

procedure TfrmOutPutReimburse.BillDateDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (ssCtrl in Shift) and (Key=13) then
  begin
    LBEditButton2Click(Nil);
    Exit;
  end;
  if key=13 then  Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TfrmOutPutReimburse.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=27 then Close;
  if not isStateEdit then
  begin
    if key=VK_LEFT then BillNextButtonClick(Sender);
    if key=VK_RIGHT then BillPriorButtonClick(Sender);
  end;   
end;

procedure TfrmOutPutReimburse.DepotDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then  Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TfrmOutPutReimburse.DepotDBEditExit(Sender: TObject);
begin
  if not isStateEdit then Exit;
  if (Trim(DepotDBEdit.Text)<>'')
  and (Trim(DepotDBEdit.Text)<> OldDepotCode) and (isGetList) then
  begin
    BillHandData.Edit;
    TObject(List):=DepotDBEdit.Items.Objects[DepotDBEdit.ItemIndex];
    BillHandData.FieldByName('DepotCode').asstring:=List.Code;
  end;
end;

procedure TfrmOutPutReimburse.LBEditButton1Click(Sender: TObject);
begin
  if not isStateEdit then Exit;
  ClientDBEdit.SetFocus;
  SelectClient;
  if OpposingCode<>'' then
  begin
    BillHandData.Edit;
    BillHandData.FieldByName('ProviderCode').asstring :=OpposingCode;
    ClientDBEdit.Text:=OpposingCode;
  end;  
end;

procedure TfrmOutPutReimburse.LBEditButton3Click(Sender: TObject);
begin
  if not isStateEdit then Exit;
  OldInPutBillCode:=Trim(OutPutBillCodeDBEdit.Text);
  SelectBillType:=2;
  SelectBillCode:='';
  OpposingCode:=BillHandData.FieldByName('ProviderCode').asstring;
  SelectSaleBill;
  if SelectBillCode='' then Exit;
  if (OldInPutBillCode<>'') and (OldInPutBillCode<>SelectBillCode) then
  begin
    if Application.MessageBox('您选择了新入库单,要取消以前所做的修改吗?',
                              Hintinfo,$24)=idNo then Exit
    else
    begin
      with BillBodyData do
      begin
        CancelUpdates;
        First;
        while not Eof do
        begin
          Delete;
        end;  
        Append;
        Fieldbyname('BillCode').asstring:='新单据';
        Fieldbyname('ID').asInteger:=1;
        Post;
        BillSum:=0;
        PartSum:=0;
        BillHandData.Fieldbyname('TOTALSUM').asfloat:=0;
        BillHandData.FieldByName('BigSum').asstring:=
        SumSmallTOBig(BillHandData.FieldByName('TotalSum').Asfloat);
      end;
    end;
  end
  else
  begin
    BillSum:=BillHandData.Fieldbyname('TOTALSUM').asfloat;
    PartSum:=0;
  end;
  ReimbureseTableName:='PartsOutputBody';
  ReimbureseBillNo:=SelectBillCode;
  SelectPartCds:=BillBodyData;
  SelectPartType:=6;
  isReimburese:=False;  //默认没有选择商品
  FrmReimbureseParts:=TFrmReimbureseParts.Create(Application);
  FrmReimbureseParts.ShowModal;
  FrmReimbureseParts.Free;
  {如果是选择了有退货的商品}
  if isReimburese then
  begin
    Sum:=BillSum;
    BillHandData.Edit;
    BillHandData.FieldByName('OrderBillNo').asstring :=SelectBillCode;
    BillHandData.FieldByName('ProviderCode').asstring:=OpposingCode;
    BillHandData.FieldByName('ProviderName').asstring:=OpposingName;
    BillHandData.Fieldbyname('TOTALSUM').asfloat:=Sum;
    BillHandData.FieldByName('BigSum').asstring:=
    SumSmallTOBig(BillHandData.FieldByName('TotalSum').Asfloat);
  end;  
end;

procedure TfrmOutPutReimburse.ClientDBEditEnter(Sender: TObject);
begin
  if isStateEdit then
  begin
    ClientDBEdit.DataField:='ProviderCode';
    OldProviderCode:=Trim(ClientDBEdit.Text);
  end;
end;

procedure TfrmOutPutReimburse.ClientDBEditExit(Sender: TObject);
begin
  if (Trim(ClientDBEdit.Text)<>'') and (isStateEdit) and
     (Trim(ClientDBEdit.Text)<>OldProviderCode) then
  begin
    OpenData('select Code, ClientName from Clientinfo where Code='+
             #39+Trim(ClientDBEdit.Text)+#39, dmData.sdsPublic);
    if dmData.sdsPublic.IsEmpty then
    begin
      Application.MessageBox(PChar('没有编号为“'+Trim(ClientDBEdit.Text)+
                             '”的客户,请重新输入。'),Hintinfo, $30);
      BillHandData.Edit;
      BillHandData.FieldByName('ProviderCode').asstring:=OldProviderCode;
      ClientDBEdit.SetFocus;
      Exit;
    end;
    BillHandData.Edit;
    BillHandData.FieldByName('ProviderName').asstring:=
    dmData.sdsPublic.FieldByName('ClientName').asstring
  end
  else
  if (Trim(ClientDBEdit.Text)='') and
     (Trim(ClientDBEdit.Text)<>OldProviderCode) then
  begin
    BillHandData.CancelUpdates;
    BillBodyData.CancelUpdates;
    BillHandData.Append;
    BillBodyData.Append;
    BillHandData.Fieldbyname('BillCode').asstring:='新单据';
    BillHandData.FieldByName('Operator').asstring:=UserName;
    BillHandData.Fieldbyname('BILLDATE').asDateTime:=Date;
    BillHandData.FieldByName('isAccept').AsString:='0';
    BillHandData.FieldByName('isAuditing').AsString:='0';
    BillHandData.Fieldbyname('ACCEPTSUM').asFloat:=0;
    BillHandData.Fieldbyname('AGIOSUM').asFloat:=0;
    BillHandData.Fieldbyname('ReimburseType').asstring:='2';
    BillBodyData.Fieldbyname('BillCode').asstring:='新单据';
    BillBodyData.Fieldbyname('ID').asInteger:=1;
    BillBodyData.Post;
    OldSum:=0;
    Sum:=0;
    OldCode:='';
    BillInfoLabel.Caption:='';
    OldProviderCode:='';
  end;
  ClientDBEdit.DataField:='ProviderName';
end;

procedure TfrmOutPutReimburse.ClientDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (ssCtrl in Shift) and( Key=13) then
  begin
    LBEditButton1Click(Nil);
    Exit;
  end;
  if key=13 then  Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TfrmOutPutReimburse.OutPutBillCodeDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (ssCtrl in Shift) and( Key=13) then
  begin
    LBEditButton3Click(Nil);
    Exit;
  end;
  if key=13 then  Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TfrmOutPutReimburse.EXECUTEMANDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then  PartCodeDBEdit.SetFocus;
end;

procedure TfrmOutPutReimburse.QuantityDBEditEnter(Sender: TObject);
begin
  if not isStateEdit then Exit;
  if Trim(QuantityDBEdit.Text)='' then QuantityDBEdit.Text:='0';
     OldSaleQty:=StrToFloat(QuantityDBEdit.Text);
end;

procedure TfrmOutPutReimburse.EXECUTEMANDBEditEnter(Sender: TObject);
begin
  if not isStateEdit then Exit;
    SetListData('select Name From Employee', EXECUTEMANDBEdit);
end;

procedure TfrmOutPutReimburse.PriceDBEditExit(Sender: TObject);
begin
  if isStateEdit then GetSum;
end;

end.

⌨️ 快捷键说明

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