示例#1
0
        public void TestGeneralParametersProcessing()
        {
            TParameterList parameters = new TParameterList();

            TVariant value = new TVariant();

            value.ApplyFormatString("Currency");
            Assert.AreEqual("0", value.ToFormattedString(), "null value for currency should be 0");
            value = new TVariant(value.ToFormattedString());
            parameters.Add("amountdue", value, -1, 2, null, null, ReportingConsts.CALCULATIONPARAMETERS);
            parameters.Save("testDebug.csv", true);
            Assert.AreEqual(true, parameters.Exists("amountdue", -1, 1, eParameterFit.eBestFitEvenLowerLevel), "can find added parameter");
            Assert.AreEqual("0", parameters.Get("amountdue", -1, 2,
                    eParameterFit.eBestFit).ToFormattedString(), "currency parameter is stored not correctly");
            //Assert.AreEqual("0", parameters.Get("amountdue", -1, 1, eParameterFit.eBestFit).ToFormattedString(), "currency parameter is stored not correctly");
            Assert.AreEqual("0", parameters.Get("amountdue", -1, 1,
                    eParameterFit.eBestFitEvenLowerLevel).ToFormattedString(), "currency parameter cannot be accessed from level up");

            parameters.Add("IntegerList", "300,400");
            parameters.Save("test.csv", false);
            parameters.Load(Path.GetFullPath("test.csv"));
            Assert.AreEqual("eString:300,400", parameters.Get(
                    "IntegerList").EncodeToString(), "integers separated by comma should be treated as string");
            parameters.Save("test2.csv", true);
        }
示例#2
0
        /// <summary>
        /// prepare printing the document
        /// </summary>
        public override void StartPrintDocument()
        {
            Int32   i;
            TResult firstElement;

            FNextElementLineToPrint       = new ArrayList();
            FNextElementLineToPrintBackup = new ArrayList();

            for (i = 0; i <= FLowestLevel; i += 1)
            {
                FNextElementLineToPrint.Add(eStageElementPrinting.eHeader);
            }

            FNextElementLineToPrint[FLowestLevel] = eStageElementPrinting.eDetails;
            FNextElementToPrint = 1;

            // it might be that the first row is not printable
            firstElement = FindNextSibling(null);

            if (firstElement != null)
            {
                FNextElementToPrint = firstElement.childRow;
            }

            FParameters.Add("CurrentSubReport", 0);
        }
        private void RunOnceOnActivationManual()
        {
            if (CalledFromExtracts)
            {
                tabReportSettings.Controls.Remove(tpgColumns);
            }

            var addressSettings = new TParameterList();
            addressSettings.Add("param_active", true);
            addressSettings.Add("param_mailing_addresses_only", true);
            addressSettings.Add("param_families_only", false);
            addressSettings.Add("param_exclude_no_solicitations", true);
            ucoChkFilter.SetControls(addressSettings);
        }
        /// <summary>
        /// Initialisation
        /// </summary>
        public void InitialiseData(TFrmPetraReportingUtils APetraUtilsObject)
        {
            FUpdatingRelationColumns = false;

            FPetraUtilsObject = APetraUtilsObject;

            FColumnParameters = new TParameterList();
            FColumnParameters.Add("MaxDisplayColumns", 0);
            FPetraUtilsObject.FMaxDisplayColumns = 0;

            FDuringApplyOrCancel = false;

            FSelectedColumn = -1;

            grdColumns.SortableHeaders = false;
            grdColumns.SelectionMode = SourceGrid.GridSelectionMode.Column;
            grdColumns.AutoStretchColumnsToFitWidth = false;

            /* Hook up event that fires when a different row is selected */
            grdColumns.Selection.FocusColumnEntered += new ColumnEventHandler(this.GrdColumns_FocusColumnEntered);
            grdColumns.Selection.CellLostFocus += new ChangeActivePositionEventHandler(this.GrdColumns_CellLostFocus);
            grdColumns.Selection.CellGotFocus += new ChangeActivePositionEventHandler(this.GrdColumns_CellGotFocus);


            btnApply.Enabled = false;
            btnCancel.Enabled = false;
            rbtFromGL.Checked = true;
            rbtFromGL.Enabled = false;
            rbtCalculateExisting.Enabled = false;
            cmbYearSelection.Enabled = false;
            chkYTD.Enabled = false;
            clbLedger.Enabled = false;
        }
        /// <summary>
        /// Used for passing a Partner's partner key to the screen before the screen is actually shown.
        /// </summary>
        /// <param name="APartnerKey">PartnerKey of the Partner to print.</param>
        public void SetParameters(Int64 APartnerKey)
        {
            TParameterList Parameters = new TParameterList();

            Parameters.Add("param_selection", "one partner");
            Parameters.Add("param_partnerkey", APartnerKey);
            this.ucoPartnerSelection.SetControls(Parameters);
        }
