Beschreibung:
Ermöglicht die Auswahl mehrerer Datensätze basierend auf dem aktuellen Filter des RecordSet Objektes. Das Ergebnis ist ein neues unabhängiges Objekt vom Typ RecordSet, welches die gefiltertern Datensätze enthält.
Wenn ohne Setzen eines Häkchens einer Checkbox für die Datensatzauswahl der Dialog mit OK bestätigt wird, wird der blau hinterlegte und selektierte Datensatz an das RecordSet übergeben. Dies kann ebenso mit einem Doppelklick auf den gewünschten Datensatz erreicht werden, sofern noch keine anderen Datensätze angehakt wurden. Wenn kein Datensatz ausgewählt werden soll, muss die Abbrechen-Schaltfläche betätigt werden – es wird dann NULL zurückgegeben. Das Objekt ist somit ungültig! Es wird ein fully-dynamic RecordSet als Basis benötigt, weitere Informationen finden Sie unter Änderungen und Neuerungen.
Wichtig: Hierfür wird ein Feld vom internen Feldtyp 'Datensatz-ID' benötigt, welches mit entsprechenden global eindeutigen IDs gefüllt ist. Falls es sich nicht um ein Feld vom externen SQL Feldtyp 'uniqueidentifier', sondern 'nvarchar' handelt, muss dieses mindestens 32 Zeichen lang sein und die GUID in der cRM-internen Darstellung enthalten, z. B. "ce05a0f11dbf464f8a7f14666ddd0f3a".
Hinweis: DialogSelectRecordMultiple speichert die Spalten/Layoutkonfiguration und die vom Anwender zuletzt eingestellte Sortierung der Datensatzübersichtsliste ab (Voreinstellung: in der Registry). Der Name der Sektion der Konfiguration lautet "DialogSelect_"+<Ansichtenname>. Dieser kann jedoch individuell anderweitig vorgegeben werden, indem man beim Funktionsaufruf einen eigenen Namen im Parameter für den Fenstertitel durch TAB (chr$(9)) getrennt mit übergibt.
Sobald DialogSelectRecordMultiple für ein per ViewConfig erzeugtes RecordSet (ViewConfig.CreateRecordSet) verwendet wird, kann die Performance optimiert werden, wenn vor dem Methodenaufruf die Sortierung des RecordSet gesetzt wird (ViewConfig.CreateRecordSet("SetSortOrder:n")).
Parameter:
|
Parametername |
Typ |
Beschreibung |
|
WindowTitle |
String |
Fenstertitel des erzeugten Dialoges. Der Titel kann auch leer übergeben werden, dann wird eine Grundeinstellung genommen. |
|
AllowUserDefinedSortOrder |
Bool |
True: Eine etwaige vom Benutzer in diesem Dialog zuletzt eingestellte Sortierung wird verwendet. Standardmäßig wird die erste Sortierung aktiviert, die in der zum RecordSet gehörenden Ansicht definiert wurde. False: Es wird die im RecordSet eingestellte Sortierung verwendet. Ist keine eingestellt, so wird die erste Sortierung aktiviert, die in der zum RecordSet gehörenden Ansicht definiert wurde. |
|
nParentHandle |
Long |
Optional. Handle eines Fensters, das als Parent-Fenster für den Dialog verwendet werden soll. Voreinstellung: das combit CRM Hauptfenster, sofern es nicht unsichtbar ist, ansonsten das in dem Augenblick gerade aktive Vordergrundfenster |
Typ:
RecordSet
Beispiel VBScript:
' Dieses Beispiel basiert auf der Kontakte-Ansicht einer combit_Large-Solution
Dim oSelectedRecordSet : Set oSelectedRecordSet = cRM.CurrentProject.ViewConfigs.ItemByName("Kontakte").CreateRecordSet.DialogSelectRecordMultiple("Datensatzauswahl", True)
If (Not oRecordSet Is Nothing) Then
Call cRM.DialogMessageBox("Es wurden " & CStr(oSelectedRecordSet.RecCount) & " Datensätze ausgewählt.", "RecordSet.DialogSelectRecordMultiple", vbOkOnly)
Set oSelectedRecordSet = Nothing
End If
Beispiel C#-Script:
// Dieses Beispiel basiert auf der Kontakte-Ansicht einer combit_Large-Solution
RecordSet selectedRecords = cRM.CurrentProject.ViewConfigs.ItemByName("Kontakte").CreateRecordSet().DialogSelectRecordMultiple("Datensatzauswahl", true);
if (selectedRecords != null)
{
cRM.DialogMessageBox("Es wurden " + selectedRecords.RecCount.ToString() + " Datensätze ausgewählt.", "RecordSet.DialogSelectRecordMultiple", 0);
selectedRecords.Dispose();
}