upro.pas
来自「成本系统三层结构源码 开发工具:Delphi 7.0+SQLServer 20」· PAS 代码 · 共 277 行
PAS
277 行
unit upro;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, upub2, dxExEdtr, ActnList, ImgList, Menus, DB, ComCtrls, Registry,
ToolWin, Tabs, ExtCtrls, dxCntner, dxTL, dxDBCtrl, dxDBGrid, dxDBTLCl,
dxGrClms, DBCtrls, StdCtrls, Mask, wwdbdatetimepicker, DBClient;
type
Tfmpro = class(Tfmpub2)
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
Label3: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
Label4: TLabel;
DBEdit3: TDBEdit;
wwDBDateTimePicker1: TwwDBDateTimePicker;
GridMasProNo: TdxDBGridMaskColumn;
GridMasProDate: TdxDBGridDateColumn;
GridMasDeptname: TdxDBGridLookupColumn;
GridMasRemark: TdxDBGridMaskColumn;
GridMasCreater: TdxDBGridMaskColumn;
GridMasCreateDate: TdxDBGridDateColumn;
GridMasUpdater: TdxDBGridMaskColumn;
GridMasUpdateDate: TdxDBGridDateColumn;
GridMasApprover: TdxDBGridMaskColumn;
GridMasApproveDate: TdxDBGridDateColumn;
GridMasConfirmer: TdxDBGridMaskColumn;
GridMasConfirmDate: TdxDBGridDateColumn;
TabControl1: TTabControl;
Splitter1: TSplitter;
GridSubOrderNo: TdxDBGridMaskColumn;
GridSubMachineID: TdxDBGridMaskColumn;
GridSubMachineName: TdxDBGridLookupColumn;
GridSubActionID: TdxDBGridMaskColumn;
GridSubActionName: TdxDBGridLookupColumn;
GridSubEmployeeID: TdxDBGridMaskColumn;
GridSubStartTime: TdxDBGridMaskColumn;
GridSubEndTime: TdxDBGridMaskColumn;
GridSubRemark: TdxDBGridMaskColumn;
GridSubReadyTime: TdxDBGridMaskColumn;
GridSubTotalTime: TdxDBGridMaskColumn;
GridEnterEmployeeID: TdxDBGridMaskColumn;
GridEnterStartTime: TdxDBGridMaskColumn;
GridEnterEndTime: TdxDBGridMaskColumn;
GridEnterRemark: TdxDBGridMaskColumn;
GridEnterMachineID: TdxDBGridButtonColumn;
GridEnterActionID: TdxDBGridButtonColumn;
GridEnterOrderNo: TdxDBGridButtonColumn;
GridEnterMachineName: TdxDBGridMaskColumn;
GridEnterActionName: TdxDBGridMaskColumn;
GridEnterReadyTime: TdxDBGridMaskColumn;
GridEnterTotalTime: TdxDBGridMaskColumn;
AutoApprove: TMenuItem;
GridSubReserved1: TdxDBGridMaskColumn;
GridSubReserved2: TdxDBGridCalcColumn;
GridEnterReserved1: TdxDBGridMaskColumn;
GridEnterReserved2: TdxDBGridCalcColumn;
procedure GridEnterKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure TabControl1Change(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ASaveExecute(Sender: TObject);
procedure AutoApproveClick(Sender: TObject);
private
Reg: TRegistry;
Procedure ShowField(NewTab: String);
{ Private declarations }
public
{ Public declarations }
end;
var
fmpro: Tfmpro;
BillTbl: TClientDataSet;
implementation
uses uWIPDM, SherryLib;
{$R *.dfm}
procedure Tfmpro.ShowField(NewTab: String);
begin
self.Caption:=BillTbl.FieldValues['BillName'];
DBEdit1.ReadOnly:=BillTbl.FieldValues['AutoNo'];
if BillTbl.FieldValues['ByMachine'] then
begin
GridSub.FindColumnByFieldName('MachineID').Field.Visible:=True;
GridSub.FindColumnByFieldName('MachineID').Visible:=True;
GridSub.FindColumnByFieldName('MachineName').Field.Visible:=True;
GridSub.FindColumnByFieldName('MachineName').Visible:=True;
GridSub.FindColumnByFieldName('ActionID').Field.Visible:=False;
GridSub.FindColumnByFieldName('ActionID').Visible:=False;
GridSub.FindColumnByFieldName('ActionName').Field.Visible:=False;
GridSub.FindColumnByFieldName('ActionName').Visible:=False;
GridEnter.FindColumnByFieldName('MachineID').Field.Required:=True;
GridEnter.FindColumnByFieldName('ActionID').Field.Required:=False;
GridEnter.FindColumnByFieldName('MachineID').Field.Visible:=True;
GridEnter.FindColumnByFieldName('MachineID').Visible:=True;
GridEnter.FindColumnByFieldName('MachineName').Field.Visible:=True;
GridEnter.FindColumnByFieldName('MachineName').Visible:=True;
GridEnter.FindColumnByFieldName('ActionID').Field.Visible:=False;
GridEnter.FindColumnByFieldName('ActionID').Visible:=False;
GridEnter.FindColumnByFieldName('ActionName').Field.Visible:=False;
GridEnter.FindColumnByFieldName('ActionName').Visible:=False;
GridSub.FindColumnByFieldName('ReadyTime').Field.Visible:=True;
GridSub.FindColumnByFieldName('ReadyTime').Visible:=True;
GridSub.FindColumnByFieldName('StartTime').Field.Visible:=True;
GridSub.FindColumnByFieldName('StartTime').Visible:=True;
GridSub.FindColumnByFieldName('EndTime').Field.Visible:=True;
GridSub.FindColumnByFieldName('EndTime').Visible:=True;
GridSub.FindColumnByFieldName('TotalTime').ReadOnly:=True;
GridSub.FindColumnByFieldName('TotalTime').DisableEditor:=True;
GridEnter.FindColumnByFieldName('ReadyTime').Field.Visible:=True;
GridEnter.FindColumnByFieldName('ReadyTime').Visible:=True;
GridEnter.FindColumnByFieldName('StartTime').Field.Visible:=True;
GridEnter.FindColumnByFieldName('StartTime').Visible:=True;
GridEnter.FindColumnByFieldName('EndTime').Field.Visible:=True;
GridEnter.FindColumnByFieldName('EndTime').Visible:=True;
GridEnter.FindColumnByFieldName('TotalTime').ReadOnly:=True;
GridEnter.FindColumnByFieldName('TotalTime').DisableEditor:=True;
end
else
begin
GridSub.FindColumnByFieldName('MachineID').Field.Visible:=False;
GridSub.FindColumnByFieldName('MachineID').Visible:=False;
GridSub.FindColumnByFieldName('MachineName').Field.Visible:=False;
GridSub.FindColumnByFieldName('MachineName').Visible:=False;
GridSub.FindColumnByFieldName('ActionID').Field.Visible:=True;
GridSub.FindColumnByFieldName('ActionID').Visible:=True;
GridSub.FindColumnByFieldName('ActionName').Field.Visible:=True;
GridSub.FindColumnByFieldName('ActionName').Visible:=True;
GridEnter.FindColumnByFieldName('MachineID').Field.Visible:=False;
GridEnter.FindColumnByFieldName('MachineID').Visible:=False;
GridEnter.FindColumnByFieldName('MachineName').Field.Visible:=False;
GridEnter.FindColumnByFieldName('MachineName').Visible:=False;
GridEnter.FindColumnByFieldName('ActionID').Field.Visible:=True;
GridEnter.FindColumnByFieldName('ActionID').Visible:=True;
GridEnter.FindColumnByFieldName('ActionName').Field.Visible:=True;
GridEnter.FindColumnByFieldName('ActionName').Visible:=True;
GridEnter.FindColumnByFieldName('MachineID').Field.Required:=False;
GridEnter.FindColumnByFieldName('ActionID').Field.Required:=True;
GridSub.FindColumnByFieldName('ReadyTime').Field.Visible:=False;
GridSub.FindColumnByFieldName('ReadyTime').Visible:=False;
GridSub.FindColumnByFieldName('StartTime').Field.Visible:=False;
GridSub.FindColumnByFieldName('StartTime').Visible:=False;
GridSub.FindColumnByFieldName('EndTime').Field.Visible:=False;
GridSub.FindColumnByFieldName('EndTime').Visible:=False;
GridSub.FindColumnByFieldName('TotalTime').ReadOnly:=False;
GridSub.FindColumnByFieldName('TotalTime').DisableEditor:=False;
GridEnter.FindColumnByFieldName('ReadyTime').Field.Visible:=False;
GridEnter.FindColumnByFieldName('ReadyTime').Visible:=False;
GridEnter.FindColumnByFieldName('StartTime').Field.Visible:=False;
GridEnter.FindColumnByFieldName('StartTime').Visible:=False;
GridEnter.FindColumnByFieldName('EndTime').Field.Visible:=False;
GridEnter.FindColumnByFieldName('EndTime').Visible:=False;
GridEnter.FindColumnByFieldName('TotalTime').ReadOnly:=False;
GridEnter.FindColumnByFieldName('TotalTime').DisableEditor:=False;
end;
if length(trim(BillTbl.fieldbyname('Reserved1').AsString))>0 then
Begin
GridSub.FindColumnByFieldName('Reserved1').Field.DisplayLabel:=BillTbl.FieldValues['Reserved1'];
GridSub.FindColumnByFieldName('Reserved1').Field.Visible:=True;
GridSub.FindColumnByFieldName('Reserved1').Visible:=True;
GridEnter.FindColumnByFieldName('Reserved1').Visible:=True;
end
else
begin
GridSub.FindColumnByFieldName('Reserved1').Field.Visible:=False;
GridSub.FindColumnByFieldName('Reserved1').Visible:=False;
GridEnter.FindColumnByFieldName('Reserved1').Visible:=False;
end;
if length(trim(BillTbl.fieldbyname('Reserved2').AsString))>0 then
Begin
GridSub.FindColumnByFieldName('Reserved2').Field.DisplayLabel:=BillTbl.FieldValues['Reserved2'];
GridSub.FindColumnByFieldName('Reserved2').Field.Visible:=True;
GridSub.FindColumnByFieldName('Reserved2').Visible:=True;
GridEnter.FindColumnByFieldName('Reserved2').Visible:=True;
end
else
begin
GridSub.FindColumnByFieldName('Reserved2').Field.Visible:=False;
GridSub.FindColumnByFieldName('Reserved2').Visible:=False;
GridEnter.FindColumnByFieldName('Reserved2').Visible:=False;
end;
end;
procedure Tfmpro.GridEnterKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if (UpperCase(GridEnter.FocusedField.FieldName)=UpperCase('StartTime')) or
(UpperCase(GridEnter.FocusedField.FieldName)=UpperCase('EndTime')) then if key='.' then key:=':';
end;
procedure Tfmpro.FormCreate(Sender: TObject);
begin
BillTbl:=Temp_Data('Select BillId, BillName, ByMachine, AutoNo, Reserved1, Reserved2 from WorkBillInfo where Enabled=1 order by BillId');
BillTbl.Active:=True;
While not BillTbl.eof do
begin
TabControl1.Tabs.Add(BillTbl.FieldValues['BillName']);
BillTbl.Next;
end;
TTabControl(TabControl1).TabIndex:=0;
TClientDataSet(BillTbl).Locate('BillName',TTabControl(TabControl1).Tabs[TTabControl(TabControl1).TabIndex],[]);
DMWip.CProMas.Params.ParamByName('@ProType').AsString:=IntToStr(BillTbl.FieldValues['BillId']);
inherited;
ShowField(BillTbl.FieldValues['BillId']);
DBEdit1.ReadOnly:=BillTbl.FieldValues['AutoNo'];
Reg:= TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('\sherry',true);
if Reg.ValueExists('AutoApprove') then
TMenuItem(AutoApprove).Checked:=Reg.ReadBool('AutoApprove');
Reg.CloseKey;
end;
procedure Tfmpro.TabControl1Change(Sender: TObject);
var ProType:Variant;
begin
try ShowWait;
//if not exists(format('select 1 from WorkBillInfo where Enabled=1 and BillName=N''%s''',[TTabControl(TabControl1).Tabs[TTabControl(TabControl1).TabIndex]])) then
ProType:=Get_Value(format('select BillId from WorkBillInfo where Enabled=1 and BillName=N''%s''',[TTabControl(TabControl1).Tabs[TTabControl(TabControl1).TabIndex]]));
if VarIsNull(ProType) then
Warn('工时单据信息变更,请先退出当前窗口!');
DMWip.CProMas.Active:=False;
DMWip.CProMas.Params.ParamByName('@ProType').AsString:=ProType;
DMWip.CProMas.Active:=True;
ShowField(BillTbl.FieldValues['BillId']);
finally
Hidewait;
end;
end;
procedure Tfmpro.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if TClientDataSet(BillTbl).Active then
TClientDataSet(BillTbl).Active:=False;
TClientDataSet(BillTbl).Free;
TClientDataSet(BillTbl):=Nil;
inherited;
Reg.OpenKey('\sherry',true);
Reg.WriteBool('AutoApprove',TMenuItem(AutoApprove).Checked);
Reg.CloseKey;
Reg.Free;
end;
procedure Tfmpro.ASaveExecute(Sender: TObject);
begin
inherited;
if not AutoApprove.Checked then exit;
AskFlag:=False;
AApprove.Execute;
AskFlag:=True;
end;
procedure Tfmpro.AutoApproveClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:=Not TMenuItem(Sender).Checked;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?