示例#6
0
        public static Boolean CreateFamilyExtractForPersons(int ABaseExtractId, ref int AExtractId, String AExtractName, String AExtractDescription)
        {
            Boolean ResultValue = false;
            TParameterList ParameterList = new TParameterList();
            TResultList ResultList = new TResultList();

            ParameterList.Add("param_base_extract", ABaseExtractId);
            ParameterList.Add("param_extract_name", AExtractName);
            ParameterList.Add("param_extract_description", AExtractDescription);
            ResultValue = Ict.Petra.Server.MPartner.queries.QueryFamilyExtractForPersons.CalculateExtract
                              (ParameterList, ResultList, out AExtractId);

            return ResultValue;
        }
        // parameters to be passed to Gift Statement screens
        private TParameterList GiftStatementParameters(TFrmDonorGiftStatement ADonor = null)
        {
            TParameterList ReturnValue = new TParameterList();

            // if btnDonorGiftStatement was clicked
            if (ADonor != null)
            {
                ReturnValue.Add("param_donor", "One Donor");
                ReturnValue.Add("param_donorkey", FDonorKey);

                TRptCalculator Calc = new TRptCalculator();
                ADonor.ReadControls(Calc, TReportActionEnum.raLoad);
                ReturnValue.Add("param_min_amount", Calc.GetParameters().GetParameter("param_min_amount").value);
                ReturnValue.Add("param_max_amount", Calc.GetParameters().GetParameter("param_max_amount").value);
            }
            else
            {
                ReturnValue.Add("param_recipient", "One Recipient");
                ReturnValue.Add("param_recipientkey", FRecipientKey);
            }

            DateTime FromDate = DateTime.MaxValue;
            DateTime ToDate = DateTime.MinValue;

            // if no dates are enter use the earliest and latest dates available in the dataset
            if (string.IsNullOrEmpty(FDateFrom) || string.IsNullOrEmpty(FDateTo))
            {
                foreach (DataRow Row in FMainDS.Tables[TEMP_TABLE_NAME].Rows)
                {
                    if ((DateTime)Row["DateEntered"] < FromDate)
                    {
                        FromDate = (DateTime)Row["DateEntered"];
                    }

                    if ((DateTime)Row["DateEntered"] > ToDate)
                    {
                        ToDate = (DateTime)Row["DateEntered"];
                    }
                }
            }

            if (!string.IsNullOrEmpty(FDateFrom))
            {
                ReturnValue.Add("param_from_date", Convert.ToDateTime(FDateFrom));
            }
            else
            {
                ReturnValue.Add("param_from_date", FromDate);
            }

            if (!string.IsNullOrEmpty(FDateTo))
            {
                ReturnValue.Add("param_to_date", Convert.ToDateTime(FDateTo));
            }
            else
            {
                ReturnValue.Add("param_to_date", ToDate);
            }

            return ReturnValue;
        }
        /// <summary>
        /// calculate the report and save the result and returned parameters to file
        /// </summary>
        public static void CalculateReport(string AReportParameterXmlFile, TParameterList ASpecificParameters, int ALedgerNumber = -1)
        {
            // important: otherwise month names are in different language, etc
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB", false);

            TReportGeneratorUIConnector ReportGenerator = new TReportGeneratorUIConnector();
            TParameterList Parameters = new TParameterList();
            string resultFile = AReportParameterXmlFile.Replace(".xml", ".Results.xml");
            string parameterFile = AReportParameterXmlFile.Replace(".xml", ".Parameters.xml");
            Parameters.Load(AReportParameterXmlFile);

            if (ALedgerNumber != -1)
            {
                Parameters.Add("param_ledger_number_i", ALedgerNumber);
            }

            Parameters.Add(ASpecificParameters);

            ReportGenerator.Start(Parameters.ToDataTable());

            while (!ReportGenerator.Progress.JobFinished)
            {
                Thread.Sleep(500);
            }

            Assert.IsTrue(ReportGenerator.GetSuccess(), "Report did not run successfully");
            TResultList Results = new TResultList();

            Results.LoadFromDataTable(ReportGenerator.GetResult());
            Parameters.LoadFromDataTable(ReportGenerator.GetParameter());

            if (!Parameters.Exists("ControlSource", ReportingConsts.HEADERPAGELEFT1, -1, eParameterFit.eBestFit))
            {
                Parameters.Add("ControlSource", new TVariant("Left1"), ReportingConsts.HEADERPAGELEFT1);
            }

            if (!Parameters.Exists("ControlSource", ReportingConsts.HEADERPAGELEFT2, -1, eParameterFit.eBestFit))
            {
                Parameters.Add("ControlSource", new TVariant("Left2"), ReportingConsts.HEADERPAGELEFT2);
            }

            Parameters.Save(parameterFile, false);
            Results.WriteCSV(Parameters, resultFile, ",", false, false);
        }
