using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Ease.CoreV35.Model; using Ease.CoreV35; using Microsoft.Reporting.WinForms; using Ease.CoreV35.DataAccess; using Payroll.BO; using Payroll.Controls; namespace Payroll.Report { public partial class fWorkflowReport : Form { private ReportItem _reportitem = null; private EnumReportType _Type = EnumReportType.None; private EnumReportType _reportType = EnumReportType.None; public fWorkflowReport() { InitializeComponent(); PopulateControl(); } public void ShowDlg() { this.ShowDialog(); } public EnumReportType Type { set { _Type = value; } } private void PopulateControl() { cboWFType.Items.Clear(); ObjectsTemplate _wfTypes = new ObjectsTemplate(); _wfTypes = WFType.Get(); cboWFType.DataSource = _wfTypes; cboWFType.DisplayMember = "Name"; cboWFType.ValueMember = "ID"; if (cboWFType.Items.Count > 0) cboWFType.SelectedIndex = 0; } private void btnClose_Click(object sender, EventArgs e) { this.Close(); } private void btnPreview_Click(object sender, EventArgs e) { //Payroll.Report.PayrollDataSet.PayrollDataSet.EmpLifeCycleDataTable oBody = new Payroll.Report.PayrollDataSet.PayrollDataSet.EmpLifeCycleDataTable(); DataTable infoTable = new Payroll.Report.Workflow.WFDataSet.WorkflowDataTable(); List dataSource; try { if (cboWFType.SelectedIndex < 0) { MessageBox.Show("Please select a Workflow type.", "Selection Error", MessageBoxButtons.OK, MessageBoxIcon.Error); cboWFType.Focus(); return; } //Prepare Report Data this.Cursor = Cursors.WaitCursor; ObjectsTemplate _employees = new ObjectsTemplate(); _employees = Employee.Get(); //_employees = new ObjectsTemplate(); //Employee oe = Employee.Get("H003"); //_employees.Add(oe); string WFPath = string.Empty; if (_employees != null && _employees.Count > 0) { foreach (Employee oEmp in _employees) { DataRow dr = infoTable.NewRow(); if (oEmp.DepartmentID == null || oEmp.DepartmentID.IsUnassigned == true || oEmp.DepartmentID.Integer <= 0) { dr["SBU"] = string.Empty; } else { dr["SBU"] = oEmp.Department.Code.ToString(); } dr["EmployeeID"] = oEmp.EmployeeNo.ToString(); dr["Name"] = oEmp.Name.ToString(); try { ObjectsTemplate ogEmployee = new ObjectsTemplate(); ogEmployee = OrganogramEmployee.GetByEmp(oEmp.ID); if(ogEmployee.Count <= 0) { dr["NodeName"] = "Employee is not posted in Organ-O-Gram."; dr["WorkflowPath"] = "No Workflow Path Found"; infoTable.Rows.Add(dr); continue; } else { OrganogramBasic ogNode = new OrganogramBasic(); ogNode = OrganogramBasic.Get(ogEmployee[0].NodeID); dr["NodeName"] = ogNode.PositionName; WFSetup wfSetup = new WFSetup(); wfSetup = WFSetup.GetByWFTypeID((ID)cboWFType.SelectedValue); ObjectsTemplate[] oPath = wfSetup.GetFullPath(ogNode); int index = 0; if (oPath != null) { for (int i = 0; i < oPath.Length-1; i++) { foreach (OrganogramBasic oNode in oPath[i]) { if (index == 0) WFPath = oNode.PositionName.ToString() + "> "; else { if (oNode != null) WFPath += oNode.PositionName.ToString() + "> "; } index = index + 1; } } if (WFPath.Length > 2) { WFPath = WFPath.Substring(0, WFPath.Length - 2); } dr["WorkflowPath"] = WFPath; } } } catch (Exception ex) { dr["NodeName"] = ex.Message; dr["WorkflowPath"] = "No Workflow Path Found."; infoTable.Rows.Add(dr); continue; } infoTable.Rows.Add(dr); WFPath = ""; } } DataSet rdset = new DataSet(); infoTable.TableName = "WFDataSet_Workflow"; rdset.Tables.Add(infoTable); string embeddedResource = "Payroll.Report.Workflow.rptWorkflowPath.rdlc"; string caption = "Employee Workflow History"; dataSource = new List(); dataSource.Add(new ReportDataSource("WFDataSet_Workflow", infoTable)); Cursor.Current = Cursors.WaitCursor; fReportViewer fViewer = new fReportViewer(); fViewer.PreviewReport(_reportitem, dataSource, embeddedResource, caption); this.Cursor = Cursors.Default; } catch (Exception ex) { this.Cursor = Cursors.Default; MessageBox.Show(ex.Message, "Can't Print.", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } private void btnSearch_Click(object sender, EventArgs e) { //_FSearchEmp = new Payroll.UI.fSearchEmployee(); //_FSearchEmp.MultipleSelection = true; //_FSearchEmp.ShowDialog(); //lsvEmployees.Items.Clear(); //if (_FSearchEmp.SelectedEmployees != null) //{ // lblCount.Text = "Count : " + _FSearchEmp.SelectedEmployees.Count.ToString(); // try // { // foreach (SearchEmployee oEmp in _FSearchEmp.SelectedEmployees) // { // ListViewItem item = new ListViewItem(); // item.Tag = oEmp; // item.Text = oEmp.HREmployee.EmployeeNo; // item.SubItems.Add(oEmp.HREmployee.Name); // lsvEmployees.Items.Add(item); // } // } // catch { } //} } private void fWorkflowReport_Load(object sender, EventArgs e) { this._reportType = _Type; _reportitem = ReportItem.Get(ID.FromInteger(Convert.ToInt32(_reportType))); } } }