📄 unitmainfr.pas
字号:
StringGrid1.Cells[1,i+1]:= Fields[5].AsString;
StringGrid1.Cells[2,i+1]:= Fields[6].AsString;
StringGrid1.Cells[3,i+1]:= Fields[7].AsString;
StringGrid1.Cells[4,i+1]:= Fields[0].AsString;
StringGrid1.Cells[5,i+1]:= Fields[2].AsString;
StringGrid1.Cells[6,i+1]:= Fields[12].AsString;
StringGrid1.Cells[7,i+1]:= Fields[4].AsString;
StringGrid1.Cells[8,i+1]:= Fields[11].AsString;
StringGrid1.Cells[9,i+1]:= Fields[10].AsString;
Next;
end;
end;
end;
procedure Tmainform.Timer1Timer(Sender: TObject);
var
i,ii:integer;
condition1,condition2:string;
begin
statusbar1.Panels[6].Text:=formatdatetime('yyyy年mm月dd日 hh:mm:ss',now);
StringGrid1.Refresh;
{ if searchdata then //加上这个判断对显示的作用好像并不大 需改进 //不需要写在TIMER中 直接REFRESH即可
begin
label1.Caption:='详细信息';
i:=stringgrid2.Row; //获得行号
edit1.Text:=inttostr(i);
condition1:=stringgrid2.Cells[5,i];
condition2:=stringgrid2.Cells[6,i];
with datamodule2.ADOQuery10 do
begin
close;
sql.Clear;
sql.Add('select * from 表1 where 点灯时间=:a and 文件名=:b' );
Parameters.ParamByName('a').Value :=condition1;
Parameters.ParamByName('b').Value :=condition2;
open;
end;
if datamodule2.ADOQuery10.FieldByName('发码时间').Value<>null then
begin
with datamodule2.ADOQuery10 do begin
Open;
First;
StringGrid1.ColCount:= FieldCount-5; //StringGrid1.ColCount:= FieldCount-1; 是按照数据库中的表的列数来创建的,程序中不需要那么多
StringGrid1.RowCount:= RecordCount+1;
for ii:=0 to RecordCount-1 do
begin
StringGrid1.Cells[0,ii+1]:= Fields[8].AsString;
StringGrid1.Cells[1,ii+1]:= Fields[5].AsString;
StringGrid1.Cells[2,ii+1]:= Fields[6].AsString;
StringGrid1.Cells[3,ii+1]:= Fields[7].AsString;
StringGrid1.Cells[4,ii+1]:= Fields[0].AsString;
StringGrid1.Cells[5,ii+1]:= Fields[2].AsString;
StringGrid1.Cells[6,ii+1]:= Fields[12].AsString;
StringGrid1.Cells[7,ii+1]:= Fields[4].AsString;
StringGrid1.Cells[8,ii+1]:= Fields[11].AsString;
StringGrid1.Cells[9,ii+1]:= Fields[10].AsString;
Next;
end;
end;
StringGrid1.Refresh
end;
end
else
begin
with datamodule2.ADOQuery10 do
begin
close;
sql.Clear;
sql.Add('select * from temp' );
open;
end;
if datamodule2.ADOQuery10.FieldByName('发码时间').Value<>null then
with datamodule2.ADOQuery10 do begin
Open;
First;
StringGrid1.ColCount:= FieldCount-5; //StringGrid1.ColCount:= FieldCount-1; 是按照数据库中的表的列数来创建的,程序中不需要那么多
StringGrid1.RowCount:= RecordCount+1;
for i:=0 to RecordCount-1 do
begin
StringGrid1.Cells[0,i+1]:= Fields[8].AsString;
StringGrid1.Cells[1,i+1]:= Fields[5].AsString;
StringGrid1.Cells[2,i+1]:= Fields[6].AsString;
StringGrid1.Cells[3,i+1]:= Fields[7].AsString;
StringGrid1.Cells[4,i+1]:= Fields[0].AsString;
StringGrid1.Cells[5,i+1]:= Fields[2].AsString;
StringGrid1.Cells[6,i+1]:= Fields[12].AsString;
StringGrid1.Cells[7,i+1]:= Fields[4].AsString;
StringGrid1.Cells[8,i+1]:= Fields[11].AsString;
StringGrid1.Cells[9,i+1]:= Fields[10].AsString;
Next;
end;
end;
end; }
end;
procedure Tmainform.N7Click(Sender: TObject);
begin
application.Createform(tformbeifen,formbeifen);
formbeifen.showmodal;
formbeifen.free;
//直接将数据库备份到硬盘的最后一个盘符下 设定专门的路径
end;
procedure Tmainform.N10Click(Sender: TObject);
begin
application.Createform(Ttrainfr,trainfr);
trainfr.showmodal;
trainfr.free;
end;
procedure Tmainform.N11Click(Sender: TObject);
begin
application.Createform(tformhuifu,formhuifu);
formhuifu.showmodal;
formhuifu.free;
end;
{procedure Tmainform.StringGrid2SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var
i:integer;
begin
i:=stringgrid2.Row; //获得行号
edit1.Text:=inttostr(i);
end; }
procedure Tmainform.StringGrid2MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
i,ii:integer;
condition1,condition2:string;
begin
searchdata:=true;
label1.Caption:='详细信息';
i:=stringgrid2.Row; //获得行号
// edit1.Text:=inttostr(i);
condition1:=stringgrid2.Cells[5,i];
// condition2:=stringgrid2.Cells[6,i];
with datamodule2.ADOQuery10 do
begin
close;
sql.Clear;
sql.Add('select * from 表1 where 文件名=:a' );
Parameters.ParamByName('a').Value :=condition1;
// Parameters.ParamByName('b').Value :=condition2;
open;
end;
if datamodule2.ADOQuery10.FieldByName('发码时间').Value<>null then
begin
with datamodule2.ADOQuery10 do begin
Open;
First;
StringGrid1.ColCount:= FieldCount-5; //StringGrid1.ColCount:= FieldCount-1; 是按照数据库中的表的列数来创建的,程序中不需要那么多
StringGrid1.RowCount:= RecordCount+1;
for ii:=0 to RecordCount-1 do
begin
StringGrid1.Cells[0,ii+1]:= Fields[8].AsString;
StringGrid1.Cells[1,ii+1]:= Fields[5].AsString;
StringGrid1.Cells[2,ii+1]:= Fields[6].AsString;
StringGrid1.Cells[3,ii+1]:= Fields[7].AsString;
StringGrid1.Cells[4,ii+1]:= Fields[0].AsString;
StringGrid1.Cells[5,ii+1]:= Fields[2].AsString;
StringGrid1.Cells[6,ii+1]:= Fields[12].AsString;
StringGrid1.Cells[7,ii+1]:= Fields[4].AsString;
StringGrid1.Cells[8,ii+1]:= Fields[11].AsString;
StringGrid1.Cells[9,ii+1]:= Fields[10].AsString;
Next;
end;
end;
StringGrid1.Refresh
end;
end;
procedure Tmainform.Timer2Timer(Sender: TObject);
var
i:integer;
condition1:string;
begin
if searchdata or showdata then
if searchdata then
begin
i:=stringgrid2.Row; //获得行号
// edit1.Text:=inttostr(i);
condition1:=stringgrid2.Cells[5,i];
with datamodule2.ADOQuery10 do
begin
close;
sql.Clear;
sql.Add('select * from 表1 where 文件名=:a' );
Parameters.ParamByName('a').Value :=condition1;
open;
end;
if datamodule2.ADOQuery10.FieldByName('发码时间').Value<>null then
with datamodule2.ADOQuery10 do begin
Open;
First;
StringGrid1.ColCount:= FieldCount-5; //StringGrid1.ColCount:= FieldCount-1; 是按照数据库中的表的列数来创建的,程序中不需要那么多
StringGrid1.RowCount:= RecordCount+1;
for i:=0 to RecordCount-1 do
begin
StringGrid1.Cells[0,i+1]:= Fields[8].AsString;
StringGrid1.Cells[1,i+1]:= Fields[5].AsString;
StringGrid1.Cells[2,i+1]:= Fields[6].AsString;
StringGrid1.Cells[3,i+1]:= Fields[7].AsString;
StringGrid1.Cells[4,i+1]:= Fields[0].AsString;
StringGrid1.Cells[5,i+1]:= Fields[2].AsString;
StringGrid1.Cells[6,i+1]:= Fields[12].AsString;
StringGrid1.Cells[7,i+1]:= Fields[4].AsString;
StringGrid1.Cells[8,i+1]:= Fields[11].AsString;
StringGrid1.Cells[9,i+1]:= Fields[10].AsString;
Next;
end;
end;
end
else
begin
with datamodule2.ADOQuery10 do
begin
close;
sql.Clear;
sql.Add('select * from temp' );
open;
end;
if datamodule2.ADOQuery10.FieldByName('发码时间').Value<>null then
with datamodule2.ADOQuery10 do begin
Open;
First;
StringGrid1.ColCount:= FieldCount-5; //StringGrid1.ColCount:= FieldCount-1; 是按照数据库中的表的列数来创建的,程序中不需要那么多
StringGrid1.RowCount:= RecordCount+1;
for i:=0 to RecordCount-1 do
begin
StringGrid1.Cells[0,i+1]:= Fields[8].AsString;
StringGrid1.Cells[1,i+1]:= Fields[5].AsString;
StringGrid1.Cells[2,i+1]:= Fields[6].AsString;
StringGrid1.Cells[3,i+1]:= Fields[7].AsString;
StringGrid1.Cells[4,i+1]:= Fields[0].AsString;
StringGrid1.Cells[5,i+1]:= Fields[2].AsString;
StringGrid1.Cells[6,i+1]:= Fields[12].AsString;
StringGrid1.Cells[7,i+1]:= Fields[4].AsString;
StringGrid1.Cells[8,i+1]:= Fields[11].AsString;
StringGrid1.Cells[9,i+1]:= Fields[10].AsString;
Next;
end;
end;
end;
searchdata:=false;
showdata:=false;
end;
procedure Tmainform.Button1Click(Sender: TObject);
var
c,d:string;
i:integer;
begin
c:=formatdatetime('yymmdd',DateTimePicker1.date); //formatdatetime这个功能函数直接就转化 源数据格式 为 string格式
d:=formatdatetime('yymmdd',DateTimePicker2.date);
with datamodule2.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('select Distinct(文件名),机车编号,机车信息,合格标志,工号,测试者姓名 from 表1 where 发码时间>=:a and 发码时间<=:b'); //在SQL语句的使用中 发现模糊查询的%并不有效 原因还不知道 所以换了一个查询语句
Parameters.ParamByName('a').Value:=Trim(c);
Parameters.ParamByName('b').Value:=Trim(d);
open;
end;
if datamodule2.ADOQuery1.FieldByName('文件名').Value<>null then
with datamodule2.ADOQuery1 do
begin
Open;
First;
StringGrid2.ColCount:= FieldCount; //StringGrid1.ColCount:= FieldCount-1; 是按照数据库中的表的列数来创建的,程序中不需要那么多
StringGrid2.RowCount:= RecordCount+1;
for i:=0 to RecordCount-1 do
begin
StringGrid2.Cells[0,i+1]:= Fields[1].AsString;
StringGrid2.Cells[1,i+1]:= Fields[2].AsString;
StringGrid2.Cells[2,i+1]:= Fields[3].AsString;
StringGrid2.Cells[3,i+1]:= Fields[4].AsString;
StringGrid2.Cells[4,i+1]:= Fields[5].AsString;
StringGrid2.Cells[5,i+1]:= Fields[0].AsString;
//for j:=0 to FieldCount-1 do
// begin
// StringGrid1.Cells[j,i+1]:= Fields[j].AsString;
// end;
Next;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -