Beispiel für ViewConfig-Objekt

Beschreibung:

Führt eine Dublettenprüfung für die vom Benutzer eingegebenen Werte aus.

VBScript:

Dim sFieldsDupeCheck : sFieldsDupeCheck = cRM.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.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

C#-Script:

string fieldsDupeCheckCriteria = cRM.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.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();

        }

    }

}

TypeScript:

import {

    cRM,

    RecordSet

} from "./sdk/combitCRM.SDK.WindowsClient.v13";

 

const fieldsDupeCheck =

    cRM.ActiveView.Config.DupeCheckCriteria;

 

const fieldNames = fieldsDupeCheck.split("\t");

 

const fieldValues: string[] = [];

 

for (const field of fieldNames) {

    const userInput = cRM.DialogInputBox(

`Welcher Inhalt soll für das Feld "${field}" für den Dublettencheck verwendet werden?`,

        "RecordSet.FindRecordByDupeCheckCriteria"

    );

 

    if (userInput === "$CANCEL$") {

        break;

    }

 

    fieldValues.push(userInput);

 

    if (fieldValues.length === 8) {

        break;

    }

}

 

while (fieldValues.length < 8) {

    fieldValues.push("");

}

 

const recordSet : RecordSet = cRM.ActiveView.CurrentRecordSetCopy();

 

recordSet.FindRecordByDupeCheckCriteria(

    "",

    fieldValues[0],

    fieldValues[1],

    fieldValues[2],

    fieldValues[3],

    fieldValues[4],

    fieldValues[5],

    fieldValues[6],

    fieldValues[7],

    false

);

 

if (recordSet && recordSet.RecCount > 0) {

    cRM.DialogMessageBox(

        "Es wurde mindestens eine Dublette gefunden.",

        "RecordSet.FindRecordByDupeCheckCriteria",

        0

    );

}

 

recordSet.Dispose();