UDN-企业互联网技术人气社区

板块导航

浏览  : 9343
回复  : 28

[友云采] 各位前辈,NC635单据表体超链接怎么实现?

[复制链接]
zz1993的头像 楼主
发表于 2016-11-25 17:30:15 | 显示全部楼层 |阅读模式

各位前辈请教一下,nc65单据表体有个字段为参照是超链接,点击该字段的具体值之后打开另外一个单据,这个该怎么实现?有没有例子代码什么的?谢谢你们了。

发表于 2016-11-28 10:46:46 | 显示全部楼层
模板中数据属性有一个叫做超链接的属性,然后把默认值给他就行
使用道具 举报

回复

zz1993的头像 楼主
发表于 2016-11-28 11:19:26 | 显示全部楼层
tianxinc 发表于 2016-11-28 10:46
模板中数据属性有一个叫做超链接的属性,然后把默认值给他就行

这里没有啊
2.png
使用道具 举报

回复

zz1993的头像 楼主
发表于 2016-11-28 11:21:19 | 显示全部楼层
我的意思是这样的,你们看一下,点击预挂牌议案编号超链接[img=0,1]file:///C:\Users\Administrator\Documents\Tencent Files\993345469\Image\Group\(}BU[(IN@%GVAJN]JW]}5UE.jpg[/img],然后跳转到对应的预挂牌议案的卡片。

1.jpg
2.jpg
使用道具 举报

回复

zz1993的头像 楼主
发表于 2016-11-29 16:53:10 | 显示全部楼层
做出来了,其中把原配置文件修改,第一个类
package nc.ui.kp.kpc001b1.ace.handler;

import nc.funcnode.ui.FuncletInitData;
import nc.ui.pubapp.uif2app.model.DefaultFuncNodeInitDataListener;
import nc.ui.pubapp.uif2app.view.ShowUpableBillForm;


public class LinkFileconsultapplyInitDataListener extends
                DefaultFuncNodeInitDataListener {

        private nc.ui.pubapp.uif2app.view.ShowUpableBillListView listView;

        public nc.ui.pubapp.uif2app.view.ShowUpableBillListView getListView() {
                return listView;
        }

        public void setListView(
                        nc.ui.pubapp.uif2app.view.ShowUpableBillListView listView) {
                this.listView = listView;
        }

        @Override
        public void initData(FuncletInitData data) {
                // TODO 自动生成的方法存根
                super.initData(data);
                //当前表参照的字段
                ((ShowUpableBillForm) getAutoShowUpComponent())
                                .getBillCardPanel()
                                .getHeadItem("dispose_code")
                                .addBillItemHyperlinkListener(
                                                new LinkFileconsultapplyListener(
                                                                ((ShowUpableBillForm) getAutoShowUpComponent())
                                                                                .getBillCardPanel()));
                getListView()
                                .getBillListPanel()
                                .getHeadItem("dispose_code")
                                .addBillItemHyperlinkListener(
                                                new LinkFileconsultapplyListener(getListView()
                                                                .getBillListPanel()));

        }
}





第二个类

package nc.ui.kp.kpc001b1.ace.handler;

import java.awt.Container;
import java.util.Iterator;
import java.util.List;







import nc.ui.pub.ClientEnvironment;
import nc.ui.pub.IFuncWindow;
import nc.ui.pub.beans.MessageDialog;
import nc.ui.pub.bill.BillCardPanel;
import nc.ui.pub.bill.BillItemHyperlinkEvent;
import nc.ui.pub.bill.BillItemHyperlinkListener;
import nc.ui.pub.bill.BillListPanel;
import nc.ui.uap.sf.SFClientUtil;
import nc.vo.sf.pub.linkquery.LinkQueryData;

/**
* 联查档案差借阅申请超链接事件
* @author Yhy
* 2016-11-24
*/
public class LinkFileconsultapplyListener implements BillItemHyperlinkListener{

        private BillCardPanel billCardPanel;
        private BillListPanel billListPanel;

        public LinkFileconsultapplyListener(BillCardPanel billCardPanel) {
                this.billCardPanel=billCardPanel;
        }

        public LinkFileconsultapplyListener(BillListPanel billListPanel) {
                this.billListPanel=billListPanel;
        }

        @Override
        public void hyperlink(BillItemHyperlinkEvent event) {
                //联查打开档案差借阅申请
                if("dispose_code".equals(event.getItem().getKey())){
                        LinkQueryData data=new LinkQueryData();
                        if(billCardPanel!=null){
                                //当前表参照的字段dispose_code
                                String billID=(String) billCardPanel.getHeadItem("dispose_code").getValueObject();
                                String pkOrg=(String) billCardPanel.getHeadItem("pk_org").getValueObject();
                                data.setBillID(billID);
                              //当前表参照的字段对应的卡片单据类型
                                data.setBillType("CZFA");
                                data.setPkOrg(pkOrg);
                                //当前表参照的字段对应的卡片编号KPHC020101
                                SFClientUtil.openLinkedQueryDialog("KPHC020101", billCardPanel, data);
                        }if(billListPanel!=null){
                               
                                String billID=(String) billListPanel.getHeadItem("dispose_code").getValueObject();
                                String pkOrg=(String) billListPanel.getHeadItem("pk_org").getValueObject();
                                data.setBillID(event.getValue().toString());
                                data.setBillType("CZFA");
                                data.setPkOrg(pkOrg);
                                SFClientUtil.openLinkedQueryDialog("KPHC020101", billListPanel, data);
                        }

                }
        }

        /**
         *
         * @创建者:陶明
         * @方法说明:当前是否存在请求的节点
         * @创建时间:2007-7-18 下午02:51:25
         * @param funcode
         * @return boolean
         *
         */
        @SuppressWarnings("deprecation")
        public static boolean isExistDlg(String funcode,Container container) {
                List<?> openModules = ClientEnvironment.getInstance().getOpenModules();
                Iterator<?> it = openModules.iterator();
                while (it.hasNext()) {
                        IFuncWindow window = (IFuncWindow) it.next();
                        if (window.getFuncPanel().getModuleCode().equals(funcode)) {
                                window.showWindow();
                                MessageDialog.showHintDlg(container, "提示",
                                                "当前请求界面已处于开启状态!请先关闭!");
                                return true;
                        }
                }
                return false;
        }

}

7.png
使用道具 举报

回复

发表于 2016-12-1 15:14:43 | 显示全部楼层
楼主,按照你的方法,在LinkFileconsultapplyInitDataListener类里面执行到getBillListPanel()方法的时候出现了空指针异常的错误提示,单据节点打不开,怎么破?实习菜鸟一枚,纠结了好久也没想明白。如图
QQ截图20161201151326.png
QQ截图20161201151405.png
使用道具 举报

回复

zz1993的头像 楼主
发表于 2016-12-1 17:08:53 | 显示全部楼层
00101 发表于 2016-12-1 15:14
楼主,按照你的方法,在LinkFileconsultapplyInitDataListener类里面执行到getBillListPanel()方法的时候出 ...

400655 应该是该节点的功能编码吧,line应该是当前表中作为参照的字段
8.png
9.png
使用道具 举报

回复

发表于 2016-12-2 10:29:16 | 显示全部楼层
zz1993 发表于 2016-12-1 17:08
400655 应该是该节点的功能编码吧,line应该是当前表中作为参照的字段

这个问题昨天我已经解决了,然后遇到新的问题,点击链接之后提示“没有查看改单据的权限”,然后跳转到其他单据之后没有数据,看了下,发现在LinkFileconsultapplyListener 里面获取line和pk_org的值时没有获取到,为空。是我获取数据的方法有问题还是什么原因?
QQ截图20161202102237.png
QQ截图20161202102309.png
QQ截图20161202102843.png
使用道具 举报

回复

zz1993的头像 楼主
发表于 2016-12-5 09:04:04 | 显示全部楼层
00101 发表于 2016-12-2 10:29
这个问题昨天我已经解决了,然后遇到新的问题,点击链接之后提示“没有查看改单据的权限”,然后跳转到其 ...

你昨天那天问题怎么解决的啊?你现在这个没有几点权限,是因为SFClientUtil.openLinkedQueryDialog("KPHC020101", billCardPanel, data);里面第一个参数,是你要跳转的那个页面的功能节点
使用道具 举报

回复

发表于 2016-12-5 10:32:08 | 显示全部楼层
zz1993 发表于 2016-12-5 09:04
你昨天那天问题怎么解决的啊?你现在这个没有几点权限,是因为SFClientUtil.openLinkedQueryDialog("KPHC ...

是因为我的XML文件配置错了,所以单据才会打不开,SFClientUtil.openLinkedQueryDialog里面的第一个参数不是用功能节点的那个编码吗?不是的话那是要用什么?我不太懂
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部