/// <summary> /// Gets and bulk updates report values. Called when the "Get and bulk update values" button is pressed. /// Expects the CreateReportValue method to be run first. /// </summary> private bool GetAndBulkUpdateReportValues() { // Prepare the parameters string where = "ValueName LIKE N'MyNewValue%'"; // Get the data DataSet values = ReportValueInfoProvider.GetValues(where, null); if (!DataHelper.DataSourceIsEmpty(values)) { // Loop through the individual items foreach (DataRow valueDr in values.Tables[0].Rows) { // Create object from DataRow ReportValueInfo modifyValue = new ReportValueInfo(valueDr); // Update the properties modifyValue.ValueDisplayName = modifyValue.ValueDisplayName.ToUpper(); // Save the changes ReportValueInfoProvider.SetReportValueInfo(modifyValue); } return(true); } return(false); }
/// <summary> /// Creates report value. Called when the "Create value" button is pressed. /// </summary> private bool CreateReportValue() { // Get report object by report code name ReportInfo report = ReportInfoProvider.GetReportInfo("MyNewReport"); // If report exists if (report != null) { // Create new report value object ReportValueInfo newValue = new ReportValueInfo(); // Set the properties newValue.ValueDisplayName = "My new value"; newValue.ValueName = "MyNewValue"; newValue.ValueQuery = "SELECT COUNT(DocumentName) FROM CMS_Document"; newValue.ValueQueryIsStoredProcedure = false; newValue.ValueReportID = report.ReportID; // Save the report value ReportValueInfoProvider.SetReportValueInfo(newValue); return(true); } return(false); }
/// <summary> /// Gets and updates report value. Called when the "Get and update value" button is pressed. /// Expects the CreateReportValue method to be run first. /// </summary> private bool GetAndUpdateReportValue() { // Get the report value ReportValueInfo updateValue = ReportValueInfoProvider.GetReportValueInfo("MyNewValue"); if (updateValue != null) { // Update the properties updateValue.ValueDisplayName = updateValue.ValueDisplayName.ToLower(); // Save the changes ReportValueInfoProvider.SetReportValueInfo(updateValue); return(true); } return(false); }
/// <summary> /// Save data. /// </summary> /// <param name="saveToDatabase">If true, data are saved into database</param> private bool SetData(bool saveToDatabase = false) { string errorMessage = String.Empty; if (saveToDatabase) { // Check 'Modify' permission if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("cms.reporting", "Modify")) { RedirectToAccessDenied("cms.reporting", "Modify"); } errorMessage = new Validator() .NotEmpty(txtDisplayName.Text, rfvDisplayName.ErrorMessage) .NotEmpty(txtCodeName.Text, rfvCodeName.ErrorMessage) .NotEmpty(txtQuery.Text, GetString("Reporting_ReportGraph_Edit.ErrorQuery")).Result; if ((errorMessage == "") && (!ValidationHelper.IsIdentifier(txtCodeName.Text.Trim()))) { errorMessage = GetString("general.erroridentifierformat"); } string fullName = mReportInfo.ReportName + "." + txtCodeName.Text.Trim(); ReportValueInfo codeNameCheck = ReportValueInfoProvider.GetReportValueInfo(fullName); if ((errorMessage == "") && (codeNameCheck != null) && (codeNameCheck.ValueID != mValueId)) { errorMessage = GetString("Reporting_ReportValue_Edit.ErrorCodeNameExist"); } } //test query in all cases if (!saveToDatabase) { errorMessage = new Validator().NotEmpty(txtQuery.Text, GetString("Reporting_ReportGraph_Edit.ErrorQuery")).Result; } if ((errorMessage == "")) { //new Value if (mReportValueInfo == null) { mReportValueInfo = new ReportValueInfo(); } mReportValueInfo.ValueDisplayName = txtDisplayName.Text.Trim(); mReportValueInfo.ValueName = txtCodeName.Text.Trim(); if (MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Reporting", "EditSQLQueries")) { mReportValueInfo.ValueQuery = txtQuery.Text.Trim(); } mReportValueInfo.ValueQueryIsStoredProcedure = chkIsProcedure.Checked; mReportValueInfo.ValueFormatString = txtFormatString.Text.Trim(); mReportValueInfo.ValueReportID = mReportInfo.ReportID; mReportValueInfo.ValueSettings["SubscriptionEnabled"] = chkSubscription.Checked.ToString(); mReportValueInfo.ValueConnectionString = ValidationHelper.GetString(ucSelectString.Value, String.Empty); if (saveToDatabase) { ReportValueInfoProvider.SetReportValueInfo(mReportValueInfo); } } else { ShowError(errorMessage); return(false); } return(true); }
/// <summary> /// Clones the given report (including attachment files). /// </summary> /// <param name="reportId">Report id</param> protected void Clone(int reportId) { // Check 'Modify' permission if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.reporting", "Modify")) { RedirectToAccessDenied("cms.reporting", "Modify"); } // Try to get report info ReportInfo oldri = ReportInfoProvider.GetReportInfo(reportId); if (oldri == null) { return; } DataSet graph_ds = ReportGraphInfoProvider.GetGraphs(reportId); DataSet table_ds = ReportTableInfoProvider.GetTables(reportId); DataSet value_ds = ReportValueInfoProvider.GetValues(reportId); // Duplicate report info object ReportInfo ri = new ReportInfo(oldri, false); ri.ReportID = 0; ri.ReportGUID = Guid.NewGuid(); // Duplicate report info string reportName = ri.ReportName; string oldReportName = ri.ReportName; string reportDispName = ri.ReportDisplayName; while (ReportInfoProvider.GetReportInfo(reportName) != null) { reportName = Increment(reportName, "_", "", 100); reportDispName = Increment(reportDispName, "(", ")", 450); } ri.ReportName = reportName; ri.ReportDisplayName = reportDispName; // Used to eliminate version from create object task using (CMSActionContext context = new CMSActionContext()) { context.CreateVersion = false; ReportInfoProvider.SetReportInfo(ri); } string name; // Duplicate graph data if (!DataHelper.DataSourceIsEmpty(graph_ds)) { foreach (DataRow dr in graph_ds.Tables[0].Rows) { // Duplicate the graph ReportGraphInfo rgi = new ReportGraphInfo(dr); rgi.GraphID = 0; rgi.GraphGUID = Guid.NewGuid(); rgi.GraphReportID = ri.ReportID; name = rgi.GraphName; // Replace layout based on HTML or regular graph type ri.ReportLayout = ReplaceMacro(ri.ReportLayout, rgi.GraphIsHtml ? REP_HTMLGRAPH_MACRO : REP_GRAPH_MACRO, rgi.GraphName, name, oldReportName, reportName); rgi.GraphName = name; ReportGraphInfoProvider.SetReportGraphInfo(rgi); } } // Duplicate table data if (!DataHelper.DataSourceIsEmpty(table_ds)) { foreach (DataRow dr in table_ds.Tables[0].Rows) { // Duplicate the table ReportTableInfo rti = new ReportTableInfo(dr); rti.TableID = 0; rti.TableGUID = Guid.NewGuid(); rti.TableReportID = ri.ReportID; name = rti.TableName; ri.ReportLayout = ReplaceMacro(ri.ReportLayout, REP_TABLE_MACRO, rti.TableName, name, oldReportName, reportName); rti.TableName = name; ReportTableInfoProvider.SetReportTableInfo(rti); } } // Duplicate value data if (!DataHelper.DataSourceIsEmpty(value_ds)) { foreach (DataRow dr in value_ds.Tables[0].Rows) { // Duplicate the value ReportValueInfo rvi = new ReportValueInfo(dr); rvi.ValueID = 0; rvi.ValueGUID = Guid.NewGuid(); rvi.ValueReportID = ri.ReportID; name = rvi.ValueName; ri.ReportLayout = ReplaceMacro(ri.ReportLayout, REP_VALUE_MACRO, rvi.ValueName, name, oldReportName, reportName); rvi.ValueName = name; ReportValueInfoProvider.SetReportValueInfo(rvi); } } List <Guid> convTable = new List <Guid>(); try { MetaFileInfoProvider.CopyMetaFiles(reportId, ri.ReportID, ReportingObjectType.REPORT, MetaFileInfoProvider.OBJECT_CATEGORY_LAYOUT, convTable); } catch (Exception e) { lblError.Visible = true; lblError.Text = e.Message; ReportInfoProvider.DeleteReportInfo(ri); return; } for (int i = 0; i < convTable.Count; i += 2) { Guid oldGuid = convTable[i]; Guid newGuid = convTable[i + 1]; ri.ReportLayout = ri.ReportLayout.Replace(oldGuid.ToString(), newGuid.ToString()); } ReportInfoProvider.SetReportInfo(ri); // Refresh tree ltlScript.Text += "<script type=\"text/javascript\">"; ltlScript.Text += @"if (parent.frames['reportcategorytree']) { parent.frames['reportcategorytree'].location.href = 'ReportCategory_tree.aspx?reportid=" + ri.ReportID + @"'; } if (parent.parent.frames['reportcategorytree']) { parent.parent.frames['reportcategorytree'].location.href = 'ReportCategory_tree.aspx?reportid=" + ri.ReportID + @"'; } this.location.href = 'Report_Edit.aspx?reportId=" + Convert.ToString(ri.ReportID) + @"&saved=1&categoryID=" + categoryId + @"' </script>"; }
/// <summary> /// Save data. /// </summary> /// <returns>return true if save was successfull</returns> protected bool Save(bool save) { string errorMessage = String.Empty; if (save) { // Check 'Modify' permission if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.reporting", "Modify")) { RedirectToAccessDenied("cms.reporting", "Modify"); } errorMessage = new Validator() .NotEmpty(txtDisplayName.Text, rfvDisplayName.ErrorMessage) .NotEmpty(txtCodeName.Text, rfvCodeName.ErrorMessage) .NotEmpty(txtQuery.Text, GetString("Reporting_ReportGraph_Edit.ErrorQuery")).Result; if ((errorMessage == "") && (!ValidationHelper.IsIdentifier(txtCodeName.Text.Trim()))) { errorMessage = GetString("general.erroridentificatorformat"); } string fullName = reportInfo.ReportName + "." + txtCodeName.Text.Trim(); ReportValueInfo codeNameCheck = ReportValueInfoProvider.GetReportValueInfo(fullName); if ((errorMessage == "") && (codeNameCheck != null) && (codeNameCheck.ValueID != valueId)) { errorMessage = GetString("Reporting_ReportValue_Edit.ErrorCodeNameExist"); } } //test query in all cases if (!save) { errorMessage = new Validator().NotEmpty(txtQuery.Text, GetString("Reporting_ReportGraph_Edit.ErrorQuery")).Result; } if ((errorMessage == "")) { //new Value if (valueInfo == null) { valueInfo = new ReportValueInfo(); } valueInfo.ValueDisplayName = txtDisplayName.Text.Trim(); valueInfo.ValueName = txtCodeName.Text.Trim(); if (CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.Reporting", "EditSQLQueries")) { valueInfo.ValueQuery = txtQuery.Text.Trim(); } valueInfo.ValueQueryIsStoredProcedure = chkIsProcedure.Checked; valueInfo.ValueFormatString = txtFormatString.Text.Trim(); valueInfo.ValueReportID = reportInfo.ReportID; if (save) { ReportValueInfoProvider.SetReportValueInfo(valueInfo); } } else { lblError.Visible = true; lblError.Text = errorMessage; return(false); } return(true); }