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

📄 tas510_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
  Screen.Cursor:=crHourGlass;
  AStringList:=TStringList.Create;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select * from TAS100 where T100_002='+''''+cbClass.Text+'''');
  SYSDM.qryQuery.Open;
  if SYSDM.qryQuery.IsEmpty then AClassNo:='0' else AClassNo:=SYSDM.qryQuery.FieldByName('T100_001').AsString;
  if AClassNo<>'0' then
  begin
    AStringList.Add(AClassNo);
    if HasChild(AClassNo,'TAS100','T100_003') then GetChild(AClassNo,'TAS100','T100_003','T100_001',AStringList);
  end;
  AClassNo:='';
  for I:=0 to AStringList.Count-1 do AClassNo:=AClassNo+','+AStringList[I];
  Delete(AClassNo,1,1);

  ADOQuery1.DisableControls;
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select B.*,C.T100_002,D.T120_003,');
  ADOQuery1.SQL.Add('       G.O150_001,G.O150_002,G.O150_003,I.H150_002,I.H150_003,D.T120_005');
  ADOQuery1.SQL.Add('from TAS510 B,TAS100 C,TAS120 D,ORD150 G,HRM150 I');
  ADOQuery1.SQL.Add('where B.T510_004=C.T100_001 and B.T510_003=D.T120_001 and B.T510_024=I.H150_001 and');
  ADOQuery1.SQL.Add('      B.T510_016=G.O150_001 and ');
  ADOQuery1.SQL.Add('      '+AField+'>='+GetDateString(edtFromDate.Date)+' and '+AField+'<='+GetDateString(edtToDate.Date));
  if AClassNo<>'' then ADOQuery1.SQL.Add('      and B.T510_004 in ('+AClassNo+')');
  ADOQuery1.SQL.Add('order by T510_001');
  ADOQuery1.Open;
  ADOQuery1.EnableControls;
  ARecordCount:=GetDataSetCount(ADOQuery1);
  AStringList.Free;
  Screen.Cursor:=crDefault;
end;

procedure TTas510_01Form.Action1Execute(Sender: TObject);
begin
  inherited;
//完成
  if ADOQuery1.IsEmpty then Exit;
  if ADOQuery1.FieldByName('T510_003').AsInteger in [1,2,3,4] then
  begin
    ShowMsg('UMS10000314');  //计划、执行、完成、返工状态下的任务不可执行该操作
    Abort;
  end;
  if ShowDialog('UMS10000315')=IDYES then  //任务设置为完成后,将不可对它进行其他任何操作,是否确定将该任务设置为完成状态?
  begin
    Screen.Cursor:=crHourGlass;
    ADOQuery1.Edit;
    ADOQuery1.FieldByName('T510_003').Value:=3;  //设置完成状态
    ADOQuery1.FieldByName('T510_028').Value:=GetServerDate;  
    ADOQuery1.Post;
  end;
  ADOQuery1.Refresh;
  Screen.Cursor:=crDefault;
  ShowMsg('UMS10000316');  //成功将任务设置为完成状态
end;

procedure TTas510_01Form.Action2Execute(Sender: TObject);
var
  ATaskID:string;
begin
  inherited;
//返工
//必须保存工单后再更改状态,且不能输入任务编号等信息,只能输入执行人员,预计工时等
  if ADOQuery1.IsEmpty then Exit;
  if ADOQuery1.FieldByName('T510_003').Value<>3 then
  begin
    ShowMsg('UMS10000317');  //非完成状态下的任务不可执行返工作业
    Abort;
  end;
  Screen.Cursor:=crHourGlass;
  ATaskID:=ADOQuery1.FieldByName('T510_001').AsString;
  Tas520_02Form:=TTas520_02Form.Create(Application);
  Tas520_02Form.OpenData('',ATaskID);
  Screen.Cursor:=crDefault;
  if Tas520_02Form.ShowModal=1 then
  begin
    ADOQuery1.DisableControls;
    sbSearch.Click;
    ADOQuery1.Locate('T510_001',ATaskID,[]);
    ADOQuery1.Edit;
    ADOQuery1.FieldByName('T510_003').Value:=4;  //设置返工状态
    ADOQuery1.FieldByName('T510_028').Value:=null;  
    ADOQuery1.Post;
    ADOQuery1.EnableControls;
    ShowMsg('UMS10000318');  //成功将任务设置为返工状态
  end;
end;

procedure TTas510_01Form.dxDBGrid1CustomDrawCell(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
  AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
  var AText: String; var AColor: TColor; AFont: TFont;
  var AAlignment: TAlignment; var ADone: Boolean);
begin
  inherited;
  if ANode.HasChildren then Exit;
  if not ASelected then
    if ANode.Values[dxDBGrid1T120_005.Index]<>null then AFont.Color:=ANode.Values[dxDBGrid1T120_005.Index];
end;

