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

📄 inhouseunit.~pas

📁 一个图书批发商的通用软件
💻 ~PAS
字号:
unit InHouseUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, dxBar, dxBarExtItems, ComCtrls, ExtCtrls, dxExEdtr,
  dxCntner, dxTL, dxDBCtrl, dxDBGrid, Buttons, DB, ADODB, dxDBTLCl,
  dxGrClms, Mask, DBCtrls, dxEditor, dxEdLib, dxDBELib, cxControls,
  cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit,
  cxLookupEdit, cxDBLookupEdit, dxGrClEx, dxLayout, cxGridCustomPopupMenu,
  cxGridPopupMenu, FR_Class, FR_E_TXT, FR_DSet, FR_DBSet;

type
  TfrmInHouseUnit = class(TForm)
    dxBarManager1: TdxBarManager;
    dxBarLargeButton1: TdxBarLargeButton;
    dxBarLargeButton2: TdxBarLargeButton;
    dxBarLargeButton3: TdxBarLargeButton;
    dxBarLargeButton4: TdxBarLargeButton;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    edtNumber: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    dtpDateNow: TDateTimePicker;
    GroupBox1: TGroupBox;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    edtAVgDiscount: TEdit;
    Label8: TLabel;
    edtSumBookCount: TEdit;
    Label9: TLabel;
    edtSumTotalMoney: TEdit;
    Label10: TLabel;
    edtAvgBookPrice: TEdit;
    Label11: TLabel;
    edtzkMoney: TEdit;
    Label12: TLabel;
    edtSumRealMoney: TEdit;
    Label13: TLabel;
    edtTaxMoney: TEdit;
    Label14: TLabel;
    edtNotax: TEdit;
    Label15: TLabel;
    edtOtherMoney: TEdit;
    Label16: TLabel;
    edtGetMoney: TEdit;
    Label23: TLabel;
    Panel2: TPanel;
    dssubs: TDataSource;
    qryInHouseSubs: TADOQuery;
    dxDBGrid1: TdxDBGrid;
    Panel3: TPanel;
    bbtnAdd: TBitBtn;
    bbtnDelete: TBitBtn;
    dxDBGrid1BookName: TdxDBGridColumn;
    dxDBGrid1BookEdition: TdxDBGridColumn;
    dxDBGrid1BookCount: TdxDBGridMaskColumn;
    dxDBGrid1Bundles: TdxDBGridColumn;
    dsPublish: TDataSource;
    qryPublish: TADOQuery;
    qryInHouseUnit: TADOQuery;
    cxlcbSaleBookingId: TcxLookupComboBox;
    dsdbEdit: TDataSource;
    edtUnitName: TDBEdit;
    dxDBGrid1BookId: TdxDBGridExtLookupColumn;
    dxDBGrid1HousePos: TdxDBGridExtLookupColumn;
    dxBarLargeButton5: TdxBarLargeButton;
    edtMemo: TEdit;
    bbtnEdit: TBitBtn;
    dxBarLargeButton6: TdxBarLargeButton;
    frReport1: TfrReport;
    frDBDataSet1: TfrDBDataSet;
    dxDBGrid1addBook: TdxDBGridMaskColumn;
    cbWholeBooking: TComboBox;
    dxDBGrid1BookPrice: TdxDBGridCurrencyColumn;
    dxDBGrid1TotalMoney: TdxDBGridCurrencyColumn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure bbtnAddClick(Sender: TObject);
    procedure bbtnDeleteClick(Sender: TObject);
    procedure dxBarLargeButton1Click(Sender: TObject);
    procedure dxBarLargeButton2Click(Sender: TObject);
    procedure dxBarLargeButton3Click(Sender: TObject);
    procedure cxlcbSaleBookingIdPropertiesChange(Sender: TObject);
    procedure dxBarLargeButton4Click(Sender: TObject);
    procedure qryInHouseSubsBeforePost(DataSet: TDataSet);
    procedure FormDestroy(Sender: TObject);
    procedure edtOtherMoneyKeyPress(Sender: TObject; var Key: Char);
    procedure qryInHouseSubsAfterOpen(DataSet: TDataSet);
    procedure dxDBGrid1BookIdChange(Sender: TObject);
    procedure qryInHouseSubsAfterPost(DataSet: TDataSet);
    procedure bbtnEditClick(Sender: TObject);
    procedure dxBarLargeButton6Click(Sender: TObject);
    procedure qryInHouseUnitAfterPost(DataSet: TDataSet);

  private
    { Private declarations }
  public
    { Public declarations }
    

  end;

