Java 如何开始使用动态Jasper

Java 如何开始使用动态Jasper,java,jasper-reports,dynamic-jasper,Java,Jasper Reports,Dynamic Jasper,我在开始使用dynamic jasper时遇到了一个问题。我有一个控制器类,它有一个表,并希望使用DynamicJasper将该表转换为快速报告,以便在给定当前内容的情况下将其打印出来。有人知道如何使用动态Jasper吗?我读了文档,但不太明白。我在printAction函数中包含了我的jasper代码,这样一旦按下,它就可以打印出表中的内容。但是,我不明白在给定类的情况下,从哪里可以获得“分支”和String.class.getName()?我必须先用jasper创建一个jrxml文件吗?我如

我在开始使用dynamic jasper时遇到了一个问题。我有一个控制器类,它有一个表,并希望使用DynamicJasper将该表转换为快速报告,以便在给定当前内容的情况下将其打印出来。有人知道如何使用动态Jasper吗?我读了文档,但不太明白。我在
printAction
函数中包含了我的jasper代码,这样一旦按下,它就可以打印出表中的内容。但是,我不明白在给定类的情况下,从哪里可以获得
“分支”
String.class.getName()
?我必须先用jasper创建一个jrxml文件吗?我如何基本上实现代码,使其工作?
printAction
中的代码是在其网站()上找到的示例代码。希望有人知道怎么用这个。多谢各位

我的控制器类:

public class ProfileController implements Initializable {
    @FXML
    private JFXTextField name, age;

    @FXML
    private TableView<Profile> table;
    @FXML
    private TableColumn<Profile, String> nameColumn;
    @FXML
    private TableColumn<Profile, String> ageColumn;

    ProfileDAO profileDAO = new ProfileDAO();

    @Override
    public void initialize(URL url, ResourceBundle rb) {
    //prepare cells
                nameColumn.setCellValueFactory(cellData -> cellData.getValue().profileNameProperty());
                ageColumn.setCellValueFactory(cellData -> cellData.getValue().profileAgeProperty());

      try() {
        table.setItems(profileDAO.search())
      }catch(){

      }
    }

    @FXML
    private void printAAction() {
        FastReportBuilder drb = new FastReportBuilder();
        DynamicReport dr = drb.addColumn("State", "state", String.class.getName(),30)
        .addColumn("Branch", "branch", String.class.getName(),30)
        .addColumn("Product Line", "productLine", String.class.getName(),50)
        .addColumn("Item", "item", String.class.getName(),50)
        .addColumn("Item Code", "id", Long.class.getName(),30,true)
        .addColumn("Quantity", "quantity", Long.class.getName(),60,true)
        .addColumn("Amount", "amount", Float.class.getName(),70,true)
        .addGroups(2)
        .setTitle("November 2006 sales report")
        .setSubtitle("This report was generated at " + new Date())
        .setPrintBackgroundOnOddRows(true)
        .setUseFullPageWidth(true)
        .build();

        JRDataSource ds = new JRBeanCollectionDataSource(TestRepositoryProducts.getDummyCollection());
        JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), ds);
        JasperViewer.viewReport(jp);    //finally display the report report     
    }

}
轮廓刀

