Projekt

Allgemein

Profil

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

[E] Frank S, 12.10.2016 16:26

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