DupeCheckCriteria, read-only

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();

        }

    }

}