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

📄 pur500_01.pas.svn-base

📁 开源的网站整站程序,功能强大带采集系统.
💻 SVN-BASE
字号:
unit Pur500_01;

interface

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

type
  TPur500_01Form = class(TBas200_10Form)
    lblDate: TLabel;
    edtFromDate: TwwDBDateTimePicker;
    edtToDate: TwwDBDateTimePicker;
    sbSearch: TSpeedButton;
    ADOQuery1P500A_001: TWideStringField;
    ADOQuery1P500A_002: TSmallintField;
    ADOQuery1P500A_003: TDateTimeField;
    ADOQuery1P500A_004: TSmallintField;
    ADOQuery1P500A_005: TSmallintField;
    ADOQuery1P500A_006: TWideStringField;
    ADOQuery1P500A_007: TIntegerField;
    ADOQuery1P500A_008: TIntegerField;
    ADOQuery1P500A_009: TWideStringField;
    ADOQuery1P500A_010: TDateTimeField;
    ADOQuery1P500A_011: TWideStringField;
    ADOQuery1P500A_012: TMemoField;
    ADOQuery1P500A_013: TDateTimeField;
    ADOQuery1P500A_014: TWideStringField;
    ADOQuery1P500A_015: TDateTimeField;
    ADOQuery1P500A_016: TWideStringField;
    ADOQuery1P100_002: TWideStringField;
    ADOQuery1H150_002: TWideStringField;
    ADOQuery1H150_003: TWideStringField;
    ADOQuery1H100_002: TWideStringField;
    dxDBGrid1P500A_001: TdxDBGridColumn;
    dxDBGrid1P100_002: TdxDBGridColumn;
    dxDBGrid1P500A_003: TdxDBGridDateColumn;
    dxDBGrid1P500A_004: TdxDBGridMaskColumn;
    dxDBGrid1P500A_005: TdxDBGridMaskColumn;
    dxDBGrid1H150_002: TdxDBGridColumn;
    dxDBGrid1H150_003: TdxDBGridColumn;
    dxDBGrid1H100_002: TdxDBGridColumn;
    dxDBGrid1P500A_009: TdxDBGridColumn;
    dxDBGrid1P500A_010: TdxDBGridDateColumn;
    dxDBGrid1P500A_011: TdxDBGridColumn;
    dxDBGrid1P500A_013: TdxDBGridDateColumn;
    dxDBGrid1P500A_014: TdxDBGridColumn;
    dxDBGrid1P500A_015: TdxDBGridDateColumn;
    dxDBGrid1P500A_016: TdxDBGridColumn;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbSearchClick(Sender: TObject);
    procedure ADOQuery1P500A_004GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure ADOQuery1P500A_005GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure dxDBGrid1P500A_001DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure Action1Execute(Sender: TObject);
    procedure Action2Execute(Sender: TObject);
  private
    AStatus:array[0..3] of string;
    AFrom:array[0..2] of string;
    { Private declarations }
  public
    procedure SetInterface; override;
    procedure InsertEvent; override;
    procedure UpdateEvent; override;
    procedure DeleteEvent; override;
    procedure BrowseEvent; override;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
    { Public declarations }
  end;

var
  Pur500_01Form: TPur500_01Form;

implementation

uses SYSDATA, CommFun, Pur500_02;

{$R *.dfm}

