【NC57】通过按钮打开另一个节点单据并写入数据

1. 添加自定义按钮(之前文章有写)
附自定义按钮链接

2. 按钮事件方法中添加:附代码块

ILinkMaintainData data = new ILinkMaintainData()
	  		{
	  		    //可自行添加方法,参数
	  			public Object getUserObject()
	  			{
	  				// TODO Auto-generated method stub
	  				return "需返回的数据集"; 
	  			}
	  			
	  			public String getBillID()
	  			{
	  				// TODO Auto-generated method stub
	  				return "SQL";//可自行添加方法,参数
	  			}
	  		};
	  		
	  		//
	  		/**
	  		 * 参数1:单据编码:H50314
	  		 * 参数2:组件,图形表示的对象:getBillCardPanelWrapper().getBillCardPanel()
	  		 * 参数3:ILinkMaintainData对象;
	  		 */
	  		if (1==1)
	  		{
	  			SFClientUtil.openLinkedMaintainDialog("H50314",getBillCardPanelWrapper().getBillCardPanel(), data);
	  		}
	  }
	  

到这已经实现单据跳转了,但有时候我们需要传写数据过去接受做处理。

3. 跳转单据的UI工厂, 实现ILinkMaintainData接口,重写doMaintainAction方法 用来接收返回数据: 附代码块

@Override
	public void doMaintainAction(ILinkMaintainData arg0)
	{	
		IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class);
		ButtonObject bo = null;
		ArrayList<Object[]>  executeQuery=null;
		try
		{
			getManageEventHandler().onBoAdd(bo);//调用‘增加’按钮操作,并写入数据(传过来的数据)
                        executeQuery =  (ArrayList<Object[]>) queryBS.executeQuery(arg0.getBillID(), new ArrayListProcessor ());//自定义sql
		} catch (Exception e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	
		String[] userObject2 =(String[]) arg0.getUserObject(); //直接通过对象获取方法
		getBillCardPanel().setHeadItem("pk_wa_class", userObject2[2]);
		getBillCardPanel().setHeadItem("cperiod", userObject2[1]);
		getBillCardPanel().setHeadItem("cyear", userObject2[0]);
		int i=0;
		for (Object[] objects : executeQuery)
		{	
			Object object = objects[i];
			getBillCardPanel().addLine();
			getBillCardPanel().setBodyValueAt(objects[0], i, "company"); 
	        	i++;
		}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值