Beschreibung:
Es wird eine Auswahlliste für einen Datensatz aus dem übergebenen (nicht-visuellen!) RecordSet angezeigt und als Record Objekt zurückgegeben. Die Auswahlliste wird als Drop-Down-Auswahlliste analog zur 1:1-relationalen Datensatzauswahl dargestellt. Es wird ein fully-dynamic RecordSet als Basis benötigt, weitere Informationen finden Sie unter Änderungen und Neuerungen.
Wichtig: Nach dem Aufruf von DialogSelectRecordDropDown für einen per ViewConfig.CreateRecordSet erzeugten RecordSet darf für den betreffenden RecordSet keine Move-Methode aufgerufen werden, da sonst der zurückgegebene Record u.U. seine Werte verändert!
Parameter:
|
Parametername |
Typ |
Beschreibung |
|
RecordSet |
RecordSet |
Das RecordSet, auf dem die Auswahlliste basieren soll. |
|
ParentControlHandle |
Long |
Optional. Handle eines Fensters. Die dargestellte Auswahlliste wird an diesem Fenster ausgerichtet, andernfalls an das Fenster unterhalb der aktuellen Mauszeigerposition |
|
ProfileName |
String |
Optional. Unter diesem Profilnamen werden die Einstellungen für den nächsten Aufruf gespeichert. Wird hier ein Feldname angegeben, von welchem aus eine 1:1-Relation wegführt, so teilen sich beide Auswahllisten automatisch ein identisches Erscheinungsbild. |
|
AllowUserDefinedSortOrder |
Bool |
Optional. Bestimmt, ob eine vom Benutzer in diesem Dialog zuletzt eingestellte Sortierung verwendet werden soll (True) oder die Sortierung des RecordSets verwendet wird (False). Wird kein Wert übergeben wird die erste Sortierung aktiviert, die in der zum RecordSet gehörenden Ansicht definiert wurde. |
Rückgabewert:
Record
Beispiel VBScript:
' Bietet dem Nutzer eine Datensatzauswahl an und überträgt Informationen aus dem ausgewählten Datensatz in die aktuell dargestellte Eingabemaske. Basis für dieses Beispiel ist die Kontakte-Ansicht einer combit_Large-Solution
<!--#pragma keepeditmode-->
Dim oProject, oRecordSet, oCurrentInputForm, oRecordSelected
Set oProject = cRM.CurrentProject
Set oCurrentInputForm = oProject.ActiveViews.ActiveView.CurrentInputForm(0)
Set oRecordSet = oProject.ViewConfigs.ItemByName("Firmen").CreateRecordSet("SetSortOrder:1 SetFilter:upper(""ZIP"") >= upper('70000') AND upper(""ZIP"") <= upper('80000')")
If Not (oRecordSet is Nothing) and oRecordSet.MoveFirst() Then
' Auswahl des Datensatzes durch den Benutzer:
Set oRecordSelected = oCurrentInputForm.DialogSelectRecordDropDown(oRecordSet, oCurrentInputForm.GetHwndByName("UserDefined1"), "CompanyID")
If Not (oRecordSelected Is Nothing) Then
oCurrentInputForm.SetContentsValueByName "UserDefined1", oRecordSelected.GetContentsValueByName("Company")
Else
' Abbruch
End If
Else
Msgbox "Filter fehlgeschlagen"
End If
' Objekte freigeben:
Set oRecordSelected = Nothing
set oCurrentInputForm = Nothing
Set oRecordSet = Nothing
Set oProject = Nothing
Beispiel C#-Script:
// Bietet dem Nutzer eine Datensatzauswahl an und überträgt Informationen aus dem ausgewählten Datensatz in die aktuell dargestellte Eingabemaske. Basis für dieses Beispiel ist die Kontakte-Ansicht einer combit_Large-Solution
// <!--#pragma keepeditmode-->
Project project = cRM.CurrentProject;
RecordSet recordSet = project.ViewConfigs.ItemByName("Firmen").CreateRecordSet(@"SetSortOrder:1 SetFilter:upper(""ZIP"") >= upper('70000') AND upper(""ZIP"") <= upper('80000')");
InputForm currentInputForm = project.ActiveViews.ActiveView.CurrentInputForm(0);
Record recordSelected = null;
if (recordSet != null && recordSet.MoveFirst())
{
// Auswahl des Datensatzes durch den Benutzer
recordSelected = currentInputForm.DialogSelectRecordDropDown(recordSet, currentInputForm.GetHwndByName("UserDefined1"), "CompanyID");
if (recordSelected != null)
{
currentInputForm.SetContentsValueByName("UserDefined1", recordSelected.GetContentsValueByName("Company").ToString());
}
else
{
// Abbruch
}
}
else
{
cRM.DialogMessageBox("Filter fehlgeschlagen!", "InputForm.DialogSelectRecordDropDown", 0);
}
recordSelected.Dispose();
currentInputForm.Dispose();
recordSet.Dispose();
project.Dispose();