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

📄 querydepotoutputunit.pas

📁 简单的进销存系统,包含登陆等界面,内容丰富,各种技巧,适合初学者
💻 PAS
字号:
unit QueryDepotOutputUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, Grids, DBGrids, ExtCtrls, DB,
  DBTables, ADODB;

type
  TQueryDepotOutputForm = class(TForm)
    P_back: TPanel;
    P_main: TPanel;
    Panel_down: TPanel;
    Bevel_bass: TBevel;
    L_count: TLabel;
    Panel_button: TPanel;
    DBG_data: TDBGrid;
    PageScroller1: TPageScroller;
    Panel_top: TPanel;
    Label4: TLabel;
    DTP_begin: TDateTimePicker;
    DTP_end: TDateTimePicker;
    Panel_print: TPanel;
    L_title: TLabel;
    SB_print: TSpeedButton;
    Panel1: TPanel;
    OKBtn: TButton;
    CancelBtn: TButton;
    SB_query: TSpeedButton;
    DataSource1: TDataSource;
    ADOQuery_DATA: TADOQuery;
    Label1: TLabel;
    cb_depot: TComboBox;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormResize(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
    procedure DBG_dataDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Query_dataAfterOpen(DataSet: TDataSet);
    procedure SB_printClick(Sender: TObject);
    procedure DTP_beginChange(Sender: TObject);
    procedure SB_queryClick(Sender: TObject);
    procedure Query_dataAfterClose(DataSet: TDataSet);
    procedure DTP_endChange(Sender: TObject);
    procedure CB_GoodsChange(Sender: TObject);
    procedure CB_DepotChange(Sender: TObject);
    procedure CB_YWYChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  QueryDepotOutputForm: TQueryDepotOutputForm;

implementation

uses MainUnit, FunctionUnit,DMUNIT, PrintckchUnit, PrintBassUnit;

{$R *.dfm}

procedure TQueryDepotOutputForm.FormCreate(Sender: TObject);
var
  Year, Month, Day: Word;
  I_countdate: integer;
begin
     ADOquery_data.Connection:=DM.ADOCon;
  //设定默认的查询时间段为一个月
  DecodeDate(now, Year, Month, Day);
  if (I_countdate > 0) and (I_countdate < 28) then
    dtp_begin.Date := EncodeDate(Year, Month - 1, I_countdate + 1)
  else
    dtp_begin.Date := EncodeDate(Year, Month, 1);
  Dtp_end.Date := now;
  with adoquery_data do
  begin
    close;
    sql.Clear;
    sql.Text := 'select name from depot';
    open;
    CB_depot.Items.Clear;
    CB_depot.Style := csDropDownList;
    while not eof do
    begin
      CB_depot.Items.add(fieldbyname('name').asstring);
      next;
    end;
    close;
  end;

end;

procedure TQueryDepotOutputForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  try
    self.Release;
  except
    messagedlg('系统在关闭〖' + self.Caption + '〗窗口时发生非致命的保护性错误'
      + #13 + #13 + '系统将停止运行,请立即与程序供应商联系。', mtError, [mbok], 0);
    application.Terminate;
  end;
end;

procedure TQueryDepotOutputForm.FormResize(Sender: TObject);
var
  I_col: integer;
begin
  L_title.Caption := application.Title + ' - ' + self.Caption;
  L_title.left := 0;
  L_title.top := 1;
  L_title.Width := self.Width;

  if DBG_data.Columns.Count >= 1 then
  begin
    for I_col := 0 to DBG_data.Columns.Count - 2 do
    begin
      DBG_data.Columns.Items[I_col].Width := DBG_data.Width div (DBG_data.Columns.Count);
    end;
    DBG_data.Columns.Items[DBG_data.Columns.Count - 1].Width := DBG_data.Width div (DBG_data.Columns.Count) - 38;
  end;
end;

procedure TQueryDepotOutputForm.CancelBtnClick(Sender: TObject);
begin
  self.Close;
end;

procedure TQueryDepotOutputForm.DBG_dataDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if ADOquery_data.FieldByName('数量').AsInteger < 0 then
    DBG_data.Canvas.Font.Color := clred;
  DBG_data.DefaultDrawColumnCell(rect, datacol, column, state);
end;

procedure TQueryDepotOutputForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  DataSource1.Destroy;
  ADOQuery_data.Close;
  ADOquery_data.Free;
end;

procedure TQueryDepotOutputForm.Query_dataAfterOpen(DataSet: TDataSet);
var
  F_tempmoney: real;
begin
  try
    F_tempmoney := 0;
     //统计金额
    with ADOquery_data do
    begin
      DisableControls;
      first;
      while not eof do
      begin
        F_tempmoney := F_tempmoney + fieldbyname('price').AsFloat;
        next;
      end;
      first;
      enablecontrols;
    end;
    L_count.caption := '合计金额: ¥' + formatfloat(',.00', f_tempmoney);
  except
    l_count.Caption := '合计金额: ¥0.00';
  end;

end;

procedure TQueryDepotOutputForm.SB_printClick(Sender: TObject);
var
  NumSec: SmallInt;
  StartTime: TDateTime;
begin
  self.Enabled := false;
  if sb_query.Enabled then
    sb_query.Click;
   //延时
  numsec := 1; //延时1秒
  StartTime := now;
  repeat
    application.ProcessMessages;
  until Now > StartTime + NumSec * (1 / 24 / 60 / 60);
  self.Enabled := true;
  try
    Application.CreateForm(TPrintckchForm, PrintckchForm);
    Application.CreateForm(TprintBassForm, printBassForm);
  except
    messagedlg(Errormsg0011, mtError, [mbok], 0);
    exit;
  end;
  PrintckchForm.QuickRep_ckjhmx.preview;
  PrintckchForm.Free;
  printBassForm.Free;
end;

procedure TQueryDepotOutputForm.DTP_beginChange(Sender: TObject);
begin
  DTP_end.Date := DTP_begin.Date + DaysInMonth(DTP_begin.Date) - 1;
  sb_query.Enabled := true;
  ADOquery_data.Close;
end;

procedure TQueryDepotOutputForm.SB_queryClick(Sender: TObject);
var
        depotid,str1:string;
begin
   with ADOquery_data do
  begin
    close;
          sql.Clear;
          sql.Text:='select id'
          +' '+'from depot where depot.name='''+cb_depot.Text+'''';
          open;
          depotid:=fieldbyname('id').AsString;
          str1:='where THrecord.mydate between #'+formatdatetime('yyyy-mm-dd',dtp_begin.DateTime)+'# and #'+formatdatetime('yyyy-mm-dd',dtp_end.DateTime)+'#';
          close;
          sql.Clear;
        sql.Text:='select goods.name as 品名,goods.type as 规格,goods.unit as 单位,goods.price as 单价,goods.sellprice as 提成,THrecord.goodsnum as 数量,THrecord.mydate as 出货时间'
        +' '+'from THrecord'
        +' '+'inner join goods on (goods.id=THrecord.goodsid)'
        +' '+str1
        +' '+'and THrecord.depotid='''+depotid+''' order by THrecord.mydate asc';
        open;
    END;
end;

procedure TQueryDepotOutputForm.Query_dataAfterClose(DataSet: TDataSet);
begin
  l_count.Caption := '合计金额: ¥0.00';
end;

procedure TQueryDepotOutputForm.DTP_endChange(Sender: TObject);
begin
  sb_query.Enabled := true;
  ADOquery_data.Close;
end;

procedure TQueryDepotOutputForm.CB_GoodsChange(Sender: TObject);
begin
  sb_query.Click;
end;

procedure TQueryDepotOutputForm.CB_DepotChange(Sender: TObject);
begin
  sb_query.Click;
end;

procedure TQueryDepotOutputForm.CB_YWYChange(Sender: TObject);
begin
  sb_query.Click;
end;

end.

⌨️ 快捷键说明

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