3950 Dashboard » Historie » Revision 23
Revision 22 ([X] Philipp Wolak, 16.06.2022 11:55) → Revision 23/24 ([X] Philipp Wolak, 13.04.2023 09:48)
h1. 3950 Dashboard
Einstiegsvideo: Y:\KUNDENDATEN\CIMPCS\Intern\Arbeitsunterlagen\Schulungsvideos\Admin\Dashboard
h2. Möglichkeiten für Kunden
# Kundeneigene Erstellung von Dashboards
# Nutzung vorgefertigter ProdatStandardDashboards
# Entwicklung von kundenspezifischen Dashboards durch CIMPCS
h2. Anwendungsbeispiele
[[Dashboard Beispiele]]
h2. Erstellung
*Aufpassen:* %{color: red}beim Schließen wird nicht automatisch nach Speichern gefragt!%
* Hauptmenü-Eintrag erstellen mit *action:* @dashboard@ und *proc:* Dashboard-Kennzeichen
{{collapse(zum Beispiel)
!hauptmenu_dashboard.png!
}}
* Dashboard öffnen
* @Zahnrad@ / @Bearbeiten@
{{collapse(Aufklappen)
!dash_bearbeiten.png!
}}
* @Panel links@ / @Popupmenu@ / @Neue Seite erstellen@
{{collapse(Aufklappen)
!neue_seite.png!
}}
** und folgende Parameter eingeben:
*** Menu.Caption
*** Menu.Hint
*** Menu.ImageIndex (Passende Icon von USysModule/ImageListHot)
** die Parameter kann man später über @Panel links@ / @Popupmenu@ / @Aktuelle Seite editieren@ anpassen
** Seiten sind mit drag-n-drop miteinander kombinierbar (kann man als Baumstruktur darstellen)
{{collapse(zum Beispiel)
!tree_sites.png!
}}
h2. TileControl
* Editierte Seite auswählen
* @Zahnrad@ / @Erstellen@
{{collapse(Aufklappen)
!create_controls.png!
}}
* Parameter:
** Name (Komponentname, also Groß- und Kleinschreibung ist nicht von Bedeutung, jedoch dürfen nur Buchstaben, Zahlen und der Unterstrich verwendet werden. Der Name muss mit einem Buchstaben beginnen)
** Text 1 (oben links)
** Text 2 (oben rechts)
** Text 3 (unten links)
** Text 4 (unten rechts)
** MainMenu-Link (mm_id)
** Font.Size(1)
** Font.Size(2-4)
** ImageIndex (Glyph = False) %{color: red}[wovon geladen / wie kann man bedienen?] Vorschlag: löschen und Image von oben ausgewählter @mm_id@ laden.%
** mit Schift+Linksklick kann man die Größe anpassen (werden vorgegebene Größe nacheinander gesetzt)
** {{collapse(Beispiel)
!tilecontrol.png!
}}
h2. LayoutControl
* Editierte Seite auswählen
* @Zahnrad@ / @Erstellen@
{{collapse(Aufklappen)
!create_controls.png!
}}
* LayoutControl
* Popupmenu von LayoutControl:
** @Eigenschaften@: heir kann man aktuell nur die Höhe anpassen
** @LayoutControl-Customizer@: visuelle Layouteditor (Gruppierung, Positionierung, Ausrichtung, Umbenennung usw)
Offen: wie erzeugt man ein Split Element?
h3. Grid
* @Hinzufügen@ / @Grid@
* Popupmenu von Grid
{{collapse(Aufklappen)
!grid_popup.png!
}}
** Erste zwei Zeilen: automatisch generierte Namen von Frame und Layout zur Info
** bei SQL kann man Standard-SQL-Name eingeben oder direkte SQL-Statement:
{{collapse(zum Beispiel)
<pre><code class="sql">
SELECT
dbrid,
ak_nr,
ak_bez
FROM
art
LIMIT 5
</code></pre>
!grid_sql.png!
}}
** @Parent anpassen@ für Master-Detail-Beziehungstabellen geeignet,
{{collapse(zum Beispiel)
Erstellen zweite LayoutControl mit Grid
<pre><code class="sql">
SELECT
r_descr,
r_unit,
r_value
FROM
recnokeyword
WHERE
r_dbrid = :dbrid
</code></pre>
und setzen Beziehung zum erstem Frame
!grid-master-detail.png!
}}
h3. Chart
* @Hinzufügen@ / @Chart@
* Popupmenu von Chart
** Parent anpassen und SQL analor Grid (siehe oben)
** Eigenschaften:
{{collapse(Aufklappen)
!chart_popup.png!
}}
*** GroupCaption
*** x[x] (Bezeichnung und Farbe definieren)
*** y[y1](Bezeichnung und Farbe definieren)
*** [y2] (Bezeichnung und Farbe definieren)
*** [y3] (Bezeichnung und Farbe definieren)
*** ToolBox (um Diagrammdarstellung im Laufzeit zu ändern)
*** ChartType ("Beschreibung":https://docs.devexpress.com/AspNet/15880/aspnet-webforms-controls/chart-control/concepts/creating-charts/2d-chart-types)
*** LegendPosition
** Beispiel: {{collapse(Aufklappen)
<pre><code class="sql">
SELECT
ag_bdat,
SUM(ag_brutto_basis_w) AS sum_brutto,
SUM(ag_netto_basis_w) AS sum_netto
FROM
auftg
WHERE
ag_astat='E'
AND
NOT ag_done
GROUP BY
ag_bdat, ag_lkn
ORDER BY
sum_netto DESC
LIMIT 8
</code></pre>
*Eigenschaften:*
!chart_eigenschaften.png!
*Diagramm:*
!chart_ergebniss.png!
}}
h3. Groups
Groups können sowohl als statische Gruppierung, als auch als Registerfenster verwendet werden.
~> Layout-Control Customizer > Kontextmenü der Gruppe > Layout Direction
h2. Einstiegsfilter
* Daten werden erst nach Enter-Taste in Suchfeld oder nach Suchen-Button Klick geladen
* Ganze Funktionalität nur bei Hauptframe möglich (wo keinen Parent angegeben ist)
* Filter-Liste sind Einträge von der @datarowstate@ Tabelle
* BSP: {{collapse(Aufklappen)
!clipboard-202304130941-rv6kk.png!
}}
<pre><code class="sql">
INSERT INTO datarowstate (drs_type, drs_code, drs_sort, drs_filtersql, drs_textnr, drs_defregister)
VALUES ('CRM_dframe_Angebote_MA_lcFrame_angebbylkn', 's30Tage', 10, 'COALESCE(_auftg.modified_date > (CURRENT_DATE - INTERVAL ''30 DAY'')::DATE, false)', 4624, false), --Letzte 30 Tage
('CRM_dframe_Angebote_MA_lcFrame_angebbylkn', 'sPosFirst', 20, '(SELECT MIN(ag_pos) FROM auftg AS _auftg WHERE _auftg.ag_nr = ag_nr) = ag_pos', 26573, true); --Nur erste Position
</code></pre>
* @drs_type@ ist der Grid-Name. Dieser wird im Edit-Modus im Popupmenü angezeigt {{collapse(Aufklappen)
!clipboard-202304130947-ms0hy.png!
}}
h2. Synchronisierung
*%{color:red}WICHTIGER HINWEIS:* Von Kunden vorgenommene Änderungen an Prodat-Dashboards können nicht zusammengeführt werden und werden bei der Synchronisierung überschrieben.%
* Dashboards werden als OPTIONS (component_options) auf den SyncServer (PRODAT-18.08) synchronisiert und stehen damit für alle Kunden zur Verfügung
{{collapse(Aufklappen)
!clipboard-202206161148-ysvqk.png!
}}
* Bei neuen Dashboards ist zusätzlich der neu erstellte Hauptmenüpunkt auf den SyncServer hochzuladen