procedure TPur500_01Form.SetInterface;
begin
  inherited;
  Caption:=GetDBString('PUR50001001');  //采购申请维护
  lblDate.Caption:=GetDBString('PUR50001002');  //日期
  sbSearch.Caption:=GetDBString('PUR50001003');  //查询

  ADOQuery1P500A_001.DisplayLabel:=GetDBString('PUR50001004');  //请购单号
  ADOQuery1P100_002.DisplayLabel:=GetDBString('PUR50001005');  //请购类型
  ADOQuery1P500A_003.DisplayLabel:=GetDBString('PUR50001006');  //请购日期
  ADOQuery1P500A_004.DisplayLabel:=GetDBString('PUR50001007');  //请购状态
  ADOQuery1P500A_005.DisplayLabel:=GetDBString('PUR50001008');  //来源类型
  ADOQuery1H150_002.DisplayLabel:=GetDBString('PUR50001009');  //请购人号
  ADOQuery1H150_003.DisplayLabel:=GetDBString('PUR50001010');  //请购人名
  ADOQuery1H100_002.DisplayLabel:=GetDBString('PUR50001011');  //请购部门
  ADOQuery1P500A_009.DisplayLabel:=GetDBString('PUR50001012');  //收货地点
  ADOQuery1P500A_010.DisplayLabel:=GetDBString('PUR50001013');  //审核日期
  ADOQuery1P500A_011.DisplayLabel:=GetDBString('PUR50001014');  //审核人员
  ADOQuery1P500A_013.DisplayLabel:=GetDBString('PUR50001015');  //制单日期
  ADOQuery1P500A_014.DisplayLabel:=GetDBString('PUR50001016');  //制单人员
  ADOQuery1P500A_015.DisplayLabel:=GetDBString('PUR50001017');  //修改日期
  ADOQuery1P500A_016.DisplayLabel:=GetDBString('PUR50001018');  //修改人员

  //定单状态(0=新建,1=核准,2=完成,3=取消)
  AStatus[0]:=GetDBString('PUR50001019');  //新建
  AStatus[1]:=GetDBString('PUR50001020');  //核准
  AStatus[2]:=GetDBString('PUR50001021');  //完成
  AStatus[3]:=GetDBString('PUR50001022');  //取消

  //来源类型(0=手工输入,1=自动补库,2=物料需求)
  AFrom[0]:=GetDBString('PUR50001023');  //手工输入
  AFrom[1]:=GetDBString('PUR50001024');  //自动补库
  AFrom[2]:=GetDBString('PUR50001025');  //物料需求
  Action1.Caption:=GetDBString('PUR50001026');  //核准
  Action2.Caption:=GetDBString('PUR50001027');  //取消
end;

procedure TPur500_01Form.FormCreate(Sender: TObject);
var
  ADate:TDateTime;
begin
  inherited;
  ADate:=GetServerDate;
  edtFromDate.Date:=GetMonthFirstDate(ADate);
  edtToDate.Date:=GetMonthEndDate(ADate);
  sbSearch.Click;
end;

procedure TPur500_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
//
end;

procedure TPur500_01Form.sbSearchClick(Sender: TObject);
begin
  inherited;
//查询
  if (edtFromDate.Text='') or (edtToDate.Text='') then
  begin
    ShowMsg('UMS10000319');  //起止日期不可为空
    if edtFromDate.Text='' then edtFromDate.SetFocus else edtToDate.SetFocus;
    Abort;
  end;
  if edtFromDate.Date>edtToDate.Date then
  begin
    ShowMsg('UMS10000320');  //结束日期不能小于起始日期
    edtToDate.SetFocus;
    Abort;
  end;

  Screen.Cursor:=crHourGlass;
  ADOQuery1.DisableControls;
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select A.*,');
  ADOQuery1.SQL.Add('    B.P100_002,');
  ADOQuery1.SQL.Add('    C.H150_002,C.H150_003,');
  ADOQuery1.SQL.Add('    D.H100_002');
  ADOQuery1.SQL.Add('from PUR500A A,PUR100 B,HRM150 C,HRM100 D');
  ADOQuery1.SQL.Add('where A.P500A_002=B.P100_001 and A.P500A_007=C.H150_001 and A.P500A_008=D.H100_001');
  ADOQuery1.SQL.Add('order by A.P500A_001');
  ADOQuery1.Open;
  ARecordCount:=GetDataSetCount(ADOQuery1);
  ADOQuery1.EnableControls;
  Screen.Cursor:=crDefault;
