EAS单据显示图片字段

      利用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)

猜你喜欢

转载自njkf-hp.iteye.com/blog/693245
今日推荐