ublic class ProfileDAO {
    public ObservableList<Profile> search() throws SQLException,ClassNotFoundException {
        //declare PreparedStatement & ResultSet
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;        
        //Declare a SELECT statement
        String selectQuery = "SELECT * FROM profiles";

        //Execute SELECT statement
        try {
            //initializing PreparedStatement
            preparedStatement = connection.prepareStatement(selectQuery);
            //initializing ResultSet via SqliteConnection method
            resultSet = preparedStatement.executeQuery();

            ObservableList<Profile> profileList = getProfileList(resultSet);

            //Return Profile object
            return titlesList;
        } catch (SQLException e) {
            System.out.println("error " + e);
            //Return exception
            throw e;
        }
        finally {
            if(preparedStatement != null)
            {
                preparedStatement.close();
            }
            if(resultSet != null)
            {
                resultSet.close();
            }  
        }       
    }   

    private static ObservableList<Profile> getProfileList(ResultSet resultSet) throws SQLException, ClassNotFoundException {
        //Declare a observable List
        ObservableList<Profile> profileList = FXCollections.observableArrayList();

        while (resultSet.next()) {
            Profile profile = new Profile();
            profile.setProfileName(resultSet.getInt("name"));
            profile.setProfileAge(resultSet.getString("age"));

            //Add to  ObservableList
            profileList.add(profile);
        }
        //return empList (ObservableList of Employees)
        return titlesList;
    }   
}
public类ProfileDAO{
public observeList search()抛出SQLException,ClassNotFoundException{
//声明PreparedStatement和ResultSet
PreparedStatement PreparedStatement=null;
ResultSet ResultSet=null;
//声明SELECT语句
String selectQuery=“从配置文件中选择*”;
//执行SELECT语句
试一试{
//初始化预处理语句
preparedStatement=connection.prepareStatement(选择查询);
//通过SqliteConnection方法初始化ResultSet
resultSet=preparedStatement.executeQuery();
ObservableList profileList=getProfileList(resultSet);
//返回配置文件对象
返回标题列表;
}捕获(SQLE异常){
系统输出打印项次(“错误”+e);
//返回异常
投掷e;
}
最后{
if(preparedStatement!=null)
{
preparedStatement.close();
}
if(resultSet!=null)
{
resultSet.close();
}  
}       
}   
私有静态ObservableList getProfileList(ResultSet ResultSet)抛出SQLException、ClassNotFoundException{
//声明一个可观察的列表
ObservableList profileList=FXCollections.observableArrayList();
while(resultSet.next()){
配置文件=新配置文件();
setProfileName(resultSet.getInt(“name”);
setProfileAge(resultSet.getString(“年龄”);
//添加到可观察列表
profileList.add(profile);
}
//返回员工列表(员工观察列表)
返回标题列表;
}   
}

它不是重复的。任何想知道如何开始使用DynamicAsper的人,请查看此线程的答案()。我终于解决了。祝大家好运。@Alex K:请将它作为副本删除,因为它不是副本。它询问的是实现和您提供的链接中未提供的示例。谢谢,祝您度过愉快的一天。在修改最后一个问题之前,您询问了noclassdeffounderror。好的,但是你的问题(你的帖子里有很多问题)太宽泛了。嗯,这并不是一个真正的问题看起来最好删除这篇文章,因为你创建了另一篇文章并解决了这篇文章中描述的问题
ublic class ProfileDAO {
    public ObservableList<Profile> search() throws SQLException,ClassNotFoundException {
        //declare PreparedStatement & ResultSet
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;        
        //Declare a SELECT statement
        String selectQuery = "SELECT * FROM profiles";

        //Execute SELECT statement
        try {
            //initializing PreparedStatement
            preparedStatement = connection.prepareStatement(selectQuery);
            //initializing ResultSet via SqliteConnection method
            resultSet = preparedStatement.executeQuery();

            ObservableList<Profile> profileList = getProfileList(resultSet);

            //Return Profile object
            return titlesList;
        } catch (SQLException e) {
            System.out.println("error " + e);
            //Return exception
            throw e;
        }
        finally {
            if(preparedStatement != null)
            {
                preparedStatement.close();
            }
            if(resultSet != null)
            {
                resultSet.close();
            }  
        }       
    }   

    private static ObservableList<Profile> getProfileList(ResultSet resultSet) throws SQLException, ClassNotFoundException {
        //Declare a observable List
        ObservableList<Profile> profileList = FXCollections.observableArrayList();

        while (resultSet.next()) {
            Profile profile = new Profile();
            profile.setProfileName(resultSet.getInt("name"));
            profile.setProfileAge(resultSet.getString("age"));

            //Add to  ObservableList
            profileList.add(profile);
        }
        //return empList (ObservableList of Employees)
        return titlesList;
    }   
}