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

📄 relay_baseunt.pas

📁 煤矿行业采掘接替计划自动生成系统
💻 PAS
📖 第 1 页 / 共 4 页
字号:
    begin
      CurrentPriorRelay.Sequence:=FieldByName('Sequence').AsInteger;
      CurrentPriorRelay.Project_Id:=FieldByName('Project_Id').AsInteger;
      CurrentPriorRelay.Relay_Route:=FieldByName('Relay_Route').AsInteger;
      CurrentPriorRelay.Relay_Id:=FieldByName('Relay_Id').AsInteger;
      CurrentPriorRelay.Face_Lane:=FieldByName('Face_Lane').AsInteger;
      CurrentPriorRelay.Area:=FieldByName('Area').AsInteger;
      CurrentPriorRelay.WorkGroup:=FieldByName('WorkGroup').AsInteger;
      CurrentPriorRelay.B_Date:=FieldByName('Begin_Date').AsDateTime;
      CurrentPriorRelay.E_Date:=FieldByName('End_Date').AsDateTime;
      CurrentPriorRelay.TaskTime:=trunc(CurrentPriorRelay.E_Date-CurrentPriorRelay.B_Date);
    end;
  Base_DataS.DataSet.Next;  //返回原位置
  //确定当前记录及其以后的记录数目
  CurrentRecNo:=Base_DataS.DataSet.RecNo;
  Mark:=Base_DataS.DataSet.GetBookmark;
  Base_DataS.DataSet.Last;
  LastRecNo:=Base_DataS.DataSet.RecNo;
  m:=LastRecNo-CurrentRecNo+1;
  Setlength(BehindRelay,m+1);
  //读取当前记录及其以后的所有记录信息
  Base_DataS.DataSet.GotoBookmark(Mark); //返回原位置
  i:=1;
  if Base_DataS.DataSet.Eof then
    begin
      BehindRelay[i].Sequence:=Base_DataS.DataSet.FieldByName('Sequence').AsInteger;
      BehindRelay[i].Project_Id:=Base_DataS.DataSet.FieldByName('Project_Id').AsInteger;
      BehindRelay[i].Relay_Route:=Base_DataS.DataSet.FieldByName('Relay_Route').AsInteger;
      BehindRelay[i].Relay_Id:=Base_DataS.DataSet.FieldByName('Relay_Id').AsInteger;
      BehindRelay[i].Face_Lane:=Base_DataS.DataSet.FieldByName('Face_Lane').AsInteger;
      BehindRelay[i].Area:=Base_DataS.DataSet.FieldByName('Area').AsInteger;
      BehindRelay[i].WorkGroup:=Base_DataS.DataSet.FieldByName('WorkGroup').AsInteger;
      BehindRelay[i].B_Date:=Base_DataS.DataSet.FieldByName('Begin_Date').AsDateTime;
      BehindRelay[i].E_Date:=Base_DataS.DataSet.FieldByName('End_Date').AsDateTime;
      BehindRelay[i].TaskTime:=trunc(BehindRelay[i].E_Date-BehindRelay[i].B_Date);
    end;
  while not Base_DataS.DataSet.Eof do
    begin
      with Base_DataS.DataSet do
        begin
          BehindRelay[i].Sequence:=FieldByName('Sequence').AsInteger;
          BehindRelay[i].Project_Id:=FieldByName('Project_Id').AsInteger;
          BehindRelay[i].Relay_Route:=FieldByName('Relay_Route').AsInteger;
          BehindRelay[i].Relay_Id:=FieldByName('Relay_Id').AsInteger;
          BehindRelay[i].Face_Lane:=FieldByName('Face_Lane').AsInteger;
          BehindRelay[i].Area:=FieldByName('Area').AsInteger;
          BehindRelay[i].WorkGroup:=FieldByName('WorkGroup').AsInteger;
          BehindRelay[i].B_Date:=FieldByName('Begin_Date').AsDateTime;
          BehindRelay[i].E_Date:=FieldByName('End_Date').AsDateTime;
          BehindRelay[i].TaskTime:=trunc(BehindRelay[i].E_Date-BehindRelay[i].B_Date);
          next;
          i:=i+1;
        end;
    end;
  //读取接替表中的所有信息存入数组Relay中,以便在需要的时候进行数据比较和检查等处理
  ReadRelayData;

  Base_DataS.DataSet.GotoBookmark(Mark);
  //暂时修改当前和以后的记录的Sequence字段值为从-1开始的负值,在插入的记录更新后,再指定相应的值
  //以便新插入的记录的Sequence字段可以指定为当前记录的该字段的值
  i:=-1;
  while not Base_DataS.DataSet.Eof do
    begin
      Base_DataS.DataSet.Edit;
      Base_DataS.DataSet.FieldByName('Sequence').AsInteger:=i;
      Base_DataS.DataSet.Post; //更新后表的指针仍然指向当前记录,但是,当关闭再打开该表后,该当前记录的Sequence字段值若仍然为-1,则指针指向的记录将发生变化
      Base_DataS.DataSet.Next;
      i:=i-1;
    end;

  Base_DataS.DataSet.GotoBookmark(Mark);
  Base_DataS.DataSet.Insert;

  DBLookUpComboBox2.Enabled:=true;
  DBLookUpComboBox3.Enabled:=true;
  DBLookUpListBox1.Enabled:=true;
  DBLookUpComboBox2.SetFocus;
  
  Label5.Caption:='双击框中的接替任务或选定后回车进行插入!';
