Beschreibung:
Liefert die Felder, welche für die Dublettenprüfung verwenden werden, als TAB-separierte Liste zurück.
Typ:
String
Beispiel VBScript:
Dim sFieldsDupeCheck : sFieldsDupeCheck = cRM.CurrentProject.ActiveViews.ActiveView.Config.DupeCheckCriteria
Dim dicFieldsDupeCheck : Set dicFieldsDupeCheck = CreateObject("Scripting.Dictionary")
Dim aFieldsDupeCheck : aFieldsDupeCheck = Split(sFieldsDupeCheck, vbTab)
Dim sField, sUserInput
For Each sField in aFieldsDupeCheck
sUserInput = cRM.DialogInputBox("Welcher Inhalt soll für das Feld """ & sField & """ für den Dublettencheck verwendet werden?", "RecordSet.FindRecordByDupeCheckCriteria")
If (sUserInput <> "$CANCEL$") Then
Call dicFieldsDupeCheck.Add(sField, sUserInput)
Else
Exit For
End If
Next
Dim sUserInputInDictionary
Dim sFieldContent1 : sFieldContent1 = ""
Dim sFieldContent2 : sFieldContent2 = ""
Dim sFieldContent3 : sFieldContent3 = ""
Dim sFieldContent4 : sFieldContent4 = ""
Dim sFieldContent5 : sFieldContent5 = ""
Dim sFieldContent6 : sFieldContent6 = ""
Dim sFieldContent7 : sFieldContent7 = ""
Dim sFieldContent8 : sFieldContent8 = ""
Dim nCounter : nCounter = 0
If (dicFieldsDupeCheck.Count > 0) Then
For Each sUserInputInDictionary in dicFieldsDupeCheck.Keys
nCounter = nCounter + 1
Select Case nCounter
Case 1
sFieldContent1 = dicFieldsDupeCheck.Item(sUserInputInDictionary)
Case 2
sFieldContent2 = dicFieldsDupeCheck.Item(sUserInputInDictionary)
Case 3
sFieldContent3 = dicFieldsDupeCheck.Item(sUserInputInDictionary)
Case 4
sFieldContent4 = dicFieldsDupeCheck.Item(sUserInputInDictionary)
Case 5
sFieldContent5 = dicFieldsDupeCheck.Item(sUserInputInDictionary)
Case 6
sFieldContent6 = dicFieldsDupeCheck.Item(sUserInputInDictionary)
Case 7
sFieldContent7 = dicFieldsDupeCheck.Item(sUserInputInDictionary)
Case 8
sFieldContent8 = dicFieldsDupeCheck.Item(sUserInputInDictionary)
End Select
Next
End If
Set dicFieldsDupeCheck = Nothing
Dim oRecordSet : Set oRecordSet = cRM.CurrentProject.ActiveViews.ActiveView.CurrentRecordSetCopy
Call oRecordSet.FindRecordByDupeCheckCriteria("", sFieldContent1, sFieldContent2, sFieldContent3, sFieldContent4, sFieldContent5, sFieldContent6, sFieldContent7, sFieldContent8, False)
If (Not oRecordSet Is Nothing) Then
If (oRecordSet.RecCount > 0) Then
Call cRM.DialogMessageBox("Es wurde mindestens eine Dublette gefunden.", "RecordSet.FindRecordByDupeCheckCriteria", vbOkOnly)
End If
End If
Set oRecordSet = Nothing
Beispiel C#-Script:
string fieldsDupeCheckCriteria = cRM.CurrentProject.ActiveViews.ActiveView.Config.DupeCheckCriteria;
System.Collections.Generic.Dictionary<string, string> dicFieldsDupeCheck = new System.Collections.Generic.Dictionary<string, string>();
string[] fieldsDupeCheck = fieldsDupeCheckCriteria.Split('\t');
string userInput = null;
foreach (string field in fieldsDupeCheck)
{
userInput = cRM.DialogInputBox(@"Welcher Inhalt soll für das Feld """ + field + @""" für den Dublettencheck verwendet werden?", "RecordSet.FindRecordByDupeCheckCriteria");
if (userInput != "$CANCEL$")
{
dicFieldsDupeCheck.Add(field, userInput);
}
else
{
break;
}
}
int counter = 0;
string fieldContent1 = null;
string fieldContent2 = null;
string fieldContent3 = null;
string fieldContent4 = null;
string fieldContent5 = null;
string fieldContent6 = null;
string fieldContent7 = null;
string fieldContent8 = null;
RecordSet recordSet = null;
if (dicFieldsDupeCheck.Count > 0)
{
foreach (var item in dicFieldsDupeCheck)
{
counter++;
switch (counter)
{
case 1:
fieldContent1 = item.Value;
break;
case 2:
fieldContent2 = item.Value;
break;
case 3:
fieldContent3 = item.Value;
break;
case 4:
fieldContent4 = item.Value;
break;
case 5:
fieldContent5 = item.Value;
break;
case 6:
fieldContent6 = item.Value;
break;
case 7:
fieldContent7 = item.Value;
break;
case 8:
fieldContent8 = item.Value;
break;
default:
break;
}
}
recordSet = cRM.CurrentProject.ActiveViews.ActiveView.CurrentRecordSetCopy();
recordSet.FindRecordByDupeCheckCriteria("", fieldContent1, fieldContent2, fieldContent3, fieldContent4, fieldContent5, fieldContent6, fieldContent7, fieldContent8, false);
if (recordSet != null)
{
if (recordSet.RecCount > 0)
{
cRM.DialogMessageBox("Es wurde mindestens eine Dublette gefunden.", "RecordSet.FindRecordByDupeCheckCriteria", 0);
recordSet.Dispose();
}
}
}