procedure TTas510_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
  inherited;
  if ParName='AType' then ParValue:=lblClass.Caption  //类别
  else if ParName='ATypeValue' then ParValue:=cbClass.Text  //
  else if ParName='ADate' then ParValue:=lblDate.Caption  //日期
  else if ParName='AFromDate' then ParValue:=edtFromDate.Text  //
  else if ParName='AToDate' then ParValue:=edtToDate.Text  //
  else if ParName='T510_001' then ParValue:=ADOQuery1T510_001.DisplayLabel  //
  else if ParName='T510_002' then ParValue:=ADOQuery1T510_002.DisplayLabel  //
  else if ParName='T120_003' then ParValue:=ADOQuery1T120_003.DisplayLabel  //
  else if ParName='T510_006' then ParValue:=ADOQuery1T510_006.DisplayLabel  //
  else if ParName='O150_002' then ParValue:=ADOQuery1O150_002.DisplayLabel  //
  else if ParName='O150_003' then ParValue:=ADOQuery1O150_003.DisplayLabel  //
  else if ParName='I150_002' then ParValue:=ADOQuery1I150_002.DisplayLabel  //
  else if ParName='T510_018' then ParValue:=ADOQuery1T510_018.DisplayLabel  //
end;

procedure GetStatusList(var AStringList:TStrings);
begin
  if AStringList=nil then Exit;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select * from TAS120');
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    AStringList.Add(SYSDM.qryQuery.FieldByName('T120_003').Value);
    SYSDM.qryQuery.Next;
  end;
end;

procedure TTas510_01Form.FilterDialogSelectField(Sender: TObject;
  FieldName: String; var PictureMask: String; ComboList: TStrings);
begin
  if FieldName='T120_003' then GetStatusList(ComboList);
end;

procedure TTas510_01Form.cbClassChange(Sender: TObject);
begin
  inherited;
  sbSearch.Click;
end;

procedure TTas510_01Form.dxDBGrid1T510_001DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AColor:=clWhite;
  AText:=GetDBString('COM00004002')+IntToStr(ARecordCount);  //记录总数:
end;

procedure TTas510_01Form.ADOQuery1CalcFields(DataSet: TDataSet);
begin
  inherited;
  case ADOQuery1T510_008.AsInteger of
    0:ADOQuery1FType.AsString:=AType[0];  //销售订单
    1:ADOQuery1FType.AsString:=AType[1];  //来电记录
    2:ADOQuery1FType.AsString:=AType[2];  //项目计划
    3:ADOQuery1FType.AsString:=AType[3];  //手工输入
  end;

  case ADOQuery1T510_011.AsInteger of
    0:ADOQuery1FUnit.AsString:=AUnit[0];  //时
    1:ADOQuery1FUnit.AsString:=AUnit[1];  //天
    2:ADOQuery1FUnit.AsString:=AUnit[2];  //周
    3:ADOQuery1FUnit.AsString:=AUnit[3];  //月
  end;
end;

procedure TTas510_01Form.BrowseEvent;
begin
  inherited;
  Tas510_02Form:=TTas510_02Form.Create(Application);
  Tas510_02Form.OpenData(ADOQuery1T510_001.Value);
  Tas510_02Form.ShowModal;
end;

procedure TTas510_01Form.DeleteEvent;
var
  ATypeNo:Integer;
  AOrderID,ACode:string;
begin
  inherited;
//删除
  //仅状态=计划时可删除
  if ADOQuery1T510_003.AsInteger<>1 then
  begin
    ShowMsg('UMS10000263');  //不允许删除非计划状态的记录
    Abort;
  end;
  try
    ATypeNo:=ADOQuery1.FieldByName('T510_008').AsInteger;
    AOrderID:=ADOQuery1.FieldByName('T510_009').AsString;
    ACode:=ADOQuery1T510_001.AsString;
    DeleteTableRecord(ADOQuery1,'TAS510','T510_001='+''''+ACode+'''');
    //更新来源单据的相关字段
    case ATypeNo of
      0:UpdateOrderInfo(AOrderID,1);  //销售定单
      1:UpdateCallInfo(AOrderID,1);  //来电记录
      2:UpdateProjectInfo(AOrderID);   //项目计划
    end;
  except
    ShowMsg(SYSDM.ADOC.Errors[0].Description+#13+SYSDM.qryQuery.SQL.Text,1);
    Abort;
  end;
end;

procedure TTas510_01Form.InsertEvent;
begin
  inherited;
//新增
  Tas510_02Form:=TTas510_02Form.Create(Application);
  Tas510_02Form.OpenData('');
  Tas510_02Form.ActInsert.Execute;
  Tas510_02Form.ShowModal;
end;

procedure TTas510_01Form.UpdateEvent;
begin
  inherited;
//修改
  if ADOQuery1T510_003.AsInteger in [2,3,4] then
  begin
    ShowMsg('UMS10000311');  //不允许修改执行、完成、返工状态的记录
    Abort;
  end;
  Tas510_02Form:=TTas510_02Form.Create(Application);
  Tas510_02Form.OpenData(ADOQuery1T510_001.Value);
  Tas510_02Form.ActUpdate.Execute;
  Tas510_02Form.ShowModal;
end;

procedure TTas510_01Form.ActPrintExecute(Sender: TObject);
begin
  AReportName:='';
  inherited;
end;

initialization
  RegisterClass(TTas510_01Form);

finalization
  UnRegisterClass(TTas510_01Form);

end.

⌨️ 快捷键说明

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