📄 tasw00_01.pas.svn-base
字号:
ARecordCount:=GetDataSetCount(qryTas510);
finally
Screen.Cursor:=crDefault;
SYSDM.wwFilterDialog1.OnSelectField:=nil;
end;
end;
procedure TTasW00_01Form.ActPrintExecute(Sender: TObject);
var
AReportName:string;
begin
//打印(&P)
try
Screen.Cursor:=crHourGlass;
AReportName:='TAS510.frf';
SelectReport(qryTas510,AProgramID,AReportName,ReportGetValue);
ActRefresh.Execute;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TTasW00_01Form.ActExportExecute(Sender: TObject);
begin
//导出数据
if qryTas510.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
try
Screen.Cursor:=crHourGlass;
HwExportForm:=THwExportForm.Create(Application);
HwExportForm.GetDataFields('TAS510',qryTas510);
HwExportForm.ShowModal;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TTasW00_01Form.ActCloseExecute(Sender: TObject);
begin
//完成(&C)
if qryTas510.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
if qryTas510.FieldByName('T510_003').AsInteger in [1,2,3,4] then
begin
ShowMsg('UMS10000314'); //计划、执行、完成、返工状态下的任务不可执行该操作
Abort;
end;
if ShowDialog('UMS10000315')=IDNO then Abort; //任务设置为完成后,将不可对它进行其他任何操作,是否确定将该任务设置为完成状态?
try
Screen.Cursor:=crHourGlass;
qryTas510.Edit;
qryTas510.FieldByName('T510_003').Value:=3; //设置完成状态
qryTas510.FieldByName('T510_028').Value:=GetServerDate;
qryTas510.Post;
finally
Screen.Cursor:=crDefault;
end;
ShowMsg('UMS10000316'); //成功将任务设置为完成状态
end;
procedure TTasW00_01Form.ActReturnExecute(Sender: TObject);
var
ATaskID:string;
begin
//返工(&T)
//必须保存工单后再更改状态,且不能输入任务编号等信息,只能输入执行人员,预计工时等
if qryTas510.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
if qryTas510.FieldByName('T510_003').Value<>3 then
begin
ShowMsg('UMS10000317'); //非完成状态下的任务不可执行返工作业
Abort;
end;
try
Screen.Cursor:=crHourGlass;
ATaskID:=qryTas510.FieldByName('T510_001').AsString;
Tas520_02Form:=TTas520_02Form.Create(Application);
Tas520_02Form.OpenData('',ATaskID);
finally
Screen.Cursor:=crDefault;
end;
if Tas520_02Form.ShowModal=1 then
begin
try
qryTas510.DisableControls;
sbSearch.Click;
qryTas510.Locate('T510_001',ATaskID,[]);
qryTas510.Edit;
qryTas510.FieldByName('T510_003').Value:=4; //设置返工状态
qryTas510.FieldByName('T510_028').Value:=null;
qryTas510.Post;
qryTas510.EnableControls;
ShowMsg('UMS10000318'); //成功将任务设置为返工状态
except
qryTas510.EnableControls;
Abort;
end;
end;
end;
procedure TTasW00_01Form.ActOpenTaskExecute(Sender: TObject);
var
ACode:String;
begin
//查看工单(&S)
if qryTas510.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
//判断是否存在工单 按预计开始日期排序(由大到小) 取得最后一张工单
ACode:=qryTas510T510_001.Value;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select top 1 T520_001 from TAS520 where T520_002='+''''+ACode+''''+' order by T520_006 desc');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.IsEmpty then
begin
ShowMsg('UMS10000336'); //该任务不存在任何工单
Abort;
end;
ACode:=SYSDM.qryQuery.FieldByName('T520_001').AsString;
//查看工单
Screen.Cursor:=crHourGlass;
Tas520_02Form:=TTas520_02Form.Create(Application);
Tas520_02Form.OpenData(ACode);
Screen.Cursor:=crDefault;
Tas520_02Form.ShowModal;
try
ACode:=qryTas510T510_001.Value;
sbSearch.Click;
qryTas510.DisableControls;
qryTas510.Locate('T510_001',ACode,[]);
qryTas510.EnableControls;
except
qryTas510.EnableControls;
Abort;
end;
end;
procedure TTasW00_01Form.ActNewTaskExecute(Sender: TObject);
var
ACode:String;
begin
//新增工单(&K)
if qryTas510.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
//任务状态为执行、完成、返工时,不允许建立任务工单
if qryTas510T510_003.AsInteger in [2,3,4] then
begin
ShowMsg('UMS10000337'); //任务状态为执行、完成、返工时,不允许建立任务工单
Abort;
end;
//新增工单
ACode:=qryTas510T510_001.AsString;
Screen.Cursor:=crHourGlass;
Tas520_02Form:=TTas520_02Form.Create(Application);
Tas520_02Form.OpenData('');
Tas520_02Form.ActInsert.Execute;
Tas520_02Form.edtTasks.Text:=ACode;
Tas520_02Form.edtTasksExit(Tas520_02Form.edtTasks);
Screen.Cursor:=crDefault;
Tas520_02Form.ShowModal;
try
ACode:=qryTas510T510_001.Value;
sbSearch.Click;
qryTas510.DisableControls;
qryTas510.Locate('T510_001',ACode,[]);
qryTas510.EnableControls;
except
qryTas510.EnableControls;
Abort;
end;
end;
procedure TTasW00_01Form.ActOpenReportExecute(Sender: TObject);
var
ACode:String;
begin
//查看汇报(&B)
if qryTas510.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
//判断是否存在汇报单 按开始日期排序(由大到小) 取得最后一张汇报单
ACode:=qryTas510T510_001.Value;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select top 1 T530_001 from TAS530,TAS520 where T530_002=T520_001 and T520_002='+''''+ACode+''''+' order by T530_005 desc');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.IsEmpty then
begin
ShowMsg('UMS10000338'); //该任务不存在任何汇报单
Abort;
end;
ACode:=SYSDM.qryQuery.FieldByName('T530_001').AsString;
//查看汇报
Screen.Cursor:=crHourGlass;
Tas530_02Form:=TTas530_02Form.Create(Application);
Tas530_02Form.OpenData(ACode);
Screen.Cursor:=crDefault;
Tas530_02Form.ShowModal;
try
ACode:=qryTas510T510_001.Value;
sbSearch.Click;
qryTas510.DisableControls;
qryTas510.Locate('T510_001',ACode,[]);
qryTas510.EnableControls;
except
qryTas510.EnableControls;
Abort;
end;
end;
procedure TTasW00_01Form.ActNewReportExecute(Sender: TObject);
var
ACode:String;
begin
//新增汇报(&O)
if qryTas510.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
//任务状态为计划、完成时,不允许建立任务汇报单
if qryTas510T510_003.AsInteger in [1,3] then
begin
ShowMsg('UMS10000339'); //任务状态为计划、完成时,不允许建立任务汇报单
Abort;
end;
//判断是否存在可汇报的任务工单 按预计开始日期排序(由大到小) 取得最后一张工单
ACode:=qryTas510T510_001.Value;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select top 1 T520_001 from TAS520 where T520_002='+''''+ACode+''''+' order by T520_006 desc');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.IsEmpty then
begin
ShowMsg('UMS10000340'); //该任务不存在可汇报的任务工单
Abort;
end;
ACode:=SYSDM.qryQuery.FieldByName('T520_001').AsString;
Screen.Cursor:=crHourGlass;
Tas530_02Form:=TTas530_02Form.Create(Application);
Tas530_02Form.OpenData('');
Tas530_02Form.ActInsert.Execute;
Tas530_02Form.edtWork.Text:=ACode;
Tas530_02Form.edtWorkExit(Tas530_02Form.edtWork);
Screen.Cursor:=crDefault;
Tas530_02Form.ShowModal;
try
ACode:=qryTas510T510_001.Value;
sbSearch.Click;
qryTas510.DisableControls;
qryTas510.Locate('T510_001',ACode,[]);
qryTas510.EnableControls;
except
qryTas510.EnableControls;
Abort;
end;
end;
procedure TTasW00_01Form.ActTas310Execute(Sender: TObject);
begin
//任务计划跟踪
CreateFormInPackage('TTas310_01Form',True);
end;
procedure TTasW00_01Form.ActTas435Execute(Sender: TObject);
begin
//工单完成分析
CreateFormInPackage('TTas435_01Form',True);
end;
procedure TTasW00_01Form.ActTas130Execute(Sender: TObject);
begin
//项目类别维护
CreateFormInPackage('TTas130_01Form',True);
end;
procedure TTasW00_01Form.ActTas425Execute(Sender: TObject);
begin
//月装机量分析
CreateFormInPackage('TTas425_01Form',True);
end;
procedure TTasW00_01Form.dbgMasterT510_001DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
AColor:=clWhite;
AText:=GetDBString('COM00004002')+IntToStr(ARecordCount); //记录总数:
end;
procedure TTasW00_01Form.BitBtn4Click(Sender: TObject);
begin
//打印
try
Screen.Cursor:=crHourGlass;
// SelectReport(SYSDM.dsSys910.DataSet,AProgramID,AReportName,ReportGetValue);
ActRefresh.Execute;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TTasW00_01Form.BitBtn5Click(Sender: TObject);
begin
//导出数据
if SYSDM.dsSys910.DataSet.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
try
Screen.Cursor:=crHourGlass;
HwExportForm:=THwExportForm.Create(Application);
HwExportForm.GetDataFields(AProgramID,SYSDM.dsSys910.DataSet);
HwExportForm.ShowModal;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TTasW00_01Form.BitBtn3Click(Sender: TObject);
begin
//查询
try
Screen.Cursor:=crHourGlass;
FilterDialog(SYSDM.dsSys910);
ARecordCount:=GetDataSetCount(SYSDM.dsSys910.DataSet);
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TTasW00_01Form.BitBtn2Click(Sender: TObject);
begin
//查找
if SYSDM.dsSys910.DataSet.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
try
Screen.Cursor:=crHourGlass;
LocateDialog(SYSDM.dsSys910);
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TTasW00_01Form.BitBtn1Click(Sender: TObject);
var
ABookmark:TBookmark;
begin
inherited;
//刷新
ABookmark:=SYSDM.dsSys910.DataSet.GetBookmark;
try
Screen.Cursor:=crHourGlass;
SYSDM.dsSys910.DataSet.DisableControls;
sbSearch.Click;
ARecordCount:=GetDataSetCount(SYSDM.dsSys910.DataSet);
if SYSDM.dsSys910.DataSet.BookmarkValid(ABookmark) then SYSDM.dsSys910.DataSet.GotoBookmark(ABookmark);
finally
SYSDM.dsSys910.DataSet.FreeBookmark(ABookmark);
SYSDM.dsSys910.DataSet.EnableControls;
Screen.Cursor:=crDefault;
end;
end;
procedure TTasW00_01Form.dxDBGrid1BackgroundDrawEvent(Sender: TObject;
ACanvas: TCanvas; ARect: TRect);
var
AText:string;
begin
ARect.Left:=0;
ARect.Top:=0;
ACanvas.Brush.Color:=dxDBGrid1.GroupPanelColor;
ACanvas.Font.Color:=dxDBGrid1.GroupPanelFontColor;
//您可以把列标题拖放到此处使记录按此列进行分组
if dbgMaster.GroupColumnCount=0 then AText:=' '+GetDBString('NOT10001012') else AText:='';
Windows.FillRect(ACanvas.Handle, ARect, 0);
DrawText(ACanvas.Handle, PChar(AText), Length(AText), ARect, DT_LEFT or DT_EXPANDTABS or DT_NOPREFIX or DT_SINGLELINE or DT_VCENTER);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -