⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitmainfr.pas

📁 信号机测试信号管理软件 其中含有文件上传及修改数据库数据的功能
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        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 + -