/// <summary> /// todoComment /// </summary> /// <param name="APartnerInterestRow"></param> public void ProcessEditedRecord(out PPartnerInterestRow APartnerInterestRow) { // Exampel from EditRecord // InterestRow := (FMultiTableDS.PPartnerInterest.Rows.Find( // [FMultiTableDS.PPartner.Row[0].PartnerKey, FInterestNumber]) as PPartnerInterestRow); // [Finterest,FMulti... // this is the same always???? APartnerInterestRow = ((PPartnerInterestRow)FMultiTableDS.PPartnerInterest.Rows.Find(new Object[] { FMultiTableDS.PPartner[0].PartnerKey, FInterestNumber })); // Call EndEdit on all DataRows that are editable in the Detail UserControl. // THIS IS ESSENTIAL!!! It makes the changes that the user has made permanent. if (APartnerInterestRow == null) { MessageBox.Show("TUCPartnerInterestsLogic.ProcessEditedRecord: APartnerInterestRow is nil" + FInterest.ToString()); } else { APartnerInterestRow.EndEdit(); // New Address? if ((APartnerInterestRow.RowState == DataRowState.Added) && FIsRecordBeingAdded) { FIsRecordBeingAdded = false; // The 4GL Petra screen didn't set the StatusCode to active when a new Subscription was added. // FMultiTableDS.PPartner.Row[0].StatusCode := 'ACTIVE'; } } }
private void ValidateDataDetailsManual(PPartnerInterestRow ARow) { TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection; TSharedPartnerValidation_Partner.ValidatePartnerInterestManual(this, ARow, ref VerificationResultCollection, FValidationControlsDict, cmbPPartnerInterestInterestCategory.GetSelectedString()); }
private void GetDetailDataFromControlsManual(PPartnerInterestRow ARow) { if (ARow.RowState != DataRowState.Deleted) { if (!ARow.IsFieldKeyNull()) { if (ARow.FieldKey == 0) { ARow.SetFieldKeyNull(); } } } }
private void ShowDetailsManual(PPartnerInterestRow ARow) { }
/// <summary> /// Validates the Partner Interest screen data. /// </summary> /// <param name="AContext">Context that describes where the data validation failed.</param> /// <param name="ARow">The <see cref="DataRow" /> which holds the the data against which the validation is run.</param> /// <param name="AVerificationResultCollection">Will be filled with any <see cref="TVerificationResult" /> items if /// data validation errors occur.</param> /// <param name="AValidationControlsDict">A <see cref="TValidationControlsDict" /> containing the Controls that /// display data that is about to be validated.</param> /// <param name="AInterestCategory">The chosen interest category.</param> public static void ValidatePartnerInterestManual(object AContext, PPartnerInterestRow ARow, ref TVerificationResultCollection AVerificationResultCollection, TValidationControlsDict AValidationControlsDict, string AInterestCategory) { DataColumn ValidationColumn; DataColumn ValidationColumn2; DataColumn ValidationColumn3; TValidationControlsData ValidationControlsData; TValidationControlsData ValidationControlsData2; TValidationControlsData ValidationControlsData3; TVerificationResult VerificationResult = null; // Don't validate deleted DataRows if (ARow.RowState == DataRowState.Deleted) { return; } // remove possible previous columns from result collection ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnLevelId]; AVerificationResultCollection.Remove(ValidationColumn); ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnInterestId]; AVerificationResultCollection.Remove(ValidationColumn); // check that level is entered within valid range (depending on interest category) ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnLevelId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { PInterestCategoryTable CategoryTable; PInterestCategoryRow CategoryRow; int LevelRangeLow; int LevelRangeHigh; // check if level is within valid range (retrieve valid range from cached tables) CategoryTable = (PInterestCategoryTable)TSharedDataCache.TMPartner.GetCacheablePartnerTable( TCacheablePartnerTablesEnum.InterestCategoryList); CategoryRow = (PInterestCategoryRow)CategoryTable.Rows.Find(new object[] { AInterestCategory }); if ((CategoryRow != null) && !ARow.IsLevelNull()) { LevelRangeLow = 0; LevelRangeHigh = 0; if (!CategoryRow.IsLevelRangeLowNull()) { LevelRangeLow = CategoryRow.LevelRangeLow; } if (!CategoryRow.IsLevelRangeHighNull()) { LevelRangeHigh = CategoryRow.LevelRangeHigh; } if ((!CategoryRow.IsLevelRangeLowNull() && (ARow.Level < CategoryRow.LevelRangeLow)) || (!CategoryRow.IsLevelRangeHighNull() && (ARow.Level > CategoryRow.LevelRangeHigh))) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_VALUE_OUTSIDE_OF_RANGE, new string[] { ValidationControlsData.ValidationControlLabel, LevelRangeLow.ToString(), LevelRangeHigh.ToString() })), ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } } } // check that at least one of interest, country or field is filled ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnInterestId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { ValidationColumn2 = ARow.Table.Columns[PPartnerInterestTable.ColumnCountryId]; if (AValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { ValidationColumn3 = ARow.Table.Columns[PPartnerInterestTable.ColumnFieldKeyId]; if (AValidationControlsDict.TryGetValue(ValidationColumn3, out ValidationControlsData3)) { if ((ARow.IsInterestNull() || (ARow.Interest == String.Empty)) && (ARow.IsCountryNull() || (ARow.Country == String.Empty)) && (ARow.IsFieldKeyNull() || (ARow.FieldKey == 0))) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_INTEREST_NO_DATA_SET_AT_ALL, new string[] { })), ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } } } } // check that interest is filled if a category is set if (AInterestCategory != "") { ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnInterestId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { if (ARow.IsInterestNull() || (ARow.Interest == String.Empty)) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_INTEREST_NOT_SET, new string[] { AInterestCategory })), ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } } } // 'Field' must be a valid UNIT partner (if set at all) ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnFieldKeyId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { if (!ARow.IsFieldKeyNull()) { VerificationResult = IsValidPartner( ARow.FieldKey, new TPartnerClass[] { TPartnerClass.UNIT }, true, string.Empty, AContext, ValidationColumn, ValidationControlsData.ValidationControl ); } // Since the validation can result in different ResultTexts we need to remove any validation result manually as a call to // AVerificationResultCollection.AddOrRemove wouldn't remove a previous validation result with a different // ResultText! // Handle addition to/removal from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } }
private void ValidateDataDetailsManual(PPartnerInterestRow ARow) { TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection; TSharedPartnerValidation_Partner.ValidatePartnerInterestManual(this, ARow, ref VerificationResultCollection, FValidationControlsDict, cmbPPartnerInterestInterestCategory.GetSelectedString()); }
private void GetDetailDataFromControlsManual(PPartnerInterestRow ARow) { if (ARow.RowState != DataRowState.Deleted) { if (!ARow.IsFieldKeyNull()) { if (ARow.FieldKey == 0) { ARow.SetFieldKeyNull(); } } } }
private void ShowDetailsManual(PPartnerInterestRow ARow) { }
/// <summary> /// todoComment /// </summary> /// <param name="APartnerInterestRow"></param> public void ProcessEditedRecord(out PPartnerInterestRow APartnerInterestRow) { // Exampel from EditRecord // InterestRow := (FMultiTableDS.PPartnerInterest.Rows.Find( // [FMultiTableDS.PPartner.Row[0].PartnerKey, FInterestNumber]) as PPartnerInterestRow); // [Finterest,FMulti... // this is the same always???? APartnerInterestRow = ((PPartnerInterestRow)FMultiTableDS.PPartnerInterest.Rows.Find(new Object[] { FMultiTableDS.PPartner[0].PartnerKey, FInterestNumber })); // Call EndEdit on all DataRows that are editable in the Detail UserControl. // THIS IS ESSENTIAL!!! It makes the changes that the user has made permanent. if (APartnerInterestRow == null) { MessageBox.Show("TUCPartnerInterestsLogic.ProcessEditedRecord: APartnerInterestRow is nil" + FInterest.ToString()); } else { APartnerInterestRow.EndEdit(); // New Address? if ((APartnerInterestRow.RowState == DataRowState.Added) && FIsRecordBeingAdded) { FIsRecordBeingAdded = false; // The 4GL Petra screen didn't set the StatusCode to active when a new Subscription was added. // FMultiTableDS.PPartner.Row[0].StatusCode := 'ACTIVE'; } } }