end;

procedure TRelay_BaseFrm.BitBtn1Click(Sender: TObject);
begin
  if Base_DataS.DataSet.RecordCount=0 then
    begin
      showmessage('请先添加一个方案,然后再添加接替任务!');
      exit;
    end;

  AddMode:=true; //标志处于添加接替任务记录状态,以便能够执行DBLookUpListBox1的OnDblClick和OnKeyPress两个事件进行更新

  //读取Base_DataS数据集中的数据,以便在需要的时候进行数据比较和检查等处理
  ReadRelayData;

  BitBtn1.Enabled:=false;
  BitBtn2.Enabled:=false;
  BitBtn3.Enabled:=false;
  BitBtn4.Enabled:=false;
  BitBtn5.Enabled:=false;
  BitBtn6.Enabled:=false;
  BitBtn7.Enabled:=false;
  BitBtn8.Enabled:=false;
  BitBtn9.Enabled:=false;
  BitBtn10.Enabled:=false;
  BitBtn11.Enabled:=false;
  BitBtn12.Enabled:=false;
  DBGrid1.ReadOnly:=true;
  DBGrid1.Enabled:=false;
  //获取接替表中最后一条记录的相关信息,以便在后面添加接替任务时进行数据检查处理
  LastRelay.Sequence:=GetLastRecId(Base_DataS.DataSet,'Sequence');
  LastRelay.Project_Id:=GetLastRecId(Base_DataS.DataSet,'Project_Id');
  LastRelay.Relay_Route:=GetLastRecId(Base_DataS.DataSet,'Relay_Route');
  LastRelay.Relay_Id:=GetLastRecId(Base_DataS.DataSet,'Relay_Id');
  LastRelay.Face_Lane:=GetLastRecId(Base_DataS.DataSet,'Face_Lane');
  LastRelay.WorkGroup:=GetLastRecId(Base_DataS.DataSet,'WorkGroup');
  LastRelay.Area:=GetLastRecId(Base_DataS.DataSet,'Area');
  LastRelay.B_Date:=GetLastRecId(Base_DataS.DataSet,'Begin_Date');
  LastRelay.E_Date:=GetLastRecId(Base_DataS.DataSet,'End_Date');
  LastRelay.TaskTime:=trunc(LastRelay.E_Date-LastRelay.B_Date);

  Base_DataS.DataSet.Append;

  DBLookUpComboBox2.Enabled:=true;
  DBLookUpComboBox3.Enabled:=true;
  DBLookUpListBox1.Enabled:=true;
  DBLookUpComboBox2.SetFocus;
  Label5.Caption:='双击框中的接替任务或选定后回车进行添加!';
