DialogSelectRecordDropDown

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ück­gegebene 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();