CheckAbortedWaitDlg / EndWaitDlg / SetWaitDlgText / StartWaitDlg

Beschreibung:

Durchlaufen von mehreren Firmen-Datensätzen zur Berechnung der Summe der Umsatzziele. Für die Laufzeit der Berechnung wird ein Fortschrittsdialog aufgerufen (StartWaitDlg), dessen Inhalt für jeden Durchlauf aktualisiert wird (SetWaitDlgText), eine Abbruchbedingung (CheckAbortedWaitDlg) besitzt und am Ende wieder geschlossen wird (EndWaitDlg).

VBScript:

Dim oRecordSet : Set oRecordSet = cRM.CurrentProject.ViewConfigs.ItemByName("Firmen").CreateRecordSet

Dim oRecord

Dim bSkipped : bSkipped = False

Dim i, nTurnover, nSumOfTurnover

Dim nRecordSetRecCount : nRecordSetRecCount = oRecordSet.RecCount

 

If (nRecordSetRecCount > 0) Then

Call cRM.StartWaitDlg("Die Summe der Umsatzziele für alle Datensätze der Firmen-Ansicht wird berechnet, bitte haben Sie noch etwas Geduld.", True, 0)

 

    Call oRecordSet.MoveFirst()

 

    For i = 1 To nRecordSetRecCount

Call cRM.SetWaitDlgText("Die angeforderten Informationen werden berechnet, bitte haben Sie noch etwas Geduld." & vbCrLf & vbCrLf & "Fortschritt: Datensatz " & CStr(i) & " von insgesamt " & oRecordSet.RecCount & " Datensätzen wird derzeit verarbeitet.")

 

        Set oRecord = oRecordSet.CurrentRecord

        nTurnover = oRecord.GetContentsValueByName("TurnoverTarget")

 

        If (IsNull(nTurnover) = False) Then

            nSumOfTurnover = nSumOfTurnover + nTurnover

        End If

 

        Set oRecord = Nothing

 

        If (cRM.CheckAbortedWaitDlg = True) Then

            bSkipped = True

            Exit For

        ElseIf (cRM.CheckAbortedWaitDlg = False) Then

            Call oRecordSet.MoveNext()

        End If

    Next

 

    Call cRM.EndWaitDlg()

 

    If (bSkipped = True) Then

Call cRM.DialogMessageBox("Die Summe der Umsatzziele konnte nicht vollständig berechnet werden. Die Summe vor dem Abbruch der Aktion betrug " & CStr(nSumOfTurnover) & " EUR.", "Aktion abgebrochen", vbOkOnly)

    ElseIf (bSkipped = False) Then

        Call cRM.DialogMessageBox("Die Summe der Umsatzziele beträgt " & CStr(nSumOfTurnover) & " EUR.", "Ergebnis der Berechnung", vbOkOnly)

    End If

 

Else

Call cRM.DialogMessageBox("Es wurden keine Datensätze für die Berechnung der Summe der Umsatzziele in der Firmen-Ansicht gefunden.", "Keine Datensätze gefunden", vbOkOnly)

End If

 

Set oRecordSet = Nothing

C#-Script:

RecordSet recordSet = cRM.CurrentProject.ViewConfigs.ItemByName("Firmen").CreateRecordSet();

Record record;

bool skipped = false;

int sumOfTurnover = 0;

long recordSetRecCount = recordSet.RecCount;

 

if (recordSetRecCount > 0)

{

cRM.StartWaitDlg("Die Summe der Umsatzziele für alle Datensätze der Firmen-Ansicht wird berechnet, bitte haben Sie noch etwas Geduld.", true, 0);

 

    recordSet.MoveFirst();

}

 

for (int i = 1; i <= recordSetRecCount; i++)

{

cRM.SetWaitDlgText("Die angeforderten Informationen werden berechnet, bitte haben Sie noch etwas Geduld." + "\r\n" + "\r\n" + "Fortschritt: Datensatz " + i.ToString() + " von insgesamt " + recordSet.RecCount + " Datensätzen wird derzeit verarbeitet.");

 

    record = recordSet.CurrentRecord;

    int turnOver = (int)record.GetContentsValueByName("TurnoverTarget");

 

    if (turnOver != 0)

    {

        sumOfTurnover += turnOver;

    }

 

    record.Dispose();

 

    if (cRM.CheckAbortedWaitDlg() == true)

    {

        skipped = true;

        break;

    }

    else if (cRM.CheckAbortedWaitDlg() == false)

    {

        recordSet.MoveNext();

    }

}

 

cRM.EndWaitDlg();

 

if (skipped == true)

{

cRM.DialogMessageBox("Die Summe der Umsatzziele konnte nicht vollständig berechnet werden. Die Summe vor dem Abbruch der Aktion betrug " + sumOfTurnover.ToString() + " EUR.", "Aktion abgebrochen", 0);

}

else if (skipped == false)

{

cRM.DialogMessageBox("Die Summe der Umsatzziele beträgt " + sumOfTurnover.ToString() + " EUR.", "Ergebnis der Berechnung", 0);

}

Else

{

cRM.DialogMessageBox("Es wurden keine Datensätze für die Berechnung der Summe der Umsatzziele in der Firmen-Ansicht gefunden.", "Keine Datensätze gefunden", 0);

}

 

recordSet.Dispose();

TypeScript:

import { cRM, Record, RecordSet } from "./sdk/combitCRM.SDK.WindowsClient.v13";

 

const recordSet : RecordSet = cRM.CurrentProject.ViewConfigs.ItemByName("Firmen").CreateRecordSet();

let curentRecord : Record;

let isSkipped : boolean = false;

let turnover : any ;

let SumOfTurnover : number = 0;

const recordSetCount : number = recordSet.RecCount;

 

if (recordSetCount > 0) {

cRM.StartWaitDlg("Die Summe der Umsatzziele für alle Datensätze der Firmen-Ansicht wird berechnet, bitte haben Sie noch etwas Geduld.", true, 0);

 

    recordSet.MoveFirst();

    for (let i = 0; i < recordSetCount; i++) {

cRM.SetWaitDlgText("Die angeforderten Informationen werden berechnet, bitte haben Sie noch etwas Geduld."

+ `Fortschritt: Datensatz ${i + 1} von insgesamt ${recordSetCount} Datensätzen wird derzeit verarbeitet.`);

 

        curentRecord = recordSet.CurrentRecord;

        turnover = curentRecord.GetContentsValueByName("TurnoverTarget");

 

        if (!isNaN(turnover)) {

            SumOfTurnover += turnover;

        }

 

        curentRecord.Dispose();

 

        if (cRM.CheckAbortedWaitDlg()) {

            isSkipped = true;

            break;

        } else {

            recordSet.MoveNext();

        }

    }

   

    cRM.EndWaitDlg();

 

    if (isSkipped) {

cRM.DialogMessageBox(`Die Summe der Umsatzziele konnte nicht vollständig berechnet werden. Die Summe vor dem Abbruch der Aktion betrug ${SumOfTurnover} EUR.`, "Aktion abgebrochen", 0);

    } else {

cRM.DialogMessageBox(`Die Summe der Umsatzziele beträgt ${SumOfTurnover} EUR.`, "Ergebnis der Berechnung", 0);

    }

} else {

cRM.DialogMessageBox("Es wurden keine Datensätze für die Berechnung der Summe der Umsatzziele in der Firmen-Ansicht gefunden.", "Keine Datensätze gefunden", 0);

}

 

recordSet.Dispose();