/// <summary>todoComment</summary> public void SpecialInitUserControl() { // Set up screen logic FLogic.MultiTableDS = (PartnerEditTDS)FMainDS; FLogic.PartnerEditUIConnector = FPartnerEditUIConnector; FLogic.LoadDataOnDemand(); grdDetails.Columns.Clear(); grdDetails.AddTextColumn("Description", FMainDS.PPartnerRelationship.ColumnDisplayRelationDescription); grdDetails.AddPartnerKeyColumn("Partner Key", FMainDS.PPartnerRelationship.Columns["OtherPartnerKey"]); grdDetails.AddTextColumn("Partner Name", FMainDS.PPartnerRelationship.Columns[PartnerEditTDSPPartnerRelationshipTable.GetPartnerShortNameDBName()]); grdDetails.AddTextColumn("Class", FMainDS.PPartnerRelationship.Columns[PartnerEditTDSPPartnerRelationshipTable.GetPartnerClassDBName()]); grdDetails.AddTextColumn("Comment", FMainDS.PPartnerRelationship.Columns[PPartnerRelationshipTable.GetCommentDBName()]); OnHookupDataChange(new THookupPartnerEditDataChangeEventArgs(TPartnerEditTabPageEnum.petpPartnerRelationships)); // Hook up DataSavingStarted Event to be able to run code before SaveChanges is doing anything FPetraUtilsObject.DataSavingStarted += new TDataSavingStartHandler(this.DataSavingStarted); // hook up partner changed event for partner key and relation key so grid can be updated when new record is created // where data did not already come from server txtPPartnerRelationshipPartnerKey.ValueChanged += new TDelegatePartnerChanged(txtPPartnerRelationshipPartnerKey_ValueChanged); txtPPartnerRelationshipRelationKey.ValueChanged += new TDelegatePartnerChanged(txtPPartnerRelationshipRelationKey_ValueChanged); if (grdDetails.Rows.Count > 1) { grdDetails.SelectRowInGrid(1); ShowDetails(1); // do this as for some reason details are not automatically show here at the moment } else { btnEditOtherPartner.Enabled = false; } }
private void InitializeManualCode() { FLogic = new TUCPartnerRelationshipsLogic(); if (!FMainDS.Tables.Contains(PartnerEditTDSPPartnerRelationshipTable.GetTableName())) { FMainDS.Tables.Add(new PartnerEditTDSPPartnerRelationshipTable()); } FMainDS.InitVars(); }
private PartnerEditTDSPPartnerRelationshipTable GetPartnerRelationshipsInternal(out Int32 ACount, Boolean ACountOnly) { TDBTransaction ReadTransaction; Boolean NewTransaction = false; PartnerEditTDSPPartnerRelationshipTable RelationshipDT; PPartnerTable PartnerDT; RelationshipDT = new PartnerEditTDSPPartnerRelationshipTable(); try { ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.RepeatableRead, TEnforceIsolationLevel.eilMinimum, out NewTransaction); if (ACountOnly) { // count relationships where partner is involved with partner key or reciprocal ACount = PPartnerRelationshipAccess.CountViaPPartnerPartnerKey(FPartnerKey, ReadTransaction) + PPartnerRelationshipAccess.CountViaPPartnerRelationKey(FPartnerKey, ReadTransaction); } else { // TLogging.LogAtLevel(7, "TPartnerEditUIConnector.GetRelationshipsInternal: loading Relationships for Partner " + FPartnerKey.ToString() + "..."); try { // load relationships where partner is involved with partner key or reciprocal RelationshipDT.Merge(PPartnerRelationshipAccess.LoadViaPPartnerPartnerKey(FPartnerKey, ReadTransaction)); RelationshipDT.Merge(PPartnerRelationshipAccess.LoadViaPPartnerRelationKey(FPartnerKey, ReadTransaction)); foreach (PartnerEditTDSPPartnerRelationshipRow RelationshipRow in RelationshipDT.Rows) { // find partner name and class depending on relation and add it to data set if (RelationshipRow.PartnerKey == FPartnerKey) { PartnerDT = PPartnerAccess.LoadByPrimaryKey(RelationshipRow.RelationKey, ReadTransaction); } else { PartnerDT = PPartnerAccess.LoadByPrimaryKey(RelationshipRow.PartnerKey, ReadTransaction); } // set extended fields for partner data if record exists if (PartnerDT.Rows[0] != null) { RelationshipRow.PartnerShortName = ((PPartnerRow)PartnerDT.Rows[0]).PartnerShortName; RelationshipRow.PartnerClass = ((PPartnerRow)PartnerDT.Rows[0]).PartnerClass; } } } catch (Exception) { throw; } ACount = RelationshipDT.Rows.Count; } } finally { if (NewTransaction) { DBAccess.GDBAccessObj.CommitTransaction(); TLogging.LogAtLevel(7, "TPartnerEditUIConnector.GetRelationshipsInternal: committed own transaction."); } } return RelationshipDT; }