EAS单据显示图片字段原创
金蝶云社区-飞天
飞天
6人赞赏了该文章 408次浏览 未经作者许可,禁止转载编辑于2020年12月03日 14:33:00
利用BOS开发单据,偶尔需要在单据上显示图片,现在贴出我的设计思路,其实主要是借鉴EAS中的标准模块。

代码如下:

  创建对象:

         private PhotoPanel pPanel ;

  实例化:

        pPanel = new PhotoPanel();

 

  布局

 

public void onShow() throws Exception {		super.onShow();				this.photoPanel.setLayout(null);		this.photoPanel.add(pPanel);		pPanel.setBounds(0, 0, 182, 100);			}	

 

  根据单据状态设置图片面板状态并显示弹出工具栏

this.pPanel.setOprtStat(getOprtState());if(editData != null && editData.getId() != null){HotelInfo hotelInfo = HotelFactory.getRemoteInstance().getHotelInfo(new ObjectUuidPK(editData.getId()));if(UIRuleUtil.isNotNull(hotelInfo.getImageData())){ByteArrayInputStream bis = new ByteArrayInputStream(hotelInfo.getImageData());BufferedImage bimage = ImageIO.read(bis);pPanel.setSelectImage(bimage);bis.close();}else{pPanel.setSelectImage(null);pPanel.repaint();}}

 

上传并保存

public void storeFields(){    	if(UIRuleUtil.isNotNull(pPanel.getSelectImageBytes())){    		editData.setImageData(pPanel.getSelectImageBytes());    	}super.storeFields();}

 

注意:需要手动在数据表中新增BLOB字段,在实体上添加自有属性(ByteArray)

赞 6