📄 pur500_01.pas.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 + -