星瀚列表控制打印按钮原创
金蝶云社区-阿伟仔
阿伟仔
0人赞赏了该文章 594次浏览 未经作者许可,禁止转载编辑于2022年03月03日 14:32:30

列表无法根据条件进行按钮可用性配置,根据单据内字段控制列表是否能打印。

关键代码:

ListSelectedRowCollection row = this.getSelectedRows(); //获取选择行
DynamicObjectCollection object = QueryServiceHelper.query("batm_yhzzljspb","batm_combofield" ,sFilters); 
//获取具体字段
evt.setCancel(true);//取消

所有代码:

@Override
	public void beforeItemClick(BeforeItemClickEvent evt) {
		
		//不允许关闭单据打印
		if(evt.getItemKey().equals("tblprint") ) {
			//BillList billList = (BillList) evt.getSource();
			try {
				ListSelectedRowCollection row = this.getSelectedRows();
				for(ListSelectedRow ls : row) {
					QFilter sFilter = new QFilter("billstatus",QCP.equals,"A"); //可以更改为过滤单据内码
					QFilter[] sFilters = new QFilter[1];
					sFilters[0] = sFilter;
					DynamicObjectCollection object = QueryServiceHelper.query("batm_yhzzljspb","batm_combofield" ,sFilters);
					if(object != null) {
						for(DynamicObject o : object) {
							String s = o.get("batm_combofield").toString();
							if(s.equals("0")) {
								this.getView().showMessage("存在已状态关闭的单据不允许打印!请检查!");
								evt.setCancel(true);
							}
						}
					}
				}
				
				
			}
			catch (KDException e) {
				int a = 1;
				// TODO: handle exception
			}
		}
	}


赞 0