Exemple #1
0
        /// <summary>
        /// todoComment
        /// </summary>
        protected void InitColumnCaptions()
        {
            TRptCalculation   rptCalculation;
            TRptDataCalcValue rptDataCalcValue;
            int column;

            for (column = 0; column <= Results.GetMaxDisplayColumns() - 1; column += 1)
            {
                rptCalculation = ReportStore.GetCalculation(CurrentReport, Parameters.Get("param_calculation", column).ToString());

                if (rptCalculation != null)
                {
                    if (rptCalculation.strAlign.Length != 0)
                    {
                        Parameters.Add("ColumnAlign", new TVariant(rptCalculation.strAlign), column);
                    }
                    else
                    {
                        if (StringHelper.IsCurrencyFormatString(rptCalculation.strReturnsFormat) ||
                            (rptCalculation.strReturnsFormat.ToLower().IndexOf("percentage") != -1))
                        {
                            Parameters.Add("ColumnAlign", new TVariant("right"), column);
                        }
                        else
                        {
                            Parameters.Add("ColumnAlign", new TVariant("left"), column);
                        }
                    }

                    if (rptCalculation.strReturnsFormat.Length != 0)
                    {
                        Parameters.Add("ColumnFormat", new TVariant(rptCalculation.strReturnsFormat), column, -1);
                    }

                    if (rptCalculation.rptGrpCaption != null)
                    {
                        rptDataCalcValue = new TRptDataCalcValue(this, -1, column, -1, 0);
                        FormatCaption("ColumnCaption", rptDataCalcValue.Calculate(rptCalculation.rptGrpCaption).ConvertToVariant(), column);
                    }

                    if (rptCalculation.rptGrpShortCaption != null)
                    {
                        rptDataCalcValue = new TRptDataCalcValue(this, -1, column, -1, 0);
                        FormatCaption("ColumnShortCaption", rptDataCalcValue.Calculate(rptCalculation.rptGrpShortCaption).ConvertToVariant(), column);
                    }
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="col"></param>
        /// <param name="precalculatedColumns"></param>
        protected void CalculateColumnValue(System.Int32 col, ref TVariant[] precalculatedColumns)
        {
            TRptDataCalcValue rptDataCalcValue;

            List <TRptValue> rptGrpValue;
            TParameter       parameter;
            String           ColumnFormat;
            TVariant         value;

            column    = col;
            parameter = Parameters.GetParameter("ControlSource", column, Depth, eParameterFit.eExact);

            if (parameter == null)
            {
                parameter = Parameters.GetParameter("ControlSource", column, -1, eParameterFit.eExact);
            }

            if (parameter == null)
            {
                parameter = Parameters.GetParameter("ControlSource", ReportingConsts.ALLCOLUMNS, Depth, eParameterFit.eBestFit);
            }

            if ((parameter != null) && (parameter.value.ToString() == "rptGrpValue") && (parameter.pRptGroup != null))
            {
                rptGrpValue      = (List <TRptValue>)parameter.pRptGroup;
                rptDataCalcValue = new TRptDataCalcValue(this);
                ColumnFormat     = "";

                if (Parameters.Exists("ColumnFormat", column, Depth))
                {
                    ColumnFormat = GetParameters().Get("ColumnFormat", column, Depth).ToString();
                }

                value = rptDataCalcValue.Calculate(rptGrpValue);
                value.ApplyFormatString(ColumnFormat);

                if (value.ToFormattedString().Length > 0)
                {
                    precalculatedColumns[column] = value;
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="masterRow"></param>
        /// <param name="condition"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public Boolean SavePrecalculation(int masterRow, String condition, String code)
        {
            Boolean ReturnValue;

            TVariant[]        precalculatedColumns;
            TVariant[]        precalculatedDescr = new TVariant[2];
            TVariant[]        header             = new TVariant[2];
            Boolean           display;
            Boolean           hideRow = false;
            Boolean           debit_credit_indicator;
            Boolean           param_hide_empty_lines = false;
            int               counter;
            String            values;
            TRptDataCalcValue rptDataCalcValue;
            List <TRptValue>  rptGrpValue;
            int               maxDisplayColumns;
            int               numberColumns;
            int               ColumnPartnerName = -1;
            int               ColumnPartnerKey  = -1;
            TResult           newRow;

            ReturnValue       = false;
            condition         = condition.ToLower();
            maxDisplayColumns = Results.GetMaxDisplayColumns();
            numberColumns     = maxDisplayColumns;

            while (Parameters.Exists("param_calculation", numberColumns, -1))
            {
                numberColumns = numberColumns + 1;
            }

            precalculatedColumns = new TVariant[numberColumns];

            for (counter = 0; counter <= maxDisplayColumns - 1; counter += 1)
            {
                precalculatedColumns[counter] = new TVariant();
            }

            if (!Parameters.Exists("debit_credit_indicator", -1, Depth))
            {
                debit_credit_indicator = true;
            }
            else
            {
                debit_credit_indicator = Parameters.Get("debit_credit_indicator", -1, Depth).ToBool();
            }

            if (Parameters.Get("param_hide_empty_lines").ToString() == "true")
            {
                param_hide_empty_lines = true;
            }

            if (Depth > 0)
            {
                if (debit_credit_indicator)
                {
                    Parameters.Add("debit_credit_indicator", true, -1, -1, null, null, ReportingConsts.CALCULATIONPARAMETERS);
                }
                else
                {
                    Parameters.Add("debit_credit_indicator", false, -1, -1, null, null, ReportingConsts.CALCULATIONPARAMETERS);
                }

                values = Parameters.Get("ControlSource", ReportingConsts.ALLCOLUMNS, Depth).ToString();

                if (values == "calculation")
                {
                    // first calculate the invisible helper Columns
                    for (counter = maxDisplayColumns; counter <= numberColumns - 1; counter += 1)
                    {
                        column = counter;
                        precalculatedColumns[column] = Precalculate(precalculatedColumns);
                    }

                    // calculate the visible Columns
                    for (counter = 0; counter <= maxDisplayColumns - 1; counter += 1)
                    {
                        column = counter;
                        precalculatedColumns[column] = Precalculate(precalculatedColumns);

                        if (param_hide_empty_lines)
                        {
                            // if this parameter is set, hide the row when all columns are empty, except
                            // of the column partner name and partner key.
                            TParameter CurrentParameter = Parameters.GetParameter("param_calculation", column, -1, eParameterFit.eExact);

                            if (CurrentParameter.value.ToString() == "Partner Name")
                            {
                                ColumnPartnerName = CurrentParameter.column;
                            }
                            else if (CurrentParameter.value.ToString() == "Partner Key")
                            {
                                ColumnPartnerKey = CurrentParameter.column;
                            }
                        }
                    }

                    if (param_hide_empty_lines)
                    {
                        hideRow = IsRowEmpty(ref precalculatedColumns, ColumnPartnerName, ColumnPartnerKey, 0, maxDisplayColumns - 1);
                    }
                }
                else
                {
                    // first calculate the invisible helper Columns
                    for (counter = maxDisplayColumns; counter <= numberColumns - 1; counter += 1)
                    {
                        CalculateColumnValue(counter, ref precalculatedColumns);
                    }

                    for (counter = 0; counter <= maxDisplayColumns - 1; counter += 1)
                    {
                        CalculateColumnValue(counter, ref precalculatedColumns);
                    }
                }

                rptGrpValue = (List <TRptValue>)Parameters.GetGrpValue("ControlSource",
                                                                       ReportingConsts.HEADERCOLUMN + 1,
                                                                       Depth,
                                                                       eParameterFit.eExact);

                if (rptGrpValue != null)
                {
                    Parameters.Add("headerVISIBLE", new TVariant(true), -1, Depth);
                    column           = ReportingConsts.HEADERCOLUMN + 1;
                    rptDataCalcValue = new TRptDataCalcValue(this);
                    header[0]        = rptDataCalcValue.Calculate(rptGrpValue);
                }

                rptGrpValue = (List <TRptValue>)Parameters.GetGrpValue("ControlSource",
                                                                       ReportingConsts.HEADERCOLUMN + 2,
                                                                       Depth,
                                                                       eParameterFit.eExact);

                if (rptGrpValue != null)
                {
                    Parameters.Add("headerVISIBLE", new TVariant(true), -1, Depth);
                    column           = ReportingConsts.HEADERCOLUMN + 2;
                    rptDataCalcValue = new TRptDataCalcValue(this);
                    header[1]        = rptDataCalcValue.Calculate(rptGrpValue);
                }

                for (counter = 0; counter <= 1; counter += 1)
                {
                    column      = counter - 10;
                    rptGrpValue = (List <TRptValue>)Parameters.GetGrpValue("ControlSource", column, Depth, eParameterFit.eExact);

                    if (rptGrpValue != null)
                    {
                        rptDataCalcValue            = new TRptDataCalcValue(this);
                        precalculatedDescr[counter] = rptDataCalcValue.Calculate(rptGrpValue);
                    }
                }

                debit_credit_indicator = Parameters.Get("debit_credit_indicator", column, Depth).ToBool();
                display = true;
                newRow  = Results.AddRow(masterRow,
                                         LineId,
                                         display,
                                         Depth,
                                         code,
                                         condition,
                                         debit_credit_indicator,
                                         header,
                                         precalculatedDescr,
                                         precalculatedColumns);
                ReturnValue = true;

                if (condition.Length != 0)
                {
                    column  = -1;
                    display = EvaluateCondition(condition);
                }

                if (Parameters.Exists("DONTDISPLAYROW") && (Parameters.Get("DONTDISPLAYROW").ToBool() == true))
                {
                    display = false;
                }

                if ((newRow != null) && ((!display) || hideRow))
                {
                    newRow.display = false;
                    ReturnValue    = false;
                }
            }

            return(ReturnValue);
        }