程序数据集添加的参数,再次打开就没有了
package custom.AIO.businessLarge; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.fr.data.SimpleTableData; import com.fr.stable.ParameterProvider; import java.util.ArrayList; import java.util.List; /**  * @author thh  * @date 2023/6/29  */ public class SimpleParamTableDataInitColumn extends SimpleTableData {     public static void main(String[] args) {         SimpleParamTableDataInitColumn simpleParamTableData = new SimpleParamTableDataInitColumn();         List<Object[]> objects = simpleParamTableData.loadData();         System.out.println("1111");     }     @Override     public String[] initColumnNames() {         String[] columnNames = {"index_code","index_name"};         return columnNames;     }     @Override     public List<Object[]> loadData() {         // 取到报表传的参数         Object[] params = parameters.get().toArray();         //取到第一条参数         String paramJson = ((ParameterProvider) params[0]).getValue().toString();         JSONObject paramObj = JSONUtil.parseObj(paramJson);         //取出数组中的查询条件列         JSONArray paramsList = JSONUtil.parseArray(paramObj.getStr("paramsList"));         //取出第一条json数据的url         String url = paramObj.getStr("url");         //返回的结果集         List<Object[]> valueList = new ArrayList();         //调用接口需要传的参数         JSONObject json=new JSONObject();         //执行接口调用         String result = HttpRequest.post(url)                 .timeout(50000)//超时,毫秒                 .body(JSONUtil.toJsonStr(json))                 .execute().body();         //将接口返回的字符串json参数解析转换位bean格式         ResultDate resultJson = JSONUtil.toBean(result, ResultDate.class);         //如果接口调用成功         if(resultJson.getCode().equals("200")){             //将解析好的resultJson中的fields取出来             List<Object[]> fields = resultJson.getData().get("fields");             //将字段英文名和字段中文名,存到objects数组中,将每条objects数组放到List返回             for(int i = 0;i<fields.get(0).length;i++){                 Object[] objects = new Object[2];                 objects[0] = fields.get(0)[i];                 objects[1] = fields.get(1)[i];                 valueList.add(objects);             }             //valueList = resultJson.getData().get("fields");         }         return valueList;     } }

FineReport 法外狂徒张三 发布于 2023-6-30 14:07 (编辑于 2023-11-23 08:49)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
法外狂徒张三Lv3见习互助
发布于2023-11-23 08:49
package custom.AIO.businessLarge; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.fr.data.SimpleTableData; import com.fr.stable.ParameterProvider; import java.util.ArrayList; import java.util.List; /**  * @author thh  * @date 2023/6/29  */ public class SimpleParamTableDataInitColumn extends SimpleTableData {     public static void main(String[] args) {         SimpleParamTableDataInitColumn simpleParamTableData = new SimpleParamTableDataInitColumn();         List<Object[]> objects = simpleParamTableData.loadData();         System.out.println("1111");     }     @Override     public String[] initColumnNames() {         String[] columnNames = {"index_code","index_name"};         return columnNames;     }     @Override     public List<Object[]> loadData() {         // 取到报表传的参数         Object[] params = parameters.get().toArray();         //取到第一条参数         String paramJson = ((ParameterProvider) params[0]).getValue().toString();         JSONObject paramObj = JSONUtil.parseObj(paramJson);         //取出数组中的查询条件列         JSONArray paramsList = JSONUtil.parseArray(paramObj.getStr("paramsList"));         //取出第一条json数据的url         String url = paramObj.getStr("url");         //返回的结果集         List<Object[]> valueList = new ArrayList();         //调用接口需要传的参数         JSONObject json=new JSONObject();         //执行接口调用         String result = HttpRequest.post(url)                 .timeout(50000)//超时,毫秒                 .body(JSONUtil.toJsonStr(json))                 .execute().body();         //将接口返回的字符串json参数解析转换位bean格式         ResultDate resultJson = JSONUtil.toBean(result, ResultDate.class);         //如果接口调用成功         if(resultJson.getCode().equals("200")){             //将解析好的resultJson中的fields取出来             List<Object[]> fields = resultJson.getData().get("fields");             //将字段英文名和字段中文名,存到objects数组中,将每条objects数组放到List返回             for(int i = 0;i<fields.get(0).length;i++){                 Object[] objects = new Object[2];                 objects[0] = fields.get(0)[i];                 objects[1] = fields.get(1)[i];                 valueList.add(objects);             }             //valueList = resultJson.getData().get("fields");         }         return valueList;     } }

最佳回答
0
shirokoLv6资深互助
发布于2023-6-30 14:09
最佳回答
0
CD20160914Lv8专家互助
发布于2023-6-30 14:10

是有这个问题的。你添加后,不管它。然后直接发布到服务器上,它可以接收到参数的。

  • 法外狂徒张三 法外狂徒张三(提问者) 我现在在本地测试,好像是传不过去参数的
    2023-06-30 14:12 
  • 法外狂徒张三 法外狂徒张三(提问者) 因为我有传入一个url嘛,根据url返回的数据,生成列名称,现在什么也没有了
    2023-06-30 14:12 
  • CD20160914 CD20160914 回复 法外狂徒张三(提问者) 可以的。我们用过。除非你的java程序写得有问题,你编译成class文件的吗?你本地设计器放进去后。要重启设计器,如果是服务器也要重启才会生效的
    2023-06-30 14:13 
  • 法外狂徒张三 法外狂徒张三(提问者) 回复 CD20160914 重启设计器了,我将url在Java中写死,是能正常返回数据的,但是传参就是传不过去,Java获取参数那段代码看着没什么麻烦的,应该没写错
    2023-06-30 14:15 
  • CD20160914 CD20160914 回复 法外狂徒张三(提问者) 那不太清楚了。我之前也是10.0.19传参数是可以的。
    2023-06-30 14:17 
  • 2关注人数
  • 367浏览人数
  • 最后回答于:2023-11-23 08:49
    请选择关闭问题的原因
    确定 取消
    返回顶部