📄 servicestorequery.pas
字号:
unit servicestorequery;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, instorequery, DB, Grids, DBGrids, ComCtrls, StdCtrls, Buttons,
ExtCtrls;
type
Tf_servicestorequery = class(Tf_instorequery)
procedure storagefieldChange(Sender: TObject); override;
procedure QueryClick(Sender: TObject); override;
private
{ Private declarations }
public
{ Public declarations }
end;
var
f_servicestorequery: Tf_servicestorequery;
implementation
uses data;
{$R *.dfm}
//查询条件改变时,组合框中的数据也会相应的改变
procedure Tf_servicestorequery.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_servicestorequery.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_servicestorequery where ');
case Storagefield.ItemIndex of
0: SQL.Add('storename = :Value');
1: SQL.Add('principal = :Value');
2: SQL.Add('operator = :Value');
3: SQL.Add('serviceid = :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(factmoney) as factmoney ,storename from v_servicestorequery where ');
case Storagefield.ItemIndex of
0: SQL.Add('storename = :Value');
1: SQL.Add('principal = :Value');
2: SQL.Add('operator = :Value');
3: SQL.Add('serviceid = :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_servicestorequery 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(factmoney) as factmoney ,storename from v_servicestorequery 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_servicestorequery where ');
case Storagefield.ItemIndex of
0: SQL.Add('storename = :Value');
1: SQL.Add('principal = :Value');
2: SQL.Add('operator = :Value');
3: SQL.Add('serviceid = :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(factmoney) as factmoney ,storename from v_servicestorequery where ');
case Storagefield.ItemIndex of
0: SQL.Add('storename = :Value');
1: SQL.Add('principal = :Value');
2: SQL.Add('operator = :Value');
3: SQL.Add('serviceid = :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 + -