Projekt

Allgemein

Profil

3950 Dashboard » Historie » Version 37

[E] Oleg G, 21.10.2025 12:45

1 1 [E] Andre K
h1. 3950 Dashboard
2 2 [E] Andre K
3 20 [X] Steffen A
Einstiegsvideo: Y:\KUNDENDATEN\CIMPCS\Intern\Arbeitsunterlagen\Schulungsvideos\Admin\Dashboard
4
5 24 [X] Steffen A
*Tastenkombinationen*
6
7
STRG + ALT + Shift + L --> SQL LOG
8
STRG + ALT + Shift + E --> SQL Abfragen
9
STRG + ALT + Shift + A --> Admin
10
STRG + Rechte Maus auf Objekt = Administrierfunktionen
11
12
Hauptmenü ~> Alle Quellen Durchsuchen = SQL Gehirn
13
14 20 [X] Steffen A
15 18 [X] Steffen A
h2. Möglichkeiten für Kunden
16 17 [Y] Andreas F
17 18 [X] Steffen A
# Kundeneigene Erstellung von Dashboards
18
# Nutzung vorgefertigter ProdatStandardDashboards
19 17 [Y] Andreas F
# Entwicklung von kundenspezifischen Dashboards durch CIMPCS
20
21
h2. Anwendungsbeispiele
22
23
[[Dashboard Beispiele]]
24
25 2 [E] Andre K
h2. Erstellung
26
27 15 [E] Andre K
*Aufpassen:* %{color: red}beim Schließen wird nicht automatisch nach Speichern gefragt!%
28 14 [E] Andre K
29 5 [E] Andre K
* Hauptmenü-Eintrag erstellen mit *action:* @dashboard@ und *proc:* Dashboard-Kennzeichen
30
{{collapse(zum Beispiel)
31 1 [E] Andre K
!hauptmenu_dashboard.png!
32 5 [E] Andre K
}}
33
* Dashboard öffnen
34 7 [E] Andre K
* @Zahnrad@ / @Bearbeiten@
35 5 [E] Andre K
{{collapse(Aufklappen)
36
!dash_bearbeiten.png!
37 3 [E] Andre K
}}
38 7 [E] Andre K
* @Panel links@ / @Popupmenu@ / @Neue Seite erstellen@
39 6 [E] Andre K
{{collapse(Aufklappen)
40 1 [E] Andre K
!neue_seite.png!
41
}}
42 7 [E] Andre K
** und folgende Parameter eingeben:
43
*** Menu.Caption
44
*** Menu.Hint
45
*** Menu.ImageIndex (Passende Icon von USysModule/ImageListHot)
46
** die Parameter kann man später über @Panel links@ / @Popupmenu@ / @Aktuelle Seite editieren@ anpassen
47 8 [E] Andre K
** Seiten sind mit drag-n-drop miteinander kombinierbar (kann man als Baumstruktur darstellen)
48
{{collapse(zum Beispiel)
49
!tree_sites.png!
50
}}
51 10 [E] Andre K
52
h2. TileControl
53
54 9 [E] Andre K
* Editierte Seite auswählen
55
* @Zahnrad@ / @Erstellen@
56 8 [E] Andre K
{{collapse(Aufklappen)
57
!create_controls.png!
58 1 [E] Andre K
}}
59 26 [X] Marcus F
* Kontextmenü > Item bearbeiten
60 15 [E] Andre K
** 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)
61 13 [E] Andre K
** Text 1 (oben links)
62
** Text 2 (oben rechts)
63
** Text 3 (unten links)
64
** Text 4 (unten rechts)
65
** MainMenu-Link (mm_id)
66
** Font.Size(1)
67
** Font.Size(2-4)
68
** ImageIndex (Glyph = False) %{color: red}[wovon geladen / wie kann man bedienen?] Vorschlag: löschen und Image von oben ausgewählter @mm_id@ laden.%
69
** mit Schift+Linksklick kann man die Größe anpassen (werden vorgegebene Größe nacheinander gesetzt)
70
** {{collapse(Beispiel)
71 1 [E] Andre K
!tilecontrol.png!
72 10 [E] Andre K
}}
73 26 [X] Marcus F
74 10 [E] Andre K
75
h2. LayoutControl
76
77
* Editierte Seite auswählen
78
* @Zahnrad@ / @Erstellen@
79
{{collapse(Aufklappen)
80
!create_controls.png!
81
}}
82
* LayoutControl
83
* Popupmenu von LayoutControl:
84
** @Eigenschaften@: heir kann man aktuell nur die Höhe anpassen
85
** @LayoutControl-Customizer@: visuelle Layouteditor (Gruppierung, Positionierung, Ausrichtung, Umbenennung usw)
86 12 [E] Andre K
87 19 [Y] Andreas F
Offen: wie erzeugt man ein Split Element?
88
89 12 [E] Andre K
h3. Grid
90
91
* @Hinzufügen@ / @Grid@
92
* Popupmenu von Grid
93 1 [E] Andre K
{{collapse(Aufklappen)
94 10 [E] Andre K
!grid_popup.png!
95
}}
96 12 [E] Andre K
** Erste zwei Zeilen: automatisch generierte Namen von Frame und Layout zur Info
97
** bei SQL kann man Standard-SQL-Name eingeben oder direkte SQL-Statement:
98 10 [E] Andre K
{{collapse(zum Beispiel)
99
<pre><code class="sql">
100 11 [E] Andre K
SELECT
101
  dbrid,
102
  ak_nr,
103
  ak_bez 
104
FROM
105
  art 
106 1 [E] Andre K
LIMIT 5
107 10 [E] Andre K
</code></pre>
108
109 1 [E] Andre K
!grid_sql.png!
110 11 [E] Andre K
}}
111 12 [E] Andre K
** @Parent anpassen@ für Master-Detail-Beziehungstabellen geeignet, 
112 11 [E] Andre K
{{collapse(zum Beispiel)
113
Erstellen zweite LayoutControl mit Grid
114
<pre><code class="sql">
115
SELECT
116
  r_descr,
117
  r_unit,
118
  r_value 
119
FROM
120
  recnokeyword
121 1 [E] Andre K
WHERE
122
  r_dbrid = :dbrid
123
</code></pre>
124
und setzen Beziehung zum erstem Frame
125
!grid-master-detail.png!
126
}}
127 37 [E] Oleg G
* Suche per Suchbegrif 
128
{{collapse(SQL)
129
<pre><code class="sql">
130
SELECT
131
  [...]
132
FROM adk
133
WHERE (:edSearch = '' OR tadk.tsvector(adk) @@ to_tsquery('simple', :edSearch || ':*'));   --- Suche
134
</code></pre>
135
}}
136 12 [E] Andre K
137
h3. Chart
138
139
* @Hinzufügen@ / @Chart@
140
* Popupmenu von Chart 
141 13 [E] Andre K
** Parent anpassen und SQL analor Grid (siehe oben)
142
** Eigenschaften:
143 12 [E] Andre K
{{collapse(Aufklappen)
144 1 [E] Andre K
!chart_popup.png!
145
}}
146 14 [E] Andre K
*** GroupCaption
147
*** x[x] (Bezeichnung und Farbe definieren)
148
*** y[y1](Bezeichnung und Farbe definieren)
149
*** [y2] (Bezeichnung und Farbe definieren) 
150
*** [y3] (Bezeichnung und Farbe definieren)
151 12 [E] Andre K
*** ToolBox (um Diagrammdarstellung im Laufzeit zu ändern)
152
*** ChartType ("Beschreibung":https://docs.devexpress.com/AspNet/15880/aspnet-webforms-controls/chart-control/concepts/creating-charts/2d-chart-types)
153
*** LegendPosition
154 16 [E] Andre K
** Beispiel: {{collapse(Aufklappen)
155
<pre><code class="sql">
156
SELECT
157
 ag_bdat,
158
 SUM(ag_brutto_basis_w) AS sum_brutto,
159
 SUM(ag_netto_basis_w) AS sum_netto
160
FROM
161
 auftg
162
WHERE
163
 ag_astat='E'
164
AND
165
 NOT ag_done
166
GROUP BY
167
 ag_bdat, ag_lkn
168
ORDER BY
169
 sum_netto DESC
170
LIMIT 8
171
</code></pre>
172
173
*Eigenschaften:*
174
!chart_eigenschaften.png!
175
176
*Diagramm:*
177
!chart_ergebniss.png!
178 31 [E] Andre K
}}
179
180 34 [E] Andre K
* *%{color:red}WICHTIGER HINWEIS:*% seit 22.05.2025 wurde bei Charts die Eigenschaft *_YSeries* implementiert, wenn Sie mit neuer Version alte Diagrammen anpassen möchten, sollen die als veraltete alte Eigenschaften verwendet werden, die orange markiert sind (für neue Version werden die komplett ignoriert)
181 31 [E] Andre K
{{collapse(Aufklappen)
182
!clipboard-202505221244-gd0rx.png!
183
}}
184 21 [X] Marvin P
185
h3. Groups
186
187
Groups können sowohl als statische Gruppierung, als auch als Registerfenster verwendet werden.
188
189
~> Layout-Control Customizer > Kontextmenü der Gruppe > Layout Direction
190 22 [X] Philipp Wolak
191 23 [X] Philipp Wolak
h2. Einstiegsfilter
192
193
* Daten werden erst nach Enter-Taste in Suchfeld oder nach Suchen-Button Klick geladen
194 29 [X] Steffen A
{{collapse(Aufklappen)
195 28 [X] Steffen A
!clipboard-202503210910-uyhpv.png!
196 29 [X] Steffen A
}}
197 28 [X] Steffen A
* Ganze Funktionalität nur bei Hauptframe möglich (wo keinen Parent angegeben ist)
198 29 [X] Steffen A
* Aktivieren für das Grid: {{collapse(Aufklappen)
199 28 [X] Steffen A
!clipboard-202503210911-j19c7.png!
200
}}
201 23 [X] Philipp Wolak
* Filter-Liste sind Einträge von der @datarowstate@ Tabelle
202
* BSP: {{collapse(Aufklappen)
203
!clipboard-202304130941-rv6kk.png!
204
}}
205
<pre><code class="sql">
206
INSERT INTO datarowstate (drs_type, drs_code, drs_sort, drs_filtersql, drs_textnr, drs_defregister)
207
                  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
208
                         ('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
209
</code></pre>
210
* @drs_type@ ist der Grid-Name. Dieser wird im Edit-Modus im Popupmenü angezeigt {{collapse(Aufklappen)
211
!clipboard-202304130947-ms0hy.png!
212
}}
213
214 22 [X] Philipp Wolak
h2. Synchronisierung
215
216 30 [E] Andre K
*%{color:red}WICHTIGER HINWEIS:*% Von Kunden vorgenommene Änderungen an Prodat-Dashboards können nicht zusammengeführt werden und werden bei der Synchronisierung überschrieben.
217 22 [X] Philipp Wolak
218
* Dashboards werden als OPTIONS (component_options) auf den SyncServer (PRODAT-18.08) synchronisiert und stehen damit für alle Kunden zur Verfügung
219
* Bei neuen Dashboards ist zusätzlich der neu erstellte Hauptmenüpunkt auf den SyncServer hochzuladen
220 35 [X] Christoph Wellm
221
h2. Standard-SQL - Filter
222
223
Es besteht die Möglichkeit die Dashboard-Tabellen mittels StandardSQL zu befüllen, oder diese als Grundlage für eine weitere SQL-Query zu nehmen:
224
225
!standard_sql_wrap.png!
226
227
Dazu geht man zunächst in den Bearbeiten-Modus (1), stellt dann eine StandardSQL ein, und kann dann (optional, 2) diese als Grundlage für weitere SQL-Bearbeitung nehmen:
228
229
<pre><code class="sql">
230
SELECT * FROM (&standard_sql
231
) AS standard_sql
232
</code></pre>
233
234
usw. Es ist zu berücksichtigen, dass für die initiale *standard_sql* - Query die Syntax genau so (inklusive Zeilenumbrüchen) aussehen muss.
235 36 [X] Christoph Wellm
236
237
*Achtung*: Der _AutoCheck_ wird beim Term _&standard_sql_ fehlschlagen (intern definiertes Makro) - die Fehlermeldung an dieser Stelle kann man hier aber ignorieren.