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

📄 saleunit.pas

📁 一个图书批发商的通用软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
begin
  if (qrySaleUnit.State in[dsEdit,dsInsert]) and(cxlcbSaleBookingId.Text<>'') and(edtNumber.Text<>'') then
  with qrySaleUnit do
  begin
    FieldByName('SaleId').AsString :=edtNumber.Text;
    FieldByName('WholeSaling').AsString :=cbWholeBooking.Text;
    FieldByName('SaleDate').AsDateTime :=dtpDateNow.DateTime;
    FieldByName('Unitid').AsString :=cxlcbSaleBookingId.Text;
    FieldByName('UnitName').AsString :=edtUnitName.Text;
    FieldByName('OtherFee').AsString :=edtOtherMoney.Text;
    FieldByName('Memo').AsString :=edtMemo.Text;
    Post;
    if (qrySaleSubs.State in[dsEdit,dsInsert]) then
    qrySaleSubs.Post;
  end;

end;

procedure TfrmSaleUnit.dxBarLargeButton3Click(Sender: TObject);
var tempstr:string;
begin
  if edtNumber.Text<>'' then
  if Application.MessageBox('真的要删除销售订单吗?',Title,MB_ICONQUESTION+MB_YESNO)=Idyes then
  with dmData.qryTemp do
  begin
    tempstr :=edtNumber.Text;
    Close;
    SQL.Text :='Delete From tbSaleUnit where SaleId='''+tempstr+'''';
    ExecSQL;
    dsdbEdit.DataSet :=nil;
    edtNumber.Text :='';
    GetPH(cbWholeBooking);
    cxlcbSaleBookingId.Text :='';
  end;
  with qrySaleSubs do
  begin
    First;
    while not Eof do
     Delete;
  end;
end;

procedure TfrmSaleUnit.cxlcbSaleBookingIdPropertiesChange(
  Sender: TObject);
begin
  if qryClient.Locate('ClientId',cxlcbSaleBookingId.Text,[loCaseInsensitive]) then
  dsdbEdit.DataSet :=qryClient;
  if (edtNumber.Text ='') or(cxlcbSaleBookingId.Text='') then
  begin
    dxDBGrid1.Enabled :=False;
    bbtnAdd.Enabled :=False;
    bbtnDelete.Enabled :=False;
    bbtnEdit.Enabled :=False;
  end else
  begin
    dxDBGrid1.Enabled :=True;
    bbtnAdd.Enabled :=True;
    bbtnDelete.Enabled :=True;
    bbtnEdit.Enabled :=True;
  end;
end;

procedure TfrmSaleUnit.dxBarLargeButton4Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmSaleUnit.qrySaleSubsBeforePost(DataSet: TDataSet);
begin
  with qrySaleSubs do
  begin
    if FieldByName('UnitId').AsString='' then
    FieldByName('UnitId').AsString :=cxlcbSaleBookingId.Text;
    if FieldByName('SaleId').AsString ='' then
    FieldByName('SaleId').AsString :=edtNumber.Text;
  end;
end;

procedure TfrmSaleUnit.FormDestroy(Sender: TObject);
begin
  qryClient.Close;
end;

procedure TfrmSaleUnit.edtOtherMoneyKeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (key in['0'..'9','.',#8]) then
  Key :=#0;
end;

procedure TfrmSaleUnit.qrySaleSubsAfterOpen(DataSet: TDataSet);
begin
  //qryBookingSubs.FieldByName('BookCount').OnValidate :=GetTotalMoney;
  qrySaleSubs.FieldByName('Discount').OnGetText :=dmData.kkg;
end;

procedure TfrmSaleUnit.dxDBGrid1BookIdChange(Sender: TObject);
begin
  //qryBookingSubs.FieldByName('BookName').AsString :=qryBookClass.fieldbyname('BookName').AsString;
  //qryBookingSubs.FieldByName('BookEdition').AsString :=qryBookClass.fieldbyname('BookEdition').AsString;
  //qryBookingSubs.FieldByName('BookPrice').AsString :=qryBookClass.fieldbyname('BookPrice').AsString;
end;

procedure TfrmSaleUnit.qrySaleSubsAfterPost(DataSet: TDataSet);
var AVgDiscount,AvgBookPrice,SumBookCount,SumRealMoney,SumTotalMoney :Real;

begin
  with dmData.qryTemp do
  begin
    Close;
    Sql.Text :='Select Avg(Discount),Avg(BookPrice),Sum(BookCount),Sum(TotalMoney),Sum(RealMoney) From tbSaleSubs Where SaleId='''+edtNumber.text+'''';
    Open;
    AVgDiscount :=Fields[0].AsFloat;
    AvgBookPrice:=Fields[1].AsFloat;
    SumBookCount:=Fields[2].AsFloat;
    SumTotalMoney:=Fields[3].AsFloat;
    SumRealMoney:=Fields[4].AsFloat;
    edtAVgDiscount.Text :=FormatFloat('0',AVgDiscount*100)+'%';
    edtAvgBookPrice.Text :=FormatFloat('0.00',AvgBookPrice);
    edtSumBookCount.Text :=FloatToStr(SumBookCount);
    edtSumTotalMoney.Text :=FormatFloat('0.00',SumTotalMoney);
    edtSumRealMoney.Text :=FormatFloat('0.00',SumRealMoney);
    edtTaxMoney.Text := FormatFloat('0.00',SumRealMoney/1.13*0.13);
    edtNotax.Text :=FormatFloat('0.00',SumRealMoney-strtofloat(edtTaxMoney.Text));
    edtzkMoney.Text := FormatFloat('0.00',SumTotalMoney-SumRealMoney);
    edtGetMoney.Text :=edtSumRealMoney.Text;
  end;
end;
procedure TfrmSaleUnit.bbtnEditClick(Sender: TObject);
var HouseName :string;
begin
  if qrySaleSubs.IsEmpty then Abort;
  frmSaleEdit :=TfrmSaleEdit.Create(self);
  with frmSaleEdit do
  begin
    try
      Tag :=0; //修改标志
      qrySaleSubs.Edit;
      frmSaleEdit.cxlcbBookId.Text :=qrySaleSubs.fieldbyname('BookId').AsString;
      HouseName :=qrySaleSubs.fieldbyname('HousePos').AsString;
      if not qryHouse.Active then qryHouse.Open;
      //cxcbPosHouse.Text :=HouseName;//qryHouse.Lookup('HouseName',HouseName,'HouseId');
      ShowModal;
    finally
      Free;
    end;
  end;
end;

procedure TfrmSaleUnit.dxBarLargeButton6Click(Sender: TObject);
begin
  if not qrySaleSubs.IsEmpty then
  with frReport1,qryClient do
  begin
    frVariables['BookingId'] :=edtNumber.Text;
    frVariables['WholeBooking'] :=cbWholeBooking.Text ;
    frVariables['DATE'] :=dtpDateNow.Date ;
    frVariables['publish'] :=sysname ;
    frVariables['Address'] :=sysaddress ;
    frVariables['telphone'] :=systl ;
    frVariables['UnitId'] :=cxlcbSaleBookingId.Text ;
    frVariables['Discounts'] :=edtAVgDiscount.Text ;
    frVariables['AvgPrices'] :=edtAvgBookPrice.Text; ;
    frVariables['TaxMoneys'] :=edtTaxMoney.Text ;
    frVariables['Bank'] :=fieldbyname('ClientBank').AsString;
    frVariables['BondMan'] := fieldbyname('BondMan').AsString;
    frVariables['Memo'] :=edtMemo.Text ;
    frVariables['UnitName'] :=edtUnitName.Text ;
    frVariables['TotalCounts'] :=edtSumBookCount.Text ;
    frVariables['DisCountMoneys'] :=edtzkMoney.Text ;
    frVariables['NOTaxMoneys'] :=edtNotax.Text ;
    frVariables['TaxNumber'] :=fieldbyname('ClientTax').AsString;
    frVariables['Telphonel'] :=fieldbyname('Telphone').AsString;
    frVariables['TotalMoneys'] :=edtSumTotalMoney.Text ;
    frVariables['RealMoneys'] :=edtSumRealMoney.Text ;
    frVariables['OtherMoney'] := edtOtherMoney.Text;
    frVariables['GetMoneys'] := edtGetMoney.Text;
    frVariables['MoneyCode'] :=fieldbyname('MoneyCode').AsString ;
    //frVariables[''] :=dbedtAddress.Text ;
    frVariables['SumSort'] :=qrySaleSubs.RecordCount;
    frVariables['CreatMan'] :='';
    frVariables['PageMemo'] :=strmemo;
    ShowReport;
  end;
end;

procedure TfrmSaleUnit.qrySaleUnitAfterPost(DataSet: TDataSet);
var i:integer ;
begin
  if not DmData.qryHouseSave.Active then
  begin
    DmData.qryHouseSave.Close;
    DmData.qryHouseSave.SQL.Text :='Select * From tbHouseSave';
    DmData.qryHouseSave.Open;
  end;
  qrySaleSubs.DisableControls;
  Try
    qrySaleSubs.First;
    for i:=0 to qrySaleSubs.RecordCount-1 do
    begin
      if not DmData.qryHouseSave.Locate('BookId;HousePos',VarArrayOf([qrySaleSubs.fieldbyname('BookId').AsString,qrySaleSubs.fieldbyname('HousePos').AsString]),[loCaseInsensitive]) then
      begin
        With DmData.qryHouseSave do
        begin
          Append;
          FieldByName('BookId').AsString :=qrySaleSubs.fieldbyname('BookId').AsString;
          FieldByName('BookName').AsString :=qrySaleSubs.fieldbyname('BookName').AsString;
          FieldByName('BookEdition').AsString :=qrySaleSubs.fieldbyname('BookEdition').AsString;
          FieldByName('BookCount').AsInteger :=0-qrySaleSubs.fieldbyname('BookCount').AsInteger;
          FieldByName('BookPrice').AsString :=qrySaleSubs.fieldbyname('BookPrice').AsString;
          FieldByName('AddBook').AsInteger :=0-qrySaleSubs.fieldbyname('AddBook').AsInteger;
          FieldByName('TotalMoney').AsFloat :=0-qrySaleSubs.fieldbyname('TotalMoney').AsFloat;
          FieldByName('HousePos').AsString :=qrySaleSubs.fieldbyname('HousePos').AsString;
          //FieldByName('').AsString :=qrySaleSubs.fieldbyname('').AsString;
        end;
      end else
      With DmData.qryHouseSave do
      begin
        Edit;
        FieldByName('BookCount').AsInteger :=FieldByName('BookCount').AsInteger - qrySaleSubs.fieldbyname('BookCount').AsInteger;
        FieldByName('AddBook').AsInteger := FieldByName('AddBook').AsInteger- qrySaleSubs.fieldbyname('AddBook').AsInteger;
        FieldByName('TotalMoney').AsFloat :=FieldByName('TotalMoney').AsFloat - qrySaleSubs.fieldbyname('TotalMoney').AsFloat;
      end;
      qrySaleSubs.Next;
    end;
    if DmData.qryHouseSave.State in [dsInsert,dsEdit] then
    DmData.qryHouseSave.Post;
  finally
    qrySaleSubs.EnableControls;
  end;
end;

end.

⌨️ 快捷键说明

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