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

📄 tas220_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
字号:
unit Tas220_01;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Bas200_03, dxExEdtr, ActnList, DB, ADODB, Menus, dxCntner, dxTL,
  dxDBCtrl, dxDBGrid, ExtCtrls, ComCtrls, ToolWin, Buttons, StdCtrls,
  dxDBTLCl, dxGrClms;

type
  TTas220_01Form = class(TBas200_03Form)
    lblCust: TLabel;
    edtCust: TEdit;
    sbCust: TSpeedButton;
    lblItem: TLabel;
    edtItem: TEdit;
    SpeedButton1: TSpeedButton;
    lblMachine: TLabel;
    edtMachine: TEdit;
    SpeedButton2: TSpeedButton;
    sbSearch: TSpeedButton;
    ADOQuery1T510_001: TWideStringField;
    ADOQuery1T510_002: TWideStringField;
    ADOQuery1T120_003: TWideStringField;
    ADOQuery1T100_002: TWideStringField;
    ADOQuery1T510_006: TDateTimeField;
    ADOQuery1T510_007: TDateTimeField;
    ADOQuery1O150_002: TWideStringField;
    ADOQuery1I150_002: TWideStringField;
    dxDBGrid1T510_001: TdxDBGridColumn;
    dxDBGrid1T510_002: TdxDBGridColumn;
    dxDBGrid1T120_003: TdxDBGridColumn;
    dxDBGrid1T100_002: TdxDBGridColumn;
    dxDBGrid1T510_006: TdxDBGridDateColumn;
    dxDBGrid1T510_007: TdxDBGridDateColumn;
    dxDBGrid1O150_002: TdxDBGridColumn;
    dxDBGrid1I150_002: TdxDBGridColumn;
    qryOrd150: TADOQuery;
    qryOrd150O150_001: TIntegerField;
    qryOrd150O150_002: TWideStringField;
    qryOrd150O150_003: TWideStringField;
    qryOrd153: TADOQuery;
    qryOrd153I150_002: TWideStringField;
    qryOrd153O153_003: TWideStringField;
    qryOrd153I150_003: TWideStringField;
    qryOrd153I150_004: TWideStringField;
    qryOrd153I120_003: TWideStringField;
    qryOrd153O150_002: TWideStringField;
    qryOrd153O150_003: TWideStringField;
    qryOrd153I150_001: TAutoIncField;
    ADOQuery1T510_013: TBCDField;
    ADOQuery1T510_027: TDateTimeField;
    ADOQuery1T510_028: TDateTimeField;
    dxDBGrid1T510_027: TdxDBGridDateColumn;
    dxDBGrid1T510_028: TdxDBGridDateColumn;
    dxDBGrid1T510_013: TdxDBGridCurrencyColumn;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbSearchClick(Sender: TObject);
    procedure dxDBGrid1DblClick(Sender: TObject);
    procedure sbCustClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure edtCustExit(Sender: TObject);
    procedure edtItemExit(Sender: TObject);
    procedure edtMachineExit(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
  private
    { Private declarations }
  public
    procedure SetInterface; override;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
    { Public declarations }
  end;

var
  Tas220_01Form: TTas220_01Form;

implementation

uses SYSDATA, CommFun, HwSelData, Tas510_02;

{$R *.dfm}

procedure TTas220_01Form.SetInterface;
begin
  inherited;
  Caption:=GetDBString('TAS22001001');  //任务历史查詢
  lblCust.Caption:=GetDBString('TAS22001002');  //客户编号
  lblItem.Caption:=GetDBString('TAS22001003');  //产品编号
  lblMachine.Caption:=GetDBString('TAS22001004');  //机身编号
  sbSearch.Caption:=GetDBString('TAS22001005');  //查询
  ADOQuery1O150_002.DisplayLabel:=GetDBString('TAS22001006');  //客戶编号
  ADOQuery1I150_002.DisplayLabel:=GetDBString('TAS22001007');  //产品编号
  ADOQuery1T510_001.DisplayLabel:=GetDBString('TAS22001008');  //任务编号
  ADOQuery1T510_002.DisplayLabel:=GetDBString('TAS22001009');  //任务名称
  ADOQuery1T120_003.DisplayLabel:=GetDBString('TAS22001010');  //任务状态
  ADOQuery1T100_002.DisplayLabel:=GetDBString('TAS22001011');  //任务类别
  ADOQuery1T510_006.DisplayLabel:=GetDBString('TAS22001012');  //申报日期
  ADOQuery1T510_007.DisplayLabel:=GetDBString('TAS22001013');  //需求日期
  ADOQuery1T510_027.DisplayLabel:=GetDBString('TAS22001014');  //实际开始
  ADOQuery1T510_028.DisplayLabel:=GetDBString('TAS22001015');  //实际完成
  ADOQuery1T510_013.DisplayLabel:=GetDBString('TAS22001016');  //实际工时
end;

procedure TTas220_01Form.FormCreate(Sender: TObject);
begin
  inherited;
  SetInterface;
  qryOrd150.Open;
  sbSearch.Click;
end;

procedure TTas220_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  qryOrd150.Close;
  qryOrd153.Close;
end;

procedure TTas220_01Form.sbSearchClick(Sender: TObject);
var
  ACust,AItem,AMachine:string;
begin
  inherited;
//查询
  ACust:='';
  AItem:='';
  AMachine:='';
  if trim(edtCust.Text)<>'' then
  begin
    if not qryOrd150.Locate('O150_002',edtCust.Text,[]) then
    begin
      ShowMsg('UMS10000264');  //输入的客户编号无效
      edtCust.SetFocus;
      Abort;
    end;
    ACust:=qryOrd150.FieldByName('O150_001').AsString;
  end;

  if trim(edtItem.Text)<>'' then
  begin
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('select A.O153_002 from ORD153 A, INV150 B where A.O153_002=B.I150_001 and A.O153_001='+ACust+' and B.I150_002='+''''+edtItem.Text+'''');
    SYSDM.qryQuery.Open;
    if SYSDM.qryQuery.IsEmpty then
    begin
      ShowMsg('UMS10000267');  //输入的产品编号无效
      edtItem.SetFocus;
      Abort;
    end;
    AItem:=SYSDM.qryQuery.FieldByName('O153_002').AsString;
  end;
  if trim(edtMachine.Text)<>'' then
  begin
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('select O153_003 from ORD153 where O153_001='+ACust+' and O153_002='+AItem+' and O153_003='+''''+edtMachine.Text+'''');
    SYSDM.qryQuery.Open;
    if SYSDM.qryQuery.IsEmpty then
    begin
      ShowMsg('UMS10000268');  //输入的机身编号无效
      edtMachine.SetFocus;
      Abort;
    end;
    AMachine:=SYSDM.qryQuery.FieldByName('O153_003').AsString;
  end;

  Screen.Cursor:=crHourGlass;
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select ''[''+O150_002+''] [''+O150_003+'']'' as O150_002,''[''+I150_002+''] [''+T510_018+'']'' as I150_002,');
  ADOQuery1.SQL.Add('       T510_001,T510_002,T120_003,T100_002,T510_006,T510_007,T510_013,T510_027,T510_028');
  ADOQuery1.SQL.Add('from TAS510,TAS100,TAS120,INV150,ORD150');
  ADOQuery1.SQL.Add('where T510_004=T100_001 and T510_003=T120_001 and');
  ADOQuery1.SQL.Add('      T510_016=O150_001 and T510_017=I150_001');
  if ACust<>'' then ADOQuery1.SQL.Add(' and T510_016='+ACust);
  if AItem<>'' then ADOQuery1.SQL.Add(' and T510_017='+AItem);
  if AMachine<>'' then ADOQuery1.SQL.Add(' and T510_018='+''''+AMachine+'''');
  ADOQuery1.SQL.Add('order by T510_016,T510_017,T510_018,T510_001');
  ADOQuery1.Open;
  Screen.Cursor:=crDefault;
end;

procedure TTas220_01Form.dxDBGrid1DblClick(Sender: TObject);
begin
  inherited;
  if ADOQuery1.IsEmpty then Exit;
  Screen.Cursor:=crHourGlass;
  Tas510_02Form:=TTas510_02Form.Create(Application);
  Tas510_02Form.OpenData(ADOQuery1T510_001.Value);
  Screen.Cursor:=crDefault;
  Tas510_02Form.ShowModal;
end;

procedure TTas220_01Form.sbCustClick(Sender: TObject);
begin
  inherited;
//客户编号查询
  if not edtCust.Focused then edtCust.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryOrd150,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    if qryOrd150.IsEmpty then Exit;
    edtCust.Text:=qryOrd150.FieldByName('O150_002').AsString;
    qryOrd153.Close;
    qryOrd153.SQL.Clear;
    qryOrd153.SQL.Add('select C.I150_002,A.O153_003,C.I150_003,C.I150_004,D.I120_003,E.O150_002,E.O150_003,C.I150_001');
    qryOrd153.SQL.Add('from ORD153 A, ORD150 B, INV150 C, INV120 D, ORD150 E');
    qryOrd153.SQL.Add('where A.O153_001=B.O150_001 and A.O153_002=C.I150_001 and C.I150_005=D.I120_001 and C.I150_010=E.O150_001');
    qryOrd153.SQL.Add(' and B.O150_002='+''''+edtCust.Text+'''');
    qryOrd153.Open;
  end;
end;

procedure TTas220_01Form.SpeedButton1Click(Sender: TObject);
begin
  inherited;
//产品编号查询
  if not qryOrd150.Active then qryOrd150.Open;
  if not qryOrd150.Locate('O150_002',edtCust.Text,[]) then
  begin
    ShowMsg('UMS10000266');  //必须先输入正确的客户编号
    edtCust.SetFocus;
    Abort;
  end;
  if not edtItem.Focused then edtItem.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryOrd153,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtItem.Text:=qryOrd153.FieldByName('I150_002').AsString;
    edtMachine.Text:=qryOrd153.FieldByName('O153_003').AsString;
  end;
end;

procedure TTas220_01Form.SpeedButton2Click(Sender: TObject);
begin
  inherited;
//机身编号查询
  if not qryOrd150.Locate('O150_002',edtCust.Text,[]) then
  begin
    ShowMsg('UMS10000266');  //必须先输入正确的客户编号
    edtCust.SetFocus;
    Abort;
  end;
  if not edtMachine.Focused then edtMachine.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryOrd153,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtItem.Text:=qryOrd153.FieldByName('I150_002').AsString;
    edtMachine.Text:=qryOrd153.FieldByName('O153_003').AsString;
  end;
end;

procedure TTas220_01Form.edtCustExit(Sender: TObject);
begin
  inherited;
//客户编号
  if trim(edtCust.Text)='' then Exit;
  if qryOrd150.Locate('O150_002',edtCust.Text,[]) then
  begin
    edtCust.Text:=qryOrd150.FieldByName('O150_002').AsString;
    qryOrd153.Close;
    qryOrd153.SQL.Clear;
    qryOrd153.SQL.Add('select C.I150_002,A.O153_003,C.I150_003,C.I150_004,D.I120_003,E.O150_002,E.O150_003,C.I150_001');
    qryOrd153.SQL.Add('from ORD153 A, ORD150 B, INV150 C, INV120 D, ORD150 E');
    qryOrd153.SQL.Add('where A.O153_001=B.O150_001 and A.O153_002=C.I150_001 and C.I150_005=D.I120_001 and C.I150_010=E.O150_001');
    qryOrd153.SQL.Add(' and B.O150_002='+''''+edtCust.Text+'''');
    qryOrd153.Open;
  end else
  begin
    edtCust.Text:='';
    ShowMsg('UMS10000264');  //输入的客户编号无效
    edtCust.SetFocus;
    Abort;
  end;
end;

procedure TTas220_01Form.edtItemExit(Sender: TObject);
begin
  inherited;
//产品编号
  if trim(edtItem.Text)='' then Exit;
  if not qryOrd150.Locate('O150_002',edtCust.Text,[]) then
  begin
    ShowMsg('UMS10000266');  //必须先输入正确的客户编号
    edtCust.SetFocus;
    Abort;
  end;
  if qryOrd153.Locate('I150_002',edtItem.Text,[]) then
  begin
    edtItem.Text:=qryOrd153.FieldByName('I150_002').AsString;
  end else
  begin
    ShowMsg('UMS10000267');  //输入的产品编号无效
    edtItem.SetFocus;
    Abort;
  end;
end;

procedure TTas220_01Form.edtMachineExit(Sender: TObject);
begin
  inherited;
//机身编号
  if trim(edtMachine.Text)='' then Exit;
  if not qryOrd150.Locate('O150_002',edtCust.Text,[]) then
  begin
    ShowMsg('UMS10000266');  //必须先输入正确的客户编号
    edtCust.SetFocus;
    Abort;
  end;
  if qryOrd153.Locate('O153_003',edtMachine.Text,[]) then
  begin
    edtItem.Text:=qryOrd153.FieldByName('I150_002').AsString;
    edtMachine.Text:=qryOrd153.FieldByName('O153_003').AsString;
  end else
  begin
    edtItem.Text:='';
    edtMachine.Text:='';
    ShowMsg('UMS10000268');  //输入的机身编号无效
    edtMachine.SetFocus;
    Abort;
  end;
end;

procedure TTas220_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
  inherited;
  if ParName='ACust' then ParValue:=lblCust.Caption  //客戶编号
  else if ParName='ACustValue' then ParValue:=edtCust.Text  //
  else if ParName='AItem' then ParValue:=lblItem.Caption  //产品编号
  else if ParName='AItemValue' then ParValue:=edtItem.Text  //
  else if ParName='AMacNo' then ParValue:=lblMachine.Caption  //机身编号
  else if ParName='AMacNoValue' then ParValue:=edtMachine.Text  //
  else if ParName='O150_002' then ParValue:=ADOQuery1O150_002.DisplayLabel  //客戶编号
  else if ParName='I150_002' then ParValue:=ADOQuery1I150_002.DisplayLabel  //产品编号
  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='T100_002' then ParValue:=ADOQuery1T100_002.DisplayLabel  //任务类别
  else if ParName='T510_006' then ParValue:=ADOQuery1T510_006.DisplayLabel  //申报日期
end;

procedure TTas220_01Form.ActPrintExecute(Sender: TObject);
begin
  try
    SYSDM.frReport2.OnGetValue:=ReportGetValue;
    inherited;
  finally
    SYSDM.frReport2.OnGetValue:=nil;
  end;
end;

initialization
  RegisterClass(TTas220_01Form);

finalization
  UnRegisterClass(TTas220_01Form);

end.

⌨️ 快捷键说明

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