/// <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; }
/// <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); }
/// <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; }
/// <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); }
/// <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); }
/// <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; }
/// <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); }
/// <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; }
/// <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); }
/// <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) { } }
/// <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); }
/// <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; }
/// <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; } }
/// <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); }
/// <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; }
/// <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; }