end;

procedure TPur500_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
  inherited;
  if ParName='ADate' then ParValue:=lblDate.Caption  //日期
  else if ParName='AFromDate' then ParValue:=edtFromDate.Text  //
  else if ParName='AToDate' then ParValue:=edtToDate.Text  //
end;

procedure TPur500_01Form.BrowseEvent;
begin
  inherited;
  Pur500_02Form:=TPur500_02Form.Create(Application);
  Pur500_02Form.OpenData(ADOQuery1P500A_001.Value);
  Pur500_02Form.ShowModal;
end;

procedure TPur500_01Form.DeleteEvent;
var
  ACode:String;
begin
  inherited;
  //0=新建,1=核准,2=完成,3=取消
  if ADOQuery1.FieldByName('P500A_004').AsInteger<>0 then
  begin
    ShowMsg('UMS10000564');  //不允许删除非新建状态的采购申请
    Abort;
  end;
  ACode:=ADOQuery1.FieldByName('P500A_001').AsString;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('delete from PUR500B where P500B_001='+''''+ACode+'''');
  SYSDM.qryQuery.ExecSQL;
  DeleteTableRecord(ADOQuery1,'PUR500A','P500A_001='+''''+ACode+'''');
end;

procedure TPur500_01Form.InsertEvent;
begin
  inherited;
//新增
  Pur500_02Form:=TPur500_02Form.Create(Application);
  Pur500_02Form.OpenData('');
  Pur500_02Form.ActInsert.Execute;
  Pur500_02Form.ShowModal;
end;

procedure TPur500_01Form.UpdateEvent;
begin
  inherited;
//修改
  //0=新建,1=核准,2=取消,3=完成
  if ADOQuery1.FieldByName('P500A_004').AsInteger<>0 then
  begin
    ShowMsg('UMS10000644');  //不允许修改非新建状态的采购申请
    Abort;
  end;
  Pur500_02Form:=TPur500_02Form.Create(Application);
  Pur500_02Form.OpenData(ADOQuery1P500A_001.Value);
  Pur500_02Form.ActUpdate.Execute;
  Pur500_02Form.ShowModal;
end;

procedure TPur500_01Form.ADOQuery1P500A_004GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if ADOQuery1.IsEmpty then Exit;
  Text:=AStatus[Sender.AsInteger];
end;

procedure TPur500_01Form.ADOQuery1P500A_005GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if ADOQuery1.IsEmpty then Exit;
  Text:=AFrom[Sender.AsInteger];
end;

procedure TPur500_01Form.dxDBGrid1P500A_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 TPur500_01Form.Action1Execute(Sender: TObject);
begin
  inherited;
//核准
  //0=新建,1=核准,2=完成,3=取消
  if ADOQuery1.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Abort;
  end;
  if ADOQuery1P500A_004.Value<>0 then
  begin
    ShowMsg('UMS10000565');  //仅新建状态的采购申请可以核准
    Abort;
  end;
  ADOQuery1.Edit;
  ADOQuery1P500A_004.Value:=1;
  ADOQuery1.Post;
  ShowMsg('UMS10000566');  //采购申请已成功设置为核准状态
end;

procedure TPur500_01Form.Action2Execute(Sender: TObject);
begin
  inherited;
//取消
  //0=新建,1=核准,2=完成,3=取消
  if ADOQuery1.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Abort;
  end;
  if ADOQuery1P500A_004.Value<>1 then
  begin
    ShowMsg('UMS10000567');  //仅核准状态的采购申请可以取消
    Abort;
  end;
  ADOQuery1.Edit;
  ADOQuery1P500A_004.Value:=2;
  ADOQuery1.Post;
  ShowMsg('UMS10000568');  //采购申请已成功设置为取消状态
end;

initialization
  RegisterClass(TPur500_01Form);

finalization
  UnRegisterClass(TPur500_01Form);

end.

⌨️ 快捷键说明

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