Lotus B/S开发笔记一 (转)

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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值