end;

procedure TRelay_BaseFrm.FormCreate(Sender: TObject);
var
i,n:integer;
begin
  inherited;
  EditMode:=false;
  InsertMode:=false;
  FaceIsEdit:=false;
  BeginDateChange:=false;
  EndDateChange:=false;
  //HaveDeleted:=false;

end;

procedure TRelay_BaseFrm.BitBtn8Click(Sender: TObject);
var
BookM:Tbookmark;
CurrentRecNo,LastRecNo,m,i:integer;
begin
  EditMode:=true;
//设初始状态被修改的记录的开始和结束时间没有修改,工作面也没有修改
  BeginDateChange:=false;
  EndDateChange:=false;
  FaceIsEdit:=false;

  BitBtn3.Enabled:=true;
  DBGrid1.ReadOnly:=false;

  DBGrid1.Enabled:=false;
  BitBtn1.Enabled:=false;
  BitBtn2.Enabled:=false;
  BitBtn4.Enabled:=false;
  BitBtn5.Enabled:=false;
  BitBtn6.Enabled:=false;
  BitBtn7.Enabled:=false;
  BitBtn8.Enabled:=false;
  BitBtn9.Enabled:=false;
  BitBtn10.Enabled:=false;
  BitBtn11.Enabled:=false;
  BitBtn12.Enabled:=false;

  DBLookUpComboBox2.Enabled:=true;
  DBLookUpComboBox3.Enabled:=true;
  DBLookUpListBox1.Enabled:=true;
  DBLookUpComboBox2.SetFocus;

  IsLast:=false;
  CurrentRecNo:=Base_DataS.DataSet.RecNo;
  BookM:=Base_DataS.DataSet.GetBookmark;
  Base_DataS.DataSet.Last;
  LastRecNo:=Base_DataS.DataSet.RecNo;
  if CurrentRecNo=LastRecNo then //如果是最后一条记录
    begin
      IsLast:=true;
    end;
  Base_DataS.DataSet.GotoBookmark(BookM);

  //读取当前被修改记录的信息
  with Base_DataS.DataSet do
    begin
      Current.Sequence:=FieldByName('Sequence').AsInteger;
      Current.Project_Id:=FieldByName('Project_Id').AsInteger;
      Current.Relay_Route:=FieldByName('Relay_Route').AsInteger;
      Current.Relay_Id:=FieldByName('Relay_Id').AsInteger;
      Current.Face_Lane:=FieldByName('Face_Lane').AsInteger;
      Current.Area:=FieldByName('Area').AsInteger;
      Current.WorkGroup:=FieldByName('WorkGroup').AsInteger;
      Current.B_Date:=FieldByName('Begin_Date').AsDateTime;
      Current.E_Date:=FieldByName('End_Date').AsDateTime;
      Current.TaskTime:=trunc(Current.E_Date-Current.B_Date);
    end;

  Label6.Visible:=true;
  Label7.Visible:=true;
  DateTimePicker1.Date:=Current.B_Date;
  DateTimePicker2.Date:=Current.E_Date;
  DateTimePicker1.Visible:=true;
  DateTimePicker2.Visible:=true;

  //BookM:=Base_DataS.DataSet.GetBookmark;

  if Current.Sequence<>1 then
    begin
      //读取当前记录的前面一条信息
      Base_DataS.DataSet.Prior;
      with Base_DataS.DataSet do
        begin
          CurrentPriorRelay.Sequence:=FieldByName('Sequence').AsInteger;
          CurrentPriorRelay.Project_Id:=FieldByName('Project_Id').AsInteger;
          CurrentPriorRelay.Relay_Route:=FieldByName('Relay_Route').AsInteger;
          CurrentPriorRelay.Relay_Id:=FieldByName('Relay_Id').AsInteger;
          CurrentPriorRelay.Face_Lane:=FieldByName('Face_Lane').AsInteger;
          CurrentPriorRelay.Area:=FieldByName('Area').AsInteger;
          CurrentPriorRelay.WorkGroup:=FieldByName('WorkGroup').AsInteger;
          CurrentPriorRelay.B_Date:=FieldByName('Begin_Date').AsDateTime;
          CurrentPriorRelay.E_Date:=FieldByName('End_Date').AsDateTime;
          CurrentPriorRelay.TaskTime:=trunc(CurrentPriorRelay.E_Date-CurrentPriorRelay.B_Date);
        end;
      Base_DataS.DataSet.Next;  //返回原位置
    end;

  //确定当前记录及其以后的记录数目
  //CurrentRecNo:=Base_DataS.DataSet.RecNo;
  //Mark:=Base_DataS.DataSet.GetBookmark;
  //Base_DataS.DataSet.Last;
  //LastRecNo:=Base_DataS.DataSet.RecNo;
  m:=LastRecNo-CurrentRecNo+1;
  Setlength(BehindRelay,m+1);
  //读取当前记录及其以后的所有记录信息
  Base_DataS.DataSet.GotoBookmark(BookM); //返回原位置
  i:=1;
  while not Base_DataS.DataSet.Eof do
    begin
      //IsLast:=false;
      with Base_DataS.DataSet do
        begin
          BehindRelay[i].Sequence:=FieldByName('Sequence').AsInteger;
          BehindRelay[i].Project_Id:=FieldByName('Project_Id').AsInteger;
          BehindRelay[i].Relay_Route:=FieldByName('Relay_Route').AsInteger;
          BehindRelay[i].Relay_Id:=FieldByName('Relay_Id').AsInteger;
          BehindRelay[i].Face_Lane:=FieldByName('Face_Lane').AsInteger;
          BehindRelay[i].Area:=FieldByName('Area').AsInteger;
          BehindRelay[i].WorkGroup:=FieldByName('WorkGroup').AsInteger;
          BehindRelay[i].B_Date:=FieldByName('Begin_Date').AsDateTime;
          BehindRelay[i].E_Date:=FieldByName('End_Date').AsDateTime;
          BehindRelay[i].TaskTime:=trunc(BehindRelay[i].E_Date-BehindRelay[i].B_Date);
          next;
          i:=i+1;
        end;
    end;

  Base_DataS.DataSet.GotoBookmark(BookM);
  //读取原表中的所有记录信息
  ReadRelayData;
  if High(Relay)<=1 then //表中没有记录
    begin
      showmessage('没有数据,无法进行修改!');
      EditMode:=false;
      BitBtn3.Enabled:=false;
      DBGrid1.ReadOnly:=true;

      DBGrid1.ReadOnly:=false;
      BitBtn1.Enabled:=true;
      BitBtn2.Enabled:=true;
      BitBtn4.Enabled:=true;
      BitBtn5.Enabled:=true;
      BitBtn6.Enabled:=true;
      BitBtn7.Enabled:=true;
      BitBtn8.Enabled:=true;
      BitBtn9.Enabled:=true;
      BitBtn10.Enabled:=true;
      BitBtn11.Enabled:=true;
      BitBtn12.Enabled:=true;

      ComboBox1.Enabled:=false;
      DBLookUpComboBox2.Enabled:=false;
      DBLookUpComboBox3.Enabled:=false;
      DBLookUpListBox1.Enabled:=false;
      exit;
    end;
  Base_DataS.DataSet.GotoBookmark(BookM);
  //inherited;

end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -