📄 upro.pas
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -