您的位置:首页 > Web前端 > JavaScript

Lotus B/S开发笔记一

2003-04-08 14:23 405 查看
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

根据当前用户名称在组织单元库中查找用户的单位及部门。

参考:用户信息表单 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>

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息