金蝶开发平台可以设置任意字段为超链接,但默认都会打开当前列表的单据,比如我在付款单列表中设置了“报销单号”为超链接,但点击这个超链接打开的仍然是“付款单”而不是“报销单”。

可以在列表插件中注册脚本插件来解决,网页端就能搞定。

require("kd.bos.dataentity.utils.StringUtils");
require("kd.bos.bill.BillShowParameter");
require("kd.bos.servicehelper.BusinessDataServiceHelper");

var plugin = new ListPlugin({

    // 如果点击的是“源单编码”(sourcebillnumber),修改超链接事件
    KEY_TEXTFIELD1: "sourcebillnumber",
    billListHyperLinkClick: function(args) {
        if (StringUtils.equals(this.KEY_TEXTFIELD1, args.getHyperLinkClickEvent().getFieldName())) {      
	     
            args.setCancel(true);

            // 获取付款单内码
            var payBillId = this.getView().getCurrentSelectedRowInfo().toString();
            // 查询源单类型
            var sourcebilltype = BusinessDataServiceHelper.loadSingle(payBillId,"cas_paybill","sourcebilltype").get("sourcebilltype");
            // 查询源单内码
            var sourcebillid = BusinessDataServiceHelper.loadSingle(payBillId,"cas_paybill","sourcebillid").get("sourcebillid");
            	
            var showParameter = new BillShowParameter();
            showParameter.setFormId(sourcebilltype);
            showParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
            showParameter.setStatus(OperationStatus.VIEW);
            showParameter.setPkId(sourcebillid);

            this.getView().showForm(showParameter);
        }
    }
});