Verwendung des Suchen-Dialogs

Allgemeine Beschreibung

Sollen in easyWinArt in einer Menüfunktion nur bestimmte Datensätze angezeigt werden, so kann man hierfür die Schnellsuche oder die erweiterte Suche verwenden, die in der Aktions-Toolbar aufgerufen werden können. Weiterhin wird einer dieser Suchen-Dialoge geöffnet, wenn man einen bestimmten Datensatz auswählen muss, sei es beim direkten Öffnen einer untergeordneten Menüfunktion oder z.B. beim Auswählen und Zuweisen der Adresse für ein Angebot. Natürlich kann dieser Dialog auch im Rahmen des SDK verwendet werden, um einen bestimmten Datensatz oder bestimmte Datensätze zu erhalten. Dabei kann mit oder ohne Auswahl-Dialog gearbeitet werden. Im zweiten Fall erscheint nach dem Suchen-Dialog der Auswahl-Dialog, in dem dann der gewünschte Datensatz ausgewählt werden muss. Als Ergebnis erhält man dann seine GUID usw. Alternativ kann auch ohne Auswahl-Dialog gearbeitet werden, dann erhält man den SQL-Befehl des Suchen-Fensters und kann diesen selbst weiterverwenden, um z.B. ein eigenes Auswahl-Fenster anzuzeigen, in dem beispielsweise ein DataGridView die gefundenen Datensätze anzeigt und gewisse Spalten änderbar sind, mehr als nur eine Zeile ausgewählt werden kann usw. Im Folgenden werden beide Möglichkeiten mit je einem Beispiel erläutert.

Suchen-Dialog ohne Auswahl-Fenster

Der Suchen-Dialog ohne Auswahl-Fenster wird über die Funktion 'SuchenBasisDialog.CreateAndShow' aufgerufen. Über ihre Parameter wird festgelegt, welche Datensätze durchsucht werden. Im folgenden Beispiel sollen die Adressen durchsucht werden, die Suche wird aus den Vorgangs-Belegen heraus geöffnet. Entsprechend wird beim zweiten Parameter das Kürzel der Menüfunktion 'Adressen' und als dritter Parameter die gerade geöffnete Vorgänge-Form übergeben. Im Parameter des vierten Parameters ist eine Prozedur zu übergeben, welche dann den SQL-Befehl des Suchen-Dialogs weiterverarbeitet, z.B. indem eine DataGridView mit dem Ergebnis angezeigt wird. Diese Prozedur, im Beispiel 'BehandlungAuswahlDialog' genannt, muss zwei Parameter haben. Im ersten erhält Sie den SQL-Befehl des Suchen-Dialogs, im zweiten den Namen der Primär-Tabelle der Form, aus der die Suche geöffnet wird, in diesem Fall also 'Vorgänge'. Der im Beispiel letzte Parameter 'SqlWhereNichtAusMenuefunktion' (hier auf 'True' gesetzt) ist wichtig, damit die Suche nicht schon durch den SQL-Befehl ('MenueFunktionenWerteSTR.SqlWhere') der Menüfunktion, aus der der Suchen-Dialog aufgerufen wird, beeinflusst wird. Wenn z.B. die Menüfunktion 'Offene Angebote' geöffnet wird, würde Suche bei 'False' ggf. auf offene Angebote beschränkt werden.

VB.NET SDK-Programmcode

  

#Region " TriggerFormFramework_NachLoad-Ereignis " 

        Private Sub TriggerFormFramework_NachLoad(ByVal sender As Object, ByVal e As FormFrameworkEventArgs) Handles Me.NachLoad 

                '>>> Bei Menüfunktion  A D R E S S E 

                If TypeOf sender Is AdressenFRM Then 

                    Dim adFRM As AdressenFRM 

                    adFRM = CType(sender, AdressenFRM

                    '>>> Suchen-Fenster öffnen 

                    Dim dr As DialogResult 

                    dr = SuchenBasisDialog.CreateAndShow(SuchFormStyle.ErweiterteSuche, _ 

                                                         "VOR", _ 

                                                         adFRM, _ 

                                                         New SuchenForm.BehandlungSuchenDelegate(AddressOf GesuchteBelegeVerarbeiten), _ 

                                                         "Überschrift xyz", , , True

                End If 

        End Sub 

#End Region 

 

#Region " Private Sub: GesuchteBelegeVerarbeiten (aber nur bestimmte Angebote) " 

        Private Sub GesuchteBelegeVerarbeiten(SqlBefehl As String, Tabelle As String

                '>>> Einschränken des SQL-Befehls 

                SqlBefehl = Fkt.ErweiternWhereKlausel(SqlBefehl, TBL.Vorgang.TBL, TBL.Vorgang.HistorieBIT, "0"

                SqlBefehl = Fkt.ErweiternWhereKlausel(SqlBefehl, TBL.Vorgang.TBL, TBL.Vorgang.BelegTypGUID, BT.VkAngebot) 

                SqlBefehl = Fkt.ErweiternWhereKlausel(SqlBefehl, TBL.Vorgang.TBL & "." & TBL.Vorgang.BelegDatumDT & " > '" & Now().AddMonths(-15) & "'"

                '>>> Tabelle mit den Angeboten 

                Dim tmpDBZ As SQLServerZugriff = Datenbank.DatenDB 

                Dim angebotsTBL As DataTable = tmpDBZ.BildeDataTableSQL(SqlBefehl, Tabelle) 

        End Sub 

#End Region

Suchen-Dialog mit Auswahl-Fenster

Der Suchen-Dialog mit Auswahl-Fenster kann über die Funktion 'Run' der Klasse 'FcAuswahlDialogMenuefunktion' aufgerufen werden. Die Klasse muss instanziert werden mit gewissen Parametern, welche die Suche klassifizieren. Im unteren Beispiel befindet sich ein eigener Button auf einer beliebigen Menüfunktion und es wird auf Knopfdruck hin nach einer Adresse gesucht unter Verwendung der erweiterte Suche. Durch den Parameter 'WhereAddOnÜbergabe' wird per SQL eingestellt, dass nur Kunden durchsucht werden können. Als Ergebnis erhält man unter anderem die Guid des aus den Suchergebnissen im Auswahl-Fenster ausgewählten Datensatzes vom Klassen-Objekt.

VB.NET SDK-Programmcode

  

#Region " ButtonAuswahl_Click-Ereignis " 

    Private Sub ButtonAuswahl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonAuswahl.Click 

            Dim vorFRM As VorgangFRM 

            vorFRM = CType(CType(sender, EwaButton).FindForm, VorgangFRM

            Dim ausgewählteAdresse As Guid 

            Dim auswahl As New FcAuswahlDialogMenuefunktion("Meine Auswahl", "AD", vorFRM, SuchFormStyle.ErweiterteSuche, True, TBL.Adressen.TBL & "." & TBL.Adressen.KundeBIT & " = 1"

            auswahl.Run() 

            ausgewählteAdresse = C.ToGuidX(auswahl.IdentObjekt) 

    End Sub 

#End Region

Beratung erwünscht?

Gerne können Sie mich oder einen mein­er freund­lichen Kollegen telefonisch er­reichen:  +49 2161 277 680

Alter­na­tiv schrei­ben Sie uns an  info@it-easy.de oder nutz­en Sie das nach­folgende Kontakt­formular.

Ihr Ralf Jasper
Kundenservice

Mitarbeiterfoto von Herrn Ralf Jasper


Rückruf-Service

Für eine möglichst unkomplizierte Kontaktaufnahme füllen Sie bitte das unten stehende Formular aus und klicken auf „Rückruf anfordern“.