要实现交替行,恐怕很多人就想要用@docnumber.是,是可以用,不过在视图里文档带读者域的时候就显示得不对了。我的办法是在视图列里面用javascript变量。在嵌入视图的表单里面的JS Header里面写xx=0;再在视图的第一列里面写 "<script>xx++; var color=(xx%2==1)?\'#f3f3f3\':\'#FFFFFF\';"+ @Char(13)+ "document.write(\'&l t;tr bgcolor=\'+color+\' height=27>\')</script>",就这么简单了。
同样的办法可以做到把折叠视图web化,不过要复杂得多。这种办法还有一个应用就是在视图里面使用@username.比如实现文档的未读标记。做法是在表单的html首页内容里面写"<script>var username="+@name([CN];@username)+"</script>",然后再视图列公式写 "<script>a='"+readeduser+"';if(a.indexOf(username)==-1)document.write("< ;td>未读</td>")</script>"
不过,实现视图交替行还有更好的办法。以下的文章是转的,不过办法很好,相信对大家有益。
交替行显示
在web上显示视图的时候,总是不喜欢 notes的默认界面,想换成表格的。用表格显示很容易,别让 notes生成HTML,全部由你自己定制就成了。但如何交替用颜色显示不同行呢?就是说当view行数是寄数时显示一种颜色,偶数时显示另一种颜色。 原先想用@docnumber去做,但@docnumber产生的值时一个特殊值,无法转换成数字来判断。在 www.lotus.com的开发者原地有一篇类似介绍,用的方法是把 docnumber直接打印到html里,然后再用javascript来判断,这样虽然可以,但非常的麻烦。 下面有一种比较简便的方法:还是用 javascript: function transformView() { var tableElements = document.getElementsByTagName('table') ; var table = tableElements[tableElements.length - 1] ; //上面是你的表格再页面中倒数第几个表格,如果你是倒数第2个,就-2 table.width = '100%' ; table.cellSpacing = '0' ; headers = table.getElementsByTagName("th") ; for( i = 0; i < headers.length; i++) { headers[i].bgColor = '#cccccc' ; } rows = table.getElementsByTagName("tr") ; var counter = 0 for( i = 0; i < rows.length; i++) { rows[i].bgColor = (i % 2 ? '#efefef' : '') ; } } 怎么样,是不是很cool?
|