星瀚列表控制打印按钮原创
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 } } }
推荐阅读