Projekt

Allgemein

Profil

410 Sonderspalten in Grids- F2-Fenstern » Historie » Version 13

[E] Frank S, 12.02.2019 16:40

1 9 [E] Frank S
h1. Sonderspalten in Grids- / F2-Fenstern
2 1 [X] Lutz G
3
h1. CimColor per SQL
4
5 7 [E] Frank S
Auflistung weiterer Steuerfelder : [[prodat-v-x:Sonderfelder im SQL]]
6
bekannte CimFarb-Konstanten : [[prodat-v-x:CimColor]] (z.B. CimRed)
7 1 [X] Lutz G
Entwicklungs-Tickets : {{collapse(Aufklappen)
8
#6977 Weitere Farben zur Hervorhebung: CimColor in Grids
9
#5495 CIM-Farben in Assistenten und dynam. Oberflächen verfügbar machen
10
#6109 Joined Columns in CimColumnHandler integrieren
11
}} 
12
13
Farben per SQL in Prodat werden per Spaltenname und BOOL an bestimmten Oberflächen erzeugt.
14
Mehrere gleichartige Spaltenbezeichnungen werden interpretiert und bei True dargestellt.
15
-Gelb gewinnt vor Grün, Rot gewinnt vor Gelb und Grün.- Feldreihenfolge: der Erste mit True gewinnt
16
17
Verfügbare Farben:
18
* CimRed CimYellow CimGreen CimBlue CimBrown CimGray
19
20
Verfügbare Oberflächen:
21 4 [E] Frank S
* F2 und F4
22 1 [X] Lutz G
* tabellarische Oberflächen (EditTable)
23
* Assistenten (Stand 06.2016: bei Einigen schon vorhanden, aber soll demnächst bei Allen dran > http://redmine.prodat-sql.de/issues/5495)
24
* SQL - abfragen
25 2 [X] Daniel S
* und überall, wo der *TCimColumnHandler* angebunden ist
26 3 [E] Frank S
** TCimColumnHandler in Oberfläche, Propertie zuweisen, EnableColor
27 10 [X] Jens M
** *TCimColumnHandler.InitColumns* nach dem Öffnen des DataSet aufrufen
28 3 [E] Frank S
** Grid.OnCustomDrawCell mit "CimColumnHandlerFSL.RowStyle(ACanvas, AViewInfo);" "Bestücken"
29
30
In weiter Oberflächen einbauen:
31
* [[prodat-v-x:CimColumnHandler]] auf Form legen
32
** GridView und Query angeben
33
** in Options das EnableColor aktivieren
34
* Events anhängen
35
** nach Query.Load > @CimColumnHandler1.InitColumns;@
36
** in GridView.OnCustomDrawCell > @CimColumnHandler1.RowStyle(ACanvas, AViewInfo);@
37 11 [X] Jens M
* ggf. die Spalte (z.B.: @abc_cimred@) mit *ins Grid* aufnehmen (Visibles false)
38 1 [X] Lutz G
39 12 [X] Daniel S
Beispiel: ganze Zeile wird gefärbt
40 1 [X] Lutz G
<pre><code class="sql">
41
SELECT 1, true AS CimGreen, false AS CimYellow, false AS CimRed  -- Grün
42
UNION
43
SELECT 2, false, true, false  -- Gelb
44
UNION
45
SELECT 3, false, false, true  -- Rot
46
UNION
47
SELECT 4, true, true, false  -- Grün (Gelb überstimmt)
48
UNION
49
SELECT 5, true, true, true  -- Grün (Gelb und Rot überstimmt)
50
51
ORDER BY 1
52
</code></pre>
53 12 [X] Daniel S
54
55
Beispiel: ganze einzelne Spalte wird gefärbt
56
<pre><code class="sql">
57
SELECT ld_auftg, true AS ld_auftg_CimGreen, ld_pos FROM auftg LIMIT 1
58
</code></pre>
59
60 1 [X] Lutz G
61
62
63
h1. Ausführliche Beschreibung
64
65
{{collapse(Aufklappen)
66
67
h2. mögliche Felder
68
69
<pre>
70
CimRed CimYellow CimGreen CimBlue CimBrown CimGray
71
CimColor
72 6 [E] Frank S
CimBold CimItalic CimUnterline CimStrikeOut
73 13 [E] Frank S
CimFontRed CimFontGreen CimFontGray
74 1 [X] Lutz G
CimFormat
75
</pre>
76
77
* Gültigkeit: ganzzeilig
78
* Gültigkeit: Spalte oder Zelle mit Feldname als Präfix "field_format" (z.B. ak_nr_cimred)
79
* Auswertung: das erste Vorkommen (ungleich NULL, FALSE und '') hat immer Vorrang
80
** es gilt die Erstellungsreihenfolge der Columns -> stimmt aber meistens mit der Reihenfolge der SQL-Felder überein (Daten aus Cache des Grids)
81
* doppelt gejoint möglich (cimred, cimred_1, cimred_2 bis cimred_3)
82
83
84
85
h2. Parameter für CimFormat (das Präfix "Cim" kann entfallen)
86
87
<pre>
88
CimRed CimYellow CimGreen CimBlue CimBrown CimGray + CimDarkRed CimOrange CimDarkOrange CimLightBlue CimDarkBlue
89
clBlack clMaroon clGreen clOlive clNavy clPurple clTeal clGray clSilver clRed clLime clYellow clBlue clFuchsia clAqua clLtGray clDkGray clWhite clMoneyGreen clSkyBlue clCream clMedGray clInfoBk clHotLight
90
CimColor
91 6 [E] Frank S
CimBold CimItalic CimUnterline CimStrikeOut
92 13 [E] Frank S
CimFontRed CimFontGreen CimFontGray
93 1 [X] Lutz G
CimFontName/Font
94
CimFontSize/Size
95
</pre>
96
97
* Mehrere Angaben per *Komma* getrennt.
98
* @'cimred=True'@, @'cimred'@ (nur für Booleanwerte und gilt als True) oder @'cimred=:ag_done'@ (Referenz auf Booleanspalte)
99
* ebefalls ganzzeilig und zellenweise möglich ("field_format -> ak_nr_cimred=True)
100
* ungültige/unbekannte Formatnamen werden ignoriert (nichts ins Log geschrieben, da je ein Aufruf pro gezeichneter Zelle)
101
102
103
104
h2. Werte für CimColor
105
106
* @CimRed CimYellow CimGreen CimBlue CimGray + CimOrange CimDarkOrange CimDarkRed CimDarkBlue@
107
* @clBlack clGreen clGray clSilver clRed@ uvm. (siehe http://docwiki.embarcadero.com/Libraries/XE7/de/Vcl.Graphics.TColor)
108
* @'#RRGGBB'@ oder @'#RGB'@ (HTML/CSS, siehe Tabelle mit RGB-Farbwerten https://meta.wikimedia.org/wiki/Wiki_color_formatting_help http://html-color-codes.info/webfarben_hexcodes/)
109
* @'$BBGGRR'@, @'Dezimal'@ oder @Dezimal@ (TColor/Integer/Float)
110
* @x'BBGGRR'::INT@ = DB-seitig HEX zu INT konvertiert
111
112
113
114
h2. Datentypen der DB-Felder
115
116
* CimColor/Color = Integer oder Text
117
* CimFormat = Text
118
* CimFontName = Text (z.B. Arial oder Microsoft Sans Serif -> siehe charmap.exe)
119
* CimFontSize = Integer (Default = 9)
120
* alles Andere = Boolean oder ':field' (verlinkung mit anderem Booleanfeld)
121
122
123
124
h2. Beispiele
125
126
* Reihenfolge
127
128
<pre><code class="sql">
129
SELECT 'rot ' AS a, true AS cimred, true AS cimgreen;
130
131
SELECT 'grün' AS a, true AS cimgreen, true AS cimred;
132
</code></pre>
133
134
* Zeile oder Zelle/Spalte
135
136
<pre><code class="sql">
137
SELECT 1 AS a, 2 AS b, 3 AS c, true AS cimred, false AS b_cimred  -- ganze Zeile
138
UNION
139
SELECT 1 AS a, 2 AS b, 3 AS c, false AS cimred, true AS b_cimred  -- nur B
140
</code></pre>
141
142
* Konkatenieren für CimFormat
143
144
<pre><code class="sql">
145
SELECT 1 AS a, concat_ws(',',
146
  'cimgreen',
147
  IfThen(true, 'bold', null),
148
  IfThen(false, 'fontsize=4', null)
149
) AS CimFormat --'cimgreen,bold' AS CimFormat
150
</code></pre>
151
152
* Alles das Gleiche (mehrere Varianten zur Übergabe von CimRed)
153
154
<pre><code class="sql">
155
SELECT 1 AS aaa, true AS xxx,
156
  true AS cimred, --xxx AS cimred,
157
  ':xxx' AS cimred,
158
  concat_ws(',',
159
    'red',
160
    'cimred',
161
    'cimred=True',
162
    'cimred=:xxx',
163
    IfThen(true, 'cimred', null) --IfThen(xxx, 'cimred', null)
164
  ) AS cimformat
165
</code></pre>
166
167
* Definition der Farbwerte
168
169
<pre><code class="sql">
170
SELECT
171
  'A' AS a, '$0000FF' AS a_cimcolor, 
172
  'B' AS b, x'0000FF'::INT AS b_cimcolor,  -- 255 AS b_cimcolor
173
  'C' AS c, '#FF0000' AS c_cimcolor,
174
  'D' AS d, 'clRed' AS d_cimcolor,
175
  'E' AS e, 'CimRed' AS e_cimcolor,
176
  'Z' AS z, NULL::INT AS z_cimcolor
177
</code></pre>
178
179
* Megademo
180
!CCHMegademo.png!
181
182
<pre><code class="sql">
183
SELECT
184
  a, b, c, a=1 AS CimRed, 'Size=5' AS a_CimFormat,
185
  b=5 AS b_CimBlue, IfThen(b=8, x'FFAAFF'::INT, null)::INT AS b_CimColor,  --IfThen macht aus dem INT ein DECIMAL
186
  'cimgreen,bold' AS c_CimFormat
187
FROM (
188
  SELECT 1 AS a, 2 AS b, 3 AS c
189
  UNION
190
  SELECT 4, 5, 6
191
  UNION
192
  SELECT 7, 8, 9
193
) AS x
194
ORDER BY a
195
</code></pre>
196
197
* Megademo (vollständig)
198
199
<pre><code class="sql">
200
SELECT
201
  a, b, c,
202
203
  a=1 AS CimRed, a=1 AS CimYellow, false AS CimGreen, false AS CimBlue, false AS CimGray, null::INT AS CimColor,
204
  false AS CimBold, false AS CimItalic, false AS CimFontRed, false AS CimFontGreen,
205
  null::VARCHAR AS CimFormat,
206
207
  false AS a_CimRed, false AS a_CimYellow, false AS a_CimGreen, false AS a_CimBlue, false AS a_CimGray, null::INT AS a_CimColor,
208
  false AS a_CimBold, false AS a_CimItalic, false AS a_CimFontRed, false AS a_CimFontGreen,
209
  'Size=5' AS a_CimFormat,
210
211
  false AS b_CimRed, false AS b_CimYellow, false AS b_CimGreen, b=5 AS b_CimBlue, b=5 AS b_CimGray, IfThen(b=8, x'FFAAFF'::INT, null) AS b_CimColor,
212
  false AS b_CimBold, false AS b_CimItalic, false AS b_CimFontRed, false AS b_CimFontGreen,
213
  null AS b_CimFormat,
214
215
  false AS c_CimRed, false AS c_CimYellow, false AS c_CimGreen, false AS c_CimBlue, false AS c_CimGray, null::INT AS c_CimColor,
216
  false AS c_CimBold, false AS c_CimItalic, false AS c_CimFontRed, false AS c_CimFontGreen,
217
  concat_ws(',', 'cimgreen', IfThen(true, 'bold', null)) AS c_CimFormat --'cimgreen,bold' AS c_CimFormat
218
FROM (
219
  SELECT 1 AS a, 2 AS b, 3 AS c
220
  UNION
221
  SELECT 4, 5, 6
222
  UNION
223
  SELECT 7, 8, 9
224
) AS x
225
ORDER BY a
226
</code></pre>
227
228
}}
229
230
---