首页 > 解决方案 > 您可以在 Logi 报告中应用条件格式吗?

问题描述

在网站 Logi Report 中,我有一个 .lgx 文件,其中定义了两个表列。它们是“先前值”和“新值”,它们的目的是在给定记录中的多个字段之一发生更改时显示旧值和新值。请参阅下面的 xml:

<DataTableColumn ID="colchange_field_type" Header="Updated Field Type">
     <Label ID="lblchange_field_type" Caption="@Data.changeFieldType~" />
     <DataColumnSort DataColumn="change_field_type" />
</DataTableColumn>
<DataTableColumn ID="colprevious_value" Header="Previous Value" Class="ThemeAlignRight">
     <Label ID="lblprevious_value" Caption="@Data.previousValue~" Format="General Number" />
     <DataColumnSort DataColumn="previous_value" />
</DataTableColumn>
<DataTableColumn ID="colcurrent_value" Header="Current Value" Class="ThemeAlignRight">
     <Label ID="lblcurrent_value" Caption="@Data.currentValue~" Format="General Number" />
     <DataColumnSort DataColumn="current_value" />
</DataTableColumn>

可以看出,它们都将“格式”属性设置为“通用编号”。问题是对于每一行,@Data.previousValue~ 和 @Data.currentValue~ 可以是几种数据类型(日期、货币、文本、通用数字或其他)之一。

有没有办法根据@Data.changeFieldType~有条件地设置格式属性?现在,只要值是日期,在浏览器屏幕上,它就会在单元格中显示为拼写错误的文本 - “General Nu0ber”。

我在 Logi 文档中看到了一个讨论“ConditionalClass”元素的页面,但应用 CSS 类并不是我真正想要做的。

标签: xml

解决方案


我意识到这个问题是 6 个月前提出的,但如果其他人有类似的问题:您绝对可以使用任何@Local,@Request或其他@Data标记来动态填充Format

使用您提供的示例,如果您的 DataLayer 如下所示:

+-----------------+---------------+--------------+
| changeFieldType | previousValue | currentValue |
+------------------------------------------------+
|    Short Date   |   2020-04-14  |  2020-10-13  |
+------------------------------------------------+
| ###,###,##0.00  |     12000     |     24000    |
+-----------------+---------------+--------------+

那么您的代码将如下所示:

<DataTableColumn ID="colprevious_value" Header="Previous Value" Class="ThemeAlignRight">
     <Label ID="lblprevious_value" Caption="@Data.previousValue~" Format="@Data.changeFieldType~" />
     <DataColumnSort DataColumn="previous_value" />
</DataTableColumn>
<DataTableColumn ID="colcurrent_value" Header="Current Value" Class="ThemeAlignRight">
     <Label ID="lblcurrent_value" Caption="@Data.currentValue~" Format="@Data.changeFieldType~" />
     <DataColumnSort DataColumn="current_value" />
</DataTableColumn>

你的结果将是:

+-------------------------------+
| Previous Value|  Current Value|
+-------------------------------+
|      4/14/2020|     10/13/2020|
+-------------------------------+
|      12,000.00|      24,000.00|
+-------------------------------+

推荐阅读