天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
123
返回列表 发新帖

[已解决] 怎么制作某特定部门的用户列表,并可编辑用户信息

[复制链接]
shary 发表于 2013-7-1 14:14:52 | 显示全部楼层
电话+远程跟客户沟通发现是可以传值的问题。目前已经告知客户通过session的方式存储值。对应提供了帖子:http://www.teemlink.com/bbs/view ... p;highlight=session给客户参考。目前客户在尝试。后续有问题再沟通。
 楼主| 青岛融贯汇众 发表于 2013-7-1 16:35:46 | 显示全部楼层
目前用户名称的值脚本如下:
var UID=getParameter("UID");
var rtnUID="";
var request = $WEB.getParamsTable().getHttpRequest();

if(UID != null && UID.trim().length() > 0)
{
   request .getSession().setAttribute("rola_UID",UID);
   rtnUID=request .getSession().getAttribute("rola_UID");
}
else
{
  if(request !=null)
  {
     rtnUID=request .getSession().getAttribute("rola_UID");
  }
}

rtnUID;

在如下部分的代码中,request对象为null,还是不能从session中取到值。
else
{
  if(request !=null)
  {
     rtnUID=request .getSession().getAttribute("rola_UID");
  }
}

疑问:获取到的 request 对象为什么是 null ?

注: if(UID != null && UID.trim().length() > 0)
{
   request .getSession().setAttribute("rola_UID",UID);
   rtnUID=request .getSession().getAttribute("rola_UID");
}
这部分代码正常
shary 发表于 2013-7-1 16:53:03 | 显示全部楼层
您好,麻烦您提供您的外部系统的后台账号吧。我直接登录进去看下吧。帮你调试下
 楼主| 青岛融贯汇众 发表于 2013-7-1 17:06:19 | 显示全部楼层
怎么?忽悠我啊
shary 发表于 2013-7-1 17:09:06 | 显示全部楼层
回复 24# 青岛融贯汇众


   您好,因人员紧缺忙不过来。我在QQ上有跟您说我这边现在有点晚点给您看。给您带来不便很抱歉。
 楼主| 青岛融贯汇众 发表于 2013-7-2 15:41:43 | 显示全部楼层
问题已经搞定。
解决这个问题的过程中,得到了技术团队各位成员的大力帮助,谢谢各位了。
回头把完整的思路,及相关脚本整理一下发布上来
shary 发表于 2013-7-2 15:43:16 | 显示全部楼层
呵呵。非常感谢。客户调整了脚本逻辑对应问题解决。帖子关闭
 楼主| 青岛融贯汇众 发表于 2013-7-10 09:36:56 | 显示全部楼层
本帖最后由 青岛融贯汇众 于 2013-7-10 09:39 编辑

整体的实现方法整理如下:
1.见一个动态表单,其中一个字段为用户ID,表单中使用用户选择控件,用做数据关联,并且用户选择控件设置为只读;其他字段为需要扩展的字段。
2.新建一个视图,随便关联一个数据来源表单,并设置为只读;
        视图过滤中sql模式中写脚本,
        如下:
        var sql="select  LOGINNO as ITEM_LOGINNO ,NAME as ITEM_NAME,DOMAINID,ID as ITEM_UID  from obpm.dbo.t_user";
        sql;
        如果需要在列表中显示扩展的信息,则可以用left join联合查询,
        查询出需要的列信息,并且新建一个列,列名称叫“操作”,列中写如下脚本:
        var uid=getId();//获取字段用户的id
        var url="/obpm/portal/dynaform/document/new.action?_formid=11e2-da83-9d3ae6a7-abb1-c5c105089d34&_isJump=1";

        url = url + "&UID=" + uid;

        var rtn="<input type=\"button\" style=\"width:45px; height:25px \" onclick=\"javacript:OBPM.dialog.show({width:600,height:400,url:'"+url+"', args:OBPM.dialog.getArgs(),title: '详细信息',maximization:false,maximized:true,position:'center'})\" value='详 细 信 息' >"//此处跳转到动态表单。

        //var rtn="<input type='button' value='弹出' ";
        //rtns+="onclick='OBPM.dialog.show({width: 600,height: 300,url:\""+url+"\",args:{j:1},title : \"信息编辑框\",close: function(rtn) {window.location.reload();}});'/>";

        rtn;  
        在此,是通过页面传值的方式将UID传到打开的动态表单中。
3.在新建的用户信息动态表单上,在每个控件的值脚本中写脚本查询用户的扩展信息并设置在表单上,
   用户选择控件的脚本如下:
   var rtn="";
        var UID=getParameter("UID");
        var oldUID=getItemValue("玩家名称");

        if(UID!=null  && UID!="")
        {
          rtn=UID;
        }
        else
        {
           rtn =  oldUID;
        }

        rtn;
       
        其他扩展字段的控件值脚本如下:
        var value=getItemValueAsString("联赛级别");
        var rtn="";//返回值

        if(value!=null && value!="" )
        {
                rtn=value;
        }
        else
        {
           var pUID=getParameter("UID");
           var UID="";
           if(pUID!=null  && pUID!="")
           {
                  UID=pUID;
           }
           else
           {
                  UID=getItemValue("玩家名称");
           }
               
           var sql="select * from TLK_玩家信息 where ITEM_玩家名称 like '"+UID+"'";
           var datas  =queryBySQL(sql);
           println(datas.size()+"gggggggggg");
           if(datas!=null && datas.size()>0)
           {
                   for(var iter = datas.iterator();iter.hasNext();)
                   {
                           var doc = iter.next();
                           if(doc!=null)
                           {
                                  rtn=doc.getItemValueAsString("联赛级别");
                                  break;
                                }
                        }
                }
                else
                {
                 rtn=""
                }
        }

        rtn;
        其他的扩展字段控件的值脚本类似。
4.在动态表单中新建一个按钮,可以是无类型的,也可以是“关闭窗体”类型,看具体需要了;在脚本中写语句判断用户信息扩展信息表中是否存在该用户,存在则修改,不存在则新建,具体的脚本如下:
        var thisdoc = getCurrentDocument();
        var process = getDocumentProcess();
        var formProcess = getFormProcess();
        var subform = formProcess.doView("11e2-da83-9d3ae6a7-abb1-c5c105089d34");
        var doc = process.doNew(subform,getWebUser(),createParamsTable());
        var UID=thisdoc.getItemValueAsString("玩家名称");
        var sql="select * from  TLK_玩家信息 where convert(nvarchar(255), ITEM_玩家名称) = '"+UID+"'";
        //var thisdoc = findBySQL(sql);
        var datas= queryBySQL(sql);

        println("RolaRola----UID:"+UID);
        println("RolaRolaRola数据行数:"+datas.size());

        if(datas!=null && datas.size()>0)
        {       
                var iter = datas.iterator();
                if(iter.hasNext())
                {
                   var data = iter.next();
                   var value1 = thisdoc.getItemValueAsString("联赛级别");//联赛级别
                   data.findItem("联赛级别").setValue(value1);

                   var value2 = thisdoc.getItemValueAsString("球队名称");//球队名称
                   data.findItem("球队名称").setValue(value2);
               
                   process.doUpdate(data);       
                }
        }
        else
        {
               
                doc.addStringItem("玩家名称",UID);
               
                var value1 = thisdoc.getItemValueAsString("联赛级别");//联赛级别
                doc.addStringItem("联赛级别",value1);

                var value2 = thisdoc.getItemValueAsString("球队名称");//球队名称
                doc.addStringItem("球队名称",value2);
               
                process.doCreate(doc);
        }
       
        至此,基本功能实现。
shary 发表于 2013-7-10 09:40:33 | 显示全部楼层
感谢您的宝贵示例。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 07:33

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表