DataWindows
The UI settings of DataWindow set by the expression or the
Modify method have higher priorities than the theme file; except
for the border and resizable properties whose settings in the
painter have higher priorities than the theme file.
What can be set by the
theme
Background color and font color:
-
When “background-color-enabled” is true in the theme
file, the background color in the theme file takes effect;
when “background-color-enabled” is false in the theme file,
the background color in the painter takes effect. -
For the background color and font color of Column, Text,
Computed Field, and GroupBox controls, the settings in the
expression or the Modify method have higher priorities than
the theme file. The settings in the painter have no
effect. -
For the Header of Grid and CrossTab DataWindows, the
background of the Text control is transparent and the
background color of the Header band is determined by the theme
file.
Border:
-
For the DataWindow border property, the settings in the
painter have higher priorities than the theme file.
Dynamically setting the border property at runtime in the
script will not take effect. -
When the TitleBar property is disabled and the Border
property is enabled in the painter, border is rendered using
the settings in the theme file; when both the TitleBar
property and the Border property are disabled in the painter,
no border is rendered (the theme file has no effect to the
DataWindow title bar as well as its border). -
For controls in the DataWindow object, when “border”=0
in the theme file, the visibility of the border is determined
by the Border setting in the painter; if the Border setting is
selected in the painter, the border is displayed (with the
style of StyleBox!) and the border color can be set in the
theme file; when “border”=1 in the theme file, controls in the
DataWindow object will have StyleBox! border, regardless of
the border settings in the painter; when “border”=2 in the
theme file, controls in the DataWindow object will not have
border, regardless of the border settings in the
painter.
Resizable:
-
For the Resizable property, the settings in the painter
have higher priorities than the theme file: when enabled in
the painter, DataWindow is not flattened; when disabled in the
painter, DataWindow is flattened. Dynamically setting the
Resizable property at runtime in the script will not take
effect.
Presentation styles:
-
The controls in the DataWindow are configured
respectively in the theme file, except for the Column, Text
and Computed Field controls in the Grid and Crosstab
DataWindow which are configured under the “grid-style” and
“cross-style” in the theme file. -
The DataWindow selected row is determined by the theme
file, which are configured under the “cross-style” for the
Crosstab DataWindow, or configured under the “grid-style” for
DataWindows of other presentation styles.
What cannot be set by the
theme
-
The theme is not effective to the DataWindow with the
following presentation style: Label, Composite, OLE 2.0, and
RichText. -
The theme is not effective to the DataWindow title
bar. -
The theme is not effective to the DataWindow Button
control if the button displays a picture (system picture or
custom picture). -
If a DataWindow control is dynamically created, it will
be first rendered by the theme file (rather than the
definition in the Create statement), or changed later by the
property expression in the painter or the Modify method in the
script. -
The color of the DataWindow band (except for the Header
of Grid and Crosstab DataWindows) is not configurable in the
theme file; it is determined by the settings in the
painter. -
When printing or saving the DataWindow as PDF file, the
theme will not take effect, except for the Graph
DataWindow. -
The border style is always StyleBox!. The following
border styles are unsupported: StyleLowered!, StyleRaised!,
and StyleShadowBox. -
The CheckBox and RadioButton control on a DataWindow
Column will have no border. -
The font related properties (except font color) cannot
be set by the theme file. -
If DataWindow HSplitScroll is set to true, the height of
HScrollBar groove and the width of VScrollBar groove cannot be
set by the theme file; they will have no effect and will use
the default values.
Workarounds
The following workaround takes the Text control for
DataWindow as an example. If a theme is applied, the font color,
background color, and border of Text is set in the theme file. If
you want to set different background color for the Text controls
in the header band and the detail band, you can set it in the
expression or the Modify method.
In the expression:
|
1 2 3 4 |
string ls_create,ls_error dw_1.dataobject = "d_test2" ls_create = 'create text(band=detail alignment="2" text="create" border="2" color=" 65280~t 65280" x="100" y="200" height="116" width="485" html.valueishtml="0" name=t_1 visible="1" font.face="MS Sans Serif" font.height="-16" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color=" 255~tif(1<>1,rgb(0,0,255),rgb(255,0,0))" )' ls_error = dw_1.modify(ls_create) |
In the Modify method:
|
1 |
ls_error =dw_1.modify("t_1.color=' 65280'") |