api自定义数据集



背景说明

报表的数据大部分来自数据库,正常情况下润乾报表都能自动处理,但是也会有特殊情况,例如通过中间键连接数据库而非直连,通过业务程序算出的数据传递给报表进行展现等等,在这种情况下客户需要自定义数据集。

下面通过一个简单的例子介绍如何自定义数据集。

应用举例

1:新建一个类文件,在类文件中写如下代码:

package test;
import java.sql.Connection;
import java.util.Iterator;
import java.util.Map;
import com.runqian.report4.dataset.DataSet;
import com.runqian.report4.dataset.IDataSetFactory;
import com.runqian.report4.dataset.Row;
import com.runqian.report4.usermodel.Context;
import com.runqian.report4.usermodel.CustomDataSetConfig;
import com.runqian.report4.usermodel.DataSetConfig;
public class MyDataSet implements IDataSetFactory {
public DataSet createDataSet(Context ctx, DataSetConfig dsc, boolean isinput) {
System.out.println(”aa”);
//获取系统数据源
String datasourceName = dsc.getDataSourceName();
if( datasourceName==null || “”.equals(datasourceName) )
//判断用户是否对数据集设置了数据源名,如果没有,则直接读取系统默认的数据源
datasourceName = ctx.getDefDataSourceName();
Connection con;
try {
con = ctx.getConnectionFactory( datasourceName ).getConnection();
System.out.println( “得到的数据源是:”+con );
con.close();
} catch (Exception ex) {
ex.printStackTrace();
}
//取得参数列表并分别取得它的参数名与值,宏与之类似
Map map = ctx.getParamMap(false);
if( map != null ){
Iterator it = map.keySet().iterator();
while( it.hasNext() ){
//分别取得参数
String key = it.next().toString();
String value = map.get(key).toString();
System.out.println(”报表传入的参数”+key+”的值是:”+value);
}
}
//读取定义数据集时定义的传入参数
CustomDataSetConfig cdsc = (CustomDataSetConfig)dsc;
String[] args = cdsc.getArgNames();
String[] vals = cdsc.getArgValue();
if( args != null ){
for( int i=0; i <args.length; i++="" ){
String key = args[i];
String value = vals[i];
System.out.println(”定义数据集时传入参数”+key+”的值是:”+value);
}
}
//读取同一报表中已算出的数据集
//DataSet ds = ctx.getDataSet(”ds1″);
//System.out.println(”数据集ds1共有 “+ds.getColCount()+” 列字段”);
//构造一个数据集
DataSet ds2 = new DataSet(”ds2″);
String[] filds = dataset[0];
for(int i=0; i < filds.length; i ++){
ds2.addCol( filds[i] );//设置数据集的字段
System.out.println(”设置数据集的字段:”+filds[i]);
}
//设置数据集中的数据
for(int i = 1; i < dataset.length; i ++ ){
String[] datas = dataset[i];
Row rr = ds2.addRow();
for(int j = 0; j < datas.length; j ++){
rr.setData(j+1,datas[j]);
System.out.println(”设置数据集的数据第”+i+”行 第”+j+”列的值:”+datas[j]);
}
}
return ds2;
}
//定义一个二维数组作为本自定义数据集的来源
String [][] dataset = {
{”id”,”name”,”zhi”},
{”1″,”a”,”100″},
{”2″,”b”,”200″},
{”3″,”c”,”300″}
};
}

2:将类文件拷贝到相应文件下

在设计器中使用自定义类应把编译后的.class文件放在designer\classes\自定义类所在的包名下面。比如 MyDataSet.java在test包中,那么就应该把编译后的MyDataSet.class文件放在设计器安装路径\ reportHome\designer\classes\test包中,如果classes下面不包含test包,用户要新建。

在服务器中运行使用自定义类的报表文件时应把自定义类编译后的.class文件放在reportHome\webapps\WEB-INF \classes\自定义类所在的包名下面。比如MyDataSet.java在test包中,那么就应该把编译后的MyDataSet.class文件放在设计器安装路径\reportHome\webapps\WEB-INF\classes\test包中,如果classes下面不包含test包,用户需要新建。

3:新建一张报表,如下图

4:报表中设置自定义数据集,如下图

5:点击预览,浏览效果图

自定义数据集就完成了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要训练一个自定义数据集,你需要按照以下步骤进行操作: 1. 收集数据:首先,你需要收集与你的任务相关的数据。这些数据可以是对话,文本或者任何形式的输入输出对。确保数据集足够大并且包含广泛的情况,以便模型能够学习到不同的模式和变化。 2. 数据清洗和预处理:在训练之前,你需要对数据进行清洗和预处理。这可能包括去除噪声、标准化文本格式、去除不相关的信息等。确保你的数据集符合你任务的需求,并且没有明显的偏差或错误。 3. 数据格式化:将数据格式化为适合模型训练的格式。对于聊天模型,通常使用输入-输出对的形式,其中输入是问题或上下文,输出是对应的回答或响应。确保你的数据集按照这种格式进行组织。 4. 模型训练:使用适当的深度学习框架(如TensorFlow、PyTorch等),根据你的数据集训练模型。你可以选择使用预训练的语言模型(如GPT)作为基础模型,并在自定义数据上进行微调。调整模型的超参数(如学习率、批量大小等)以获得更好的性能。 5. 模型评估和调优:在训练过程中,定期评估模型的性能并进行调优。使用验证集或测试集来评估模型的准确性、流畅性和一致性。根据评估结果,可以尝试调整模型架构、训练参数或数据预处理步骤。 6. 部署和使用:一旦你的模型训练完成并且通过评估,你可以将其部署到生产环境中。这可能涉及将模型封装为API、集成到你的应用程序或者其他方式,以实现实际的应用场景。 需要指出的是,训练一个自定义数据集是一个复杂的过程,并且需要对深度学习和自然语言处理有一定的了解。确保你具备相关的技术知识或者与有经验的团队合作来完成这个任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值