📄 u_tj.pas
字号:
unit u_tj;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, DB, DBTables, Grids, DBGrids, TeEngine,
Series, ExtCtrls, TeeProcs, Chart, DbChart, QRTEE, QuickRpt, Mask,
QRCtrls, DBCtrls, FR_PTabl;
type
Ttj = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Query1: TQuery;
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
DBGrid1: TDBGrid;
GroupBox6: TGroupBox;
GroupBox5: TGroupBox;
DBGrid2: TDBGrid;
Edit4: TEdit;
Label3: TLabel;
Label4: TLabel;
Query2: TQuery;
Edit3: TEdit;
Query3: TQuery;
DataSource1: TDataSource;
DataSource2: TDataSource;
Query4: TQuery;
Database1: TDatabase;
frPrintTable1: TfrPrintTable;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
tj: Ttj;
implementation
uses u_wxyprint;
{$R *.dfm}
procedure Ttj.Button1Click(Sender: TObject);
var s0,d0:string;
s1,s2,s3,d1,d2,d3:integer;
begin
if (((DataSource1.DataSet).Active=true) and((DataSource1.DataSet).RecordCount>0))or(((DataSource2.DataSet).Active=true) and((DataSource2.DataSet).RecordCount>0)) then
begin
button2.Enabled:=true;
end
else
button2.Enabled:=false;
//检验日期的输入格式
s0:=maskedit1.text;
s1:=strtoint(copy(s0,1,4));
s2:=strtoint(copy(s0,6,2));
s3:=strtoint(copy(s0,9,2));
d0:=maskedit2.text;
d1:=strtoint(copy(d0,1,4));
d2:=strtoint(copy(d0,6,2));
d3:=strtoint(copy(d0,9,3));
if (maskedit1.Text='0000-00-00') then
begin
showmessage('你没有输入开始时间!');
if (maskedit2.Text='0000-00-00') then
showmessage('你没有输入结束时间!');
end
else
begin
if (maskedit2.Text='0000-00-00') then
showmessage('你没有输入结束时间!')
end;
if strtodate(s0)>strtodate(d0) then
begin
showmessage('开始时间必需小于结束时间!');
end
else
begin
if (s1<2003)or(d1<2003 )then
begin
showmessage(' 输入的年份不是有效数字,请输入一个2002以后的数值');
end
else
begin
if (s2<1)or(s2>12)or(d2<1)or(d2>12) then
begin
showmessage('输入的月份不是有效数字请输入一介于1和12之间的数值');
end
else
begin
if (s3<1)or(s3>31)or(d3<1)or(d3>31) then
begin
showmessage('输入的日期不是有效数字请输入一介于1和31之间的数值');
end
else
//
if( edit2.Text<>'')and(checkbox2.Checked=false)then
begin
showmessage('请确认!');
end
else
if( edit2.Text='')and(checkbox2.Checked=true)then
begin
showmessage('请输入维修员名字!');
end
else
if( edit2.Text='')and(checkbox2.Checked=false) and ( edit1.Text='')and(checkbox1.Checked=false) then
begin
showmessage('你没有选择统计对象!');
end
else
if (checkbox1.Checked=true)and(checkbox2.Checked=true) then
begin
showmessage('你不能同时统计两个对象!请选择其中之一。');
end
else
if ( edit1.Text<>'')and(checkbox1.Checked=true)and (checkbox2.Checked=false)then
{统计维修车辆的修理情况 }
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select 修理句,故障句,维修地点,维修员,检验员,报修时间,修完时间 ') ;
query1.SQl.Add('FROM bxb inner join xlb on bxb.报修序号=xlb.报修序号');
query1.sql.Add('where 车辆号码='''+edit1.text+'''') ;
query1.sql.Add ( 'and 修完时间 >=:a and 修完时间<=:b ');
query1.ParamByName('a').Asstring:=maskedit1.text ;
query1.ParamByName('b').Asstring:=maskedit2.text ;
query1.Prepare;{准备展开query1语句}
query1.Open;{展开}
//datasource1.DataSet:=query1;
dbgrid1.datasource:=datasource1;
(DataSource2.DataSet).Active:=false;
end
////////////////////////////////////////////////////////////////////
///////// 统计对象不完全输入 /////
else
if( edit1.Text<>'')and(checkbox1.Checked=false)then
begin
showmessage('请确认!');
end;
if( edit1.Text='')and(checkbox1.Checked=true)then
begin
showmessage('请输入车辆号码');
end;
end ;
////////////////////////////////////////////////////////////////////////////
{统计维修人员的修理情况}
if (edit2.text<>'')and(checkbox2.Checked=true)and(checkbox1.Checked=false) then
begin
with groupbox5 do
begin
query3.Close;
query3.SQL.Clear;
query3.SQL.add('select 修理句,故障句,检验员,车辆号码,报修时间,修完时间 ') ;
query3.SQl.Add('FROM bxb inner join xlb on bxb.报修序号=xlb.报修序号');
query3.sql.Add('where 维修员='''+edit2.text+'''') ;
query3.sql.Add ( 'and( 修完时间 >=:a and 修完时间<=:b )') ;
query3.ParamByName('a').Asstring:=maskedit1.text ;
query3.ParamByName('b').Asstring:=maskedit2.text ;
query3.Prepare;{准备展开query1语句}
query3.Open;
// datasource2.DataSet:=query3;
dbgrid2.datasource:=datasource2;
(DataSource1.DataSet).Active:=false;
////////////////////////////////////////////////////////////////////
{统计维修人员的总维修工时}
query4.Close;
query4.SQL.Clear;
query4.SQL.add('select sum(维修工时)') ;
query4.SQl.Add('from xlb');
query4.sql.Add('where 维修员='''+edit2.text+'''') ;
query4.sql.Add ( 'and( 修完时间 >=:a and 修完时间<=:b) ');
query4.ParamByName('a').Asstring:=maskedit1.text ;
query4.ParamByName('b').Asstring:=maskedit2.text ;
query4.Prepare;
query4.Open;
edit3.text:=query4.fields[0].AsString;
//////////////////////////////////////
//统计维修人员的总维修耗时
query2.Close;
query2.SQL.Clear;
query2.SQL.add('select sum(维修耗时)') ;
query2.SQl.Add('from xlb');
query2.sql.Add('where 维修员='''+edit2.text+'''') ;
query2.sql.Add ( 'and (修完时间 >=:a and 修完时间<=:b) ');
query2.ParamByName('a').Asstring:=maskedit1.text ;
query2.ParamByName('b').Asstring:=maskedit2.text ;
query2.Prepare;
query2.Open;
edit4.text:=query2.fields[0].asstring;
end;
end;
//////////////////////////////////////////////////////////////////
end;
end;
end;
/////////////////////////////////////////////////////////////////////////////////
procedure Ttj.Button2Click(Sender: TObject);
begin
if ((DataSource2.DataSet).Active=true) and ((DataSource2.DataSet).RecordCount>0) then
begin
wxyprint:=twxyprint.create(self);
wxyprint.QuickRep1.dataset:=query3;
wxyprint.qrdbtext1.dataset:=query3;
wxyprint.qrdbtext2.dataset:=query3;
wxyprint.qrdbtext3.dataset:=query3;
wxyprint.qrdbtext4.dataset:=query3;
wxyprint.qrdbtext5.dataset:=query3;
wxyprint.qrdbtext6.dataset:=query3;
wxyprint.qrlabel2.caption:='维修员:'+ edit2.Text;
wxyprint.qrlabel4.caption:= '时间段: '+maskedit1.Text+'---'+maskedit2.text;
wxyprint.qrlabel8.caption:='维修总耗时: '+edit3.Text;
wxyprint.qrlabel3.caption:='维修总工时: '+edit4.text;
wxyprint.quickrep1.preview;
button2.Enabled:=false;
{ edit2.Text:='';
checkbox2.Checked:=false;
maskedit1.Text:='0000-00-00';
maskedit2.Text:='0000-00-00';
(DataSource2.DataSet).Active:=false;
edit3.Text='';
edit4.Text='';}
//datasource2.DataSet:=nil;
end
else
begin
frprinttable1.PageHeader.Text:='车辆号码: '+edit1.Text;
frPrintTable1.ShowReport;
button2.Enabled:=false;
//datasource1.DataSet:=nil;
end;
{edit1.Text:='';
checkbox1.Checked:=false;
maskedit1.Text:='0000-00-00';
maskedit2.Text:='0000-00-00';}
//(DataSource1.DataSet).Active:=false;
end;
procedure Ttj.RadioButton2Click(Sender: TObject);
begin
if radiobutton2.Checked=true then
groupbox6.Visible:=true;
groupbox5.Visible:=false;
end;
procedure Ttj.RadioButton1Click(Sender: TObject);
begin
if radiobutton1.Checked=true then
groupbox5.Visible:=true;
groupbox6.Visible:=false;
end;
procedure Ttj.CheckBox1Click(Sender: TObject);
begin
if checkbox1.checked=true then
groupbox6.Visible:=true;
groupbox5.Visible:=false;
end;
procedure Ttj.CheckBox2Click(Sender: TObject);
begin
if checkbox2.checked=true then
groupbox5.Visible:=true;
groupbox6.Visible:=false;
end;
procedure Ttj.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//datasource1.DataSet:=nil;
//datasource2.DataSet:=nil;
//(DataSource2.DataSet).Active:=false;
//(DataSource1.DataSet).Active:=false;
dbgrid1.datasource:=nil;
dbgrid2.datasource:=nil;
edit3.text:='';
edit4.Text:='';
edit1.text:='';
edit2.Text:='';
checkbox1.Checked:=false;
checkbox2.Checked:=false;
maskedit1.Text:='0000-00-00';
maskedit2.Text:='0000-00-00';
button2.Enabled:=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -