D7fhyuhan/员工管理(StaffManage.dll)/U_ProcessDesign.pas

367 lines
9.0 KiB
ObjectPascal
Raw Permalink Normal View History

2025-09-21 08:59:38 +08:00
unit U_ProcessDesign;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin,
StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar,
cxButtonEdit, cxTextEdit, cxDBLookupComboBox, Menus;
type
TfrmProcessDesign = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_GX: TDataSource;
CDS_GX: TClientDataSet;
YGCode: TEdit;
EndDate: TDateTimePicker;
Label4: TLabel;
BegDate: TDateTimePicker;
Label1: TLabel;
cxGrid1: TcxGrid;
TV1: TcxGridDBTableView;
cxGridLevel2: TcxGridLevel;
cxDBTreeList1: TcxDBTreeList;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
ADOConnection1: TADOConnection;
ADOQueryTree: TADOQuery;
DataSource1: TDataSource;
V1Column1: TcxGridDBColumn;
V1Column2: TcxGridDBColumn;
V1Column3: TcxGridDBColumn;
V1Column4: TcxGridDBColumn;
V1Column5: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N3: TMenuItem;
X1: TMenuItem;
N1: TMenuItem;
Label2: TLabel;
YGName: TEdit;
Label5: TLabel;
BZName: TEdit;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure C_CodeNameChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cxDBTreeList1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure X1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
private
{ Private declarations }
canshu1:string;
procedure InitGrid();
procedure InitTree();
public
fkhType:string;
Fmanage:string;
end;
var
frmProcessDesign: TfrmProcessDesign;
implementation
uses
U_DataLink,U_Fun,U_ZDYHelp,U_GXAdd ,U_BZAdd,U_YGAdd
,U_GXGL_List,U_YGList,U_YGCL_BZ;
{$R *.dfm}
procedure TfrmProcessDesign.InitTree();
begin
with ADOQueryTree do
begin
Close;
SQL.Clear;
SQL.Add('exec P_View_ProcessRelationshipTree ');
Open;
end;
cxDBTreeList1.Items[0].Expand(false);
end;
procedure TfrmProcessDesign.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
SQL.Clear;
sql.Add(' EXEC P_View_ProcessRelationship ');
sql.Add(' @CPID='+quotedstr(Trim(ADOQueryTree.fieldbyname('CPID').AsString)));
sql.Add(' ,@CPLEVEL='+quotedstr(Trim(ADOQueryTree.fieldbyname('CPLevel').AsString)));
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_GX);
SInitCDSData20(ADOQueryMain,CDS_GX);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmProcessDesign.FormDestroy(Sender: TObject);
begin
frmProcessDesign:=nil;
end;
procedure TfrmProcessDesign.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmProcessDesign.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(self.Caption,Tv1,<><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmProcessDesign.FormShow(Sender: TObject);
begin
ReadCxGrid(self.Caption,Tv1,<><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
InitTree();
InitGrid();
end;
procedure TfrmProcessDesign.TBRafreshClick(Sender: TObject);
begin
InitTree();
Initgrid();
end;
procedure TfrmProcessDesign.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_GX);
SInitCDSData20(ADOQueryMain,CDS_GX);
end;
end;
procedure TfrmProcessDesign.C_CodeNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmProcessDesign.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
TcxGridToExcel(self.Caption,cxgrid1);
end;
procedure TfrmProcessDesign.FormCreate(Sender: TObject);
begin
canshu1:=Trim(DParameters1);
EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
BegDate.DateTime:=EndDate.DateTime;
end;
procedure TfrmProcessDesign.cxDBTreeList1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmProcessDesign.N3Click(Sender: TObject);
var
MCPLevel:integer;
MCPID,MMaxId,MCPParent:string;
begin
MCPID:=Trim(ADOQueryTree.fieldbyname('CPID').AsString);
MCPLevel:=ADOQueryTree.fieldbyname('CPLevel').AsInteger;
MCPParent:=Trim(ADOQueryTree.fieldbyname('CPParent').AsString);
//<2F><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD>
if GetLSNo(ADOQueryCmd,MMaxId,'JP','JYOrder_Process',4,1)=False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
try
frmGXAdd:=TfrmGXAdd.Create(Application);
with frmGXAdd do
begin
PSID.Text:=trim(MMaxId);
if ShowModal=1 then
begin
self.TBRafresh.Click;
self.ADOQueryTree.Locate('CPID',trim(MMaxId),[]);
end;
end;
finally
frmGXAdd.Free;
end;
end;
procedure TfrmProcessDesign.X1Click(Sender: TObject);
var
MCPLevel:integer;
MCPID,MMaxId,MCPParent,MCPName:string;
begin
MCPID:=Trim(ADOQueryTree.fieldbyname('CPID').AsString);
MCPLevel:=ADOQueryTree.fieldbyname('CPLevel').AsInteger;
MCPParent:=Trim(ADOQueryTree.fieldbyname('CPParent').AsString);
MCPName:=Trim(ADOQueryTree.fieldbyname('CPName').AsString);
//<2F><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD>
if MCPLevel=1 then
begin
if GetLSNo(ADOQueryCmd,MMaxId,'BZ','OA_YG_BZ',4,1)=False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
try
frmBZAdd:=TfrmBZAdd.Create(Application);
with frmBZAdd do
begin
BZID.Text:=trim(MMaxId);
PSID.Text:=trim(MCPID);
GXName.Text:=trim(MCPName);
if ShowModal=1 then
begin
self.TBRafresh.Click;
self.ADOQueryTree.Locate('CPID',trim(MMaxId),[]);
end;
end;
finally
frmBZAdd.Free;
end;
end;
//<2F><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>
if MCPLevel=2 then
begin
if GetLSNo(ADOQueryCmd,MMaxId,'BY','OA_YG_BZYG',4,1)=False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
try
frmYGAdd:=TfrmYGAdd.Create(Application);
with frmYGAdd do
begin
BZYGID.Text:=trim(MMaxId);
BZID.Text:=trim(MCPID);
BZName.Text:=trim(MCPName);
if ShowModal=1 then
begin
TBRafresh.Click;
self.ADOQueryTree.Locate('CPID',trim(MMaxId),[]);
end;
end;
finally
frmYGAdd.Free;
end;
end
end;
procedure TfrmProcessDesign.N1Click(Sender: TObject);
var
MCPLevel:integer;
MCPID,MMaxId,MCPParent,MCPName:string;
begin
MCPID:=Trim(ADOQueryTree.fieldbyname('CPID').AsString);
MCPLevel:=ADOQueryTree.fieldbyname('CPLevel').AsInteger;
MCPParent:=Trim(ADOQueryTree.fieldbyname('CPParent').AsString);
MCPName:=Trim(ADOQueryTree.fieldbyname('CPName').AsString);
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if MCPLevel=1 then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select count(*) as AA from OA_YG_BZ where PSID='''+Trim(MCPID)+'''');
Open;
if FieldByName('AA').AsInteger>0 then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete JYOrder_Process where PSID='''+Trim(MCPID)+'''');
ExecSQL;
end;
end;
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if MCPLevel=2 then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select count(*) as AA from OA_YG_BZYG where BZID='''+Trim(MCPID)+'''');
Open;
if FieldByName('AA').AsInteger>0 then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete OA_YG_BZ where BZID='''+Trim(MCPID)+'''');
ExecSQL;
end;
end;
//ɾ<><C9BE>Ա<EFBFBD><D4B1>
if MCPLevel=3 then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete OA_YG_BZYG where BZYGID='''+Trim(MCPID)+'''');
ExecSQL;
end;
end;
TBRafresh.Click;
ADOQueryTree.Locate('CPID',trim(MCPParent),[]);
end;
end.