示例#9
0
        /// <summary>
        /// This procedure will switch the two columns
        /// </summary>
        /// <param name="AColumnParameters">List with the current columns</param>
        /// <param name="AFrom">Index of the column to move</param>
        /// <param name="ATo">Index of the new position of the column to move</param>
        /// <returns>void</returns>
        public static void SwitchColumn(ref TParameterList AColumnParameters, int AFrom, int ATo)
        {
            System.Int32 MaxDisplayColumns;
            System.Int32 Counter;
            System.Int32 ReferencedColumn;

            AColumnParameters.SwitchColumn(AFrom, ATo);

            /* switch the referenced columns in calculation */
            MaxDisplayColumns = AColumnParameters.Get("MaxDisplayColumns").ToInt();

            for (Counter = 0; Counter <= MaxDisplayColumns - 1; Counter += 1)
            {
                if (AColumnParameters.Exists("FirstColumn", Counter))
                {
                    ReferencedColumn = AColumnParameters.Get("FirstColumn", Counter).ToInt();

                    if (ReferencedColumn == AFrom)
                    {
                        ReferencedColumn = ATo;
                    }
                    else if (ReferencedColumn == ATo)
                    {
                        ReferencedColumn = AFrom;
                    }

                    AColumnParameters.Add("FirstColumn", new TVariant(ReferencedColumn), Counter);
                }

                if (AColumnParameters.Exists("SecondColumn", Counter))
                {
                    ReferencedColumn = AColumnParameters.Get("SecondColumn", Counter).ToInt();

                    if (ReferencedColumn == AFrom)
                    {
                        ReferencedColumn = ATo;
                    }
                    else if (ReferencedColumn == ATo)
                    {
                        ReferencedColumn = AFrom;
                    }

                    AColumnParameters.Add("SecondColumn", new TVariant(ReferencedColumn), Counter);
                }
            }
        }
示例#10
0
        /// <summary>
        /// Sets the selected values in the controls, using the parameters loaded from a file
        ///
        /// </summary>
        /// <param name="AColumnParameters">List with the current columns</param>
        /// <param name="AParameters"></param>
        /// <returns>the MaxDisplayColumns number</returns>
        public static System.Int32 SetControls(ref TParameterList AColumnParameters, ref TParameterList AParameters)
        {
            System.Int32 MaxDisplayColumns = 0;

            /* copy values for columns to the current set of parameters */
            AColumnParameters.Clear();

            if (AParameters.Exists("MaxDisplayColumns"))
            {
                MaxDisplayColumns = AParameters.Get("MaxDisplayColumns").ToInt();
            }

            AColumnParameters.Add("MaxDisplayColumns", MaxDisplayColumns);

            for (int Counter = 0; Counter <= MaxDisplayColumns - 1; Counter += 1)
            {
                AColumnParameters.Copy(AParameters, Counter, -1, eParameterFit.eExact, Counter);
            }

            return MaxDisplayColumns;
        }
示例#11
0
        /// <summary>
        /// Adds a new column to the column parameter list at the specified index.
        /// </summary>
        /// <param name="AColumnParameters">List with the current columns</param>
        /// <param name="AColumnIndex">Index where the new column is added</param>
        /// <returns>the MaxDisplayColumns number</returns>
        public static System.Int32 AddColumn(ref TParameterList AColumnParameters, int AColumnIndex)
        {
            System.Int32 NewColumn;
            System.Int32 NewMaxColumn;
            System.Int32 Counter;

            if (AColumnIndex == -1)
            {
                NewMaxColumn = AColumnParameters.Get("MaxDisplayColumns").ToInt();
                NewColumn = NewMaxColumn;
                AColumnParameters.Add("MaxDisplayColumns", NewColumn + 1);
            }
            else
            {
                NewColumn = AColumnIndex + 1;
                NewMaxColumn = AColumnParameters.Get("MaxDisplayColumns").ToInt() + 1;
                AColumnParameters.Add("MaxDisplayColumns", NewMaxColumn);

                /* need to move the columns to the right */
                for (Counter = NewMaxColumn - 1; Counter >= NewColumn + 1; Counter -= 1)
                {
                    AColumnParameters.MoveColumn(Counter - 1, Counter);
                }
            }

            return NewColumn;
        }
示例#12
0
        /// <summary>
        /// Remove one colum from the parameter list.
        /// </summary>
        /// <param name="AColumnParameters">List with the current columns</param>
        /// <param name="AColumnIndex">Index of the column to remove</param>
        /// <returns>the MaxDisplayColumns number</returns>
        public static System.Int32 RemoveColumn(ref TParameterList AColumnParameters, int AColumnIndex)
        {
            AColumnParameters.RemoveColumn(AColumnIndex);

            /* need to move the following columns to the left */
            System.Int32 MaxColumn = AColumnParameters.Get("MaxDisplayColumns").ToInt() - 1;

            for (int Counter = AColumnIndex + 1; Counter <= MaxColumn; Counter += 1)
            {
                AColumnParameters.MoveColumn(Counter, Counter - 1);
            }

            AColumnParameters.Add("MaxDisplayColumns", MaxColumn);

            return MaxColumn;
        }
示例#13
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void MenuItemClick(System.Object sender, System.EventArgs e)
        {
            Int32 columnCounter;
            String detailReportCSV;
            String action;
            String query;
            String LineCode;

            DataRowView[] TheDataRowViewArray;
            TResult SelectedResult;
            String paramName;
            String paramValue;
            String SettingsDirectory;
            MenuItem ClickedMenuItem = (MenuItem)sender;
            TheDataRowViewArray = FGridView.SelectedDataRowsAsDataRowView;

            if (TheDataRowViewArray.Length <= 0)
            {
                // no row is selected
                return;
            }

            LineCode = TheDataRowViewArray[0][0].ToString();
            SelectedResult = null;

            foreach (TResult r in results.GetResults())
            {
                if (r.code == LineCode)
                {
                    SelectedResult = r;
                }
            }

            detailReportCSV = (String)ClickedMenuItem.Tag;
            StringHelper.GetNextCSV(ref detailReportCSV, ",");

            // get rid of the name
            action = StringHelper.GetNextCSV(ref detailReportCSV, ",");

            if (action == "PartnerEditScreen")
            {
#if TODO
                // get the partner key
                Int64 PartnerKey = Convert.ToInt64(SelectedResult.column[Convert.ToInt32(detailReportCSV)].ToString());
                // TODO: open Partner Edit screen with the given partner key
#endif
            }
            else if (action.IndexOf(".xml") != -1)
            {
                query = StringHelper.GetNextCSV(ref detailReportCSV, ",");
                FDetailParameters = new TParameterList(FOrigParameters);
                FDetailParameters.Add("param_whereSQL", query);

                // get the parameter names and values
                while (detailReportCSV.Length > 0)
                {
                    paramName = StringHelper.GetNextCSV(ref detailReportCSV, ",");
                    paramValue = StringHelper.GetNextCSV(ref detailReportCSV, ",");
                    FDetailParameters.Add(paramName, new TVariant(paramValue));
                }

                // add the values of the selected column (in this example the first one)
                for (columnCounter = 0; columnCounter <= FDetailParameters.Get("MaxDisplayColumns").ToInt() - 1; columnCounter += 1)
                {
                    FDetailParameters.Add("param_" +
                        FDetailParameters.Get("param_calculation", columnCounter).ToString(), SelectedResult.column[columnCounter]);
                }

                // action is a link to a settings file; it contains e.g. xmlfiles, currentReport, and column settings
                // TParameterList.Load adds the new parameters to the existing parameters
                SettingsDirectory = TClientSettings.ReportingPathReportSettings;
                FDetailParameters.Load(SettingsDirectory + '/' + action);
                GenerateReportInThread();
            }
        }
        public void TestPartnerBySpecialTypes()
        {
            CommonNUnitFunctions.ResetDatabase();

            string testFile = "../../csharp/ICT/Testing/lib/MPartner/server/Reporting/TestData/PartnerBySpecialTypes.xml";

            TParameterList SpecificParameters = new TParameterList();
            SpecificParameters.Add("param_address_date_valid_on", new TVariant(new DateTime(DateTime.Today.Year, 1, 1)));
            SpecificParameters.Add("param_explicit_specialtypes", new TVariant("LEDGER"));

            TReportTestingTools.CalculateReport(testFile, SpecificParameters);

            TReportTestingTools.TestResult(testFile);
        }