以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  在EXCEL报表中直接引用行号  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=24074)

--  作者:zxy_jedi
--  发布时间:2012/9/28 19:44:00
--  在EXCEL报表中直接引用行号
问一下,在EXCEL报表中想在“序号”列中直接引用表中的行号,我已经使用了“引用顺序号”<Index>,但是有时不想从1开始填入,想着能不能直接引用选定打印行的行号,不知道该怎么弄了。
--  作者:狐狸爸爸
--  发布时间:2012/9/28 20:00:00
--  

没有办法


--  作者:lin_hailun
--  发布时间:2012/9/29 8:58:00
--  
 可以通过代码完成,把模板里的<Index>替换成行号。

 涉及知识点

http://www.foxtable.com/help/topics/1953.htm

http://www.foxtable.com/help/topics/1955.htm
[此贴子已经被作者于2012-9-29 8:58:14编辑过]

--  作者:zxy_jedi
--  发布时间:2012/9/29 11:05:00
--  
没看明白,求具体操作
--  作者:lin_hailun
--  发布时间:2012/9/29 11:13:00
--  
 你尝试在报表事件BuildDetail写一句

e.Book.Marks("Index") = 12345


 那么,模板里<Index>的值就会变成你输入的值。



--  作者:zxy_jedi
--  发布时间:2012/9/29 11:43:00
--  
在生成多个细节区时怎么能将输入的数值向下继续写入,例如5,6,7,8.....
--  作者:狐狸爸爸
--  发布时间:2012/9/29 12:05:00
--  

Static i As integer

i = i + 1

e.Book.Marks("Index") = Tables("xxx").current.Index + i


--  作者:zxy_jedi
--  发布时间:2012/9/29 15:23:00
--  
以下是引用狐狸爸爸在2012-9-29 12:05:00的发言:

Static i As integer


i = i + 1

e.Book.Marks("Index") = Tables("xxx").current.Index + i


在报表事件BuildDetail中使用了以上代码后的确出现了想要的结果,但是当再次打印报表时序号出现了以上次打印报表的结尾行号+1做为开始

的现象,只能重启程序或是重新点一下事件按钮才行,不知道怎么能解决。


--  作者:lin_hailun
--  发布时间:2012/9/29 15:27:00
--  
 嗯嗯,是的 static 变量是一直存储着的。

 你定义 全局变量 ,然后编写报表事件BefortBuilder,把变量设置为初始值。

 http://www.foxtable.com/help/topics/1450.htm

--  作者:zxy_jedi
--  发布时间:2012/9/29 15:45:00
--  
以下是引用lin_hailun在2012-9-29 15:27:00的发言:
 嗯嗯,是的 static 变量是一直存储着的。

 你定义 全局变量 ,然后编写报表事件BefortBuilder,把变量设置为初始值。

 http://www.foxtable.com/help/topics/1450.htm

还不会全局变量......怎么弄?