PMS32 Online- Hilfereferenz
Cubes
Abteilung für die Filterung der Auswahl
Hier kann die Abteilung als Filterkriterium, siehe Maske C6501 - Benutzer, hinterlegt werden.
PMS32 Benutzer der gleichen Abteilung können sich dann den Cube ansehen.
Die einzigen Personen, die den Cube immer bearbeiten bzw. ansehen können, müssen Supervisor Status haben!
Soll dieser Cube ausgewertet werden?
Sie können den Cube nur dann aktiv schalten, wenn ein Zielverzeichnis und ein SQL eingetragen ist!
ADODB Provider für die SQL Abfrage
Der ADODB Provider ist normaler Weise der ADODB Provider für VFP Tabellen. Sollten Sie einen Cube aus einer anderen Datenbank erstellen, so ist der ADODB Provider der Datenbank hier auszuwählen.
Der Inhalt wird als VFP-Script interpretiert! Siehe Code.
*/ Dieser Eintrag wird als VFP-Script interpretiert und kann daher in eine Berechnung umgewandelt werden! */ Im Standard wird folgendes eingetragen: RETURN [Provider=VFPOLEDB.1;Data Source=%CDBFDIR%;Password="";Collating Sequence=MACHINE] */ Die Rückgabe ist IMMER String! */ Der Connection-String für den ADODB Provider sollte obige Informationen enthalten! */ Der Platzhalter %CDBFDIR% wird vor der Verarbeitung durch: My.Clients.Path2.cDbfDir ersetzt! */ Wird auf einen SQL Server zugegriffen, so muss Datenbank und Server korrekt benannt werden!
Verzeichnis und Name der Microcube Datei
Bei der Neuanlage einer Cube-Definition wird hier das Zielverzeichnis des Cubes vorgegeben. Standard = Mandantenverzeichnis. Sie können ein anderes Zielverzeichnis auswählen. Wurde der Cube erstellt, so ist auch der Dateiname des Microcubes angegeben.
Der Eintrag wird als VFP-Script interpretiert! Siehe Code.
*/ Hier wird der VFP - Code hinterlegt, der den Pfad und Namen der Microcube Datei angibt */ Im Standard ist folgendes definiert: RETURN My.Clients.Path2.cCubDir+"mc_"+My.Bussines.Cubes.cIdsc0+"_"+My.cIdx02+".cub" */ Neu ab dieser Version ist die konkrete Angabe des Ausgabeverzeichnisses der Microcube Dateien! */ Diese Definition kann im Mandantenbereich der PMS32.PTH angegeben werden. */ Ist kein konkretes Verzeichnis definiert, so wird das Mandantenverzeichnis genommen! */ Unter der Annahme, dass My.Clients.Path2.cCubDir => "\\server\pms32\daten\cubes\" und */ My.Bussines.Cubes.cIdsc0 => "00000011" und */ My.cIdx02 => "DEMO_DEMO" ist, ergibt sich folgender Dateiname: */ "\\server\pms32\daten\cubes\" + "mc_" + "00000011" + "_" + "DEMO_DEMO" + ".cub" */ ergibt = "\\server\pms32\daten\cubes\mc_00000011_DEMO_DEMO.cub"
Metadaten des Cubes
Dieses Feld wird gefüllt, wenn der Microcube erstellt wird. Werden Änderungen am SQL vorgenommen, so wird dieses Feld geleert und der Cube wird komplett neu erstellt.
VFP Script, das nach der Erstellung des Cubes ausgeführt wird.
VFP Script, das nach der Erstellung des Cubes ausgeführt wird.
Bei der Erstellung der Cubes sind bekannt:
poPath => My.Clients.Path2 (Zweiter Pfadserver)
poSc0 => Ein Datensatzobjekt der Tabelle SC0
poSc1a => Eine Collection mit Datensätzen der Tabelle SC1 zum Cube aus SC0, SC0.IDSC0 = SC1.IDSC0
poSc2a => Eine Collection mit Datensätzen der Tabelle SC2 zum Cube aus SC0, SC0.IDSC0 = SC2.IDSC0
poCube => Das cCubeX4 Objekt
pcCubeFile => Pfad und Name der Microcubedatei
VFP Script, das vor der Erstellung des Cubes ausgeführt wird.
VFP Script, das vor der Erstellung des Cubes ausgeführt wird.
Bei der Erstellung der Cubes sind bekannt:
poPath => My.Clients.Path2 (Zweiter Pfadserver)
poSc0 => Ein Datensatzobjekt der Tabelle SC0
poSc1a => Eine Collection mit Datensätzen der Tabelle SC1 zum Cube aus SC0, SC0.IDSC0 = SC1.IDSC0
poSc2a => Eine Collection mit Datensätzen der Tabelle SC2 zum Cube aus SC0, SC0.IDSC0 = SC2.IDSC0
poCube => Das cCubeX4 Objekt
pcCubeFile => Pfad und Name der Microcubedatei
Der SQL, wie der Cube zu füllen ist.
Bei der Erstellung des SQL's muss auf die Benennung der Feldnamen geachtet werden!
Hier ist es wichtig, die Feldnamen mit folgenden Anfangsbuchstaben zu benennen:
Werte / Facts
F_Fact: (Fact), ein Fact (Wert) des Cubes, der berechnet und angezeigt werden soll. Ohne weitere Angaben wird der Wert summiert und dargestellt.
FS_Fact: (Fact,summieren), wie oben, jedoch mit der Anweisung Summieren
FSH_Fact: (Fact,summieren,hidden), wie oben, jedoch wird der Wert nicht angezeigt / dargestellt.
Weitere Berechnungsanweisungen:
FS?... = Summieren (sum)
FA?... = Mittelwert (average)
FD?... = Minimum (down)
FU?... = Maximum (up)
FC?... = Anzahl (count)
FT?... = Teiler (gehört zu Mittelwert)
Das Zeichen UNDERLINE _ wird für die Bezeichnung (Caption) des Wertes durch ein Leerzeichen (BLANK) ersetzt.
Beispiel:
FSH_Menge_fuer_viele_Werte: Fact,sum,hidden,'Menge fuer viele Werte'
Mittelwert Berechnung:
Für die Berechnung des Mittelwertes wird die Summe und der Count benötigt!
SELECT ...
cc.Menge AS FA_Menge,
1 AS FT_Menge
Da der Cube immer nur summieren kann, werden beide Informationen für die Berechnung des Mittelwertes benötigt!
In der Berechnung werden dann: SUM(FA_Menge) / SUM(FT_Menge) berechnet, was den Mittelwert ergibt
Dimensionen
D_Dimension (Dimension), eine Dimension, die in der Auswahlleiste der Dimensionen angezeigt wird.
DH_Dimension (Dimension,horizontal), eine Dimension, die horizontal dargestellt wird. (Wichtig nur beim Neuaufbau des Cubes)
DV_Dimension (Dimension,vertikal), eine Dimension, die vertikal dargestellt wird. (Wie oben...)
Besonderheit in der WHERE Klausel des SQL Selects!
Der Ausdruck: 1=:1 in der WHERE Klausel des SQL Selects wird bei der Prüfung duch 1=0 ersetzt, damit keine Daten abgerufen werden.
Bei der Vollständigen Abfrage werden die Daten jedoch mit dem Ausdruck 1=1 versehen, damit alle Daten abgerufen werden können.
Unter \\Server\pms32\mitgeben\... werden die von uns erstellten Cubes mitgegeben. Sie können diese Importieren.
*/ Bitte diese Remarkzeilen nicht mit kopieren! */ Ein Beispiel eines SQL Selects SELECT CAST(RTRIM(cc.ick10) AS V(50)) AS DV_Projekt, CAST(IIF(EMPTY(cc.dasoll),0,YEAR(cc.dasoll)) AS I) AS DH_JahrSoll, CAST(IIF(EMPTY(cc.daprog),0,YEAR(cc.daprog)) AS I) AS D_JahrProg, CAST(IIF(EMPTY(cc.dasoll),0,MONTH(cc.dasoll)) AS I) AS D_MonatSoll, CAST(IIF(EMPTY(cc.daprog),0,MONTH(cc.daprog)) AS I) AS D_MonatProg, CAST(RTRIM(cc.ice10) AS V(50)) AS D_Vorgang, CAST(RTRIM(y01s.bezei) AS V(50)) AS D_VStatus, CAST(RTRIM(y01a.bezei) AS V(50)) AS D_VArt, CAST(RTRIM(c63.match) AS V(50)) AS D_Kunde, cc.y0n AS FS_Netto, cc.y0b AS FS_Brutto, cc.y0bs AS FS_BruttoS, cc.y0prog AS FS_BruttoProg, cc.y0soll AS FS_BruttoSoll FROM CDBFDIR!cube_lvk AS cc INNER JOIN CDBFDIR!c63 AS c63 ON cc.idc63=c63.idc63 INNER JOIN CSYSDIR!y01 AS y01s ON cc.ipe10s = y01s.ipy01 AND y01s.idc26 = 'DE ' INNER JOIN CSYSDIR!y01 AS y01a ON cc.ipe10 = y01a.ipy01 AND y01a.idc26 = 'DE ' WHERE 1=:1
Letzte Erstellung des Microcubes
Letzte Erstellung des Microcubes. Hier werden Datum und Uhrzeit des Starts der Erstellung angegeben!
Soll die Anzeige 'Standard' im TreeView des Cubes ausgeblendet werden?
Wenn diese Option gesetzt ist, kann die Einstellung Standard nicht gewählt werden!
Reihenfolge der Erstellung
Reihenfolge der Erstellung der Cubes.
Sollten mehrere Cubes von einer vorher zu erstellenden Tabelle abhängig sein, so kann die Tabelle beim ersten Mal erstellt werden und
nachfolgende Cubes können auf diese Tabelle zugreifen.
Um sicher zu stellen, dass die Tabelle zuerst erstellt wird kann die Reihenfolge der Abarbeitung vorgegeben werden.
Bezeichnung der Cubedefinition
Bezeichnung der Cubedefinition. Diese sollte nach Möglichkeit eindeutig sein!
Benutzer für die Filterung der Auswahl
Hier kann der PMS32 - Benutzer, als Filterkriterium hinterlegt werden. Damit können unterschiedliche Mitarbeiter nur denen Ihnen zugewiesenen Cubes betrachten.
Die einzigen Personen, die den Cube immer bearbeiten bzw. ansehen können müssen Supervisor Status haben!
Interne ID
Interne ID der Cube Definition. Der Name der Cubedatei wird durch diese ID gebildet.
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld führt ein sogenanntes Änderungskennzeichen mit.
Bei jeder Änderung an dem Datensatz der Tabelle wird dieses Feld um 1 nach oben gezählt.
Bei einem Wert der größer 999 ist wird wieder bei 0 angefangen.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LASTUPD WITH (LASTUPD+1)%1000 UPDATE .... , LASTUPD = (LASTUPD+1)%1000
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das letzte Änderungsdatum des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LDATUM WITH My.xDate UPDATE .... , LDATUM = My.xDate
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Programm der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LPRG WITH My.lProgram UPDATE .... , LPRG = My.lProgram
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält den Benutzer der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LWER WITH My.cUser UPDATE .... , LWER = My.cUser
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält die Uhrzeit der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LZEIT WITH My.xTime UPDATE .... , LZEIT = My.xTime
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Neuanlagedatum des Datensatzes.
My.xDate gibt das aktuelle Datum zurück.
Bitte verwenden Sie nicht DATE()!
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NDATUM) VALUES (...,My.xDate)
Notiz zum Cube
Hier kann eine Notiz zum Cube hinterlegt werden.
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Programm der Neuanlage des Datensatzes.
My.lProgram gibt das aktuelle Programm zurück.
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NWER) VALUES (...,My.cUser)
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält den Benutzer der Neuanlage des Datensatzes.
My.cUser gibt den angemeldeten Benutzer (C65) zurück.
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NWER) VALUES (...,My.cUser)
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Neuanlageuhrzeit des Datensatzes.
My.xTime gibt das aktuelle Uhrzeit zurück.
Bitte verwenden Sie nicht TIME()!
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NZEIT) VALUES (...,My.xTime)
Prozesszeit Cube-Erstellung in s
Prozesszeit der Cube-Erstellung in Sekunden
Prozesszeit Cube-Nachprogramm in s
Prozesszeit des Cube-Nachprogramms in Sekunden
Prozesszeit Cube-Vorprogramm in s
Prozesszeit des Cube-Vorprogramms in Sekunden
Siehe auch : Hauptmenü / Hauptindex / Such Index / Cursor Index / Programm Module / Tabellen Index / Tabellenmodule / Masken Index / Programmcode Index / Servicepacks / My.Struktur / Funktionen / Sonstiges Index
Lokale Benutzerhilfe : Meine eigene Hilfe / Zurück zur PMS32 - Hilfe
Dateiversion:1.0.04#3648 - H.U.DD#SSFF 02.12.2022
Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32
Weitere Informationen finden Sie unter der aktuellen
PMS32 WEB-Hilfe
Die Informationen dieser Mitteilung sind vertraulich und nur für Sie bestimmt. Unbefugtes Weiterleiten,
Veröffentlichen, Kopieren usw. sind untersagt und werden gerichtlich verfolgt.
© PMS Compelec GmbH 2022 ® el-Projekt