SOG-Helpcenter Logo SOG Business - Software

Erweiterte Funktionen des SqlListControl


Neben den normalen Funktionen des Controls, stehen durch Aktivierung der erweiterten Funktionen folgende Möglichkeit zur Verfügung:

 

Erweiterte Funktion in der Toolbar des Controls

 

Ruft den Konfigurationsdialog des Controls auf

Aktualisiert die angezeigte Liste

 

Konfigurationsdialog

 

Die Eigenschaften des Konfigurationsdialogs haben folgende Bedeutung:

 

Verbindung

Wählen Sie eine Datenbankverbindung für den Zugriff auf die Datenbank. Die Datenbankverbindung legt ggf. fest, mit welchen Rechten der Zugriff auf die Datenbank erfolgt.

Abfragedatei

Wählen Sie eine Datei in der die gewünschte Datenabfrage formuliert wurde. Verwenden Sie je nach gewählter "Verbindung" eine Abfragedatei in der dazu passenden Abfragesprache.

Ausgabe

Hier kann gewählt werden, ob die Ausgabe der Daten in Form einer Liste oder eines Charts erfolgt.

Model Datei

Wählen Sie hier eine Modeldatei um die Verbindung zu einer externen Anwendung zur Analyse der dargestellten Daten herzustellen.

 

Verwendung des SqlListControls mit einem Datenbankcube


Besteht ein Microsoft SQL Analysis Cube, kann über die Datenabfragesprache "MDX" eine direkte Abfrage von Daten aus dem Cube erfolgen. Weitere Hinweise dazu finden Sie in der Dokumentation zu SOGSQL.

Hinterlegung eines Models


Über eine Model-Konfiguration kann dafür gesorgt werden, dass durch einen Doppelklick auf die Daten nicht SOGSQL, sondern eine Model-Datei gestartet wird, die eine komfortablere Anlyse von Daten erlauben soll.
Dies kann im Fall einer MDX-Query z.B. eine zuvor erstellte Excel-Datei sein, die mit dem gewünschten Datenbank-Cube verknüpft wurde.
Excel erlaubt in diesem Fall eine komfortable und interaktive Analyse der dargestellten Daten, incl. des Hinzufügens, Entfernens, sowie Auf- und Zuklappens von Hierarchie-Ebenen, sowie den DrillDown von Daten zur Visualisierung von Einzeldatensätzen.

Damit mit einem solchen Model gearbeitet werden kann, muss eine Modelkonfigurationsdatei erstellt werden.
Diese muss die Dateiendung ".modelxml" aufweisen, und folgenden Aufbau haben:

<Config>
  <Model ModelFile="sogdb3 VacosCubeHDL Buchungen.xlsm"
         ModelParameter="sakto"
         ModelParameterDataClass="Kundenstamm"
         ModelParameterFieldName="SaKonto" />
</Config>

Die Parameter haben folgende Bedeutung:

 

ModelFile

Name der (z.B. Excel-) Modelldatei, die geöffnet werden soll. Wird kein absoluter Dateiname angegeben, wird die Modeldatei im gleichen Verzeichnis gesucht, in dem sich die Modelkonfigurationsdatei befindet.

ModelParameter

Name des Parameters, mit dem der Modeldatei mitgeteilt werden kann, auf welche Daten die Ansicht eingeschränkt werden soll (z.B. aktuelle Kundennummer)

ModelParameterDataClass

SOG ERP Datenklasse, die zur Einschränkung der angezeigten Daten im Model herangezogen wird.

ModelParameterFieldName

Feldname in der SOG ERP Datenklasse das für das Setzen des Parameters verwendet werden soll.

Vor dem Öffnen der Modeldatei versucht ActiveSkin aus dem aktuellen Kontext heraus den festgelegten Parameter zu setzen. Der Parameter wird dabei als Umgebungsvariable (in diesem Beispiel "sakto") gesetzt. In der Modeldatei muss über irgendeinen Mechanismus dafür gesorgt werden, dass auf Basis dieser Übergabe der Parameter verwendet wird, um die Daten entsprechend einzuschränken.

Beispiel für ein Startmakro von Microsoft Excel


Das nachfolgende, einfache Excel-Makro kann als Beispiel für die Entwicklung eigener Makros dienen, die beim Öffnen einer Excel-Datei dafür sorgen, dass die Daten in der verbundenen Pivot-Tabelle auf den aktuell angezeigten Kunden eingeschränkt werden.

