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.
Wird der Titel leer übergeben, wird ein Standardtext angezeigt. Eine oder mehrere weitere Textzeilen unterhalb des Fenstertitels sowie deren Aussehen können bestimmt werden durch das Anhängen einer Umbruchskonstante ("vbLf" in VBScript bzw. "\n" in C#-Script) an den Fenstertitel. Hängen Sie weiteren Text an die Umbruchskonstante an, um diesen als Detailtext in kleinerer Schriftgröße anzuzeigen. Hängen Sie diesem Text eine weitere Umbruchskonstante an, um diesen (sprich: die erste Zeile) als Überschrift und ggf. weitere Zeilen als Detailtext in kleinerer Schriftgröße anzuzeigen. Um die erste Zeile nicht als Überschrift, sondern ebenfalls als Detailtext in kleinerer Schriftgröße anzuzeigen, verwenden Sie stattdessen die alternative Umbruchskonstante ("vbCr" in VBScript bzw. "\r" in C#-Script). |
|
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();
}
Hinweis: In TypeScript steht eine Überladung dieser Methode mit den zusätzlichen Parametern "sPromptHeadline" und "sPromptDetails" jeweils des Typs "String" zur Verfügung. Statt
recordSet.DialogSelectRecordMultiple("sTitle \n sPromptHeadline \n sPromptDetails", true);
kann also alternativ
recordSet.DialogSelectRecordMultiple("sTitle", "sPromptHeadline", "sPromptDetails", true);
verwendet werden. Vergleichen Sie hierzu die Beschreibung des Parameters 'WindowTitle'.