在报表设计器中,选中要显示图片的单元格,设置属性display-type为image
只要字段中的内容是一个图片的url,就可以显示出这个图片了。

attachmentSimlpe组件对应的存图片的字段里面的内容是JSON格式的,需要将其改为图片的url,这个改变通过写java代码实现,因此reportData不能使用KSQLAction,要使用Action。Action对应的java代码完整案例如下:

import java.util.Iterator;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.justep.system.data.KSQL;
import com.justep.system.data.Row;
import com.justep.system.data.Table;
import com.justep.util.Utils;

public class Test {

	public static Table reportAttSimple() {
		String ksql = "select attSim.* from AP_AttachmentSample attSim";
		Table table = KSQL.select(ksql, null, "/appdemo/test/data", null);
		Iterator<Row> it = table.iterator();
		while (it.hasNext()) {
			Row r = it.next();
			String v = r.getString("fFJ");// 取出图片字段
			String ownerID = r.getString("attSim");// 获取主键值
			String operateType = "browse";
			if (!Utils.isEmptyString(v)) {
				JSONArray ja = JSONArray.parseArray(v);// 把图片字段信息转换为json对象
				JSONObject jsonObject = ja.getJSONObject(0);
				String realFileName = jsonObject.getString("realFileName");// 获取json对象中realFileName的值
				String storeFileName = jsonObject.getString("storeFileName");// 获取json对象中storeFileName的值
				String url = "/UI2/system/service/doc/common/simpleFileStore.j?realFileName=" + realFileName + "&storeFileName=" + storeFileName + "&ownerID=" + ownerID + "&operateType="
						+ operateType; // 通过获取的主键值、realFileName、storeFileName的值拼接url
				r.setString("fFJ", url); // 将url存入table对象
			}
		}
		return table;
	}
}