📄 main_query_lskccx.pas
字号:
unit MAIN_QUERY_LSKCCX;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MAIN_QUERY, DB, DBTables, ComCtrls, StdCtrls, TFlatComboBoxUnit,
TFlatSpeedButtonUnit, Grids, DBGrids, DsFancyButton, ExtCtrls,myself,frmmain;
type
TFrm_main_query_lskccx = class(TFrm_main_query)
Query_add: TQuery;
procedure FormCreate(Sender: TObject);
procedure CB_depotChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SB_queryClick(Sender: TObject);
function User_readdata():boolean;
procedure FormPaint(Sender: TObject);
procedure SB_printClick(Sender: TObject);
private
B_create:boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_main_query_lskccx: TFrm_main_query_lskccx;
implementation
uses PROGRASS, PRINT_LSKCCX, PRINT_TEMP;
{$R *.dfm}
procedure TFrm_main_query_lskccx.FormCreate(Sender: TObject);
var
B_find:Boolean;
I_temp:integer;
begin
inherited;
self.Caption :='历史库存查询';
B_create:=true;
query_add.DatabaseName :=HWSHOPDATA;
with query_temp do
begin
close;
sql.Clear ;
sql.Text :='select name from depot where setid=999';
open;
CB_depot.Items.Clear ;
CB_depot.Style :=csDropDownList;
CB_depot.Items.add('所有');
while not eof do
begin
CB_depot.Items.add(fieldbyname('name').asstring);
next;
end;
close;
sql.Clear ;
sql.text:='select * from goodsmessage order by name';
open;
CB_goods.Items.Clear ;
CB_goods.Style :=csDropDownList;
CB_goods.Items.add('所有');
while not eof do
begin
B_find:=false;
for I_temp:=0 to CB_goods.items.Count-1 do
begin
if CB_goods.Items[I_temp]=fieldbyname('name').asstring then
B_find:=true; //找到相同名称
end;
if not B_find then //没有找到时增加
CB_goods.Items.add(fieldbyname('name').asstring);
next;
end;
close;
end;
end;
procedure TFrm_main_query_lskccx.CB_depotChange(Sender: TObject);
begin
inherited;
query_data.Close;
sb_query.Enabled:=true;
end;
procedure TFrm_main_query_lskccx.FormShow(Sender: TObject);
begin
inherited;
if User_readdata then
begin
B_create:=true;
SB_query.Click;
end
else
B_create:=false;
end;
procedure TFrm_main_query_lskccx.SB_queryClick(Sender: TObject);
var
S_depotname,S_goodsname,S_date:string;
begin
inherited;
if not Checkrights(USERRIGHTS,'查看') then
begin
messagedlg(Errormsg0006+'0007',mterror,[mbok],0);
exit;
end;
S_depotname:=cb_depot.Text ;
S_goodsname:=cb_goods.Text ;
S_date:=formatdatetime('yyyy-mm-dd',DTP_begin.Date );
if (S_depotname='') or (S_depotname='所有') then
S_depotname:='%';
if (S_goodsname='') or (S_goodsname='所有') then
S_goodsname:='%';
with query_data do
begin
close;
sql.Clear ;
sql.Text:='SELECT Depot.NAME depotname, Goodsmessage.NAME goodsname, Goodsmessage.TYPE, SUM( Temp.NUMBER ) number,'
+' Goodsmessage.UNIT, 0 price FROM Temp'
+' INNER JOIN Depot ON (Temp.DEPOTID = Depot.ID)'
+' INNER JOIN Goodsmessage ON (Temp.GOODSID = Goodsmessage.ID)'
+' where depot.name like "'+S_depotname+'" and goodsmessage.name like "'
+ S_goodsname+'" and temp.mydate <= "'+S_date+'"'
+' GROUP BY Depot.NAME, Goodsmessage.NAME, Goodsmessage.TYPE, Goodsmessage.UNIT';
try
open;
except
messagedlg(Errormsg0001+'0027',mtError,[mbok],0);
close;
end;
end;
end;
function TFrm_main_query_lskccx.User_readdata():boolean;
begin
application.CreateForm (TFrm_prograss,Frm_prograss);
Frm_prograss.P_message.Caption :='系统正在处理历史数据,请稍候……';
frm_prograss.FormStyle :=fsStayOnTop;
frm_prograss.show;
frm_prograss.Update ;
result:=true;
with query_temp do
begin
close;
sql.Clear ;
sql.text:='delete from Temp';
try
execsql;
except
messagedlg(Errormsg0005+'0027',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
//读入期初明细
close;
sql.Clear ;
sql.Text :='SELECT * FROM startrecord';
try
open;
except
messagedlg(Errormsg0001+'0017',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
EXIT;
end;
//写入期初明细
first;
while not eof do
begin
with query_add do
begin
close;
sql.Clear ;
sql.Text :='insert into temp (depotid,mydate,jxc,goodsid,number,price,PEOPLEID,memo)'+
' values ("'+query_temp.fieldbyname('depotid').AsString +'","'
+query_temp.fieldbyname('mydate').AsString+'","'
+'期初'+'","'+query_temp.fieldbyname('goodsid').AsString
+'",'+query_temp.fieldbyname('number').AsString+','+query_temp.fieldbyname('price').AsString
+',"","'+query_temp.fieldbyname('memo').AsString+'")';
try
execsql;
except
messagedlg(Errormsg0004+'0027',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
end;
next;
end;
//读入进货明细
close;
sql.Clear ;
sql.Text :='SELECT * from Stockrecord';
try
open;
except
messagedlg(Errormsg0001+'0020',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
//写入进货明细
first;
while not eof do
begin
with query_add do
begin
close;
sql.Clear ;
sql.Text :='insert into temp (depotid,mydate,jxc,goodsid,number,price,PEOPLEID,memo)'+
' values ("'+query_temp.fieldbyname('depotid').AsString +'","'
+query_temp.fieldbyname('mydate').AsString+'","'
+'进货'+'","'+query_temp.fieldbyname('goodsid').AsString
+'",'+query_temp.fieldbyname('number').AsString+','+query_temp.fieldbyname('price').AsString
+',"","'+query_temp.fieldbyname('memo').AsString+'")';
try
execsql;
except
messagedlg(Errormsg0004+'0027',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
end;
next;
end;
//读入进货退货明细
close;
sql.Clear ;
sql.text:='SELECT * from Threcord';
try
open;
except
messagedlg(Errormsg0001+'0025',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
//写入进货退货明细
first;
while not eof do
begin
with query_add do
begin
close;
sql.Clear ;
sql.Text :='insert into temp (depotid,mydate,jxc,goodsid,number,price,PEOPLEID,memo)'+
' values ("'+query_temp.fieldbyname('depotid').AsString +'","'
+query_temp.fieldbyname('mydate').AsString+'","'
+'进货退货'+'","'+query_temp.fieldbyname('goodsid').AsString
+'",-'+query_temp.fieldbyname('number').AsString+','+query_temp.fieldbyname('price').AsString
+',"","'+query_temp.fieldbyname('memo').AsString+'")';
try
execsql;
except
messagedlg(Errormsg0004+'0027',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
end;
next;
end;
//读入销售明细
close;
sql.Clear ;
sql.text:='SELECT * from Sellrecord';
try
open;
except
messagedlg(Errormsg0001+'0018',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
//写入销售明细
first;
while not eof do
begin
with query_add do
begin
close;
sql.Clear ;
sql.Text :='insert into temp (depotid,mydate,jxc,goodsid,number,price,PEOPLEID,memo)'+
' values ("'+query_temp.fieldbyname('depotid').AsString +'","'
+query_temp.fieldbyname('mydate').AsString+'","'
+'销售'+'","'+query_temp.fieldbyname('goodsid').AsString
+'",-'+query_temp.fieldbyname('number').AsString+',0,"'
+query_temp.fieldbyname('PEOPLEID').AsString+'","'+query_temp.fieldbyname('memo').AsString+'")';
try
execsql;
except
messagedlg(Errormsg0004+'0027',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
end;
next;
end;
//读入销售退货明细
close;
sql.Clear ;
sql.text:='SELECT * from XSTHRECORD';
try
open;
except
messagedlg(Errormsg0001+'0023',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
//写入销售退货明细
first;
while not eof do
begin
with query_add do
begin
close;
sql.Clear ;
sql.Text :='insert into temp (depotid,mydate,jxc,goodsid,number,price,PEOPLEID,memo)'+
'values ("'+query_temp.fieldbyname('depotid').AsString +'","'
+query_temp.fieldbyname('mydate').AsString+'","'
+'销售退货'+'","'+query_temp.fieldbyname('goodsid').AsString
+'",'+query_temp.fieldbyname('number').AsString+',0,"'
+query_temp.fieldbyname('peopleid').AsString+'","'+query_temp.fieldbyname('memo').AsString+'")';
try
execsql;
except
messagedlg(Errormsg0004+'0027',mtError,[mbok],0);
close;
frm_prograss.Free;
result:=false;
exit;
end;
end;
next;
end;
end;
cb_depotchange(self);
frm_prograss.Free ;
end;
procedure TFrm_main_query_lskccx.FormPaint(Sender: TObject);
begin
inherited;
if not B_create then self.Close ; //数据查询不成功
end;
procedure TFrm_main_query_lskccx.SB_printClick(Sender: TObject);
begin
inherited;
try
Application.CreateForm(TFrm_print_lskccx, Frm_print_lskccx);
Application.CreateForm(TFrm_print_temp, Frm_print_temp);
except
messagedlg(Errormsg0011,mtError,[mbok],0);
exit;
end;
Frm_print_lskccx.QuickRep_lskccx.preview;
Frm_print_lskccx.Free ;
Frm_print_temp.Free ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -