在报表设计器中,选中要显示图片的单元格,设置属性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;
}
}
评一波