📄 laneinfo_unt.pas
字号:
if CurrentPriorRec.Project_Id<>CurrentRec.Project_Id then exit; //不是同一个方案不能移动
if CurrentPriorRec.Propty<>CurrentRec.Propty then exit; //不是同一个掘进任务性质不能移动
//把当前记录变为当前记录的前一条记录
With Base_DataS.DataSet do
begin
Edit;
FieldByName('Property').AsString:=CurrentPriorRec.Propty;
FieldByName('Name').AsString:=CurrentPriorRec.Name;
//FieldByName('Lane_Type').AsInteger:=CurrentPriorRec.Lane_Type;
FieldByName('Section_Area').AsFloat:=CurrentPriorRec.Section_Area;
FieldByName('Section_Type').AsString:=CurrentPriorRec.Section_Type;
FieldByName('Technic_Type').AsString:=CurrentPriorRec.TechnicType;
FieldByName('Rock_Property').AsString:=CurrentPriorRec.Rock_Property;
//FieldByName('Rigidity').AsFloat:=CurrentPriorRec.Rigidity;
FieldByName('State').AsString:=CurrentPriorRec.State;
FieldByName('WorkQuantity').AsFloat:=CurrentPriorRec.WorkQuantity;
FieldByName('DayProgress').AsFloat:=CurrentPriorRec.DayProgress;
FieldByName('TaskTime').AsInteger:=CurrentPriorRec.TaskT;
FieldByName('Disposed').AsInteger:=CurrentPriorRec.Disposed;
Post;
end;
Base_DataS.DataSet.Prior; //到当前记录的前一条记录
//把当前记录的前一条记录变为当前记录
With Base_DataS.DataSet do
begin
Edit;
FieldByName('Property').AsString:=CurrentRec.Propty;
FieldByName('Name').AsString:=CurrentRec.Name;
//FieldByName('Lane_Type').AsInteger:=CurrentRec.Lane_Type;
FieldByName('Section_Area').AsFloat:=CurrentRec.Section_Area;
FieldByName('Section_Type').AsString:=CurrentRec.Section_Type;
FieldByName('Technic_Type').AsString:=CurrentRec.TechnicType;
FieldByName('Rock_Property').AsString:=CurrentRec.Rock_Property;
//FieldByName('Rigidity').AsFloat:=CurrentRec.Rigidity;
FieldByName('State').AsString:=CurrentRec.State;
FieldByName('WorkQuantity').AsFloat:=CurrentRec.WorkQuantity;
FieldByName('DayProgress').AsFloat:=CurrentRec.DayProgress;
FieldByName('TaskTime').AsInteger:=CurrentRec.TaskT;
FieldByName('Disposed').AsInteger:=CurrentRec.Disposed;
Post;
end;
end;
procedure TLaneInfo_Frm.DBEdit4KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then DBEdit5.SetFocus;
end;
procedure TLaneInfo_Frm.DBEdit5KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
remain:integer;
dayoutput:single;
begin
if key=VK_RETURN then
begin
if DBEdit4.Text='' then
begin
showmessage('请确定剩余工程量!');
DBEdit4.SetFocus;
exit;
end;
if DBEdit4.Text='0' then
begin
DBEdit3.Field.AsInteger:=0;
DBEdit3.SetFocus;
exit;
end;
if DBEdit5.Text='' then
begin
showmessage('请确定日进度!');
exit;
end;
if DBEdit5.Text='0' then
begin
DBEdit3.Field.AsInteger:=0;
DBEdit3.SetFocus;
exit;
end;
remain:=strtoint(DBEdit4.Text);
dayoutput:=strtofloat(DBEdit5.Text);
DBEdit3.Field.AsInteger:=round(remain/dayoutput);
DBEdit3.SetFocus;
end;
end;
procedure TLaneInfo_Frm.BitBtn11Click(Sender: TObject);
var
CurrentRec,CurrentNextRec:TLaneRecInfo;
CurrentRecNo,LastRecNo:integer;
MK:Tbookmark;
begin
if Base_DataS.DataSet.RecordCount=0 then exit;
CurrentRecNo:=Base_DataS.DataSet.RecNo;
MK:=Base_DataS.DataSet.GetBookmark;
Base_DataS.DataSet.Last;
LastRecNo:=Base_DataS.DataSet.RecNo;
Base_DataS.DataSet.GotoBookmark(MK);
if CurrentRecNo=LastRecNo then exit;//如果是最后一条记录
//读取当前记录的信息
with Base_DataS.DataSet do
begin
CurrentRec.Project_Id:=FieldByName('Project_Id').AsInteger;
CurrentRec.Lane_Id:=FieldByName('Lane_Id').AsInteger;
CurrentRec.Propty:=FieldByName('Property').AsString;
CurrentRec.Name:=FieldByName('Name').AsString;
//CurrentRec.Lane_Type:=FieldByName('Lane_Type').AsInteger;
CurrentRec.Section_Area:=FieldByName('Section_Area').AsFloat;
CurrentRec.Section_Type:=FieldByName('Section_Type').AsString;
CurrentRec.TechnicType:=FieldByName('Technic_Type').AsString;
CurrentRec.Rock_Property:=FieldByName('Rock_Property').AsString;
//CurrentRec.Rigidity:=FieldByName('Rigidity').AsFloat;
CurrentRec.WorkQuantity:=FieldByName('WorkQuantity').AsFloat;
CurrentRec.DayProgress:=FieldByName('DayProgress').AsFloat;
CurrentRec.State:=FieldByName('State').AsString;
CurrentRec.TaskT:=FieldByName('TaskTime').AsInteger;
CurrentRec.Disposed:=FieldByName('Disposed').AsInteger;
end;
Base_DataS.DataSet.Next;
//读取当前记录的下一条记录的信息
with Base_DataS.DataSet do
begin
CurrentNextRec.Project_Id:=FieldByName('Project_Id').AsInteger;
CurrentNextRec.Lane_Id:=FieldByName('Lane_Id').AsInteger;
CurrentNextRec.Propty:=FieldByName('Property').AsString;
CurrentNextRec.Name:=FieldByName('Name').AsString;
//CurrentNextRec.Lane_Type:=FieldByName('Lane_Type').AsInteger;
CurrentNextRec.Section_Area:=FieldByName('Section_Area').AsFloat;
CurrentNextRec.Section_Type:=FieldByName('Section_Type').AsString;
CurrentNextRec.TechnicType:=FieldByName('Technic_Type').AsString;
CurrentNextRec.Rock_Property:=FieldByName('Rock_Property').AsString;
//CurrentNextRec.Rigidity:=FieldByName('Rigidity').AsFloat;
CurrentNextRec.WorkQuantity:=FieldByName('WorkQuantity').AsFloat;
CurrentNextRec.DayProgress:=FieldByName('DayProgress').AsFloat;
CurrentNextRec.State:=FieldByName('State').AsString;
CurrentNextRec.TaskT:=FieldByName('TaskTime').AsInteger;
CurrentNextRec.Disposed:=FieldByName('Disposed').AsInteger;
end;
Base_DataS.DataSet.Prior;//返回原位置
if CurrentNextRec.Project_Id<>CurrentRec.Project_Id then exit;
if CurrentNextRec.Propty<>CurrentRec.Propty then exit;
//把当前记录变为当前记录的下一条记录
With Base_DataS.DataSet do
begin
Edit;
FieldByName('Property').AsString:=CurrentNextRec.Propty;
FieldByName('Name').AsString:=CurrentNextRec.Name;
//FieldByName('Lane_Type').AsInteger:=CurrentNextRec.Lane_Type;
FieldByName('Section_Area').AsFloat:=CurrentNextRec.Section_Area;
FieldByName('Section_Type').AsString:=CurrentNextRec.Section_Type;
FieldByName('Technic_Type').AsString:=CurrentNextRec.TechnicType;
FieldByName('Rock_Property').AsString:=CurrentNextRec.Rock_Property;
//FieldByName('Rigidity').AsFloat:=CurrentNextRec.Rigidity;
FieldByName('State').AsString:=CurrentNextRec.State;
FieldByName('WorkQuantity').AsFloat:=CurrentNextRec.WorkQuantity;
FieldByName('DayProgress').AsFloat:=CurrentNextRec.DayProgress;
FieldByName('TaskTime').AsInteger:=CurrentNextRec.TaskT;
FieldByName('Disposed').AsInteger:=CurrentNextRec.Disposed;
Post;
end;
Base_DataS.DataSet.Next;
//把当前记录的下一条记录变为当前记录
With Base_DataS.DataSet do
begin
Edit;
FieldByName('Property').AsString:=CurrentRec.Propty;
FieldByName('Name').AsString:=CurrentRec.Name;
//FieldByName('Lane_Type').AsInteger:=CurrentRec.Lane_Type;
FieldByName('Section_Area').AsFloat:=CurrentRec.Section_Area;
FieldByName('Section_Type').AsString:=CurrentRec.Section_Type;
FieldByName('Technic_Type').AsString:=CurrentRec.TechnicType;
FieldByName('Rock_Property').AsString:=CurrentRec.Rock_Property;
//FieldByName('Rigidity').AsFloat:=CurrentRec.Rigidity;
FieldByName('State').AsString:=CurrentRec.State;
FieldByName('WorkQuantity').AsFloat:=CurrentRec.WorkQuantity;
FieldByName('DayProgress').AsFloat:=CurrentRec.DayProgress;
FieldByName('TaskTime').AsInteger:=CurrentRec.TaskT;
FieldByName('Disposed').AsInteger:=CurrentRec.Disposed;
Post;
end;
end;
procedure TLaneInfo_Frm.DBComboBox6KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if DBComboBox6.Text='待开工' then DBEdit4.SetFocus;
if DBComboBox6.Text='已完工' then
begin
DBEdit4.Text:='0';
DBEdit3.Text:='0';
BitBtn3.SetFocus;
end;
end;
end;
procedure TLaneInfo_Frm.BitBtn12Click(Sender: TObject);
type
TProject=record
Count:integer;
Id:integer;
end;
TEarly=record
BeginDate:TDate;
Seq:integer;
end;
var
i,j,k,t,n,ProjectCount:integer;
BeginDate,LatestDate:TDate;
Proj:array of TProject;
Early:TEarly;
str,Task_Type:string;
begin
BitBtn2.Enabled:=true;
BitBtn8.Enabled:=true;
BitBtn9.Enabled:=true;
BitBtn10.Enabled:=true;
BitBtn11.Enabled:=true;
//程序产生掘进任务(产生Lane_AdoTab表中的数据)
if not MineRelay_Frm.FaceArrayFinished then
begin
Relay_Frm.PageControl1.Pages[0].Show;
exit;
end;
if Base_DataS.DataSet.RecordCount<>0 then
begin
if messagedlg('已经形成了掘进任务,保留原有掘进任务继续吗?重新确定掘进任务请按‘no’,注意:如果重新确定掘进任务,以前输入的关于掘进任务的日进度和工程量等信息将被删除,需要用户在重新产生掘进任务时重新输入!',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
//激活相应按钮
//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;
BitBtn13.Enabled:=true;
exit;
end;
end;
//若重新形成掘进任务,则删除原掘进接替表中的已有记录
with Data_Frm.DrillRelay_AdoTab do
begin
if RecordCount>0 then
begin
first;
while not eof do
begin
delete;
end;
end;
end;
//删除“前置工序”表中的记录
with Data_Frm.PriorTask_AdoTab do
begin
if RecordCount>0 then
begin
first;
while not eof do
begin
delete;
end;
end;
end;
//修改确定安装准备时间和掘进提前时间
MineRelayInterval_Frm:=TMineRelayInterval_Frm.Create(self);
MineRelayInterval_Frm.ShowModal;
MineRelayInterval_Frm.Free;
MineRelayInterval_Frm:=nil;
//根据采煤工作面接替计划形成掘进任务
//1、读取采煤工作面接替计划,
//获取各个采煤工作面的时间信息,包括开始时间,结束时间,安准时间,提前时间
//检查各个接替回采面所在采区,是否是首采面:过程调用ReadRelayFace来实现
if Data_Frm.MineRelay_AdoTab.RecordCount=0 then
begin
showmessage('请先安排采煤工作面接替计划!');
//激活相应按钮
//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;
BitBtn13.Enabled:=true;
exit;
end;
//确定掘进任务的内容
DrillTask_Frm:=TDrillTask_Frm.Create(self);
DrillTask_Frm.ShowModal;
//读取掘进工作任务内容
setlength(DrillTask,DrillTask_Frm.Base_DataS.DataSet.RecordCount+1);
with DrillTask_Frm.Base_DataS.DataSet do //对应于“掘进工作任务”表
begin
i:=1;
First;
while not eof do
begin
DrillTask[i].Id:=FieldByName('Id').AsInteger;
DrillTask[i].Name:=FieldByName('Name').AsString;
DrillTask[i].Task_Type:=FieldByName('Type').AsString;
DrillTask[i].PriorTask_Count:=0;
DrillTask[i].FirstFaceDrillPrior_Count:=0;
DrillTask[i].tag:=1; //为PriorTask读取前工序的辅助变量
DrillTask[i].IsLastTask:=false;
DrillTask[i].SpecialLastTask:=false;
next;
i:=i+1;
end;
end;
//判断各类掘进任务的最后任务
for i:=1 to High(DrillTask)-1 do
begin
if DrillTask[i].Task_Type<>DrillTask[i+1].Task_Type then
DrillTask[i].IsLastTask:=true;
end;
DrillTask[High(DrillTask)].IsLastTask:=true;
DrillTask_Frm.Free;
DrillTask_Frm:=nil;
//指定掘进工作任务的前工序情况
DrillWorkPriorTask_Frm:=TDrillWorkPriorTask_Frm.Create(self);
DrillWorkPriorTask_Frm.ShowModal;
//把各掘进工作任务的前工序情况读取到数组DrillTask中的PriorTask中去,
//以便在后面的WriteIntoLaneTab()过程中进行相关处理
with DrillWorkPriorTask_Frm.Base_DataS.DataSet do //对应于“掘进工作任务前工序”表
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -