📄 querydepotinputunit.pas
字号:
unit QueryDepotInputUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, Grids, DBGrids, ExtCtrls, DB,
DBTables, ADODB, QuickRpt, QRCtrls;
type
TQueryDepotInputForm = 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_YWYChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
QueryDepotInputForm: TQueryDepotInputForm;
implementation
uses MainUnit, FunctionUnit,DMUNIT, PrintckjhUnit, PrintBassUnit;
{$R *.dfm}
procedure TQueryDepotInputForm.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 TQueryDepotInputForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
try
self.Release;
except
messagedlg('系统在关闭〖' + self.Caption + '〗窗口时发生非致命的保护性错误'
+ #13 + #13 + '系统将停止运行,请立即与程序供应商联系。', mtError, [mbok], 0);
application.Terminate;
end;
end;
procedure TQueryDepotInputForm.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 TQueryDepotInputForm.CancelBtnClick(Sender: TObject);
begin
self.Close;
end;
procedure TQueryDepotInputForm.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 TQueryDepotInputForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
DataSource1.Destroy;
ADOQuery_data.Close;
ADOquery_data.Free;
end;
procedure TQueryDepotInputForm.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('单价').AsFloat;
next;
end;
first;
enablecontrols;
end;
L_count.caption := '合计金额: ¥' + formatfloat(',.00', f_tempmoney);
except
l_count.Caption := '合计金额: ¥0.00';
end;
end;
procedure TQueryDepotInputForm.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(TPrintckjhForm, PrintckjhForm);
Application.CreateForm(TprintBassForm, printBassForm);
except
messagedlg(Errormsg0011, mtError, [mbok], 0);
exit;
end;
PrintckjhForm.QuickRep_ckjhmx.preview;
PrintckjhForm.Free;
//printBassForm.Free;
end;
procedure TQueryDepotInputForm.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 TQueryDepotInputForm.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 stockrecord.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 提成,stockrecord.goodsnum as 数量,stockrecord.mydate as 进货时间'
+' '+'from stockrecord'
+' '+'inner join goods on (goods.id=stockrecord.goodsid)'
+' '+str1
+' '+'and stockrecord.depotid='''+depotid+''' order by stockrecord.mydate asc';
open;
END;
end;
procedure TQueryDepotInputForm.Query_dataAfterClose(DataSet: TDataSet);
begin
l_count.Caption := '合计金额: ¥0.00';
end;
procedure TQueryDepotInputForm.DTP_endChange(Sender: TObject);
begin
sb_query.Enabled := true;
ADOquery_data.Close;
end;
procedure TQueryDepotInputForm.CB_GoodsChange(Sender: TObject);
begin
sb_query.Click;
end;
procedure TQueryDepotInputForm.CB_YWYChange(Sender: TObject);
begin
sb_query.Click;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -