Пример #1
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="AGrid"></param>
        /// <returns></returns>
        public Int64 DetermineCurrentSitePartnerKey(TSgrdDataGrid AGrid)
        {
            DataRowView[] TheDataRowViewArray;
            Int64 SitePartnerKey;

            // MessageBox.Show(ARow.ToString);
            TheDataRowViewArray = AGrid.SelectedDataRowsAsDataRowView;

            // get PartnerKey of current DataRow
            try
            {
                SitePartnerKey = Convert.ToInt64(TheDataRowViewArray[0].Row[PPartnerLedgerTable.GetPartnerKeyDBName()]);
            }
            catch (Exception)
            {
                throw;
            }

            // MessageBox.Show(FPartnerKey.ToString);
            FSiteKey = SitePartnerKey;
            return SitePartnerKey;
        }
Пример #2
0
        /// <summary>
        /// Try to populate the grid with the current result.
        /// </summary>
        /// <returns>s false if no detail report is available
        /// </returns>
        public Boolean PopulateResultGrid(TSgrdDataGrid ASgGridView)
        {
            Boolean ReturnValue;
            DataTable t;
            DataRow row;
            Int32 i;
            Int32 counter;
            Int32 columnCounter;
            string caption;
            ArrayList sortedList;
            bool display;

            ReturnValue = true;
            FGridView = ASgGridView;

            // only do this if there are detail reports available
            // this is to prevent bugs that are still happening (same column caption etc)
            if (!parameters.Exists("param_detail_report_0"))
            {
                return false;
            }

            results.SortChildren();
            sortedList = new ArrayList();
            results.CreateSortedListByMaster(sortedList, 0);

            // create columns
            // todo: header left
            // todo: indented columns
            t = new DataTable();
            columnCounter = 0;
            t.Columns.Add("id");

            for (i = 0; i <= results.GetMaxDisplayColumns() - 1; i += 1)
            {
                if ((!parameters.Get("ColumnCaption", i).IsNil()))
                {
                    caption =
                        (parameters.Get("ColumnCaption",
                             i).ToString() + ' ' +
                         parameters.Get("ColumnCaption2", i).ToString(false) + ' ' + parameters.Get("ColumnCaption3", i).ToString(false)).Trim();

                    // todo: add i for preventing same name columns (finance reports, long captions)
                    if (t.Columns.Contains(caption))
                    {
                        caption = caption + i.ToString();
                    }
                }
                else
                {
                    caption = "Column" + i.ToString();
                }

                /* if useIndented then
                 * begin
                 * columnCounter := ColumnCounter + 1;
                 * t.Columns.Add(caption + 'Indented');
                 * end;
                 */
                t.Columns.Add(caption);
                columnCounter = columnCounter + 1;
            }

            foreach (TResult element in sortedList)
            {
                if (element.display)
                {
                    row = t.NewRow();
                    display = false;
                    row[0] = element.code;

                    for (i = 0; i <= results.GetMaxDisplayColumns() - 1; i += 1)
                    {
                        if ((element.column[i] != null) && (!element.column[i].IsNil()))
                        {
                            display = true;
                            row[i + 1] = element.column[i].ToString();
                        }
                    }

                    if (display)
                    {
                        t.Rows.Add(row);
                    }
                }
            }

            FGridView.Columns.Clear();
            FGridView.AddTextColumn(t.Columns[0].ColumnName, t.Columns[0], 0);

            for (counter = 0; counter <= parameters.Get("MaxDisplayColumns").ToInt() - 1; counter += 1)
            {
                FGridView.AddTextColumn(t.Columns[counter + 1].ColumnName, t.Columns[counter + 1]);
            }

            FGridView.DataSource = new DevAge.ComponentModel.BoundDataView(new DataView(t));
            ((DevAge.ComponentModel.BoundDataView)FGridView.DataSource).AllowEdit = false;
            ((DevAge.ComponentModel.BoundDataView)FGridView.DataSource).AllowNew = false;
            ((DevAge.ComponentModel.BoundDataView)FGridView.DataSource).AllowDelete = false;
            FGridView.AutoSizeCells();

            // FGridView.Width := 576;   it is necessary to reassign the width because the columns don't take up the maximum width
            return ReturnValue;
        }
        /// <summary>
        /// This procedure creates the colums of the Persons' Locations DataGrid
        ///
        /// </summary>
        /// <returns>void</returns>
        public void CreateColumnsPersonsLocations(TSgrdDataGrid AGrid, System.Data.DataTable ASourceTable)
        {
            SourceGrid.Cells.Editors.TextBoxUITypeEditor DateEditor;
            Ict.Common.TypeConverter.TDateConverter DateTypeConverter;
            this.DataGridPersonsLocations = AGrid;
            DateEditor = new SourceGrid.Cells.Editors.TextBoxUITypeEditor(typeof(DateTime));
            DateEditor.EditableMode = EditableMode.None;
            DateTypeConverter = new Ict.Common.TypeConverter.TDateConverter();
            DateEditor.TypeConverter = DateTypeConverter;
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerTable.TableId, PPartnerTable.ColumnPartnerShortNameId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetPartnerShortNameDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnPartnerKeyId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetPartnerKeyDBName()], 77);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnTelephoneNumberId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetTelephoneNumberDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnExtensionId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetExtensionDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnFaxNumberId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetFaxNumberDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnFaxExtensionId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetFaxExtensionDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnMobileNumberId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetMobileNumberDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnAlternateTelephoneId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetAlternateTelephoneDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnEmailAddressId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetEmailAddressDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnUrlId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetUrlDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnLocationTypeId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetLocationTypeDBName()], 88);
            this.FDataGridPersonsLocations.AddCheckBoxColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnSendMailId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetSendMailDBName()]);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnDateEffectiveId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetDateEffectiveDBName()], -1, null, DateEditor, null,
                null);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnDateGoodUntilId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetDateGoodUntilDBName()], -1, null, DateEditor, null,
                null);

            // this.FDataGridPersonsLocations.AddTextColumn(PartnerAddressAggregateTDSChangePromotionParametersTable.GetSiteKeyLabel(),
            // ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetSiteKeyDBName()], 77);
            this.FDataGridPersonsLocations.AddTextColumn(
                TTypedDataTable.GetLabel(PPartnerLocationTable.TableId, PPartnerLocationTable.ColumnLocationKeyId),
                ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetLocationKeyDBName()]);

            // Following Columns are for debugging only!
            // this.FDataGridPersonsLocations.AddTextColumn('Site Key Of Edited Record', ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetSiteKeyOfEditedRecordDBName()], 77);
            // this.FDataGridPersonsLocations.AddTextColumn('Location Key Of Edited Record', ASourceTable.Columns[PartnerAddressAggregateTDSChangePromotionParametersTable.GetLocationKeyOfEditedRecordDBName()]);
        }
        /// <summary>
        /// This procedure creates the colums of the Changed Details DataGrid
        ///
        /// </summary>
        /// <returns>void</returns>
        public void CreateColumnsChangedDetails(TSgrdDataGrid AGrid, System.Data.DataTable ASourceTable)
        {
            FDataGridChangedDetails = AGrid;

            // this.FDataGridChangedDetails.AddTextColumn('Field DB Name', ASourceTable.Columns['DBName']);
            this.FDataGridChangedDetails.AddTextColumn("Detail", ASourceTable.Columns["DBLabel"]);
            this.FDataGridChangedDetails.AddTextColumn("Old Value", ASourceTable.Columns["OriginalValue"]);
            this.FDataGridChangedDetails.AddTextColumn("New Value", ASourceTable.Columns["CurrentValue"]);
        }
        /// <summary>
        /// Main method to initialise the grid and label on a specified tab
        /// </summary>
        /// <param name="ATableName"></param>
        /// <param name="AGrid"></param>
        /// <param name="ADescriptionLabel"></param>
        private void InitialiseTab(KeyboardShortcutTableNames ATableName, TSgrdDataGrid AGrid, Label ADescriptionLabel)
        {
            if (AGrid == null)
            {
                // The grid has already been initialised so we have nothing to do
                return;
            }

            ADescriptionLabel.AutoSize = false;
            ADescriptionLabel.Width = this.Width - 40;
            ADescriptionLabel.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;

            switch (ATableName)
            {
                case KeyboardShortcutTableNames.General:
                    ADescriptionLabel.Text = ApplWideResourcestrings.StrKeysHelpCategoryGeneral;
                    break;

                case KeyboardShortcutTableNames.List:
                    ADescriptionLabel.Text = ApplWideResourcestrings.StrKeysHelpCategoryList;
                    break;

                case KeyboardShortcutTableNames.Navigation:
                    ADescriptionLabel.Text = ApplWideResourcestrings.StrKeysHelpCategoryNavigation;
                    break;

                case KeyboardShortcutTableNames.FilterFind:
                    ADescriptionLabel.Text = ApplWideResourcestrings.StrKeysHelpCategoryFilterFind;
                    break;
            }

            DataTable table = FMainDS.Tables[ATableName.ToString()];

            AGrid.AddTextColumn(FColumnNames[0], table.Columns[0], 100);
            AGrid.AddTextColumn(FColumnNames[1], table.Columns[1], 250);
            AGrid.AutoStretchColumnsToFitWidth = true;
            AGrid.Columns[0].AutoSizeMode = SourceGrid.AutoSizeMode.None;
            AGrid.Columns[1].AutoSizeMode = SourceGrid.AutoSizeMode.EnableStretch | SourceGrid.AutoSizeMode.EnableAutoSize;

            table.DefaultView.AllowNew = false;
            AGrid.DataSource = new DevAge.ComponentModel.BoundDataView(table.DefaultView);
            AGrid.AutoSizeCells(new SourceGrid.Range(1, 1, AGrid.Rows.Count - 1, 1));

            // We need this line, otherwise the Enter key locks up the screen.  For this grid, on a dialog, we have no special keys.
            AGrid.SpecialKeys = SourceGrid.GridSpecialKeys.None;
        }
        /// <summary>
        /// This procedure creates the colums of the DataGrid displayed
        ///
        /// </summary>
        /// <returns>void</returns>
        public void CreateColumns(TSgrdDataGrid AGrid, System.Data.DataTable ASourceTable, String AAction)
        {
            String FAddRemoveHeaderText;

            SourceGrid.Cells.Editors.TextBoxUITypeEditor l_editor;
            Ict.Common.TypeConverter.TBooleanToYesNoConverter BooleanToYesNoConverter;
            l_editor = new SourceGrid.Cells.Editors.TextBoxUITypeEditor(typeof(Boolean));
            l_editor.EditableMode = EditableMode.None;
            BooleanToYesNoConverter = new Ict.Common.TypeConverter.TBooleanToYesNoConverter();

            // PetraDtConverter.
            l_editor.TypeConverter = BooleanToYesNoConverter;
            this.DataGrid = AGrid;

            // Assemble column heading
            if (AAction == "ADD")
            {
                FAddRemoveHeaderText = "Add?";
                this.FAction = "ADD";
            }
            else
            {
                FAddRemoveHeaderText = "Remove?";
                this.FAction = "REMOVE";
            }

            // TLogging.Log('Hello Test Markusm: ', [TLoggingType.ToLogfile]);
            this.FDataGrid.AddCheckBoxColumn(FAddRemoveHeaderText, ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetTypeCodeModifyDBName()]);
            this.FDataGrid.AddTextColumn("Currently assigned",
                ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetTypeCodePresentDBName()], -1, FSpecialCellController, l_editor, null, null);
            this.FDataGrid.AddTextColumn("Person Name", ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetPartnerShortNameDBName()]);
            this.FDataGrid.AddTextColumn("Person PartnerKey", ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()]);
            this.FDataGrid.AddTextColumn("Family ID", ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()]);

            // Add controller to each line
            // mNumberRows := AGrid.Rows.Count;
            // messagebox.show('Number of rows in  the grid: ' + mNumberRows.ToString);
        }
Пример #7
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="AGrid"></param>
        /// <returns></returns>
        public String DetermineCurrentInterest(TSgrdDataGrid AGrid)
        {
            DataRowView[] TheDataRowViewArray;
            TheDataRowViewArray = AGrid.SelectedDataRowsAsDataRowView;

            // MessageBox.Show(TUCPartnerInterestsLogic.DetermineCurrentInterest.TheDataRowViewArray);
            FInterest = TheDataRowViewArray[0].Row[PPartnerInterestTable.GetInterestDBName()].ToString();
            return FInterest;
        }
Пример #8
0
 /// <summary>
 /// todoComment
 /// </summary>
 /// <param name="AGrid"></param>
 /// <param name="ASourceTable"></param>
 public void CreateColumns(TSgrdDataGrid AGrid, PFoundationProposalDetailTable ASourceTable)
 {
     SourceGrid.Cells.Editors.ComboBox ProjectEditor;
     SourceGrid.Cells.Editors.TextBoxButton MinistryEditor;
     ProjectEditor = new SourceGrid.Cells.Editors.ComboBox(typeof(String));
     ProjectEditor.EditableMode = EditableMode.Focus;
     MinistryEditor = new SourceGrid.Cells.Editors.TextBoxButton(typeof(Int64));
     MinistryEditor.EditableMode = EditableMode.Focus;
     AGrid.AddTextColumn("Projects", ASourceTable.ColumnProjectMotivationDetail, -1, ProjectEditor);
     AGrid.AddTextColumn("Key Ministries", ASourceTable.ColumnKeyMinistryKey, -1, MinistryEditor);
     AGrid.AddTextColumn("Areas", ASourceTable.ColumnAreaPartnerKey, -1, MinistryEditor);
     AGrid.AddTextColumn("Fields", ASourceTable.ColumnFieldPartnerKey);
 }
Пример #9
0
        /// <summary>
        /// DataBinds the Grid.
        ///
        /// </summary>
        /// <returns>void</returns>
        public void DataBindGrid(TSgrdDataGrid AGrid)
        {
            FPartnerInterestsGridTableDV = FMultiTableDS.PPartnerInterest.DefaultView;
            FPartnerInterestsGridTableDV.AllowNew = false;
            FPartnerInterestsGridTableDV.AllowEdit = false;
            FPartnerInterestsGridTableDV.AllowDelete = false;

            // DataBind the DataGrid
            AGrid.DataSource = new DevAge.ComponentModel.BoundDataView(FPartnerInterestsGridTableDV);
        }
Пример #10
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="AGrid"></param>
        /// <param name="ARow"></param>
        /// <returns></returns>
        public String DetermineCurrentInterest(TSgrdDataGrid AGrid, Int32 ARow)
        {
            DataRowView TheDataRowView;

            TheDataRowView = (DataRowView)AGrid.Rows.IndexToDataSourceRow(ARow);
            try
            {
                FInterestRow = TheDataRowView.Row;
                FInterest = FInterestRow[PPartnerInterestTable.GetInterestDBName()].ToString();
                FInterestNumber = Convert.ToInt32(FInterestRow[PPartnerInterestTable.GetInterestNumberDBName()]);
            }
            catch (NullReferenceException)
            {
            }

            // no interests: to do?
            // MessageBox.Show('FInterest of currently selected Grid Row: ' + FInterest);
            return FInterest;
        }
Пример #11
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="AGrid"></param>
        /// <param name="tmpDT"></param>
        /// <param name="IsNew"></param>
        public void RefreshDataGrid(ref TSgrdDataGrid AGrid, DataTable tmpDT, Boolean IsNew)
        {
            DataRow TheNewRow;
            PPartnerInterestRow tmpPartnerInterestRow;
            PInterestRow tmpInterestRow = null; // todo: this needs to be assigned? says Timo while converting from delphi
            TRecalculateScreenPartsEventArgs RecalculateScreenPartsEventArgs;
            Int32 counter;
            StringCollection ACollection = new StringCollection();
            StringCollection SortedCollection;

            // AInterestRow : PInterestRow;
            MessageBox.Show("TmpDT count:" + tmpDT.Rows.Count.ToString());
            tmpPartnerInterestRow =
                ((PPartnerInterestRow)FMultiTableDS.PPartnerInterest.Rows.Find(new Object[] { FMultiTableDS.PPartner[0].PartnerKey, FInterestNumber }));

            // tmpPartnerInterestRow := tmpDT.rows[tmpDT.rows.count1] as PPartnerInterestRow;
            // tmpInterestRow := tmpDT.rows[tmpDT.rows.count1] as PInterestRow;
            // MessageBox.Show('Refreshgrid: '+tmpPartnerInterestRow.Interest);
            // AInterestRow := (FMultiTableDS.PInterest.Rows.Find(new Object[]{[tmpPartnerInterestRow.Interest]}) as PinterestRow);
            FPartnerInterestsGridTable = new DataTable();
            TheNewRow = FPartnerInterestsGridTable.NewRow();

            // TheNewRow['Category'] := AInterestROw.Category as System.Object;
            // TheNewRow['Category'] := 'DOG';
            TheNewRow["Interest"] = (System.Object)tmpPartnerInterestRow.Interest;
            TheNewRow["Country"] = (System.Object)tmpPartnerInterestRow.Country;
            TheNewRow["Field"] = (System.Object)tmpPartnerInterestRow.FieldKey;
            TheNewRow["Level"] = (System.Object)tmpPartnerInterestRow.Level;
            TheNewRow["Comment"] = (System.Object)tmpPartnerInterestRow.Comment;
            FPartnerInterestsGridTable.Rows.Add(TheNewRow);
            AGrid.DataSource = new DevAge.ComponentModel.BoundDataView(FPartnerInterestsGridTable.DefaultView);
            counter = 0;

            foreach (DataRow tmpRow in FPartnerInterestsGridTable.Rows)
            {
                ACollection.Add(tmpRow[PInterestTable.GetCategoryDBName()].ToString());
            }

            SortedCollection = StringHelper.StrSort(ACollection);

            foreach (String AInterestString in SortedCollection)
            {
                counter = counter + 1;

                if (AInterestString == tmpInterestRow.Interest.ToString())
                {
                    break;
                }
            }

            RecalculateScreenPartsEventArgs = new TRecalculateScreenPartsEventArgs();
            RecalculateScreenPartsEventArgs.ScreenPart = TScreenPartEnum.spCounters;
            OnRecalculateScreenParts(RecalculateScreenPartsEventArgs);
            AGrid.Selection.Focus(new Position(1, 1), true);
            AGrid.Selection.ResetSelection(false);
            AGrid.Selection.SelectRow(counter, true);
        }
Пример #12
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="AGrid"></param>
        /// <param name="YesNo"></param>
        public void AllowDelete(TSgrdDataGrid AGrid, Boolean YesNo)
        {
            FPartnerInterestsGridTableDV.AllowDelete = YesNo;

            // DataBind the DataGrid
            AGrid.DataSource = new DevAge.ComponentModel.BoundDataView(FPartnerInterestsGridTableDV);
        }
        /// <summary>
        /// This function determines the current PartnerKey
        ///
        /// </summary>
        /// <returns>void</returns>
        public Int64 DetermineCurrentFamilyMemberPartnerKey(TSgrdDataGrid AGrid)
        {
            DataRowView[] TheDataRowViewArray;
            Int64 PersonPartnerKey;

            // MessageBox.Show(ARow.ToString);
            TheDataRowViewArray = AGrid.SelectedDataRowsAsDataRowView;

            // get PartnerKey of current DataRow
            try
            {
                PersonPartnerKey = Convert.ToInt64(TheDataRowViewArray[0].Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()]);
            }
            catch (Exception)
            {
                throw;
            }

            // MessageBox.Show(PersonPartnerKey.ToString);
            return PersonPartnerKey;
        }
Пример #14
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="AGrid"></param>
        /// <param name="ASourceTable"></param>
        public void CreateColumns(TSgrdDataGrid AGrid, PFoundationDeadlineTable ASourceTable)
        {
            SourceGrid.Cells.Editors.ComboBox FMonthEditor;
            SourceGrid.Cells.Editors.TextBoxNumeric FDayEditor;
            Int32[] MonthDropDownValues;
            String[] MonthDropDownDisplayValues;
            DevAge.ComponentModel.Validator.ValueMapping MonthDropDownMapping;

            // Set up Month ComboBox editor
            MonthDropDownValues = new Int32[] {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
            };
            MonthDropDownDisplayValues = new String[] {
                "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST",
                "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"
            };
            FMonthEditor = new SourceGrid.Cells.Editors.ComboBox(typeof(Int32), MonthDropDownValues, true);
            FMonthEditor.Control.FormattingEnabled = true;
            MonthDropDownMapping = new DevAge.ComponentModel.Validator.ValueMapping();
            MonthDropDownMapping.SpecialType = typeof(String);
            MonthDropDownMapping.SpecialList = MonthDropDownDisplayValues;
            MonthDropDownMapping.ValueList = MonthDropDownValues;
            MonthDropDownMapping.BindValidator(FMonthEditor);
            FMonthEditor.EditableMode = EditableMode.Focus;

            FDayEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(Int32));
            FDayEditor.EditableMode = EditableMode.Focus;

            AGrid.AddTextColumn("Month", ASourceTable.ColumnDeadlineMonth, 80, FMonthEditor);
            AGrid.AddTextColumn("Day", ASourceTable.ColumnDeadlineDay, -1, FDayEditor);

            // Hook up editor events
            FDayEditor.Control.Validating += new System.ComponentModel.CancelEventHandler(Day_Validating);
            FMonthEditor.Control.Validating += new System.ComponentModel.CancelEventHandler(Month_Validating);
        }
Пример #15
0
 /// <summary>
 /// todoComment
 /// </summary>
 /// <param name="AGrid"></param>
 /// <param name="ARowNumber"></param>
 /// <param name="AInterest"></param>
 public void DetermineInitiallySelectedInterest(TSgrdDataGrid AGrid, out Int32 ARowNumber, out String AInterest)
 {
     AInterest = "";
     PPartnerInterestRow InterestRow;
     ARowNumber = 1;
     try
     {
         InterestRow = (PPartnerInterestRow)((DataRowView)AGrid.Rows.IndexToDataSourceRow(1)).Row;
         AInterest = InterestRow.Interest;
     }
     catch (NullReferenceException)
     {
     }
 }
Пример #16
0
 /// <summary>
 /// todoComment
 /// </summary>
 /// <param name="AGrid"></param>
 /// <param name="ASourceTable"></param>
 public void CreateColumns(TSgrdDataGrid AGrid, PFoundationProposalTable ASourceTable)
 {
     AGrid.AddTextColumn("Status", ASourceTable.ColumnProposalStatus);
     AGrid.AddTextColumn("Submitted", ASourceTable.ColumnSubmittedDate);
     AGrid.AddTextColumn("Requested", ASourceTable.ColumnAmountRequested);
     AGrid.AddTextColumn("Approved", ASourceTable.ColumnAmountApproved);
     AGrid.AddTextColumn("Received", ASourceTable.ColumnAmountGranted);
 }
Пример #17
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="AGrid"></param>
        public void CreateColumns(TSgrdDataGrid AGrid)
        {
            // var
            // ForeignTableColumn: DataColumn;
            // Add column Category in FMultiTableDS. Info is taken from the Interest table.
            // Rest of info comes from PartnerInterest table.
            // ForeignTableColumn := new DataColumn();
            // ForeignTableColumn.DataType := System.Type.GetType('System.String');
            // ForeignTableColumn.ColumnName := 'Parent_' + PInterestTable.GetCategoryDBName();
            // ForeignTableColumn.Expression := 'Parent.' + PInterestTable.GetCategoryDBName();
            // FMultiTableDS.EnableRelation('PartnerInterestCategory');
            // FMultiTableDS.PPartnerInterest.Columns.Add(ForeignTableColumn);
            // Agrid.AddTextColumn('Category', FMultiTableDS.PInterest.ColumnCategory);
            // AGrid.AddTextColumn('Category', FMultiTableDS.PPartnerInterest.Columns[
            // 'Parent_' + PInterestTable.GetCategoryDBName()]);
            // ????
            // AGrid.AddTextColumn('Category', FMultiTableDS.Tables. );
            // ????
            AGrid.AddTextColumn("Interest", FMultiTableDS.PPartnerInterest.ColumnInterest);
            AGrid.AddTextColumn("Country", FMultiTableDS.PPartnerInterest.ColumnCountry);
            AGrid.AddTextColumn("Field", FMultiTableDS.PPartnerInterest.ColumnFieldKey);
            AGrid.AddTextColumn("Level", FMultiTableDS.PPartnerInterest.ColumnLevel);
            AGrid.AddTextColumn("Comment", FMultiTableDS.PPartnerInterest.ColumnComment);

            // Agrid.Columns[5].DataCell.Editor := nil;
        }
Пример #18
0
        /// <summary>
        /// The main method of this class.  It deletes one or more rows selected in a grid on the caller form
        /// </summary>
        /// <param name="ACallerFormOrControl">The form or user control that is making the call.  The form must implement the IDeleteGridRows interface</param>
        /// <param name="AGrid">A reference to the grid object</param>
        /// <param name="APetraUtilsObject">A reference to the PetraUtilsObject associated with the form or control making the call</param>
        /// <param name="AButtonPanel">A reference a form or control that implements the IButtonPanel interface.  This parameter can be null.</param>
        /// <returns>True if any rows were actually deleted</returns>
        public static bool DeleteRows(IDeleteGridRows ACallerFormOrControl,
            TSgrdDataGrid AGrid,
            TFrmPetraEditUtils APetraUtilsObject,
            IButtonPanel AButtonPanel)
        {
            DataRow currentDataRow = ACallerFormOrControl.GetSelectedDataRow();
            Int32 currentRowIndex = ACallerFormOrControl.GetSelectedRowIndex();

            if ((currentDataRow == null) || (currentRowIndex == -1))
            {
                return false;
            }

            string CompletionMessage = String.Empty;
            DataRowView[] HighlightedRows = AGrid.SelectedDataRowsAsDataRowView;

            if (HighlightedRows.Length == 1)
            {
                // Single row deletion

                TVerificationResultCollection VerificationResults = null;

                if (TVerificationHelper.IsNullOrOnlyNonCritical(APetraUtilsObject.VerificationResultCollection))
                {
                    ACallerFormOrControl.GetReferenceCount(currentDataRow, APetraUtilsObject.MaxReferenceCountOnDelete, out VerificationResults);
                }

                if ((VerificationResults != null)
                    && (VerificationResults.Count > 0))
                {
                    TCascadingReferenceCountHandler countHandler = new TCascadingReferenceCountHandler();
                    TFrmExtendedMessageBox.TResult result = countHandler.HandleReferences(APetraUtilsObject, VerificationResults, true);

                    if (result == TFrmExtendedMessageBox.TResult.embrYes)
                    {
                        // repeat the count but with no limit to the number of references
                        ACallerFormOrControl.GetReferenceCount(currentDataRow, 0, out VerificationResults);
                        countHandler.HandleReferences(APetraUtilsObject, VerificationResults, false);
                    }

                    return false;
                }

                string DeletionQuestion = ACallerFormOrControl.GetDefaultDeletionQuestion();
                bool AllowDeletion = true;
                bool DeletionPerformed = false;

                ACallerFormOrControl.HandlePreDelete(currentDataRow, ref AllowDeletion, ref DeletionQuestion);

                if (AllowDeletion)
                {
                    if ((MessageBox.Show(DeletionQuestion,
                             MCommonResourcestrings.StrConfirmDeleteTitle,
                             MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question,
                             MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes))
                    {
                        try
                        {
                            if (!ACallerFormOrControl.HandleDeleteRow(currentDataRow, ref DeletionPerformed, ref CompletionMessage))
                            {
                                currentDataRow.Delete();
                                DeletionPerformed = true;
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(String.Format(MCommonResourcestrings.StrErrorWhileDeleting,
                                    Environment.NewLine, ex.Message),
                                MCommonResourcestrings.StrGenericError,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                        }

                        if (DeletionPerformed)
                        {
                            APetraUtilsObject.SetChangedFlag();
                        }

                        // Select and display the details of the nearest row to the one previously selected
                        ACallerFormOrControl.SelectRowInGrid(currentRowIndex);
                        // Clear any errors left over from  the deleted row
                        APetraUtilsObject.VerificationResultCollection.Clear();

                        if (AButtonPanel != null)
                        {
                            AButtonPanel.UpdateRecordNumberDisplay();
                        }
                    }
                }

                if (!ACallerFormOrControl.HandlePostDelete(currentDataRow, AllowDeletion, DeletionPerformed, CompletionMessage))
                {
                    if (DeletionPerformed && (CompletionMessage.Length > 0))
                    {
                        MessageBox.Show(CompletionMessage, MCommonResourcestrings.StrDeletionCompletedTitle);
                    }
                }

                return DeletionPerformed;
            }
            else
            {
                // Multi-row deletion

                int recordsDeleted = 0;

                string DeletionQuestion = String.Format(MCommonResourcestrings.StrMultiRowDeletionQuestion,
                    HighlightedRows.Length,
                    Environment.NewLine);
                DeletionQuestion += MCommonResourcestrings.StrMultiRowDeletionCheck;

                if (MessageBox.Show(DeletionQuestion,
                        MCommonResourcestrings.StrConfirmDeleteTitle,
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Question,
                        MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes)
                {
                    int recordsUndeletable = 0;
                    int recordsDeleteDisallowed = 0;
                    List <TMultiDeleteResult>listConflicts = new List <TMultiDeleteResult>();
                    List <TMultiDeleteResult>listExceptions = new List <TMultiDeleteResult>();

                    APetraUtilsObject.GetForm().Cursor = Cursors.WaitCursor;

                    foreach (DataRowView drv in HighlightedRows)
                    {
                        DataRow rowToDelete = drv.Row;
                        string rowDetails = MakePKValuesString(rowToDelete);

                        if (!ACallerFormOrControl.IsRowDeletable(rowToDelete))
                        {
                            recordsUndeletable++;
                            continue;
                        }

                        TVerificationResultCollection VerificationResults = null;
                        ACallerFormOrControl.GetReferenceCount(rowToDelete, APetraUtilsObject.MaxReferenceCountOnDelete, out VerificationResults);

                        if ((VerificationResults != null) && (VerificationResults.Count > 0))
                        {
                            TMultiDeleteResult result = new TMultiDeleteResult(rowDetails,
                                Messages.BuildMessageFromVerificationResult(String.Empty, VerificationResults));
                            listConflicts.Add(result);
                            continue;
                        }

                        bool AllowDeletion = true;
                        bool DeletionPerformed = false;

                        ACallerFormOrControl.HandlePreDelete(rowToDelete, ref AllowDeletion, ref DeletionQuestion);

                        if (AllowDeletion)
                        {
                            try
                            {
                                if (!ACallerFormOrControl.HandleDeleteRow(rowToDelete, ref DeletionPerformed, ref CompletionMessage))
                                {
                                    rowToDelete.Delete();
                                    DeletionPerformed = true;
                                }
                            }
                            catch (Exception ex)
                            {
                                TMultiDeleteResult result = new TMultiDeleteResult(rowDetails, ex.Message);
                                listExceptions.Add(result);
                            }
                        }
                        else
                        {
                            recordsDeleteDisallowed++;
                        }

                        if (DeletionPerformed)
                        {
                            APetraUtilsObject.SetChangedFlag();
                            recordsDeleted++;
                        }

                        ACallerFormOrControl.HandlePostDelete(rowToDelete, AllowDeletion, DeletionPerformed, String.Empty);
                    }

                    APetraUtilsObject.GetForm().Cursor = Cursors.Default;
                    ACallerFormOrControl.SelectRowInGrid(currentRowIndex);

                    if (AButtonPanel != null)
                    {
                        AButtonPanel.UpdateRecordNumberDisplay();
                    }

                    if ((recordsDeleted > 0) && (CompletionMessage.Length > 0))
                    {
                        MessageBox.Show(CompletionMessage, MCommonResourcestrings.StrDeletionCompletedTitle);
                    }

                    //  Show the results of the multi-deletion
                    string results = null;

                    if (recordsDeleted > 0)
                    {
                        results = String.Format(
                            Catalog.GetPluralString(MCommonResourcestrings.StrRecordSuccessfullyDeleted,
                                MCommonResourcestrings.StrRecordsSuccessfullyDeleted, recordsDeleted),
                            recordsDeleted);
                    }
                    else
                    {
                        results = MCommonResourcestrings.StrNoRecordsWereDeleted;
                    }

                    if (recordsUndeletable > 0)
                    {
                        results += String.Format(
                            Catalog.GetPluralString(MCommonResourcestrings.StrRowNotDeletedBecauseNonDeletable,
                                MCommonResourcestrings.StrRowsNotDeletedBecauseNonDeletable,
                                recordsUndeletable),
                            Environment.NewLine,
                            recordsUndeletable);
                    }

                    if (recordsDeleteDisallowed > 0)
                    {
                        results += String.Format(
                            Catalog.GetPluralString(MCommonResourcestrings.StrRowNotDeletedBecauseDeleteNotAllowed,
                                MCommonResourcestrings.StrRowsNotDeletedBecauseDeleteNotAllowed,
                                recordsDeleteDisallowed),
                            Environment.NewLine,
                            recordsDeleteDisallowed);
                    }

                    bool showCancel = false;

                    if (listConflicts.Count > 0)
                    {
                        showCancel = true;
                        results += String.Format(
                            Catalog.GetPluralString(MCommonResourcestrings.StrRowNotDeletedBecauseReferencedElsewhere,
                                MCommonResourcestrings.StrRowsNotDeletedBecauseReferencedElsewhere,
                                listConflicts.Count),
                            Environment.NewLine,
                            listConflicts.Count);
                    }

                    if (listExceptions.Count > 0)
                    {
                        showCancel = true;
                        results += String.Format(
                            Catalog.GetPluralString(MCommonResourcestrings.StrRowNotDeletedDueToUnexpectedException,
                                MCommonResourcestrings.StrRowNotDeletedDueToUnexpectedException,
                                listExceptions.Count),
                            Environment.NewLine,
                            listExceptions.Count);
                    }

                    if (showCancel)
                    {
                        results += String.Format(MCommonResourcestrings.StrClickToReviewDeletionOrCancel, Environment.NewLine);

                        if (MessageBox.Show(results,
                                MCommonResourcestrings.StrDeleteActionSummaryTitle,
                                MessageBoxButtons.OKCancel,
                                MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
                        {
                            ReviewMultiDeleteResults(listConflicts, MCommonResourcestrings.StrRowsReferencedByOtherTables);
                            ReviewMultiDeleteResults(listExceptions, MCommonResourcestrings.StrExceptions);
                        }
                    }
                    else
                    {
                        MessageBox.Show(results,
                            MCommonResourcestrings.StrDeleteActionSummaryTitle,
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
                    }
                }

                return recordsDeleted > 0;
            }
        }
Пример #19
0
 /// <summary>
 /// todoComment
 /// </summary>
 /// <param name="AGrid"></param>
 /// <param name="ASourceTable"></param>
 public void CreateColumns(TSgrdDataGrid AGrid, DataTable ASourceTable)
 {
     AGrid.AddPartnerKeyColumn("Site Key", ASourceTable.Columns[PPartnerLedgerTable.GetPartnerKeyDBName()], 75);
     AGrid.AddTextColumn("Site Name", ASourceTable.Columns[PPartnerTable.GetPartnerShortNameDBName()], 353);
 }
Пример #20
0
 /// <summary>
 /// The main constructor
 /// </summary>
 /// <param name="ACallerFormOrControl">The form or control that is instantiating this class</param>
 /// <param name="APetraUtilsObject">The TFrmPetraUtils instance associated with the caller form or control</param>
 /// <param name="AGrid">The grid associated with the caller form or control</param>
 /// <param name="AButtonPanel">The IButtonPanel associated with the caller form or control.  (Typically simply pass 'this').</param>
 /// <param name="APanelFilterFind">The Panel control associated with the caller form or control.</param>
 /// <param name="AChkToggleFilter">The checkbox control associated with the caller form or control.</param>
 /// <param name="ALblRecordCounter">The Label control displaying the record count associated with the caller form or control.</param>
 public TFilterAndFindPanel(IFilterAndFind ACallerFormOrControl,
     TFrmPetraUtils APetraUtilsObject,
     TSgrdDataGridPaged AGrid,
     IButtonPanel AButtonPanel,
     Panel APanelFilterFind,
     CheckBox AChkToggleFilter,
     Label ALblRecordCounter)
 {
     FCallerFormOrControl = ACallerFormOrControl;
     FPetraUtilsObject = APetraUtilsObject;
     FGrid = AGrid;
     FButtonPanel = AButtonPanel;
     FPnlFilterFind = APanelFilterFind;
     FChkToggleFilter = AChkToggleFilter;
     FLblRecordCounter = ALblRecordCounter;
 }
Пример #21
0
            /// <summary>
            /// Constructor.
            /// </summary>
            /// <param name="AGrid">Grid instance.</param>
            /// <param name="AIndexColumnNr">Number of the DataColumn in the DataTables' DataColumns Collection that represents the 'index' of the Rows.</param>
            /// <param name="ABtnDemote">Demote Button.</param>
            /// <param name="ABtnPromote">Promote Button.</param>
            /// <param name="AActionAfterSwapping">Delegate that should be executed after the swap of Rows was performed (optional).</param>
            public IndexedGridRowsHelper(TSgrdDataGrid AGrid, int AIndexColumnNr,
                System.Windows.Forms.Button ABtnDemote, System.Windows.Forms.Button ABtnPromote, Action AActionAfterSwapping = null)
            {
                FGrid = AGrid;
                FIndexColumnNr = AIndexColumnNr;
                FBtnDemote = ABtnDemote;
                FBtnPromote = ABtnPromote;
                FActionAfterSwapping = AActionAfterSwapping;

                // When the user sorts the Grid manually: disable promote/demote buttons and show MessageBox
                AGrid.SortedRangeRows += HandleSortedRangeRows;
            }