using framework_business; using framework_library; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class controls_admin_report : System.Web.UI.UserControl { #region properties private const string controlPath = "~/controls/"; public string SurfaceFieldTypeIds { get { return pNums.FieldType.Text.GetHashCode().ToString() + "|" + pNums.FieldType.Number.GetHashCode().ToString() + "|" + pNums.FieldType.Decimal.GetHashCode().ToString() + "|" + pNums.FieldType.Picklist.GetHashCode().ToString() + "|" + pNums.FieldType.Date.GetHashCode().ToString() + "|" + pNums.FieldType.Checkbox.GetHashCode().ToString() + "|" + pNums.FieldType.RadioButtonList.GetHashCode().ToString() + "|" + pNums.FieldType.FormulaField.GetHashCode().ToString() + "|" + pNums.FieldType.Content.GetHashCode().ToString() + "|" + pNums.FieldType.Caption.GetHashCode().ToString() + "|" + pNums.FieldType.Address.GetHashCode().ToString() + "|" + pNums.FieldType.CheckboxList.GetHashCode().ToString() + "|" + pNums.FieldType.MultiPicklist.GetHashCode().ToString() + "|" + pNums.FieldType.Label.GetHashCode().ToString(); } } public oReport Report { get { if (ViewState["Report"] == null) return null; else return (oReport)ViewState["Report"]; } set { ViewState["Report"] = value; } } #endregion #region report methods /// /// Bind Report List Grid /// private void BindReportList() { try { DataTable reportData = xData.GetTypedByCriteriaSpecificTable("recId", typeof(oReport), "", "", "display"); rptReportList.DataSource = reportData; rptReportList.DataBind(); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Populate Page form values /// /// private void PopulatePageFormValues(oReport _Report) { try { txtReportName.Value = _Report.name; if (_Report.recId > 0) txtReportName.Disabled = true; else txtReportName.Disabled = false; txtReportDisplay.Value = _Report.display; chkActive.Checked = _Report.isActive; chkPublic.Checked = _Report.isPublic; if (_Report.enableAggregation) chkAllowAggregates.Checked = true; else chkAllowAggregates.Checked = false; } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } private void SavePageFormValues(ref oReport _Report) { try { _Report.display = txtReportDisplay.Value; _Report.isActive = chkActive.Checked; _Report.isPublic = chkPublic.Checked; _Report.name = txtReportName.Value; if (chkAllowAggregates.Checked) _Report.enableAggregation = true; else _Report.enableAggregation = false; } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } private void TogglePanels(string panelName) { switch (panelName) { case "pnlReportForm": pnlReportForm.Visible = true; pnlReportList.Visible = false; break; case "pnlReportList": pnlReportForm.Visible = false; pnlReportList.Visible = true; break; } //clear result pnlResult.Visible = false; } /// /// Load the report container /// /// private void LoadReportContainer(oReport report) { try { //load control plcReportContainer.Controls.Clear(); dynamic uc = (IControlBase)LoadControl(controlPath + "module/report.ascx"); uc.Report = report; uc.ReloadControl(); plcReportContainer.Controls.Add(uc); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } #endregion #region field methods /// /// Bind Report Field List /// /// private void BindReportFieldList(int reportId) { try { ArrayList fieldList = xData.GetTypedByCriteriaSpecific("recId", typeof(oReportField), "reportId", reportId.ToString(), "sequence"); rptReportFields.DataSource = fieldList; rptReportFields.DataBind(); if (fieldList.Count > 0) { ddSurface.Enabled = false; //lstSecondarySources.Enabled = false; foreach (oReportField fld in fieldList) { if (ddSurface.Items.FindByValue(fld.parentSurfaceId.ToString()) != null) ddSurface.SelectedValue = fld.parentSurfaceId.ToString(); BindSurfaceSecondayList(); break; } foreach (oReportField fld in fieldList) { if (fld.surfaceId > 0 && fld.surfaceId != fld.parentSurfaceId) { foreach (ListItem item in lstSecondarySources.Items) { if (item.Value == fld.surfaceFieldId.ToString()) { item.Selected = true; break; } } } } } else { ddSurface.Enabled = true; ddSurface.ClearSelection(); lstSecondarySources.Enabled = true; lstSecondarySources.ClearSelection(); } upReport.Update(); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } //private void BindReportFieldTypes() //{ // try // { // ArrayList list = xData.GetTypedByCriteriaSpecific("recId", typeof(oReportFieldType), "isActive", "1"); // ddFieldTypes.DataSource = list; // ddFieldTypes.DataTextField = "reportFieldType"; // ddFieldTypes.DataValueField = "recId"; // ddFieldTypes.DataBind(); // ddFieldTypes.Items.Insert(0, new ListItem("select...", "0")); // } // catch (Exception ex) // { // exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); // Response.Redirect("/error", false); // } //} private void PopulateFieldFormValues(oReportField _Field) { try { txtFieldName.Value = _Field.reportFieldName; //if (_Field.recId > 0) // txtFieldName.Disabled = true; //else // txtFieldName.Disabled = false; txtFieldDisplay.Text = _Field.reportFieldDisplay; //report type //ddFieldTypes.ClearSelection(); //if (ddFieldTypes.Items.FindByValue(_Field.reportFieldTypeId.ToString()) != null) //{ // ddFieldTypes.Items.FindByValue(_Field.reportFieldTypeId.ToString()).Selected = true; // if (_Field.reportFieldTypeId == pNums.ReportFieldType.Surface.GetHashCode()) // divFieldTypeSurface.Visible = true; // else // divFieldTypeSurface.Visible = false; //} //primary source //if (_Field.parentSurfaceId > 0) //{ // ddSurface.ClearSelection(); // if (ddSurface.Items.FindByValue(_Field.parentSurfaceId.ToString()) != null) // ddSurface.SelectedValue = _Field.parentSurfaceId.ToString(); // BindSurfaceSecondayList(); //} ////secondary source //if (_Field.surfaceId > 0 && _Field.surfaceId != _Field.parentSurfaceId) //{ // foreach (ListItem item in lstSecondarySources.Items) // { // if (item.Value == _Field.surfaceFieldId.ToString()) // { // item.Selected = true; // break; // } // } //} //surface field ddSurfaceField.ClearSelection(); if (_Field.parentSurfaceId > 0) { BindSurfaceFieldList(); } if (ddSurfaceField.Items.FindByValue(_Field.surfaceFieldId.ToString()) != null) ddSurfaceField.Items.FindByValue(_Field.surfaceFieldId.ToString()).Selected = true; //aggregation ddFieldAggregation.ClearSelection(); if (ddFieldAggregation.Items.FindByValue(_Field.aggregationType.ToString()) != null) ddFieldAggregation.Items.FindByValue(_Field.aggregationType.ToString()).Selected = true; else ddFieldAggregation.SelectedIndex = 0; txtSequence.Value = _Field.sequence.ToString(); chkFieldActive.Checked = _Field.isActive; chkFieldFilter.Checked = _Field.isFilter; chkFieldGrouped.Checked = _Field.isGrouped; } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } private void SaveFieldFormValues(ref oReportField _Field) { try { _Field.isActive = chkFieldActive.Checked; _Field.isFilter = chkFieldFilter.Checked; _Field.isGrouped = chkFieldGrouped.Checked; _Field.reportFieldDisplay = txtFieldDisplay.Text; _Field.reportFieldName = txtFieldName.Value; //field type _Field.reportFieldTypeId = 1; //int fieldTypeId = 0; //if (ddFieldTypes.SelectedItem != null) // int.TryParse(ddFieldTypes.SelectedItem.Value, out fieldTypeId); //_Field.reportFieldTypeId = fieldTypeId < 0 ? 0 : fieldTypeId; //sequence int sequence = 0; int.TryParse(txtSequence.Value, out sequence); _Field.sequence = sequence < 0 ? 0 : sequence; //parentsurfaceId & surfaceFieldId int parentsurfaceId = 0; int surfaceFieldId = 0; if (_Field.reportFieldTypeId == pNums.ReportFieldType.Surface.GetHashCode()) { if (ddSurface.SelectedItem != null) int.TryParse(ddSurface.SelectedItem.Value, out parentsurfaceId); if (ddSurfaceField.SelectedItem != null) int.TryParse(ddSurfaceField.SelectedItem.Value, out surfaceFieldId); } _Field.parentSurfaceId = parentsurfaceId < 0 ? 0 : parentsurfaceId; _Field.surfaceFieldId = surfaceFieldId < 0 ? 0 : surfaceFieldId; //surface Id foreach (oSurfaceField fld in xData.GetTypedByCriteriaSpecific("recId", typeof(oSurfaceField), "recId", surfaceFieldId.ToString())) { _Field.surfaceId = fld.surfaceId; break; } //aggregation _Field.aggregationType = 0; if (ddFieldAggregation.SelectedItem != null) _Field.aggregationType = int.Parse(ddFieldAggregation.SelectedItem.Value); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } private void ToggleFieldPanels(string panelName) { switch (panelName) { case "pnlReportFieldForm": pnlReportFieldForm.Visible = true; pnlReportFieldList.Visible = false; break; case "pnlReportFieldList": pnlReportFieldForm.Visible = false; pnlReportFieldList.Visible = true; break; } //clear result pnlResultReportField.Visible = false; } /// /// Bind Primary Source Lsit /// private void BindSurfaceList() { try { DataTable surfaceData = xData.GetTypedByCriteriaSpecificTable("recId", typeof(oSurface), "isActive", "1", "surface"); ddSurface.DataSource = surfaceData; ddSurface.DataTextField = "surface"; ddSurface.DataValueField = "recId"; ddSurface.DataBind(); ddSurface.Items.Insert(0, new ListItem("select...", "0")); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Bind Secondary List /// private void BindSurfaceSecondayList() { try { DataTable SecondaryData = new DataTable(); int parentSurfaceId = 0; int.TryParse(ddSurface.SelectedValue, out parentSurfaceId); if (parentSurfaceId > 0) { //build query to get all child surface ids of this parent string childFieldQuery = "Select recId FROM pal_Surface WHERE [name] in (Select relationalSurface FROM pal_SurfaceField Where surfaceId = " + parentSurfaceId + " AND surfaceFieldTypeId = 11 and relationalSurface <> '')"; DataTable childData = xData.GetCustomTypedTable(childFieldQuery, false); List surfaceIdList = childData.Rows.OfType().Select(dr => dr.Field("recId")).ToList(); string childSurfaceIds = String.Join("|", surfaceIdList.ToArray()); if (childSurfaceIds != String.Empty) { SecondaryData = xData.GetTypedByCriteriaSpecificTable("recId", typeof(oSurface), "recId,isActive", "~()" + childSurfaceIds + ",1", "surface"); lstSecondarySources.DataTextField = "surface"; lstSecondarySources.DataValueField = "recId"; } } lstSecondarySources.DataSource = SecondaryData; lstSecondarySources.DataBind(); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// BindsurfaceField List based on primary and secondary sources /// private void BindSurfaceFieldList() { try { if (ddSurface.SelectedValue != "0") { DataTable fieldData = new DataTable(); string childSurfaceIds = String.Empty; int parentSurfaceId = 0; int.TryParse(ddSurface.SelectedValue, out parentSurfaceId); //get selected child surfaceids var childItems = lstSecondarySources.Items.GetSelectedItems(); childSurfaceIds = String.Join("|", childItems.Select(x => x.Value).ToArray()); if (childSurfaceIds != String.Empty) { fieldData = xData.GetTypedByCriteriaSpecificTable("recId", typeof(oSurfaceField), "surfaceId,surfaceFieldTypeId,surfaceFieldName", "~()" + parentSurfaceId + "|" + childSurfaceIds + ",~()" + this.SurfaceFieldTypeIds + ",~<>ParentSurfaceItemId", "surfaceFieldName"); } else { fieldData = xData.GetTypedByCriteriaSpecificTable("recId", typeof(oSurfaceField), "surfaceId,surfaceFieldTypeId,surfaceFieldName", parentSurfaceId + ",~()" + this.SurfaceFieldTypeIds + ",~<>ParentSurfaceItemId", "surfaceFieldName"); } ddSurfaceField.DataSource = fieldData; ddSurfaceField.DataTextField = "surfaceFieldName"; ddSurfaceField.DataValueField = "recId"; ddSurfaceField.DataBind(); ddSurfaceField.Items.Insert(0, new ListItem("select...", "0")); } else { ddSurfaceField.Items.Clear(); } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } private void BindFieldAggregation() { try { ArrayList list = xData.GetTypedByCriteriaSpecific("recId", typeof(oSurfaceGridAggregateType), "isActive", "1"); ddFieldAggregation.DataSource = list; ddFieldAggregation.DataTextField = "aggregateType"; ddFieldAggregation.DataValueField = "recId"; ddFieldAggregation.DataBind(); ddFieldAggregation.Items.Insert(0, new ListItem("select...", "0")); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } #endregion #region events /// /// Page Load Event /// /// /// protected void Page_Load(object sender, EventArgs e) { try { if (!Page.IsPostBack) { BindReportList(); //BindReportFieldTypes(); BindSurfaceList(); BindFieldAggregation(); } else { if (pnlReportContainer.Visible && this.Report != null) { LoadReportContainer(this.Report); } } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Edit Report /// /// /// protected void lnkEdit_Click(object sender, EventArgs e) { try { oReport _Report = new oReport(); if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); if (recId > 0) { //get report foreach (oReport report in xData.GetTypedByCriteriaSpecific("recId", typeof(oReport), "recId", recId.ToString())) { _Report = report; break; } //populate PopulatePageFormValues(_Report); Session["Report"] = _Report; //show Report Form TogglePanels(pnlReportForm.ID); BindReportFieldList(_Report.recId); ToggleFieldPanels(pnlReportFieldList.ID); } } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Remove Report /// /// /// protected void lnkRemove_Click(object sender, EventArgs e) { try { if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); foreach (oReport rpt in xData.GetTypedByCriteriaSpecific("recId", typeof(oReport), "recId", recId.ToString())) { //remove fields if (xData.DeleteTyped("reportId", recId.ToString(), typeof(oReportField))) { //Delete report if (xData.DeleteTyped("recId", recId.ToString(), typeof(oReport))) { //rebind grid BindReportList(); pnlResult.Visible = true; //display successful result lblResult.Text = "the selected Report was deleted successfully."; } } } } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Cancel Report Edit /// /// /// protected void btnCancel_Click(object sender, EventArgs e) { try { utils.disposeSession("Report"); BindReportList(); TogglePanels("pnlReportList"); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Save Report /// /// /// protected void btnSave_Click(object sender, EventArgs e) { try { oReport Report = new oReport(); if (utils.verifySession("Report"))//update mode { Report = (oReport)Session["Report"]; //save form values SavePageFormValues(ref Report); Report.dateUpdated = DateTime.Now; Report.updatedBy = handler.ReturnUser().recId; if (xData.UpdateTyped("recId", Report.recId.ToString(), typeof(oReport), Report)) { Session["Report"] = Report; BindReportList(); pnlResult.Visible = true; lblResult.Text = "your changes were updated successfully."; } } else { if (!xData.VerifyExists("recId", typeof(oReport), "name", utils.stripCharacters(txtReportName.Value).Replace(" ", ""))) { //save form values SavePageFormValues(ref Report); Report.dateSaved = DateTime.Now; Report.createdBy = handler.ReturnUser().recId; Report.recId = xData.SaveTyped("recId", typeof(oReport), Report); if (Report.recId > 0) { Session["Report"] = Report; txtReportName.Disabled = true; BindReportList(); pnlResult.Visible = true; lblResult.Text = "your report was created successfully."; } } else { pnlResult.Visible = true; lblResult.Text = "A report with this name already exists on the system"; } } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } protected void btnNewReport_Click(object sender, EventArgs e) { try { utils.disposeSession("Report"); oReport report = new oReport(); PopulatePageFormValues(report); TogglePanels("pnlReportForm"); utils.disposeSession("ReportField"); BindReportFieldList(0); ToggleFieldPanels(pnlReportFieldList.ID); upReportFields.Update(); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } protected void btnNewField_Click(object sender, EventArgs e) { try { oReport Report = new oReport(); if (utils.verifySession("Report")) { ToggleFieldPanels(pnlReportFieldForm.ID); utils.disposeSession("ReportField"); oReportField reportField = new oReportField(); PopulateFieldFormValues(reportField); } else { if (!xData.VerifyExists("recId", typeof(oSurface), "name", utils.stripCharacters(txtReportName.Value).Replace(" ", ""))) { //save form values SavePageFormValues(ref Report); Report.recId = xData.SaveTyped("recId", typeof(oReport), Report); if (Report.recId > 0) { Session["Report"] = Report; BindReportList(); ToggleFieldPanels(pnlReportFieldForm.ID); utils.disposeSession("ReportField"); oReportField reportField = new oReportField(); PopulateFieldFormValues(reportField); } } else { pnlResult.Visible = true; lblResult.Text = "A report with this name already exists on the system"; } } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } protected void btnSaveReportField_Click(object sender, EventArgs e) { try { oReport Report = new oReport(); oReportField ReportField = new oReportField(); if (utils.verifySession("Report")) { Report = (oReport)Session["Report"]; if (utils.verifySession("ReportField"))//update mode { ReportField = (oReportField)Session["ReportField"]; //save form values SaveFieldFormValues(ref ReportField); if (xData.UpdateTyped("recId", ReportField.recId.ToString(), typeof(oReportField), ReportField)) { Session["ReportField"] = ReportField; pnlResultReportField.Visible = true; lblResultReportField.Text = "your changes were updated successfully."; } } else { //save form values SaveFieldFormValues(ref ReportField); if (!xData.VerifyExists("recId", typeof(oReportField), "reportId,reportFieldName", ReportField.recId + "," + ReportField.reportFieldName)) { ReportField.reportId = Report.recId; ReportField.recId = xData.SaveTyped("recId", typeof(oReportField), ReportField); if (ReportField.recId > 0) { Session["ReportField"] = ReportField; //txtFieldName.Disabled = true; pnlResultReportField.Visible = true; lblResultReportField.Text = "your report field was created successfully."; } } else { pnlResultReportField.Visible = true; lblResultReportField.Text = "A report field with this name already exists on this report."; } } BindReportFieldList(Report.recId); } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } protected void btnCancelReportField_Click(object sender, EventArgs e) { try { oReport report = new oReport(); if (utils.verifySession("Report")) report = (oReport)Session["Report"]; utils.disposeSession("ReportField"); BindReportFieldList(report.recId); ToggleFieldPanels("pnlReportFieldList"); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } protected void lnkEditField_Click(object sender, EventArgs e) { try { if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); if (recId > 0) { oReportField ReportField = new oReportField(); foreach (oReportField field in xData.GetTypedByCriteriaSpecific("recId", typeof(oReportField), "recId", recId.ToString())) { ReportField = field; break; } //populate PopulateFieldFormValues(ReportField); Session["ReportField"] = ReportField; //panels ToggleFieldPanels(pnlReportFieldForm.ID); } } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } protected void lnkRemoveField_Click(object sender, EventArgs e) { try { if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); if (xData.DeleteTyped("recId", recId.ToString(), typeof(oReportField))) { oReport report = new oReport(); if (utils.verifySession("Report")) report = (oReport)Session["Report"]; //rebind grid BindReportFieldList(report.recId); pnlResultReportField.Visible = true; //display successful result lblResultReportField.Text = "the selected field was deleted successfully."; } } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } //protected void ddFieldTypes_SelectedIndexChanged(object sender, EventArgs e) //{ // try // { // if (sender is DropDownList) // { // DropDownList ddl = (DropDownList)sender; // if (ddl.SelectedItem != null) // { // if (ddl.SelectedItem.Value == pNums.ReportFieldType.Surface.GetHashCode().ToString()) // divFieldTypeSurface.Visible = true; // else // divFieldTypeSurface.Visible = false; // } // } // } // catch (Exception ex) // { // exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); // Response.Redirect("/error", false); // } //} protected void ddSurface_SelectedIndexChanged(object sender, EventArgs e) { try { //bind secondary List BindSurfaceSecondayList(); BindSurfaceFieldList(); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Secondary Sources Selected Index Changed Event /// /// /// protected void lstSecondarySources_SelectedIndexChanged(object sender, EventArgs e) { try { BindSurfaceFieldList(); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Item Data bound event /// /// /// protected void rptReportFields_ItemDataBound(object sender, RepeaterItemEventArgs e) { try { if (e.Item.ItemIndex != -1) { Label lblFieldType = ((Label)e.Item.FindControl("lblFieldType")); pNums.ReportFieldType typ = (pNums.ReportFieldType)Enum.ToObject(typeof(pNums.ReportFieldType), int.Parse(lblFieldType.Text)); switch (typ) { default: lblFieldType.Text = typ.ToString(); break; } } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Back to report builder /// /// /// protected void btnBackToBuilder_Click(object sender, EventArgs e) { try { this.Report = null; pnlReportBuilder.Visible = true; pnlReportContainer.Visible = false; plcReportContainer.Controls.Clear(); } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Run Report /// /// /// protected void lnkRunReport_Click(object sender, EventArgs e) { try { oReport _Report = new oReport(); if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); if (recId > 0) { //get report foreach (oReport report in xData.GetTypedByCriteriaSpecific("recId", typeof(oReport), "recId", recId.ToString())) { _Report = report; break; } this.Report = _Report; LoadReportContainer(_Report); pnlReportContainer.Visible = true; pnlReportBuilder.Visible = false; upReport.Update(); } } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Preview Report /// /// /// protected void btnPreview_Click(object sender, EventArgs e) { try { oReport Report = new oReport(); if (utils.verifySession("Report"))//update mode { Report = (oReport)Session["Report"]; this.Report = Report; LoadReportContainer(Report); pnlReportContainer.Visible = true; pnlReportBuilder.Visible = false; } } catch (Exception ex) { exception.HandleException("report:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } #endregion }