/// <summary> /// initialize internal data before control is shown /// </summary> public void InitializeData() { // set fixed column widths as otherwise grid will spend a long time recalculating optimal width with big extracts grdDetails.Columns.Clear(); grdDetails.AddTextColumn("Partner Key", FMainDS.MExtract.Columns[ExtractTDSMExtractTable.GetPartnerKeyDBName()], 100); grdDetails.AddTextColumn("Class", FMainDS.MExtract.Columns[ExtractTDSMExtractTable.GetPartnerClassDBName()], 100); grdDetails.AddTextColumn("Partner Name", FMainDS.MExtract.Columns[ExtractTDSMExtractTable.GetPartnerShortNameDBName()], 300); grdDetails.AddTextColumn("Location Key", FMainDS.MExtract.Columns[ExtractTDSMExtractTable.GetLocationKeyDBName()], 100); LoadData(); // get the grid columns to fill the available space grdDetails.AutoStretchColumnsToFitWidth = true; grdDetails.Columns[2].AutoSizeMode = SourceGrid.AutoSizeMode.EnableStretch | SourceGrid.AutoSizeMode.EnableAutoSize; grdDetails.Rows.AutoSizeMode = SourceGrid.AutoSizeMode.None; // allow multiselection of list items so several records can be deleted at once grdDetails.Selection.EnableMultiSelection = true; // initialize button state if (grdDetails.Rows.Count > 1) { grdDetails.SelectRowInGrid(1); ShowDetails(1); UpdateRecordNumberDisplay(); } else { btnEdit.Enabled = false; } }
private void AddPartner(System.Object sender, EventArgs e) { ExtractTDSMExtractRow NewRow; System.Int64 PartnerKey = 0; string PartnerShortName; TPartnerClass?PartnerClass; TPartnerClass PartnerClass2; TLocationPK ResultLocationPK; DataRow[] ExistingPartnerDataRows; ExtractTDSMExtractRow ExisitingPartnerRow; // If the delegate is defined, the host form will launch a Modal Partner Find screen for us if (TCommonScreensForwarding.OpenPartnerFindScreen != null) { // delegate IS defined try { TCommonScreensForwarding.OpenPartnerFindScreen.Invoke ("", out PartnerKey, out PartnerShortName, out PartnerClass, out ResultLocationPK, this.ParentForm); if (PartnerKey != -1) { ExistingPartnerDataRows = FMainDS.MExtract.Select(ExtractTDSMExtractTable.GetPartnerKeyDBName() + " = " + PartnerKey.ToString()); if (ExistingPartnerDataRows.Length > 0) { // check if partner already exists in extract MessageBox.Show(Catalog.GetString("A record for this partner already exists in this extract"), Catalog.GetString("Add Partner to Extract"), MessageBoxButtons.OK, MessageBoxIcon.Information); // select the already existing partner record in the grid so the user can see it ExisitingPartnerRow = (ExtractTDSMExtractRow)ExistingPartnerDataRows[0]; SelectByPartnerKey(PartnerKey, ExisitingPartnerRow.SiteKey); return; } TRemote.MPartner.Partner.ServerLookups.WebConnectors.GetPartnerShortName( PartnerKey, out PartnerShortName, out PartnerClass2); // add new record to extract NewRow = FMainDS.MExtract.NewRowTyped(); NewRow.ExtractId = FExtractId; NewRow.PartnerKey = PartnerKey; NewRow.PartnerShortName = PartnerShortName; NewRow.PartnerClass = SharedTypes.PartnerClassEnumToString(PartnerClass2); NewRow.SiteKey = ResultLocationPK.SiteKey; NewRow.LocationKey = ResultLocationPK.LocationKey; FMainDS.MExtract.Rows.Add(NewRow); // Refresh DataGrid to show the added partner record grdDetails.Refresh(); // select the added partner record in the grid so the user can see the change SelectByPartnerKey(PartnerKey, ResultLocationPK.SiteKey); // enable save button on screen FPetraUtilsObject.SetChangedFlag(); } } catch (Exception exp) { throw new EOPAppException("Exception occured while calling PartnerFindScreen Delegate!", exp); } // end try } }