Projekt

Allgemein

Profil

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

[X] Daniel S, 12.10.2016 16:13

1 1 [X] Lutz G
h1. Sonderspalten in Grids-  F2-Fenstern
2
3
h1. CimColor per SQL
4
5
Auflistung weiterer Steuerfelder : [[Sonderfelder im SQL]]
6
bekannte CimFarb-Konstanten : [[CimColor]] (z.B. CimRed)
7
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
* F2s
22
* 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
+ TCimColumnHandler in Oberfläche, Propertie zuweisen, EnableColor
27
+ TCimColumnHandler.InitColumns nach dem Öffnen des DataSet aufrufen
28
+ Grid.OnCustomDrawCell mit "CimColumnHandlerFSL.RowStyle(ACanvas, AViewInfo);" "Bestücken"
29 1 [X] Lutz G
30
Beispiel:
31
<pre><code class="sql">
32
SELECT 1, true AS CimGreen, false AS CimYellow, false AS CimRed  -- Grün
33
UNION
34
SELECT 2, false, true, false  -- Gelb
35
UNION
36
SELECT 3, false, false, true  -- Rot
37
UNION
38
SELECT 4, true, true, false  -- Grün (Gelb überstimmt)
39
UNION
40
SELECT 5, true, true, true  -- Grün (Gelb und Rot überstimmt)
41
42
ORDER BY 1
43
</code></pre>
44
45
46
47
h1. Ausführliche Beschreibung
48
49
{{collapse(Aufklappen)
50
51
h2. mögliche Felder
52
53
<pre>
54
CimRed CimYellow CimGreen CimBlue CimBrown CimGray
55
CimColor
56
CimBold CimItalic
57
CimFontRed CimFontGreen
58
CimFormat
59
</pre>
60
61
* Gültigkeit: ganzzeilig
62
* Gültigkeit: Spalte oder Zelle mit Feldname als Präfix "field_format" (z.B. ak_nr_cimred)
63
* Auswertung: das erste Vorkommen (ungleich NULL, FALSE und '') hat immer Vorrang
64
** es gilt die Erstellungsreihenfolge der Columns -> stimmt aber meistens mit der Reihenfolge der SQL-Felder überein (Daten aus Cache des Grids)
65
* doppelt gejoint möglich (cimred, cimred_1, cimred_2 bis cimred_3)
66
67
68
69
h2. Parameter für CimFormat (das Präfix "Cim" kann entfallen)
70
71
<pre>
72
CimRed CimYellow CimGreen CimBlue CimBrown CimGray + CimDarkRed CimOrange CimDarkOrange CimLightBlue CimDarkBlue
73
clBlack clMaroon clGreen clOlive clNavy clPurple clTeal clGray clSilver clRed clLime clYellow clBlue clFuchsia clAqua clLtGray clDkGray clWhite clMoneyGreen clSkyBlue clCream clMedGray clInfoBk clHotLight
74
CimColor
75
CimBold CimItalic
76
CimFontRed CimFontGreen
77
CimFontName/Font
78
CimFontSize/Size
79
</pre>
80
81
* Mehrere Angaben per *Komma* getrennt.
82
* @'cimred=True'@, @'cimred'@ (nur für Booleanwerte und gilt als True) oder @'cimred=:ag_done'@ (Referenz auf Booleanspalte)
83
* ebefalls ganzzeilig und zellenweise möglich ("field_format -> ak_nr_cimred=True)
84
* ungültige/unbekannte Formatnamen werden ignoriert (nichts ins Log geschrieben, da je ein Aufruf pro gezeichneter Zelle)
85
86
87
88
h2. Werte für CimColor
89
90
* @CimRed CimYellow CimGreen CimBlue CimGray + CimOrange CimDarkOrange CimDarkRed CimDarkBlue@
91
* @clBlack clGreen clGray clSilver clRed@ uvm. (siehe http://docwiki.embarcadero.com/Libraries/XE7/de/Vcl.Graphics.TColor)
92
* @'#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/)
93
* @'$BBGGRR'@, @'Dezimal'@ oder @Dezimal@ (TColor/Integer/Float)
94
* @x'BBGGRR'::INT@ = DB-seitig HEX zu INT konvertiert
95
96
97
98
h2. Datentypen der DB-Felder
99
100
* CimColor/Color = Integer oder Text
101
* CimFormat = Text
102
* CimFontName = Text (z.B. Arial oder Microsoft Sans Serif -> siehe charmap.exe)
103
* CimFontSize = Integer (Default = 9)
104
* alles Andere = Boolean oder ':field' (verlinkung mit anderem Booleanfeld)
105
106
107
108
h2. Beispiele
109
110
* Reihenfolge
111
112
<pre><code class="sql">
113
SELECT 'rot ' AS a, true AS cimred, true AS cimgreen;
114
115
SELECT 'grün' AS a, true AS cimgreen, true AS cimred;
116
</code></pre>
117
118
* Zeile oder Zelle/Spalte
119
120
<pre><code class="sql">
121
SELECT 1 AS a, 2 AS b, 3 AS c, true AS cimred, false AS b_cimred  -- ganze Zeile
122
UNION
123
SELECT 1 AS a, 2 AS b, 3 AS c, false AS cimred, true AS b_cimred  -- nur B
124
</code></pre>
125
126
* Konkatenieren für CimFormat
127
128
<pre><code class="sql">
129
SELECT 1 AS a, concat_ws(',',
130
  'cimgreen',
131
  IfThen(true, 'bold', null),
132
  IfThen(false, 'fontsize=4', null)
133
) AS CimFormat --'cimgreen,bold' AS CimFormat
134
</code></pre>
135
136
* Alles das Gleiche (mehrere Varianten zur Übergabe von CimRed)
137
138
<pre><code class="sql">
139
SELECT 1 AS aaa, true AS xxx,
140
  true AS cimred, --xxx AS cimred,
141
  ':xxx' AS cimred,
142
  concat_ws(',',
143
    'red',
144
    'cimred',
145
    'cimred=True',
146
    'cimred=:xxx',
147
    IfThen(true, 'cimred', null) --IfThen(xxx, 'cimred', null)
148
  ) AS cimformat
149
</code></pre>
150
151
* Definition der Farbwerte
152
153
<pre><code class="sql">
154
SELECT
155
  'A' AS a, '$0000FF' AS a_cimcolor, 
156
  'B' AS b, x'0000FF'::INT AS b_cimcolor,  -- 255 AS b_cimcolor
157
  'C' AS c, '#FF0000' AS c_cimcolor,
158
  'D' AS d, 'clRed' AS d_cimcolor,
159
  'E' AS e, 'CimRed' AS e_cimcolor,
160
  'Z' AS z, NULL::INT AS z_cimcolor
161
</code></pre>
162
163
* Megademo
164
!CCHMegademo.png!
165
166
<pre><code class="sql">
167
SELECT
168
  a, b, c, a=1 AS CimRed, 'Size=5' AS a_CimFormat,
169
  b=5 AS b_CimBlue, IfThen(b=8, x'FFAAFF'::INT, null)::INT AS b_CimColor,  --IfThen macht aus dem INT ein DECIMAL
170
  'cimgreen,bold' AS c_CimFormat
171
FROM (
172
  SELECT 1 AS a, 2 AS b, 3 AS c
173
  UNION
174
  SELECT 4, 5, 6
175
  UNION
176
  SELECT 7, 8, 9
177
) AS x
178
ORDER BY a
179
</code></pre>
180
181
* Megademo (vollständig)
182
183
<pre><code class="sql">
184
SELECT
185
  a, b, c,
186
187
  a=1 AS CimRed, a=1 AS CimYellow, false AS CimGreen, false AS CimBlue, false AS CimGray, null::INT AS CimColor,
188
  false AS CimBold, false AS CimItalic, false AS CimFontRed, false AS CimFontGreen,
189
  null::VARCHAR AS CimFormat,
190
191
  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,
192
  false AS a_CimBold, false AS a_CimItalic, false AS a_CimFontRed, false AS a_CimFontGreen,
193
  'Size=5' AS a_CimFormat,
194
195
  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,
196
  false AS b_CimBold, false AS b_CimItalic, false AS b_CimFontRed, false AS b_CimFontGreen,
197
  null AS b_CimFormat,
198
199
  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,
200
  false AS c_CimBold, false AS c_CimItalic, false AS c_CimFontRed, false AS c_CimFontGreen,
201
  concat_ws(',', 'cimgreen', IfThen(true, 'bold', null)) AS c_CimFormat --'cimgreen,bold' AS c_CimFormat
202
FROM (
203
  SELECT 1 AS a, 2 AS b, 3 AS c
204
  UNION
205
  SELECT 4, 5, 6
206
  UNION
207
  SELECT 7, 8, 9
208
) AS x
209
ORDER BY a
210
</code></pre>
211
212
}}
213
214
---