根据当前用户名称在组织单元库中查找用户的单位及部门。
参考:用户信息表单 sys_user
用户所属单位域 txt_BelongtoUnit
用户所属部门域 txt_BelongtoDepartment
(供其它库选人员)视图 (AllUser)
REM {根据当前用户的名字计算出拟稿人所在部门};
server:=@Name([CN];@Subset(@DbName;1));
path:=@LeftBack(@Subset(@DbName;-1);"\\");
dbname := "sys_org.nsf";
dbpath:=path+"\\"+dbname;
viewname := "(AllUser)";
username := @Name([CN];@UserName);
fieldname := "txt_BelongtoUnit";
@DbLookup("":"nocache";server:dbpath;viewname;username;fieldname)
注解:
server 的值是空的。dbname, viewname, fieldname 是要根据不同的情况来赋值的。
视图显示加入HTML控制问题。
视图第一列是分类和排序列。其他列为标准无序列。
如果需要在视图条目的前面加上复选框。在最前面插入一列新列,标题为 “<tr><th> </th>”。列公式为: “<tr><input type=checkbox name=SelectDoc value=”+@text(@DocumentUniqueID)+ “></tr>”。
在第一列分类列和复选框列之间加上一列“空白”列。标题没有。列公式为: “<tr><img src=/icons/ecblank.gif></td>”。
一定要注意:分类列属性框之排序签中“合并分类信息”选项不要选定。
如果在其他列中有多值域作为列公式,则该列属性框中应该选中“将多值分开显示成独立的行”,并且还要排序。只选中两项中的任一项都不能正确显示。
如果不需要复选框,则这一列“空白”列要加到第一列分类列的后面,第二列的前面。并且要在最前面加上一列,标题和公式都是: “<tr>”
在web 上实现私有视图的功能
私有视图的特点是,视图只显示跟当前用户相关的文档条目。因此可以如下设想:将相关的视图设计成按用户名分类,然后嵌入到表单中。在表单的头部加入一个文本域,这个域的作用就是记录当前用户名。嵌入视图只显示单个分类。
在嵌入视图的表单中加入文本编辑框
在嵌入视图的以$$ViewTemplate for开头命名的表单中,加入文本编辑框后,网页上可以出现文本编辑框,但是如果是特定名称的表单$$ViewTemplateDefault,只以文本形式显示在网页上(似乎变成了计算文本域),不出现编辑框。
命名为$$ViewTemplateDefault的表单在生成网页时由服务器生成的javascript与命名为$$ViewTemplate for viewname的表单是不相同的。因此不能采用保存(提交)操作。
网页中各对象的使用
如果网页中某个名称的同类对象只存在一个实例,则不能使用数组的方式读取。若存在多个,则可以。
<html><head><script language=javascript>
function GetSelectedDocID(){
with( window.document.forms[0] )
{ var size = elements.length;
var num = 0;
var str = "";
var n = 0;
for(var i=0; i<size; ++i)
if( elements[i].name == "SelectDoc" )
{ ++num;
if(elements[i].checked == true ) ++n;
}
if( num == 1 )
{ if( SelectDoc.checked == true) str += SelectDoc.value;
// DocumentID.value = str;
}
else
{
for(var i=0,j=0; i<num; i++)
{ if(SelectDoc[i].checked == true)
{ if( j < n-1 ) {str += SelectDoc[i].value +","; ++j; }
else { str += SelectDoc[i].value;}
}
}
}
DocumentID.value = str;
}
}
</script></head><body >
<form name=form1 action=post onSubmit='GetSelectedDocID()'>
<input type=text name=DocumentID value=""><br>
<input type=checkbox name=SelectDoc value=xxxx>xxxx<br>
<!--
<input type=checkbox name=SelectDoc value=yyyy>yyyy<br>
<input type=checkbox name=SelectDoc value=zzzz>zzzz<br>
// -->
<input type=submit value=submit>
</form></body></html>