📄 losestorequery.pas
字号:
unit losestorequery;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, instorequery, DB, Grids, DBGrids, ComCtrls, StdCtrls, Buttons,
ExtCtrls;
type
Tf_losestorequery = class(Tf_instorequery)
procedure storagefieldChange(Sender: TObject);override;//改写父类中的方法
procedure QueryClick(Sender: TObject); override; //改写父类中的方法
private
{ Private declarations }
public
{ Public declarations }
end;
var
f_losestorequery: Tf_losestorequery;
implementation
uses data;
{$R *.dfm}
//当查询条件改变时,相应的值也会发生改变
procedure Tf_losestorequery.storagefieldChange(Sender: TObject);
begin
StorageValue.Clear; //清空组合框中的数据
Case StorageField.ItemIndex of //根据组合框中不同的状态索引查询不同的数据
0:
begin
With t_data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select storename from tb_storeinfo');
Open;
end;
if t_data.Query1.RecordCount>0 then
begin
while not t_data.Query1.Eof do
begin
StorageValue.Items.Add(Trim(t_data.Query1.Fields[0].Value));
t_data.Query1.Next;
end;
end;
end;
1,2:
begin
With t_data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select workername from tb_employeeinfo');
Open;
end;
if t_data.Query1.RecordCount>0 then
begin
while not t_data.Query1.Eof do
begin
StorageValue.Items.Add(Trim(t_data.Query1.Fields[0].Value));
t_data.Query1.Next;
end;
end;
end;
end;
end;
//处理查询按钮的单击事件,程序中进行了多种条件判断
procedure Tf_losestorequery.QueryClick(Sender: TObject);
begin
if (Storagecon.Checked = True) or( Date.Checked = True) then //检查是否设置了查询条件
begin
if (Storagecon.Checked = True )and (Date.Checked = False)then //不进行时间段查询
begin
if(Trim(StorageField.Text)<>'')and(Trim(StorageValue.Text)<>'') then //判断是否设置了查询条件
begin
With t_data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from v_losestorequery where ');
case Storagefield.ItemIndex of
0: SQL.Add('storename = :Value');
1: SQL.Add('principal = :Value');
2: SQL.Add('operator = :Value');
3: SQL.Add('loseid = :Value');
end;
Parameters.ParamByName('Value').Value := Trim(Storagevalue.Text);
Open;
end;
if t_data.Query2.RecordCount>0 then //是否有数据返回 ,如果有则汇总物资数量
begin
With t_data.Query3 do
begin
Close;
SQL.Clear;
SQL.Add('Select sum(num) as storesum , storename from v_losestorequery where ');
case Storagefield.ItemIndex of
0: SQL.Add('storename = :Value');
1: SQL.Add('principal = :Value');
2: SQL.Add('operator = :Value');
3: SQL.Add('loseid = :Value');
end;
SQL.Add(' Group by storename');
Parameters.ParamByName('Value').Value := Trim(Storagevalue.Text);
Open;
end;
Source1.DataSet := t_data.Query2;
Source2.DataSet := t_data.Query3;
end
else
begin
Application.MessageBox('没有找到符合条件的记录.','提示',64);
Source1.DataSet := Nil;
Source2.DataSet := Nil;
end;
end;
end
else if (Storagecon.Checked = False )and (Date.Checked = True)then //只按时间段查询
begin
With t_data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from v_losestorequery where');
SQL.Add(' TimeDate >= :FromDate and Timedate < :ToDate');
Parameters.ParamByName('FromDate').Value := Trunc(FromDate.DateTime);
Parameters.ParamByName('ToDate').Value := Trunc(ToDate.DateTime)+1;
Open;
end;
if t_data.Query2.RecordCount>0 then //如果有数据返回则汇总物资数量
begin
With t_data.Query3 do
begin
Close;
SQL.Clear;
SQL.Add('Select sum(num) as storesum ,storename from v_losestorequery where ');
SQL.Add(' TimeDate >= :FromDate and Timedate < :ToDate');
SQL.Add(' Group by storename');
Parameters.ParamByName('FromDate').Value := Trunc(FromDate.DateTime);
Parameters.ParamByName('ToDate').Value := Trunc(ToDate.DateTime)+1;
Open;
end;
Source1.DataSet := t_data.Query2;
Source2.DataSet := t_data.Query3;
end
else
begin
Application.MessageBox('没有找到符合条件的记录.','提示',64);
Source1.DataSet := Nil;
Source2.DataSet := Nil;
end;
end
else //即按字段查询又按时间段查询
begin
if(Trim(StorageField.Text)<>'')and(Trim(StorageValue.Text)<>'') then //是否设置了查询条件
begin
With t_data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from v_losestorequery where ');
case Storagefield.ItemIndex of
0: SQL.Add('storename = :Value');
1: SQL.Add('principal = :Value');
2: SQL.Add('operator = :Value');
3: SQL.Add('loseid = :Value');
end;
SQL.Add(' and TimeDate >= :FromDate and Timedate < :ToDate');
Parameters.ParamByName('FromDate').Value := Trunc(Fromdate.DateTime);
Parameters.ParamByName('ToDate').Value := Trunc(ToDate.DateTime)+1;
Parameters.ParamByName('Value').Size := 100;
Parameters.ParamByName('Value').Value := Trim(Storagevalue.Text);
Open;
end;
if t_data.Query2.RecordCount>0 then //是否有结果集返回,如果有则汇总物资数量
begin
With t_data.Query3 do
begin
Close;
SQL.Clear;
SQL.Add('Select sum(num) as storesum ,storename from v_losestorequery where ');
case Storagefield.ItemIndex of
0: SQL.Add('storename = :Value');
1: SQL.Add('principal = :Value');
2: SQL.Add('operator = :Value');
3: SQL.Add('loseid = :Value');
end;
SQL.Add(' and TimeDate >= :FromDate and Timedate < :ToDate ');
SQL.Add(' Group by storename');
Parameters.ParamByName('Value').Size := 100;
Parameters.ParamByName('Value').Value := Trim(Storagevalue.Text);
Parameters.ParamByName('FromDate').Value := Trunc(FromDate.DateTime);
Parameters.ParamByName('ToDate').Value := Trunc(ToDate.DateTime)+1;
Open;
end;
Source1.DataSet := t_data.Query2;
Source2.DataSet := t_data.Query3;
end
else
begin
Application.MessageBox('没有找到符合条件的记录.','提示',64);
Source1.DataSet := Nil;
Source2.DataSet := Nil;
end;
end;
end;
end
else
Application.MessageBox('请设置查询条件.','提示',64);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -