在传统的备注表单中,我想动态计算图像。 Image位于同一服务器中的另一个数据库的映像资源中。
我尝试通过计算计算文本中的URL来使用pass through through HTML。它在网络上运行良好。但我需要在Notes客户端中显示该表单。我使用的是客户端版本8.5.2。
在计算网址中,我尝试使用 notes:// 而不是 http://。仍然没有运气。 如果有人帮我查明。
提前致谢。
答案 0 :(得分:0)
插入图像资源时,您可以选择需要加载图像的数据库。因此,当您转到“创建>图像资源”时,您可以选择“数据库”字段,然后选择该数据库中的图像。
答案 1 :(得分:0)
您需要做的就是插入图片资源。将光标放在您想要动态图片的表单上,单击鼠标右键并选择“插入资源”。显示“插入资源”对话框后,选择存储图像资源的数据库,然后选择“图像”资源类型。您必须选择一个图像,可能将其设为默认图像,然后单击“确定”。
接下来,单击图像以使其聚焦,然后执行“alt + Enter”或右键单击并选择“图片属性”。当图片属性显示时,您会在“源”字段的最右侧看到两个图标,为公式窗口选择第二个“@”,这就是魔术完成的地方。您将看到当前图像名称已存在。你现在所做的只是创建你的@If语句来改变图像名称,没有路径只是图像名称,资源已经绑定到存储图像的数据库。这已经很久了,但实际上实施起来既快捷又简单。享受: - )
答案 2 :(得分:0)
Karthick,
我不确定这是否是您的问题,但请记住表单的处理顺序,从左到右,自上而下。如果带有您的empcode的字段位于图像资源之后,则除非您执行刷新,否则公式将不会显示字段值。我使用了一个包含值的字段来检查以切换我的图像并且有效。您是否尝试过@GetField(“字段名称”)来返回值?
答案 3 :(得分:0)
你不能直接做到这一点。您既不能计算数据库也不能传递其他db的图像URL。插入资源时,会询问数据库名称。如果您选择名称为“a”。然后图像资源将采用您选择的数据库。它将从db“a”获取图像。它不会从当前数据库中获取图像。所以你只需简单地传递图像文件名。
使用这样的公式。,
@If(@GetField("pic")="1";"spinning earth.gif";@GetField("pic") = "3";"logo.jpg";"attach2.jpg")
上面提到的三张图片来自不同的数据库但是同一台服务器。如果要从当前数据库中获取图像,请使用其他图像资源。隐藏时。挤压你的布莱恩。
答案 4 :(得分:0)
计算出的图像资源似乎不喜欢隐含的文本构造,我试着完全像你构建图像字符串一样,并且在我做到这一点之前它一直都失败了:
@Text(@GetField(“from”)+“.jpg”)
我使用“from”组合框来测试“刷新关键字更改”以模拟新值。图像变化很好,资源是从不同的数据库中选择的。
我不知道的一点是,如果您创建图像资源并导入.bmp(位图)图像,则会将其更改为.jpg。这可能会通过尝试引用不存在的图像来搞砸你。
简而言之,来自不同数据库的计算图像资源将起作用。
答案 5 :(得分:0)
其他解决方案中描述的计算图像资源肯定会起作用。 唯一的“问题”是,设计者希望在保存表单时获取指向有效文件的文本。否则会使图像无法使用。
知道并且知道在设计器客户端中字段值被认为是空的,如果所需字段为空,则必须将结果“包装”在if子句中,或者中断计算。你的第一行看起来像:
@If( FieldWithImageName = ""; @Return( "myfallbackimage.jpg" ); "" );
之后你做计算。设计师将回退到后备图像,客户端将根据您的公式计算图像,如果您引用的字段位于图像上方(您知道:从左到右,从上到下计算表格)
需要注意的另一件事是:在早期版本的Lotus Notes中,当您在图像属性中选择100%时,图像只会缩放到自己的100%大小。但是在7(iirc)中,这种情况发生了变化,所有图像都显示了设计师中图像的像素数。如果您的后备图像是100x100像素,那么每个图像都会被挤压或拉伸到那个图像。所以更好的是,所有图像都具有相同的尺寸。