image - Navision SSRS IIF 在为 TRUE 时执行 Else?
问题描述
(改写问题)
我无法在页脚中显示图像。问题是,我尝试将图像从数据库转换为 Base64 字符串。如果获取图像正在工作,但如果在 db 中为空值,则文本字段将显示 #ERROR。
IIF(IsNothing(Fields!Company_Picture.Value), "", Convert.ToBase64String(Fields!Company_Picture.Value))
我预计在 IsNothing = True 的情况下不会执行 else 树。但在报告中,如果没有图像,则文本字段始终显示#ERROR。
解决方案是:
Public Function Base64String(ByVal img() as byte)
if not isNothing(img) then
Return Convert.ToBase64String(img)
end if
Return ""
end function
谢谢大家 :-)
---首先尝试解决我的问题,但它并没有完全解决主要问题---
我在报告代码部分共享 Data1 作为对象
Public Function GetData(Num as Integer, Group as integer) as Object
if Group = 1 then
Return Cstr(Choose(Num, Split(Cstr(Data1),Chr(177))))
End If
End
和相同的设置数据。
在数据库中,我有一个存储为 blob 的图像。报告中的直接显示正在工作。现在我必须在报告的页脚中显示图像。我制作了一个表格,在一个单元格内我使用隐藏的表达式将图像插入到对象中。
这是现在的问题。我试着用
Code.SetData(IIF(IsNothing(First(Fields!CompanyPicture.Value, "DataSet_Result")) = TRUE, "", Convert.ToBase64String(Fields!CompanyPicture.Value) + Chr(177), 1)
报表现在在此表达式上崩溃,因为隐藏表达式不能为 NULL。我不明白,为什么从 IIF 执行 else 树。IsNothing 工作正确并给我 True。
如果图像为空,我能做什么?
解决方案
我要说的第一件事是风格问题:我永远不会检查某事是否等于真的。就写吧IIf(isNothing(...), "", ...)
。
其次,您只检查数据集中的第一个条目是否不是空的,而是为数据集中的每个条目调用 convert 方法。因此,例如,如果您的数据集有两个条目,其中第一个不是什么都不是,而第二个是,则在评估第二个条目的表达式时会遇到问题。
推荐阅读
- php - 从 php 中的 jquery 循环获取数据
- ms-word - 从 Word 文档中获取所有书签 ID
- kdb - 使用 kdb 中的 where 子句将表作为条件传递
- angularjs - 当页面上使用多个 angularjs 指令时执行多个单击事件
- react-native - 插入新数据后如何在 react-native 中重新加载页面,我正在使用 mobx 进行状态管理
- typescript - 我如何创建一个也可以接受字符串的 Typescript 接口?
- excel - 动态excel求和函数
- r - 更改线型美学条件效果
- python - 使用表格视图创建附加到布局的 QScrollArea
- array-formulas - ArrayFormula 与 ADD 函数与谷歌表中的多个 IF