Sub Auto_Open()
  Dim sakto As String

  sakto = Environ("sakto")
  If Len(sakto) > 0 Then
    With ActiveSheet.PivotTables("PivotTable1").CubeFields("[Kunde].[Kunde]")
        .Orientation = xlPageField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kunde].[Kunde].[Kunde]"). _
        ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kunde].[Kunde].[Kunde]"). _
        CurrentPageName = "[Kunde].[Kunde].&[" + sakto + "]"
  End If
End Sub

Verwendung des SqlListControls in einem Center


Soll der SqlListControl in einem "ObjectContainer" (z.B. KundenCenter) verwendet werden, so muss als Containerelement aus der Gruppe "Daten" das Element "Freie Abfrage" ausgewählt werden.
Die weitere Konfiguration erfolgt wie oben beschrieben (Kontextmenü, Abfrage - Konfigurieren).

Wird SqlListControl in einem ObjectContainer eingebettet verwendet, kann bei Aufruf einer Modeldatei über einen Parameter der aktuelle Kunde an die geöffnete Datei übergeben werden.

 

 

 

- Dann "Rechtsklick" Abfrage - Abfrage Konfigurieren

- Hinterlegen des SQLs z. B. für den Artikelstamm:

 

--- PROVED ---

-- para "#art#" Artikelstamm m_art

select * from f036 where art = #art#

 

 

Hinterlegung eines Models zur Nutzung des PivotControls


Hinterlegen Sie eine Modeldatei mit folgendem Inhalt, um bei einem Doppelklick auf die Daten auf den Dialogschritt des ActiveSkin internen PivotControls zu gelangen:

<Config>
  <Model Redirect="OlapCube"
         Parameter="filepath=${Env.Proj}\cube\soghh.hdl\VacosCube_Buchungen.sogcubexml;view=x1;basobj=#FACTORYSTRING#;AdditionalParameters=Kundenstamm.konto=Kunde" />
</Config>

Mit "Redirect" legen sie einen ActiveSkin Dialogschritt fest, der aufgerufen werden soll. Verwenden Sie hier den internen Namen des Dialogschrittes.
Mit Parameter können weitere Parameter definiert werden, die dem Dialogschitt zu übergeben sind.
Legen Sie die einzelnen Parameter durch Semikolon getrennt ab.
Verwenden Sie die Schreibweise "Parametername=Parameterwert".
Für den Dialogschritt "OlapCube" werden folgende Parameter unterstützt:

 

filepath

Pfadname der zu öffneneden sogcibxml Datei. Diese muss bei Implementierung eines Cubes bereitgestellt worden sein.

view

Name einer Ansicht in diesem Cube.

baseobj

Factorystring zur Erstellung des Basisobjektes des Cubes. Verwenden Sie #FACTORYSTRING# um den Factorystring des aktuellen Basisobjektes zu verwenden, z.B. wenn die Modeldatei innerhalb eines Centers verwendet wird.

AdditionalParameters

Weitere Parameter, die vom Cube zu setzen sind. Hier können Dateneinschränkungen definiert werden, die im Cube zu setzen sind. Links vom "=" Zeichen Datenobjektklasse und Feldname, Rechts Anzeige Name einer Cube-Hirarchie.

Verwendung von SQL-Anweisungen mit Parametern


Bei der Verwendung von SQL Anweisungen sind einfache Parameterersetzungen mögliche, wenn der Control z.B. in einem Center ausgeführt wird.
Beispiel:

    -- para "#konto#" Kundenstamm m_konto
    select match from f010 where konto = #konto#;

Die -- para Zeile legt einen Platzhalter, ein Objekttyp und ein Datenfeld fest.
Zur Laufzeit wird bei Auftreten des Objekttypen der Platzhalter durch den aktuellen Inhalt des Datenfeldes ersetzt.

 

Soll mehr als ein Objekt eines Typs als steuernde Eingabe verwendet werden können, ist zusätzlich hinter dem Feldnamen die Formatangabe "list" erforderlich.

In dem Fall erfolgt die Übergabe der Datenwerte an den SQL in SQL-gerechtem Format als kommagetrennte Werteliste.

Dies erfolgt z. B. im PropertyGrid der Kundensuche, wenn mehr als ein Kunden gleichzeitig markiert ist.

 

Der entsprechende SQL kann folgendermaßen aussehen:

 

    -- para "#kontoliste#" Kundenstamm m_konto list

    select key_1, firma, sa, konto from f010 where konto in (#kontoliste#);