Vorwort
SQLVantage Benutzerhandbuch (Deutsch)
SQLVantage Berichtssystem Vollständiges Benutzerhandbuch.
Inhaltsverzeichnis
- Systemübersicht
- Installation und Deployment (Windows / Linux)
- Konfigurationsanleitungen
- Administrator-Leitfaden
- Leitfaden für das Berichtsdesign (SQL/FORM/HTML)
- Benutzerhandbuch für Endanwender
- Anfrageausführung und Ausgabeergebnisse
- Häufig gestellte Fragen (FAQ)
- Anhang: Datenspeicherung, Backup und Migration
1. Systemübersicht
1.1 Was ist SQLVantage
SQLVantage ist ein webbasiertes Berichtssystem. Der „Administrator“ pflegt die Berichtsdefinitionen, während „Endbenutzer“ über eine Webseite Berichte auswählen, Abfragebedingungen eingeben, Ergebnisse asynchron abrufen und als Excel / HTML / JSON / TEXT exportieren können.
1.2 Technologie-Stack
Das System verfügt über eine reine Web-Architektur: Im Browser muss kein Client oder Plug-in installiert werden – jeder moderne Browser kann darauf zugreifen. Auf der Serverseite werden nur das ausführbare Programm und die dazugehörigen Konfigurationsverzeichnisse benötigt, was die Bereitstellung einfach macht.
1.3 Kernkonzepte
| Konzept | Beschreibung |
|---|---|
| Bericht (Report) | Ein Bericht = drei Teile Code (SQL + FORM + HTML) + drei Format-JSON-Dateien (SqlFormat / FormFormat / HtmlFormat); er ist einer „Verantwortung“ zugeordnet |
| Verantwortung (Responsibility) | Die Kategorie (Verzeichnis), zu der Berichte gehören, entsprechend den Responsibilities in Oracle EBS; dient dazu, Berichte für Benutzer nach Modulen zu gruppieren |
| Parameter | Eine in FORM definierte Abfragebedingung (z. B. Datum, Kunde, Organisation usw.); nach dem Absenden wird sie als benannter Parameter an das SQL gebunden |
| Anfrage (Request) | Eine spezifische Berichtsausführungsaufgabe, die von einem Endbenutzer übermittelt wurde; das System führt sie asynchron im Hintergrund aus und generiert Ergebnisdateien |
| Lizenz (License) | Die Lizenzdatei conf/license.dat, die die Anzahl der Berichte und die Gültigkeitsdauer steuert |
1.4 Benutzerrollen
| Rolle | Einstieg | Berechtigungen |
|---|---|---|
| Administrator (admin) | /admin/login |
Benutzerverwaltung, Verantwortungsverwaltung, Berichtsverwaltung, Lizenzimport, Systemeinstellungen und Überwachung aller Anfragen |
| Endbenutzer (normal) | /login |
Berichte auswählen, Parameter eingeben, Anfragen übermitteln, eigene Anfragen einsehen, Ergebnisse herunterladen und Passwort ändern |
1.5 Verzeichnisstruktur
Die Hauptdateien nach dem Entpacken des Release-Pakets:
SQLVantage/
├── SQLVantage.exe / sqlvantage # Hauptprogramm (Windows / Linux)
├── conf/
│ ├── app.conf # Systemkonfiguration (Port / Sprache / Oracle usw.)
│ ├── data.dat # Geschäftsdatenbank (Benutzer / Verantwortungen / Berichte / Anfragen)
│ ├── license.dat # Lizenzdatei
│ └── locale/ # Sprachpakete
├── data/ # Zur Laufzeit generiert: <RequestID>.xlsx / <RequestID>.json
├── docs/ # Benutzerdokumentation (Mehrsprachig, inklusive images/)
└── tmp/ # Temporäre Dateien (Sitzungen, Aufgaben)
2. Installation und Deployment (Windows / Linux)
2.1 Systemanforderungen
- Betriebssystem: Windows 7+ / 64-Bit Linux (x86_64)
- Ausführungsmodus (empfohlen): Verwenden Sie direkt das veröffentlichte ausführbare Programm (
SQLVantage.exeoder das Linux-Binärprogramm); es muss keine Runtime-Umgebung installiert werden. - Oracle-Datenbank: Die Ausführung von Berichten erfordert eine Verbindung zu Oracle (das System verbindet sich standardmäßig mit Oracle EBS); bitte prüfen Sie Netzwerk und Konto im Voraus.
- Disk-/Verzeichnisberechtigungen: Das Arbeitsverzeichnis des Programms muss beschreibbar sein, da während der Laufzeit die Verzeichnisse
data/undtmp/erstellt und Dateien unterconf/gelesen/geschrieben werden.
2.2 Installation unter Windows
-
Entpacken: Entpacken Sie das Release-Paket (zip) in ein beliebiges Verzeichnis, zum Beispiel
D:\SQLVantage\. Bestätigen Sie nach dem Entpacken, dass die folgenden Schlüsseldateien vorhanden sind:D:\SQLVantage\ ├── SQLVantage.exe # Hauptprogramm ├── conf\app.conf # Konfigurationsdatei ├── conf\data.dat # Datenbank (leere DB im Paket enthalten) └── conf\locale\ # Sprachpakete -
(Optional) Konfiguration ändern: Öffnen Sie
conf\app.confmit dem Editor und ändern Sie die Listenadresse, den Port, die Oracle-Verbindung usw. gemäß Kapitel 3. -
Programm starten: Doppelklicken Sie auf
SQLVantage.exeoder führen Sie es in der Befehlszeile aus:cd D:\SQLVantage SQLVantage.exeNach einem erfolgreichen Start gibt die Konsole Versionsinformationen und den Lizenzstatus aus und wechselt in den Listening-Zustand.
-
Systemzugriff: Öffnen Sie
http://127.0.0.1:8080in einem Browser (Standardadresse; kann inapp.confgeändert werden). -
Firewall-Einstellungen: Wenn ein LAN/Remote-Zugriff erforderlich ist, öffnen Sie den entsprechenden Port (z. B. 8080) in der Windows-Firewall:
netsh advfirewall firewall add rule name="SQLVantage" dir=in action=allow protocol=TCP localport=8080
2.3 Installation unter Linux
-
Entpacken: Entpacken Sie das Release-Paket (tar.gz oder zip) in das Zielverzeichnis, zum Beispiel
/opt/sqlvantage:mkdir -p /opt/sqlvantage tar -xzf sqlvantage-linux-amd64.tar.gz -C /opt/sqlvantage cd /opt/sqlvantage -
Ausführungsberechtigung erteilen:
chmod +x sqlvantage -
(Optional) Konfiguration ändern: Bearbeiten Sie
conf/app.conf(wie unter Windows). -
Vordergrund-Starttest:
./sqlvantageWenn Sie die Versionsinformationen und das Listening-Log sehen, war der Start erfolgreich; drücken Sie
Ctrl+Czum Stoppen. -
Im Hintergrund ausführen (systemd oder nohup empfohlen):
Methode A: nohup
cd /opt/sqlvantage nohup ./sqlvantage > sqlvantage.log 2>&1 &Methode B: systemd (Erstellen von
/etc/systemd/system/sqlvantage.service):[Unit] Description=SQLVantage Report System After=network.target [Service] WorkingDirectory=/opt/sqlvantage ExecStart=/opt/sqlvantage/sqlvantage Restart=always RestartSec=5 User=sqlvantage [Install] WantedBy=multi-user.targetFühren Sie dann aus:
systemctl daemon-reload systemctl enable sqlvantage systemctl start sqlvantage systemctl status sqlvantage -
Firewall / Sicherheitsgruppe: Öffnen Sie den Port (z. B. 8080):
firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload
2.4 Aus Quellcode bauen (Optional)
Nur für Benutzer verfügbar, die den Quellcode erhalten haben: Führen Sie den Build-Befehl im Quellverzeichnis aus, um eine ausführbare Datei für die aktuelle Plattform zu erstellen. Für eine formelle Deployment-Umgebung wird empfohlen, direkt die offiziell veröffentlichte ausführbare Datei zu verwenden.
2.5 Erster Start
Beim ersten Start schließt das System automatisch die folgende Initialisierung ab:
- Prüfung der Datendatei: Liest
conf/data.dat(im Paket enthalten; wenn sie fehlt, meldet das Programm "conf/data.dat is not found" und beendet sich — bitte löschen Sie diese Datei nicht). - Automatische Tabellenerstellung: Die vier Tabellen
user,responsibility,reportundrequestwerden automatisch erstellt. - Automatische Erstellung des Administrator-Kontos: Beim ersten Besuch von
/admin/loginwird der Benutzerrootautomatisch erstellt, falls er nicht existiert:- Benutzername:
root - Initialpasswort:
SQLVantage - Rolle: admin (Administrator)
- Sicherheitshinweis: Ändern Sie dieses Passwort sofort nach dem ersten Login (der Administrator kann dies unter "Benutzerverwaltung" tun).
- Benutzername:
- Prüfung der Lizenzdatei: Wenn
conf/license.datfehlt oder ungültig ist, gibt die Konsole eine Warnung aus; das System kann weiterhin laufen, unterliegt jedoch den Lizenzbeschränkungen in Abschnitt 4.7.
3. Konfigurationsanleitungen
3.1 Position der Konfigurationsdatei
Die Konfigurationsdatei ist conf/app.conf (INI-Format). Es gibt zwei Möglichkeiten, sie zu ändern:
- Methode 1 (empfohlen, über die Benutzeroberfläche): Melden Sie sich als Administrator an, gehen Sie zu den „Systemeinstellungen“ (
/admin/setting), geben Sie die Werte ein und speichern Sie; das System schreibt diese automatisch in dieapp.confzurück. - Methode 2 (Datei direkt bearbeiten): Ändern Sie
conf/app.confmit einem Texteditor und starten Sie das Programm dann neu.
3.2 Parameter-Referenztabelle
| Parameter | Standardwert | Beschreibung |
|---|---|---|
appname |
SQLVantage |
Anwendungsname |
httpaddr |
127.0.0.1 |
Listen-IP-Adresse; 0.0.0.0 bedeutet, dass auf allen Netzwerkschnittstellen gelauscht wird (aus dem LAN erreichbar) |
httpport |
8080 |
Listen-Port; empfohlen sind 8080~8099 |
runmode |
dev |
Betriebsmodus: dev (Entwicklung, zeigt detaillierte Fehler) / prod (Produktion, verbirgt Fehlerdetails) |
language |
en-US |
Standard-UI-Sprache (niedrigere Priorität als URL-Parameter / Cookie / Browsersprache) |
sessiongcmaxlifetime |
3600 |
Ablaufzeit der Sitzung (Sekunden); standardmäßig 1 Stunde |
max_execution_time |
30 |
Maximale Ausführungszeit für eine Berichtsaufgabe (Minuten); Zeitüberschreitungen werden automatisch als „Beendet“ (Terminated) markiert |
oracle_server |
z.B. 192.168.10.13 |
IP/Hostname des Oracle-Datenbankservers |
oracle_port |
1521 |
Oracle-Listen-Port |
oracle_database |
test |
Oracle-Servicename (SERVICE_NAME) |
oracle_username |
apps |
Oracle-Verbindungsbenutzername |
oracle_password |
keine | Oracle-Verbindungskennwort (bitte das tatsächliche Kennwort eingeben) |
3.3 Wann Änderungen wirksam werden
sessiongcmaxlifetime: Wird sofort nach dem Speichern wirksam.- Andere Parameter (Port, Oracle usw.): Das Programm muss neu gestartet werden, damit die Änderungen wirksam werden.
3.4 Sprachwechsel
- Das System verfügt über 12 integrierte Sprachen: zh-CN, zh-TW, en-US, ja-JP, ko-KR, fr-FR, de-DE, es-ES, th-TH, vi-VN, ru-RU, pt-PT.
- So wechseln Sie die Sprache: Fügen Sie
?lang=zh-CNan die URL an (z. B./?lang=zh-CN) oder wechseln Sie über das Sprachmenü in der oberen rechten Ecke der Administrationskonsole; nach der Auswahl wird dies in einem Cookie gespeichert, das 1 Jahr gültig ist.
4. Administrator-Leitfaden
4.1 Administrator-Login
- Rufen Sie im Browser
http://<Serveradresse>:<Port>/admin/loginauf. - Melden Sie sich mit dem Administrator-Konto an (initial
root / SQLVantage). - Nach erfolgreichem Login öffnet sich das Admin-Backend (
/admin), das linke Menü enthält: Berichtsverwaltung, Verantwortungsverwaltung, Benutzerverwaltung, Anfragenverwaltung, Lizenzverwaltung, Systemeinstellungen, Dashboard, Über uns.
Hinweis: Das Administrator-Konto muss die Bedingungen
Rolle = adminundStatus = activeerfüllen, andernfalls ist der Login im Backend nicht möglich.
4.2 Dashboard und Top-Navigation
- Die Top-Navigation ermöglicht schnelle Sprünge: Dashboard (
/admin), Berichtsausführung (/request, neues Fenster) und Portal-Startseite (/). - Oben rechts können Sie die Sprache wechseln oder sich ausloggen (
/admin/logout).
4.3 Benutzerverwaltung
Einstieg: /admin/user (linkes Menü „Benutzerverwaltung“).
Erklärung der Benutzerfelder:
| Feld | Beschreibung |
|---|---|
| Benutzername (UserName) | Login-Konto; nach der Erstellung nicht änderbar (nur Lesen) |
| Optional | |
| Rolle (Role) | normal (Endbenutzer) / admin (Administrator) |
| Status | active (aktiv, kann sich einloggen) / inactive (ausgeschieden, Login gesperrt) |
| Passwort | Muss bei der Erstellung angegeben werden; verschlüsselt gespeichert, wird im UI nicht angezeigt |
Operationen:
- Neu: Klicken Sie auf die Schaltfläche „Neu“ $\rightarrow$ Benutzername/E-Mail/Rolle/Status/Passwort/Passwort bestätigen eingeben $\rightarrow$ absenden.
- Bearbeiten: Klicken Sie in der Zeile auf „Bearbeiten“ $\rightarrow$ E-Mail, Rolle und Status können geändert werden; ein leeres Passwortfeld bedeutet keine Änderung.
- Löschen: Klicken Sie in der Zeile auf „Löschen“. Hinweis:
- Das
root-Konto darf nicht gelöscht werden. - Benutzer, denen Berichte zugeordnet sind, dürfen nicht gelöscht werden (die Berichte müssen zuerst gelöscht oder übertragen werden).
- Das
Management-Tipps:
- Der Login-Einstieg für Endbenutzer ist
/login(Startseite), der für Administratoren/admin/login; beide sind unterschiedlich. - Setzen Sie einen Endbenutzer auf den Status
inactive, um den Login zu sperren, ohne das Konto löschen zu müssen. rootwird in der Benutzerliste automatisch ausgeblendet.
4.4 Verantwortungsverwaltung
Einstieg: /admin/responsibility (linkes Menü „Verantwortungsverwaltung“).
Erklärung der Verantwortungsfelder:
| Feld | Beschreibung |
|---|---|
| RespId | Verantwortungs-ID in Oracle EBS |
| RespKey | Verantwortungs-Key in Oracle EBS |
| Name | Anzeigename, dient auch als Gruppierungsname im Berichtsmenü für Endbenutzer |
| ShortName | Optional |
Operationen:
- Neu: Klicken Sie auf „Neu“ $\rightarrow$ wählen Sie eine Verantwortung eines Benutzers aus dem Dropdown aus (Daten kommen über die Oracle EBS-Schnittstelle
/api/user/responsibilities/); RespId / RespKey / Name werden automatisch ausgefüllt; eine manuelle Eingabe ist ebenfalls möglich $\rightarrow$ absenden. - Bearbeiten / Löschen: Operationen über die Zeilenschaltflächen. Hinweis: Eine Verantwortung, die von einem Bericht referenziert wird, kann nicht gelöscht werden.
Zweck: Jeder Bericht muss einer Verantwortung zugeordnet sein; das „Berichtsmenü“ für Endbenutzer wird nach Verantwortungen gruppiert (Berichte ohne Zuordnung landen in der Gruppe „Nicht kategorisiert“).
4.5 Berichtsverwaltung
Einstieg: /admin/report (linkes Menü „Berichtsverwaltung“).
Berichtsfelder:
| Feld | Beschreibung |
|---|---|
| ID | Automatische Nummerierung durch das System |
| Verantwortung (Responsibility) | Kategorie, der der Bericht zugeordnet ist |
| Name | Berichtsname, sichtbar für Endbenutzer |
| Beschreibung | Optional |
| Status | Draft (Entwurf) / Release (Veröffentlicht) / Discard (Verworfen) |
| Erstellungs-/Aktualisierungszeit | Wird automatisch vom System aufgezeichnet |
Berichts-Lebenszyklus (Wichtig):
Draft (Entwurf, Designphase) ──▶ Release (Veröffentlicht, für Benutzer sichtbar)
│ │
│ └──▶ Kann nicht direkt gelöscht werden, muss zuerst zu Draft/Discard geändert werden
└──▶ Discard (Verworfen, für Benutzer nicht sichtbar)
- Nur Berichte mit dem Status Release erscheinen im Berichtsmenü der Endbenutzer.
- Veröffentlichte (Release) Berichte dürfen nicht gelöscht werden. Ändern Sie zuerst den Status in der Liste auf Draft oder Discard und löschen Sie ihn dann.
- Die Spalten „Name“, „Beschreibung“ und „Status“ in der Liste unterstützen das direkte Bearbeiten per Doppelklick (automatische Speicherung).
Operationen:
| Schaltfläche | Beschreibung |
|---|---|
| Neu | Formular öffnet sich: Verantwortung wählen, Name/Beschreibung/Status eingeben $\rightarrow$ absenden |
| Code (lila) | Öffnet den Berichtsdesigner (siehe Kapitel 5, die Kernfunktion des Systems) |
| Bearbeiten (blau) | Öffnet das Formular für Basisinformationen zur Änderung |
| Löschen (rot) | Löscht den Bericht (Release-Status verhindert das Löschen) |
4.6 Anfragenverwaltung (Administrator-Sicht)
Einstieg: /admin/request (linkes Menü „Anfragenverwaltung“).
Administratoren können die Berichtsanfragen aller Benutzer einsehen (Endbenutzer sehen nur ihre eigenen) und Folgendes tun:
- Ansicht nach Berichtsname/Status/Phase;
- Einsicht in Parameter, Absender, IP-Adresse sowie Erstellungs- und Abschlusszeit;
- Über das „Ausgabe“-Dropdown können die Ergebnisse (Excel / HTML / JSON / TEXT) direkt heruntergeladen werden;
- Einzelnes Löschen oder Markieren mehrerer Einträge für das „Massenlöschen“.
Die Bedeutung der Anfragenstatus finden Sie in Kapitel 7.
4.7 Lizenzverwaltung
Einstieg: /admin/license (linkes Menü „Lizenzverwaltung“).
4.7.1 Was ist eine Lizenzdatei
Die Lizenzdatei ist conf/license.dat, ein kurzer Text, der vom Anbieter ausgestellt wurde und folgende Informationen enthält:
| Feld | Beschreibung |
|---|---|
reg_id |
Registrierungs-ID (eindeutige Kundenkennzeichnung) |
company |
Registrierter Firmenname |
expire |
Ablaufdatum (Format YYYY-MM-DD, z. B. 2026-12-31) |
Das System prüft beim Start und beim Import automatisch die Gültigkeit der Lizenzdatei. Jede Manipulation (Änderung der Registrierungsdaten oder des Ablaufdatums) führt zur Ungültigkeit der Lizenz.
4.7.2 Kaufprozess
- Kontaktieren Sie den SQLVantage-Anbieter/Entwickler und geben Sie folgende Informationen an:
- Firmenname (company);
- Registrierungs-ID des zu lizensierenden Servers (reg_id, wird vom Anbieter zugewiesen);
- Gewünschte Lizenzdauer.
- Der Anbieter generiert mit einem Tool die Lizenzdatei (ein Textabschnitt) und liefert sie an den Kunden aus.
- Nach Erhalt importiert der Kunde die Datei gemäß Punkt 4.7.3.
4.7.3 Lizenz importieren
- Administrator-Login $\rightarrow$ Lizenzverwaltung (
/admin/license). - Die Seite zeigt den aktuellen Lizenzstatus an (Reg-ID / Firma / Ablaufdatum; bei Ungültigkeit oder Fehlen erscheint ein roter Hinweis).
- Klicken Sie auf „Datei auswählen“, wählen Sie die erhaltene Lizenzdatei aus (beliebiger Name, z. B.
license.dat) $\rightarrow$ klicken Sie auf „Importieren“. - Nach erfolgreichem Import validiert das System die Datei und aktualisiert die Seite automatisch mit den gültigen Lizenzinformationen.
Alternativ kann die Datei manuell platziert werden: Speichern Sie den Inhalt als
conf/license.datund starten Sie das Programm neu.
4.7.4 Einschränkungen ohne Lizenz / bei Ablauf
| Einschränkung | Beschreibung |
|---|---|
| Anzahl der Berichte | Ohne gültige Lizenz (oder nach Ablauf) können maximal 3 Berichte existieren; weitere Erstellungen werden abgelehnt (Hinweis „Lizenzlimit erreicht“) |
| Anfrage-Einreichung | Ohne Lizenz und bei $\ge 3$ Berichten wird die Einreichung von Anfragen durch Endbenutzer abgelehnt |
| Lizenzablauf | Nach dem Ablauf sind bereits angemeldete Operationen nicht betroffen, aber das Erstellen neuer Berichte/Anfragen ist eingeschränkt |
4.8 Systemeinstellungen
Einstieg: /admin/setting (linkes Menü „Systemeinstellungen“), visuelle Bearbeitung von conf/app.conf:
- Anwendungseinstellungen: Listen-Adresse, Port, Betriebsmodus, Standardsprache, maximale Ausführungszeit;
- Sitzungseinstellungen: Sitzungsablaufzeit (Sekunden);
- Oracle-Datenbank-Einstellungen: Server, Port, Servicename, Benutzername, Passwort (mit Umschaltfläche für Klartext/Geheimtext).
Einige Parameter werden nach dem Speichern sofort wirksam; Parameter wie der Port erfordern einen Neustart des Programms.
4.9 Über uns
Einstieg: /admin/aboutus; Ansicht der Systemversion, Release-Informationen usw.
5. Leitfaden für das Berichtsdesign (Kernkapitel)
Dies ist die wichtigste Funktion von SQLVantage. Ein Bericht besteht aus drei Teilen:
- SQL: definiert, welche Daten abgefragt werden (Quell-SQL + Spaltenmetadaten-Konfiguration)
- FORM: definiert, welche Abfragebedingungen Benutzer ausfüllen (Parameter-Formular)
- HTML: definiert, wie die Ergebnisse angezeigt werden (Tabelle/Chart/KPI-Karten-Layout)
Jeder der drei hat zwei Datastücke — "Code" und "Format-JSON" — die schließlich im Berichtsspeicher gespeichert werden.
5.1 Designer-Arbeitsplatz
5.1.1 Betreten des Designers
- Melden Sie sich als Administrator an → Berichtsverwaltung (
/admin/report). - Suchen Sie den Zielbericht und klicken Sie auf die Schaltfläche „Code“ (lila).
- Ein großer Designer-Fenster erscheint (etwa 98% des Bildschirms), das Interface ist in linke und rechte Bereiche unterteilt:
┌────────────────────────────────────────────────────────┐
│ [下拉:SQL设计 | FORM设计 | HTML设计] [保存全部] │
├───────────────────────────────┬────────────────────────┤
│ 左侧:代码编辑器 │ 右侧:动态设计面板 │
│ (SQL 代码 / FORM 代码 / │ (随左侧模式切换) │
│ HTML 代码 共用一个编辑器) │ · SQL: 列元配置表 │
│ │ · FORM: 参数配置表 │
│ │ · HTML: 布局块配置表 │
└───────────────────────────────┴────────────────────────┘
5.1.2 Drei Modi
Die Dropdown-Leiste oben wechselt das Design-Modus; linker Editor und rechter Panel wechseln synchron:
| Modus | Editor-Inhalt | Rechtes Panel |
|---|---|---|
| SQL-Design | Report-Abfrage-SQL (Oracle-Syntax) | Spaltenmetadaten-Konfigurations-Tabelle (beeinflusst Excel-Export/Seiten-Spalten-Header) |
| FORM-Design | Parameter-Formular HTML-Code | Parameter-Konfigurations-Tabelle + Live-Vorschau + Formular-Code-Entwurf |
| HTML-Design | Ergebnis-Anzeige HTML-Code (Template-Ausschnitt) | Layout-Block-Konfigurations-Tabelle + Layout-Vorschau + HTML-Code-Entwurf |
5.1.3 Speichern
- Während des Designs: Änderungen im rechten Panel werden automatisch in die versteckten Felder (
sql_code/sql_format/form_code/form_format/html_code/html_format) zurückgeschrieben. - Formale Speicherung: Klicken Sie auf die Schaltfläche „Speichern Alles“ oben links, um alle sechs Datenstücke an
/admin/report/code/zu senden und sie in der Datenbank zu speichern.
Wichtig: Nach dem Bearbeiten von SQL / FORM / HTML müssen Sie unbedingt auf „Speichern Alles“ klicken, sonst gehen die Änderungen verloren, wenn das Fenster geschlossen wird.
5.2 SQL-Modul (Gestaltung der Berichts-Datenquelle)
5.2.1 Schreiben der Abfrage-SQL
- Das SQL verwendet Oracle-Syntax; schreiben Sie direkt eine SELECT-Anweisung (FROM/JOIN/WHERE/GROUP BY usw. können eingeschlossen werden).
- Abfragebedingungen verwenden benannte Parameter-Platzhalter
:Parameter-Name, und der Parameter-Name muss mit demfieldübereinstimmen, das im FORM-Modul definiert ist. Zum Beispiel, wenn im FORM das ParameterP_OU_IDdefiniert ist, schreiben Sie im SQL folgendes:
SELECT company_name, ou_id, amount
FROM fnd_ou_tl
WHERE ou_id = :P_OU_ID
- Alle Spaltennamen, die im SQL ausgewählt werden, sind die Feldkennzeichnungen des Excel-Exports und der HTML-Seitentabelle (es wird empfohlen, einheitlich Großbuchstaben zu verwenden, z. B.
COMPANY_NAME).
5.2.2 Spaltenmetadaten-Konfigurations-Tabelle (Schlüssel: Excel-Export)
Die „SQL Spaltenmetadaten-Konfiguration“ auf der rechten Seite hat einen Eintrag für jede vom SQL ausgegebene Spalte:
| Spalte | Beschreibung | Beispiel |
|---|---|---|
| field | Die Spaltenname, die vom SQL ausgegeben wird (wird automatisch in Großbuchstaben umgewandelt, wenn eingegeben) | AMOUNT |
| title | Anzeigetitel — der Excel-Export-Header und der Spaltenheader der Seitentabelle | Amount |
| type | text / number / percent / date / month / time / datetime |
number |
| precision | Anzahl der Nachkommastellen für numerische Werte (Standard 2) | 2 |
| format | Benutzerdefinierte Zahlen-/Datum-Format für Excel | #,##0.00 |
| align | left / center / right |
right |
Operationen: Klicken Sie auf „Zeile hinzufügen“, um eine Spalte hinzuzufügen → doppelklicken Sie eine Zelle, um sie auszufüllen → JSON-Snapshot wird automatisch generiert (der schwarze Code-Vorschau-Bereich rechts), und wird in Echtzeit nach sql_format zurückgeschrieben.
5.2.3 SQL-Spalten-Konfiguration und Excel-Export-Korrelation
Das System generiert im Hintergrund die Excel (xlsx) Datei gemäß den folgenden Korrelationsregeln:
| Spalten-Konfiguration | Excel-Ausgabeverhalten |
|---|---|
field |
Passt zum Spaltennamen des Abfrageergebnisses und bestimmt, welcher Spalte sich dieser Konfigurations-Eintrag bezieht |
title |
Wird in die Kopfzelle der Zeile 1 eingetragen, also das Excel-Header-Titel |
type = text |
Der Wert wird als Text in die Zelle geschrieben |
type = number |
Der Wert wird als Zahl geschrieben, Nachkommastellen = precision; wenn format konfiguriert ist, wird mit dem benutzerdefinierten Zahlen-Format ausgegeben, z. B. #,##0.00 |
type = percent |
Der Wert wird in Prozent-Format ausgegeben; format kann überschrieben werden, z. B. 0.00% |
type = date |
Der Wert wird als Datum ausgegeben; format kann als Datum-Format verwendet werden, z. B. yyyy-mm-dd |
align |
Horizontale Ausrichtung der Zelle: left / center / right |
precision |
Numerische Präzision (Standard 2) |
Im anderen Worten: Die SQL-Spalten-Konfigurations-Tabelle ist die vollständige Definition der „Kopfzeile + Spaltenart + Zahlen-Format + Ausrichtung“ des Excel-Exports. Selbst ohne jede Konfiguration kann Excel immer noch exportiert werden (Standard-Text-Typ, linksbündig, Spaltenüberschriften verwenden die ursprünglichen Spaltennamen), aber der exportierte Excel ist nach Konfiguration professioneller.
5.2.4 Ein vollständiges SQL-Design-Beispiel
Angenommen, wir möchten einen „Abteilungs-Kosten-Bericht“ erstellen:
- SQL-Code (Editor):
SELECT DEPT_NAME, MONTH, TOTAL_AMOUNT, RATE
FROM DEPT_COST_V
WHERE MONTH = :P_MONTH
ORDER BY DEPT_NAME
- Spaltenmetadaten-Konfiguration:
| field | title | type | precision | format | align |
|---|---|---|---|---|---|
| DEPT_NAME | Department Name | text | left | ||
| MONTH | Month | date | yyyy-mm |
center | |
| TOTAL_AMOUNT | Total Amount | number | 2 | #,##0.00 |
right |
| RATE | Cost Ratio | percent | 2 | 0.00% |
right |
- Das exportierte Excel-Ergebnis: Die Überschriften sind „Abteilungsname / Monat / Gesamtbetrag / Kostenquote“; Beträge sind rechtsbündig mit Tausenderzeichen und 2 Nachkommastellen, und die Quote wird als Prozentsatz angezeigt.
5.3 FORM-Modul (Gestaltung der Abfrage-Parameter-Formular)
5.3.1 Parameter-Konfigurations-Tabelle
Die rechte „Parameter-Konfigurations-Tabelle“ definiert jede Zeile einen Abfrage-Parameter:
| Spalte | Beschreibung | Beispiel |
|---|---|---|
| field | Parameter-Kennung; muss mit :parameter name in SQL übereinstimmen |
P_OU_ID |
| label | Der Label-Text, der im Formular angezeigt wird | Business Entity |
| type | Siehe die untenstehende Komponenten-Tabelle | select |
| value | Optional; Standardwert | 101 |
| verify | Validierungs-Regel (z. B. required) |
required |
| static_options | Statische Optionen für Dropdown/Radio; Format key:value,key:value |
101:Shanghai,102:Beijing |
| api_url | API-Adresse für dynamische Optionen; kann {variable name} Platzhalter enthalten |
/api/query?ou={P_OU_ID} |
| query_sql | Abfrage-SQL für dynamische Optionen; kann {variable name} Platzhalter enthalten; gibt zwei Spalten (Wert/ Text) zurück |
SELECT id, name FROM tab WHERE ou = {P_OU_ID} |
Komponenten-Tabelle:
| Typ | Beschreibung |
|---|---|
text |
Einzeiliges Textfeld |
number |
Zahlen-Eingabefeld |
select |
Dropdown-Liste (Optionen aus statischen Optionen oder dynamischen API/SQL) |
radio |
Radio-Button-Gruppe (Optionen aus statischen Optionen) |
date |
Datum-Auswahl (YYYY-MM-DD) |
year |
Jahres-Auswahl |
month |
Monats-Auswahl |
time |
Zeit-Auswahl |
datetime |
Datum-Uhrzeit-Auswahl |
hidden |
Verstecktes Feld (nicht angezeigt, wird dennoch mit dem Formular übermittelt) |
temp |
Zeitwert-Versteckt (wird nicht übermittelt) |
5.3.2 Parameter-Kaskade (abhängige Filterung)
api_url/query_sqlunterstützt{variable name}Platzhalter: Wenn der Benutzer einen upstream-Parameter ändert (z. B. Auswahl einer Organisation), ersetzt das System den Platzhalter automatisch durch den tatsächlichen Wert im aktuellen Formular und fordert dynamisch die downstream-Dropdown-Optionen an.- Wenn der upstream-Parameter nicht ausgefüllt wurde, zeigt das downstream-Dropdown „Bitte obenige Filter zuerst vervollständigen“ an und leert die Optionen, um schmutzige Daten zu vermeiden.
- Statisches Dropdown (
static_options) und dynamisches Dropdown (api_url / query_sql) — wählen Sie eine der beiden aus.
Daten-Format-Anforderung für dynamische Dropdown-Optionen: Jedes vom API/SQL zurückgegebene Datensatz muss zwei Felder enthalten:
val(Wert) undtxt(Anzeigetext).
5.3.3 Live-Vorschau und Code-Generierung
- Unter der Tabelle befindet sich der „Live-Vorschau-Bereich": Das Formular (einschließlich Datum-Steuerelemente, abhängige Dropdowns usw.) wird in Echtzeit gerendert, während Parameter konfiguriert werden.
- Die „Formular-Code-Entwurf" Textbox unten generiert den vollständigen FORM HTML-Code in Echtzeit.
- Klicken Sie auf die Schaltfläche „Kopieren und Anwenden": Der Entwurf-Code wird in den Editor (FORM-Modus) geschrieben und an
form_code/form_formatsynchronisiert.
Sie können auch den linken Editor umgehen und FORM HTML (Formular-Syntax) direkt in der linken Editor schreiben (es wirkt auch beim Speichern).
5.3.4 Laufzeit-Verhalten
Nachdem ein End-Benutzer das Formular absendet, bindet das System die Formulardaten als benannte Parameter mit SQL und führt es aus; die Parameter werden ebenfalls in der Anfrage aufgezeichnet, sodass die Ergebnis-Seite / exportierte Datei die Abfrage-Bedingungen wiedergeben kann.
5.4 HTML-Modul (Gestaltung der Ergebnis-Anzeige)
5.4.1 Layout-Block-Konfigurations-Tabelle
Jede Zeile der rechten „HTML-Ansicht-Komponente-Konfigurations-Tabelle definiert einen Anzeigeblock:
| Spalte | Beschreibung | Beispiel |
|---|---|---|
| block_id | Eindeutige ID des Blocks (als Präfix für die generierte DOM id verwendet) | chart_zone |
| title | Block-Titel | Cost Trend |
| grid_md | Grid-Breite 1~12 (12 erstreckt sich über die gesamte Zeile) | 8 |
| component | table / chart / card / custom (benutzerdefinierter Container) |
chart |
| subtotal | Y (aktiviert die Gesamtreihe für die Tabelle) / N |
N |
| chart_type | line (Linien-Diagramm) / bar (Balken-Diagramm) |
line |
| x_field | Chart X-Achse Feld (aus den SQL-Ausgabe-Spalten) | MONTH |
| y_fields | Chart Y-Achse Felder; mehrere durch Englische Kommas trennen | TOTAL_AMOUNT |
Komponenten-Erklärung:
| Komponente | Anzeige-Effekt | Laufzeit-Technik |
|---|---|---|
table |
Daten-Tabelle mit Pagination und Sortierung; Spalten-Header stammen aus der Spaltenmetadaten title; mit subtotal=Y zeigen numerische Spalten eine Gesamtrzeile an |
table |
chart |
Diagramm (line/bar); die X/Y-Achsen-Felder stammen aus der Konfiguration | chart |
card |
KPI-Karte, zeigt Schlüsselwerte an | Benutzerdefinierte Rendierung |
custom |
Benutzerdefinierter Inhalts-Container | HTML |
5.4.2 Layout-Vorschau und Code-Generierung
- Der „Live-Layout-Vorschau"-Bereich zeigt in Echtzeit eine hochfidele Skelett-Ansicht jedes Blocks (Titel + Block-Typ + Breite).
- "Html Code Entwurf" generiert in Echtzeit den vollständigen HTML-Code (einschließlich Laufzeit-Attribute wie
data-component,data-subtotal,data-charttype,data-xfield,data-yfields). - Klicken Sie auf "Kopieren und Anwenden": schreiben Sie es in den Editor und synchronisieren
html_code/html_format.
Sie können auch HTML-Template-Auszüge direkt in der linken Editor schreiben (unterstützt gängige Template-Syntax). Für die Daten-Objekte, die beim Rendern verfügbar sind, sehen Sie 5.4.3.
5.4.3 Ergebnis-Seiten-Rendern-Mechanismus
Wenn ein End-Benutzer HTML-Ergebnisse herunterschaut/ansieht (/request/output?ext=html), rendert das System den Bericht HTML-Code zusammen mit der Abfrage-Ergebnis-JSON, Spalten-Konfiguration usw.:
| Template-Variable | Beschreibung |
|---|---|
data |
Das Abfrage-Ergebnis JSON-Array (zur Laufzeit injiziert, kombiniert mit {{.data}} als JS-Daten output) |
params |
Die Abfrage-Parameter dieser Anfrage (Schlüssel-Wert-Paare) |
colsConfig |
SQL-Spaltenmetadaten (für Tabellen-Spalten-Header/Chart-Serien-Namen verwendet) |
reportName / reportDate / status |
Bericht-Name, Erzeugungs-Zeit, Status |
Die Seite wandelt Container mit data-component="table" automatisch in Daten-Tabellen um, chart in Diagramme und card in KPI-Karten um.
5.5 Bericht-Veröffentlichungs-Prozess (Empfohlener Administrator-Arbeitsablauf)
1. Berichtsverwaltung → Neuen Bericht erstellen (Auswahl von Verantwortung, Name füllen, Status wählen Draft)
2. Klicken Sie auf "Code" zum Betreten des Designers
3. SQL-Gestaltung: Schreiben Sie Abfrage-SQL + konfigurieren Sie Spaltenmetadaten (Grundlage für Excel-Export)
4. FORM-Gestaltung: Konfigurieren Sie Abfrage-Parameter (entsprechend SQL-Parameter ein-ein)
5. HTML-Gestaltung: Konfigurieren Sie Anzeige-Layout (Tabelle/Chart/KPI-Karte)
6. Klicken Sie auf "Speichern Alles" → Schließen Sie den Designer
7. Gehen Sie zurück zur Bericht-Liste, ändern Sie den Status nach Release (veröffentlichen)
8. Einloggen als normaler Benutzer sofort im Bericht-Menü diesen Bericht sehen und ausführen
5.6 Design-Hinweise
- Die Parameter-Namen in SQL und FORM müssen exakt übereinstimmen (SQL verwendet
:parameter name, FORM verwendetfield). - SQL-Spalten-Namen sollten großgeschrieben werden; die Spaltenmetadaten-Konfigurations-Tabelle konvertiert
fieldautomatisch in Großbuchstaben. - Der Bericht-SQL muss von Oracle
db.Preparevorcompilierbar sein; Syntax-Fehler führen zum Scheitern der Anfrage-Ausführung (Status Error). - Ohne gültige Lizenz ist die Berichtszahl auf 3 beschränkt; beginnen Sie mit dem Design, nachdem Sie den Lizenz-Status bestätigt haben.
- Nach dem Speichern können Sie einmalig eine Anfrage in "Anfragen-Verwaltung" oder auf der End-Benutzer-Seite ausführen, um zu überprüfen, ob SQL und Anzeige korrekt sind.
6. Benutzerhandbuch für Endanwender
6.1 Anmeldung
- Weg eins: ERP-Validierung (Oracle EBS Single Sign-On) [Oracle EBS Single Sign-On Authentication]
- Weg zwei: Lokales Konto