var
  frmInHouseUnit: TfrmInHouseUnit;
implementation

uses Data, unSystPublic, InhouseEdit;

{$R *.dfm}
procedure frmSaleBookingShow;
begin

end;
procedure TfrmInHouseUnit.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if (qryInHouseUnit.State in[dsEdit,dsInsert]) and(cxlcbSaleBookingId.Text<>'') and(edtNumber.Text<>'') then
  if Application.MessageBox('保存新加的入库单吗?',Title,MB_ICONQUESTION+MB_YESNO)=idyes then
  dxBarLargeButton2Click(Sender)//保存
  else
  begin
    with dmData.qryTemp do
    begin
      SQL.Text :='Delete From tbInHouseSubs where InHouseId='''+edtNumber.Text+'''';
      ExecSQL;
    end;
  end;
  qryInhouseUnit.Close;
  qryInhouseSubs.Close;
  Action :=caFree;
  frmInHouseUnit :=nil;
end;
procedure TfrmInHouseUnit.FormShow(Sender: TObject);
begin
  dtpDateNow.DateTime :=now;
  with qryPublish do
  begin
    Close;
    SQL.Text :='Select * From tbPublish';
    Open;
  end;
  {with qryBookingSubs do
  begin
    Close;
    SQL.Text :='Select * From tbBookingSubs';
    Open;
  end;}
  {with qryBookClass do
  begin
    Close;
    SQL.Text :='Select * From tbBookClass';
    Open;
  end;
  with qryHouse do
  begin
    Close;
    SQL.Text :='Select * From tbHouse';
    Open;
  end; }
  GetPH(cbWholeBooking);
end;

procedure TfrmInHouseUnit.bbtnAddClick(Sender: TObject);
begin
  qryInHouseSubs.Append;
  frmInHouseEdit :=TfrmInHouseEdit.Create(self);
  with frmInHouseEdit do
  begin
    try
      Tag :=1; //增加标志
      ShowModal;
    finally
      Free;
    end;
  end;
end;

procedure TfrmInHouseUnit.bbtnDeleteClick(Sender: TObject);
begin
  if Application.MessageBox('真的要删除吗?',Title,MB_ICONQUESTION+MB_YESNO)=Idyes then
  qryInHouseSubs.Delete;
end;

procedure TfrmInHouseUnit.dxBarLargeButton1Click(Sender: TObject);
begin
  dxBarLargeButton2Click(Sender);//保存
  dsdbEdit.DataSet :=nil;
  edtNumber.Text :='';
  GetPH(cbWholeBooking);
  cxlcbSaleBookingId.Text :='';
  edtAVgDiscount.Text :='0';
  edtAvgBookPrice.Text :='0';
  edtSumBookCount.Text :='0';
  edtSumTotalMoney.Text :='0';
  edtSumRealMoney.Text :='0';
  edtzkMoney.Text := '0';
  with qryInHouseUnit do
  begin
    Close;
    SQL.Text :='Select Max(InHouseId) From tbInHouseUnit ';
    Open;
    if Fields[0].Value=Null then
    edtNumber.Text :=StartSaleId
    else
    edtNumber.Text :=Inttostr(Fields[0].asInteger+1);
    close;
    SQL.Text :='Select * From tbInHouseUnit ';
    Open;
    Append;
  end;
  with qryInHouseSubs do
  begin
    Close;
    SQL.Text :='Select * From tbInHouseSubs where InHouseId='''+edtNumber.Text+'''';
    Open;
  end;

end;

procedure TfrmInHouseUnit.dxBarLargeButton2Click(Sender: TObject);
begin
  if (qryInHouseUnit.State in[dsEdit,dsInsert]) and(cxlcbSaleBookingId.Text<>'') and(edtNumber.Text<>'') then
  with qryInHouseUnit do
  begin
    FieldByName('InHouseId').AsString :=edtNumber.Text;
    FieldByName('WholeSaling').AsString :=cbWholeBooking.Text;
    FieldByName('InHouseDate').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 (qryInHouseSubs.State in[dsEdit,dsInsert]) then
    qryInHouseSubs.Post;
  end;

end;

procedure TfrmInHouseUnit.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 tbInHouseUnit where InHouseId='''+tempstr+'''';
    ExecSQL;
    dsdbEdit.DataSet :=nil;
    edtNumber.Text :='';
    GetPH(cbWholeBooking);
    cxlcbSaleBookingId.Text :='';
  end;
  with qryInHouseSubs do
  begin
    First;
    while not Eof do
     Delete;
  end;
end;

procedure TfrmInHouseUnit.cxlcbSaleBookingIdPropertiesChange(
  Sender: TObject);
begin
  if qryPublish.Locate('ClientId',cxlcbSaleBookingId.Text,[loCaseInsensitive]) then
  dsdbEdit.DataSet :=qryPublish;
  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 TfrmInHouseUnit.dxBarLargeButton4Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmInHouseUnit.qryInHouseSubsBeforePost(DataSet: TDataSet);
begin
  with qryInHouseSubs do
  begin
    if FieldByName('UnitId').AsString='' then
    FieldByName('UnitId').AsString :=cxlcbSaleBookingId.Text;
    if FieldByName('InHouseId').AsString ='' then
    FieldByName('InHouseId').AsString :=edtNumber.Text;
  end;
end;

procedure TfrmInHouseUnit.FormDestroy(Sender: TObject);
begin
  qryPublish.Close;
end;

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

procedure TfrmInHouseUnit.qryInHouseSubsAfterOpen(DataSet: TDataSet);
begin
  //qryInHouseSubs.FieldByName('BookCount').OnSetText :=SetBookCount;
  //qryBookingSubs.FieldByName('Discount').OnValidate :=GetRealMoney;
end;

procedure TfrmInHouseUnit.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 TfrmInHouseUnit.qryInHouseSubsAfterPost(DataSet: TDataSet);
var AVgDiscount,AvgBookPrice,SumBookCount,SumRealMoney,SumTotalMoney :Real;

begin
  with dmData.qryTemp do
  begin
    Close;
    Sql.Text :='Select Avg(BookPrice),Sum(BookCount),Sum(TotalMoney) From tbInHouseSubs Where InHouseId='''+edtNumber.text+'''';
    Open;
    AvgBookPrice:=Fields[0].AsFloat;
    SumBookCount:=Fields[1].AsFloat;
    SumTotalMoney:=Fields[2].AsFloat;
    edtAvgBookPrice.Text :=FloatToStr(AvgBookPrice);
    edtSumBookCount.Text :=FloatToStr(SumBookCount);
    edtSumTotalMoney.Text :=FloatToStr(SumTotalMoney);
    edtGetMoney.Text :=edtSumTotalMoney.Text;
    edtTaxMoney.Text := FormatFloat('0.00',SumTotalMoney/1.13*0.13);
    edtNotax.Text :=floattostr(SumTotalMoney-strtofloat(edtTaxMoney.Text));
    //edtzkMoney.Text := FloatToStr(SumTotalMoney-SumRealMoney);
  end;
end;
procedure TfrmInHouseUnit.bbtnEditClick(Sender: TObject);
var HouseName :string;
begin
  if qryInHouseSubs.IsEmpty then Abort;
  frmInHouseEdit :=TfrmInHouseEdit.Create(self);
  with frmInHouseEdit do
  begin
    try
      Tag :=0; //修改标志
      qryInHouseSubs.Edit;
      frmInHouseEdit.cxlcbBookId.Text :=qryInhouseSubs.fieldbyname('BookId').AsString;
      HouseName :=qryInHouseSubs.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 TfrmInHouseUnit.dxBarLargeButton6Click(Sender: TObject);
begin
  if not qryInHouseSubs.IsEmpty then
  with frReport1,qrypublish 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['Discount'] :=edtAVgDiscount.Text ;
    frVariables['AvgPrice'] :=edtAvgBookPrice.Text; ;
    frVariables['TaxMoney'] :=edtTaxMoney.Text ;
    frVariables['Bank'] :=fieldbyname('ClientBank').AsString;
    frVariables['BondMan'] := fieldbyname('BondMan').AsString;
    frVariables['Memo'] :=edtMemo.Text ;
    frVariables['UnitName'] :=edtUnitName.Text ;
    frVariables['TotalCount'] :=edtSumBookCount.Text ;
    frVariables['DisCountMoney'] :=edtzkMoney.Text ;
    frVariables['NOTaxMoney'] :=edtNotax.Text ;
    frVariables['TaxNumber'] :=fieldbyname('ClientTax').AsString;;
    frVariables['Telphonel'] :=fieldbyname('Telphone').AsString; ;
    frVariables['TotalMoneys'] :=edtSumTotalMoney.Text ;
    frVariables['RealMoney'] :=edtSumRealMoney.Text ;
    frVariables['OtherMoney'] := edtOtherMoney.Text;
    frVariables['GetMoney'] := edtGetMoney.Text;
    frVariables['MoneyCode'] :=fieldbyname('MoneyCode').AsString ;
    //frVariables[''] :=dbedtAddress.Text ;
    frVariables['SumSort'] :=qryInHouseSubs.RecordCount;
    frVariables['CreatMan'] :='';
    ShowReport;
  end;
end;

procedure TfrmInHouseUnit.qryInHouseUnitAfterPost(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;
  qryInHouseSubs.DisableControls;
  Try
    qryInHouseSubs.First;
    for i:=0 to qryInHouseSubs.RecordCount-1 do
    begin
      if not DmData.qryHouseSave.Locate('BookId;HousePos',VarArrayOf([qryInHouseSubs.fieldbyname('BookId').AsString,qryInHouseSubs.fieldbyname('HousePos').AsString]),[loCaseInsensitive]) then
      begin
        With DmData.qryHouseSave do
        begin
          Append;
          FieldByName('BookId').AsString :=qryInHouseSubs.fieldbyname('BookId').AsString;
          FieldByName('BookName').AsString :=qryInHouseSubs.fieldbyname('BookName').AsString;
          FieldByName('BookEdition').AsString :=qryInHouseSubs.fieldbyname('BookEdition').AsString;
          FieldByName('BookCount').AsInteger :=qryInHouseSubs.fieldbyname('BookCount').AsInteger;
          FieldByName('BookPrice').AsString :=qryInHouseSubs.fieldbyname('BookPrice').AsString;
          FieldByName('AddBook').AsInteger :=qryInHouseSubs.fieldbyname('AddBook').AsInteger;
          FieldByName('TotalMoney').AsFloat :=qryInHouseSubs.fieldbyname('TotalMoney').AsFloat;
          FieldByName('HousePos').AsString :=qryInHouseSubs.fieldbyname('HousePos').AsString;
          //FieldByName('').AsString :=qrySaleSubs.fieldbyname('').AsString;
        end;
      end else
      With DmData.qryHouseSave do
      begin
        Edit;
        FieldByName('BookCount').AsInteger :=FieldByName('BookCount').AsInteger + qryInHouseSubs.fieldbyname('BookCount').AsInteger;
        FieldByName('AddBook').AsInteger := FieldByName('AddBook').AsInteger + qryInHouseSubs.fieldbyname('AddBook').AsInteger;
        FieldByName('TotalMoney').AsFloat :=FieldByName('TotalMoney').AsFloat + qryInHouseSubs.fieldbyname('TotalMoney').AsFloat;
      end;
      qryInHouseSubs.Next;
    end;
    if DmData.qryHouseSave.State in [dsInsert,dsEdit] then
    DmData.qryHouseSave.Post;
  finally
    qryInHouseSubs.EnableControls;
  end;

end;
 
end.

⌨️ 快捷键说明

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