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

575 lines
15 KiB
ObjectPascal
Raw Normal View History

2025-09-21 08:59:38 +08:00
unit U_YGList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System,
RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxButtonEdit,
cxDropDownEdit, cxPC, cxTL, cxMaskEdit, cxInplaceContainer, cxDBTL, cxTLData;
type
TfrmYGList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
Order_Main: TClientDataSet;
TBView: TToolButton;
Panel1: TPanel;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
N1: TMenuItem;
Label1: TLabel;
YGName: TEdit;
Label2: TLabel;
YGSex: TComboBox;
Label5: TLabel;
GangWei: TEdit;
cxDBTreeList1: TcxDBTreeList;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
DataSource2: TDataSource;
CDS_Tree: TClientDataSet;
ADOQueryTree: TADOQuery;
cxSplitter1: TcxSplitter;
cxTabControl1: TcxTabControl;
TLZ: TToolButton;
ADOQuery1: TADOQuery;
TCXLZ: TToolButton;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1RuZhiDate: TcxGridDBColumn;
v1YGName: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column29: TcxGridDBColumn;
v1YGYearGL: TcxGridDBColumn;
v1SJLiZhiDate: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
Label4: TLabel;
Dept: TEdit;
v1SYRName: TcxGridDBColumn;
v1SFZNo: TcxGridDBColumn;
Label3: TLabel;
SYRName: TEdit;
Panel2: TPanel;
Label6: TLabel;
SJLiZhiDate: TDateTimePicker;
ToolButton1: TToolButton;
v1YGNo: TcxGridDBColumn;
Label7: TLabel;
YGNo: TEdit;
v1Column3: TcxGridDBColumn;
ToolButton2: TToolButton;
v1Column4: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure TBViewClick(Sender: TObject);
procedure CustomerNoNameChange(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure YGNameChange(Sender: TObject);
procedure cxDBTreeList1DblClick(Sender: TObject);
procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure TLZClick(Sender: TObject);
procedure TCXLZClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
private
canshu1: string;
DQdate: TDateTime;
procedure InitGrid();
procedure InitForm();
function DelData(): Boolean;
procedure InitTree();
procedure GLAge();
{ Private declarations }
public
FFInt, FCloth: Integer;
{ Public declarations }
end;
var
frmYGList: TfrmYGList;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_YGInPut, U_YGYPZZChkList_NXZZJL, U_FjList_RZ,
U_DeptTypeHelp;
{$R *.dfm}
procedure TfrmYGList.FormDestroy(Sender: TObject);
begin
frmYGList := nil;
end;
procedure TfrmYGList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmYGList.FormCreate(Sender: TObject);
begin
canshu1 := Trim(DParameters1);
SJLiZhiDate.Date := SGetServerDate(ADOQueryTemp);
cxgrid1.Align := alClient;
end;
procedure TfrmYGList.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid(<><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>2', Tv1, 'OA<4F><41><EFBFBD><EFBFBD>');
end;
procedure TfrmYGList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' exec P_View_YGList :DPID,:LiZhiFlag');
Parameters.ParamByName('DPID').Value := Trim(CDS_Tree.fieldbyname('DPID').AsString);
Parameters.ParamByName('LiZhiFlag').Value := cxTabControl1.TabIndex;
Open;
end;
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmYGList.GLAge();
var
FXTGLNF, FYGGLNF, FGLYF: Double;
begin
FXTGLNF := strtofloat(uppercase(formatdateTime('yyyy', SGetServerDate(ADOQueryTemp))));
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select RuZhiDate,YGYearGL from OA_YG_DangAn where YGType=''<27><>ʽ'' ');
open;
end;
with ADOQueryCmd do
begin
first;
while not eof do
begin
edit;
if ADOQueryCmd.fieldbyname('RuZhiDate').asstring = '' then
begin
fieldbyname('YGYearGL').AsFloat := 0;
end
else
begin
FYGGLNF := strtofloat(uppercase(formatdateTime('yyyy', ADOQueryCmd.fieldbyname('RuZhiDate').AsDateTime)));
FGLYF := strtofloat(uppercase(formatdateTime('MM', ADOQueryCmd.fieldbyname('RuZhiDate').AsDateTime)));
if (FGLYF >= 1) and (FGLYF <= 3) then
fieldbyname('YGYearGL').AsFloat := FXTGLNF - FYGGLNF + 1;
if (FGLYF > 3) and (FGLYF <= 9) then
fieldbyname('YGYearGL').AsFloat := FXTGLNF - FYGGLNF + 0.5;
if (FGLYF > 9) and (FGLYF <= 12) then
fieldbyname('YGYearGL').AsFloat := FXTGLNF - FYGGLNF;
end;
next;
end;
end;
end;
procedure TfrmYGList.InitTree();
var
i: Integer;
begin
try
ADOQueryTree.DisableControls;
with ADOQueryTree do
begin
Close;
SQL.Clear;
SQL.Add('select * from SY_Dept order by DPlevel,DPOrder,DPName');
Open;
end;
SCreateCDS20(ADOQueryTree, CDS_Tree);
SInitCDSData20(ADOQueryTree, CDS_Tree);
cxDBTreeList1.Items[0].Expand(True);
finally
ADOQueryTree.EnableControls;
end;
end;
procedure TfrmYGList.InitForm();
begin
ReadCxGrid(<><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>2', Tv1, 'OA<4F><41><EFBFBD><EFBFBD>');
InitTree();
GLAge();
//InitGrid();
end;
procedure TfrmYGList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
end;
procedure TfrmYGList.TBEditClick(Sender: TObject);
begin
if Order_Main.IsEmpty then
Exit;
try
frmYGInPut := TfrmYGInPut.Create(Application);
with frmYGInPut do
begin
PState := 1;
FMainId := Trim(Self.Order_Main.fieldbyname('YGId').AsString);
FDPID := Trim(CDS_Tree.fieldbyname('DPID').AsString);
FName := trim(CDS_Tree.fieldbyname('DPName').AsString);
frmYGInPut.canshu1 := Trim(Self.canshu1);
if ShowModal = 1 then
begin
initgrid();
end;
end;
finally
frmYGInPut.Free;
end;
end;
procedure TfrmYGList.TBDelClick(Sender: TObject);
begin
if Order_Main.IsEmpty then
Exit;
//if cxTabControl1.TabIndex<>0 then Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
if DelData() then
begin
Order_Main.Delete;
end;
end;
function TfrmYGList.DelData(): Boolean;
begin
try
Result := false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Delete OA_YG_DangAn where YGId=''' + Trim(Order_Main.fieldbyname('YGId').AsString) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Delete OA_YG_DangAn_Other where YGId=''' + Trim(Order_Main.fieldbyname('YGId').AsString) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Delete TP_File where WBId=''' + Trim(Order_Main.fieldbyname('YGId').AsString) + '''');
sql.Add(' and TFType=''YG'' ');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
ADOQueryCmd.Connection.RollbackTrans;
Result := False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><ECB3A3>', '<27><>ʾ', 0);
end;
end;
procedure TfrmYGList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(<><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid1);
end;
procedure TfrmYGList.TBRafreshClick(Sender: TObject);
begin
InitTree();
InitGrid();
end;
procedure TfrmYGList.TBAddClick(Sender: TObject);
var
maxno: string;
begin
try
frmYGInPut := TfrmYGInPut.Create(Application);
with frmYGInPut do
begin
PState := 0;
FMainId := '';
FDPID := Trim(CDS_Tree.fieldbyname('DPID').AsString);
FName := trim(CDS_Tree.fieldbyname('DPName').AsString);
if ShowModal = 1 then
begin
initgrid();
end;
end;
finally
frmYGInPut.Free;
end;
end;
procedure TfrmYGList.FormShow(Sender: TObject);
begin
v1SJLiZhiDate.Visible := false;
if cxTabControl1.TabIndex <> 0 then
v1SJLiZhiDate.Visible := true;
InitForm();
end;
procedure TfrmYGList.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmYGList.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmYGList.TBViewClick(Sender: TObject);
begin
if Order_Main.IsEmpty then
Exit;
try
frmYGInPut := TfrmYGInPut.Create(Application);
with frmYGInPut do
begin
PState := 1;
FMainId := Trim(Self.Order_Main.fieldbyname('YGId').AsString);
FDPID := Trim(CDS_Tree.fieldbyname('DPID').AsString);
TBSave.Visible := False;
ToolButton1.Visible := False;
ToolButton2.Visible := False;
if ShowModal = 1 then
begin
end;
end;
finally
frmYGInPut.Free;
end;
end;
procedure TfrmYGList.CustomerNoNameChange(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
end;
procedure TfrmYGList.N2Click(Sender: TObject);
begin
SelOKNo(Order_Main, True);
end;
procedure TfrmYGList.N1Click(Sender: TObject);
begin
SelOKNo(Order_Main, False);
end;
procedure TfrmYGList.cxTabControl1Change(Sender: TObject);
begin
v1SJLiZhiDate.Visible := false;
if cxTabControl1.TabIndex <> 0 then
v1SJLiZhiDate.Visible := true;
InitGrid();
end;
procedure TfrmYGList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
TBView.Click;
end;
procedure TfrmYGList.YGNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmYGList.cxDBTreeList1DblClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmYGList.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
if Order_Main.IsEmpty then
Exit;
CDS_Tree.Locate('DPID', Trim(Order_Main.fieldbyname('DPID').AsString), []);
end;
procedure TfrmYGList.TLZClick(Sender: TObject);
begin
if order_Main.IsEmpty then
exit;
if CxTabConTrol1.TabIndex <> 0 then
exit;
if application.MessageBox(<><C8B7>Ҫִ<D2AA>д˲<D0B4><CBB2><EFBFBD>', '<27><>ʾ', 1) = 2 then
exit;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn set LiZhiFlag=1,YGType=''<27><>ְ'',SJLiZhiDate=''' + trim(FormatDateTime('yyyy-MM-dd', SJLiZhiDate.Date)) + ''',');
sql.Add(' LiZhiStatus=''<27><>ְͨ<D6B0><CDA8>''');
sql.Add(' where YGID=''' + trim(Order_Main.fieldbyname('YGID').AsString) + '''');
execsql;
end;
initGrid();
end;
procedure TfrmYGList.TCXLZClick(Sender: TObject);
begin
if order_Main.IsEmpty then
exit;
if cxTabControl1.TabIndex <> 1 then
exit;
if application.MessageBox(<><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD><D6B0>', '<27><>ʾ', 1) = 2 then
exit;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn set LiZhiFlag=0,YGType=''<27><>ʽ'',SJLiZhiDate=NULL,LiZhiStatus=''''');
sql.Add(' where YGID=''' + trim(Order_Main.fieldbyname('YGID').AsString) + '''');
execsql;
end;
initGrid();
end;
procedure TfrmYGList.ToolButton1Click(Sender: TObject);
begin
if Order_Main.IsEmpty then
Exit;
try
frmFjList_RZ := TfrmFjList_RZ.Create(Application);
with frmFjList_RZ do
begin
if Trim(DParameters1) <> '<27><>Ȩ<EFBFBD><C8A8>' then
cxButton1.Visible := false;
fkeyNO := Trim(Self.Order_Main.fieldbyname('YGID').AsString);
fType := <><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
end;
end;
finally
frmFjList_RZ.Free;
end;
end;
procedure TfrmYGList.ToolButton2Click(Sender: TObject);
var
FDPID, FName: string;
begin
if Order_Main.IsEmpty then
exit;
if Order_Main.Locate('ssel', true, []) = false then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
FDPID := '';
FName := '';
frmDeptTypeHelp := TfrmDeptTypeHelp.create(self);
with frmDeptTypeHelp do
begin
if showmodal = 1 then
begin
FDPID := Trim(ADOQueryHelp.fieldbyname('DPID').AsString);
FName := Trim(ADOQueryHelp.fieldbyname('DPName').AsString);
end;
free;
end;
if trim(FDPID) = '' then
exit;
try
with Order_Main do
begin
DisableControls;
First;
while not eof do
begin
if fieldbyname('ssel').AsBoolean then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn SET Dept=''' + trim(FName) + ''' ');
sql.Add(',DPID=''' + trim(FDPID) + ''' ');
sql.Add('where YGID=' + quotedstr(trim(Order_Main.fieldbyname('YGID').AsString)));
execsql;
end;
end;
next;
end;
First;
EnableControls;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
initgrid();
except
Order_Main.EnableControls;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
end.