Foxtable(狐表)用户栏目专家坐堂 → 关于在Excel报表的标签打印中使用表达式的一个问题


  共有8980人关注过本帖树形打印复制链接

主题:关于在Excel报表的标签打印中使用表达式的一个问题

帅哥哟,离线,有人找我吗?
bjljb
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 三级勋章
等级:童狐 帖子:273 积分:2066 威望:0 精华:0 注册:2008/9/5 23:31:00
关于在Excel报表的标签打印中使用表达式的一个问题  发帖心情 Post By:2012/9/24 12:11:00 [只看该作者]

我想利用Excel报表的标签打印功能实现如下效果:

(办公室) 张三      (一车间) 李四      (二车间) 王五

 

在模板中的表达式设置如下:

<"("&[部门名称]&")"&[姓名]>     <"("&[部门名称+1]&")"&[姓名+1]>     <"("&[部门名称+2]&")"&[姓名+2]> 

 

生成的打印结果却是:

(办公室) 张三      ()       ()

 

也就是说,[部门名称+1] 、 [姓名+1] 、[部门名称+2] 、 [姓名+2] 这几个表达式没有能够进行正常的数据引用。

 

请问:这个问题该如何解决?


 回到顶部
帅哥哟,离线,有人找我吗?
muhua
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/9/24 14:55:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/24 15:45:00 [只看该作者]

 不知是不是这个原因。

由于同一个细节区不再是对应一个数据行,而是对应多个数据行,所以在定义细节区的时候,要增加一个参数,用于指定每个细节区对应的数据行数,这个参数以符号@开头:


<表名, @3>


[此贴子已经被作者于2012-9-24 15:45:18编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bjljb
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 三级勋章
等级:童狐 帖子:273 积分:2066 威望:0 精华:0 注册:2008/9/5 23:31:00
  发帖心情 Post By:2012/9/24 16:03:00 [只看该作者]

这个参数我已经加了,当我把 [部门名称] 和 [姓名] 在同一个细节区分两行打印的时候,没有问题,[部门名称+1] 、 [姓名+1] 、[部门名称+2] 、 [姓名+2] 这几个表达式都可以正常引用数据,但由于受标签纸尺寸的限制,我需要把这两个内容放到同一行打印,用表达式来进行连接的时候,上述问题就出现了。

 

简而言之,这个问题就是:类似于 [姓名+1] 、[姓名+2] 这样的数据引用方式在表达式中如何实现?


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/24 18:12:00 [只看该作者]

 测试了一下,表达式不支持+1操作。

 也就是说,你需要把原来的表达式分成几列显示。如:

 ( [部门名称+1] ) [姓名+1]          总共4列

 回到顶部
帅哥哟,离线,有人找我吗?
bjljb
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 三级勋章
等级:童狐 帖子:273 积分:2066 威望:0 精华:0 注册:2008/9/5 23:31:00
  发帖心情 Post By:2012/9/24 18:21:00 [只看该作者]

我用了一个变通的办法把问题解决了:

增加一个 [姓名带部门] 列,用易表或Excel把部门和姓名组合成需要的样式(这个就非常简单了),然后在打印模板中直接引用 [姓名带部门]、[姓名带部门+1]、[姓名带部门+2] 就可以了。


 回到顶部
帅哥哟,离线,有人找我吗?
ahbzczy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:268 积分:2307 威望:0 精华:0 注册:2010/3/26 14:08:00
  发帖心情 Post By:2012/9/24 18:38:00 [只看该作者]

<"("&[部门名称]&")"&[姓名]>     <"("& *[部门名称+1]* &")"& *[姓名+1]*>     <"("&*[部门名称+2]*&")"&*[姓名+2]*> 

 

这种跨行引用数据的格式参与表达式计算的时候,也必须用符号*括起来,例如:

<IIF(*[数量+1]* > 100, *[数量+1]*, 0)>

[此贴子已经被作者于2012-9-24 18:38:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bjljb
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 三级勋章
等级:童狐 帖子:273 积分:2066 威望:0 精华:0 注册:2008/9/5 23:31:00
  发帖心情 Post By:2012/9/24 18:42:00 [只看该作者]

以下是引用lin_hailun在2012-9-24 18:12:00的发言:
 测试了一下,表达式不支持+1操作。

 也就是说,你需要把原来的表达式分成几列显示。如:

 ( [部门名称+1] ) [姓名+1]          总共4列

 

非常感谢!但这样做会增加打印模板的复杂程度,尤其在打印标签的时候,通常都是非常细微地调整各种间距,增加一列必然会影响其后所有列的定位。

 

希望老六尽快解决这个问题!


 回到顶部
帅哥哟,离线,有人找我吗?
bjljb
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 三级勋章
等级:童狐 帖子:273 积分:2066 威望:0 精华:0 注册:2008/9/5 23:31:00
  发帖心情 Post By:2012/9/24 18:58:00 [只看该作者]

以下是引用ahbzczy在2012-9-24 18:38:00的发言:

<"("&[部门名称]&")"&[姓名]>     <"("& *[部门名称+1]* &")"& *[姓名+1]*>     <"("&*[部门名称+2]*&")"&*[姓名+2]*> 

 

这种跨行引用数据的格式参与表达式计算的时候,也必须用符号*括起来,例如:

<IIF(*[数量+1]* > 100, *[数量+1]*, 0)>

[此贴子已经被作者于2012-9-24 18:38:43编辑过]

 

此为正解!

 

非常感谢!

 

已经测试通过。


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/24 23:59:00 [只看该作者]

 呵呵,学习...

 回到顶部