C2025-009 Added a report for tracking when a user is added into PROMS / when a user is added to specific PROMS security groups. Report can be run from the V-button->General Tools->Reports.
This commit is contained in:
@@ -9,6 +9,8 @@ using Volian.Controls.Library;
|
||||
using DevComponents.DotNetBar;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System.Linq;
|
||||
using System.Data;
|
||||
using xls = Microsoft.Office.Interop.Excel;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
@@ -275,6 +277,13 @@ namespace VEPROMS
|
||||
setupProgessSteps1();
|
||||
}
|
||||
|
||||
//C2025-009 Report for tracking PROMS Users / security
|
||||
private void sideNavItmReports_Click(object sender, EventArgs e)
|
||||
{
|
||||
GenToolType = E_GenToolType.Reports;
|
||||
setupProgessSteps1();
|
||||
}
|
||||
|
||||
// C2017-030 new Tools user interface
|
||||
private void sideNavItmExit_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -287,7 +296,8 @@ namespace VEPROMS
|
||||
private enum E_GenToolType : int
|
||||
{
|
||||
Check = 0,
|
||||
Users = 3
|
||||
Users = 3,
|
||||
Reports = 5
|
||||
};
|
||||
private E_GenToolType GenToolType = 0;
|
||||
|
||||
@@ -314,8 +324,8 @@ namespace VEPROMS
|
||||
progressSteps1.Visible = true;
|
||||
progressSteps1.Refresh();
|
||||
break;
|
||||
|
||||
case E_GenToolType.Users:
|
||||
case E_GenToolType.Reports:
|
||||
splitContainer3.Panel2Collapsed = true;
|
||||
progressSteps1.Visible = false;
|
||||
break;
|
||||
@@ -415,7 +425,133 @@ namespace VEPROMS
|
||||
|
||||
ClearStepProgress();
|
||||
}
|
||||
|
||||
|
||||
//C2025-009 Report for tracking PROMS Users / security
|
||||
//UACfilename will hold the filename for cases when scheduled for later
|
||||
private string UACfilename;
|
||||
|
||||
//C2025-009 Report for tracking PROMS Users / security
|
||||
private void btnUAC_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(UACfilename))
|
||||
{
|
||||
SaveFileDialog sfd = new SaveFileDialog();
|
||||
sfd.Filter = "Excel XLS (*.xlsx)|*.xlsx";
|
||||
sfd.FileName = "UACReport.xlsx";
|
||||
if (sfd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
UACfilename = sfd.FileName;
|
||||
}
|
||||
}
|
||||
|
||||
if (!CheckProcessLater()) return; // delay processing if set//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
|
||||
txtProcess.Clear();
|
||||
txtResults.Clear();
|
||||
|
||||
if (!string.IsNullOrEmpty(UACfilename))
|
||||
{
|
||||
Generate_UAC_Report(UACfilename);
|
||||
}
|
||||
|
||||
UACfilename = null;
|
||||
|
||||
}
|
||||
|
||||
//C2025-009 Report for tracking PROMS Users / security
|
||||
//Get Datatable of results then loop through outputting into excel
|
||||
private void Generate_UAC_Report(string filename)
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Generate User Access Control Report in PROMS");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
txtResults.Clear();
|
||||
txtResults.AppendText("Generating User Access Control Report");
|
||||
|
||||
using (DataTable dt = UserReports.GetUserAccessControlData())
|
||||
{
|
||||
// Start Excel and get Application object.
|
||||
xls.Application excel = new xls.Application
|
||||
{
|
||||
// Make Excel invisible and disable alerts.
|
||||
Visible = false,
|
||||
DisplayAlerts = false
|
||||
};
|
||||
|
||||
// Create a new Workbook.
|
||||
xls.Workbook excelworkBook = excel.Workbooks.Add();
|
||||
|
||||
// Create a Worksheet.
|
||||
var workSheet = (xls.Worksheet)excelworkBook.ActiveSheet;
|
||||
workSheet.Name = "UAC Report";
|
||||
|
||||
// column headings
|
||||
for (var i = 0; i < dt.Columns.Count; i++)
|
||||
{
|
||||
workSheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
|
||||
}
|
||||
|
||||
// rows
|
||||
for (var i = 0; i < dt.Rows.Count; i++)
|
||||
{
|
||||
for (var j = 0; j < dt.Columns.Count; j++)
|
||||
{
|
||||
workSheet.Cells[i + 2, j + 1] = dt.Rows[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
//resize the columns to match the data
|
||||
workSheet.Columns.AutoFit();
|
||||
|
||||
//freeze the top row, and highlight those cells
|
||||
workSheet.Application.ActiveWindow.SplitRow = 1;
|
||||
workSheet.Application.ActiveWindow.FreezePanes = true;
|
||||
workSheet.Cells.Range[workSheet.Cells[1, 1], workSheet.Cells[1, dt.Columns.Count]].Interior.Color = xls.XlRgbColor.rgbLightBlue;
|
||||
|
||||
//save the excel file
|
||||
excelworkBook.SaveAs(filename);
|
||||
excelworkBook.Close();
|
||||
excel.Quit();
|
||||
|
||||
//release any in use com objects
|
||||
releaseObject(workSheet);
|
||||
releaseObject(excelworkBook);
|
||||
releaseObject(excel);
|
||||
|
||||
}
|
||||
|
||||
DateTime pEnd = DateTime.Now;
|
||||
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
MessageBox.Show("Generate User Access Control Report Completed", "User Access Control Report");
|
||||
|
||||
}
|
||||
|
||||
//C2025-009 Report for tracking PROMS Users / security
|
||||
//for releasing any Excel com objects still in memory
|
||||
private void releaseObject(object obj)
|
||||
{
|
||||
try
|
||||
{
|
||||
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
|
||||
obj = null;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
obj = null;
|
||||
MessageBox.Show("Exception Occurred while releasing object " + ex.ToString());
|
||||
}
|
||||
finally
|
||||
{
|
||||
GC.Collect();
|
||||
}
|
||||
}
|
||||
|
||||
//C2025-011 RO Update Tool Memory Enhancements
|
||||
private void txtProcess_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
Reference in New Issue
Block a user