我有一个像这样的交叉表
Col1 Col2 Col3
Row1 1 0 1
Row2 0 1 1
Row3 1 0 0
Row4 0 0 1
这是为了在仓库和销售点之间移动库存。因此,如果第1列显示仓库的库存,而第2列和第3列是出口,则第2行和第4行的产品不可用,并且不应显示行。
但是,如果Col1和Col2是仓库,而Col3是出口,则仅第4行不可用,因此应予以禁止。
仓库的ID小于X,而商店的ID大于X。我发现了这个solution,并尝试通过使用代码来应用它:
If {Stock}=0 and {VENUE_ID} < X Then
{%DB_NULL}
Else
{Stock}
但是该代码仅适用于VENUE_ID小于X的Stock。因此,仅当所有Stock值都等于0时,行才被禁止。 如果有一种方法可以使一行中的所有单元格都显示0值,那么将被抑制。 正确的方法是哪种,我应该继续尝试并尝试修改代码,以便一行中的其他单元格依赖于指定的单元格,还是应该在其他地方查看?
我要实现的目标是否有更好的解决方案?
答案 0 :(得分:0)
我通过修改SQL Server端的视图解决了我的问题。如果有人遇到相同问题,请执行以下步骤:
1在我从CR调用的SQL视图中添加另一列。该列存储仓库库存的价值。在将仓库和商店的所有库存值都存储在一列之前。
2使用以下代码创建一个字段{@Warehouse_Stock}:
If {Warehouse_Stock}=0 Then
{%DB_NULL}
Else
{Stock}
3将{@Warehouse_Stock}字段添加到交叉表的行组
4创建另一个字段{@Shop_stock}并添加代码
If {Stock}=0 Then
{%DB_NULL}
ELSE IF {@Warehouse_stock} = 0 THEN
{%DB_NULL}
Else
{Stock}
5将{@Shop_stock}添加到交叉表作为摘要字段
6在“交叉表专家”中,转到“自定义样式”选项卡,选择@Warehouse_stoc行,然后选中“隐藏空行”复选框。
这对我有用。希望该解决方案也能对其他人有所帮助。