Пример #1
0
    /// <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);
    }
Пример #2
0
    /// <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);
    }
Пример #3
0
    /// <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);
    }
Пример #4
0
    /// <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);
    }
Пример #5
0
    /// <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>";
    }
Пример #6
0
    /// <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);
    }