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

📄 tasw00_01.pas.svn-base

📁 一个用Delphi开发的ERP软件
💻 SVN-BASE
📖 第 1 页 / 共 4 页
字号:
    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 + -