集智平台cs模式报表使用简介

java应用有不少是C/S模式,在C/S模式下,同样可以调用报表的API接口运算、展现、导出打印报表。报表的计算、导出和在B/S模式下方法相同。展现和打印用到了CSReport类。CSReport是C/S模式下的报表控件类,在这个类中可以获得报表的显示面板、获得报表的打印面板、显示报表打印窗口、直接打印报表等等。

下面分别介绍这几步的实现方法

运算报表

private IReport CalcReport(String reportFile, String license) {

       ExtCellSet.setLicenseFileName(license);//设置授权

       ReportDefine rd = null;

       try {

           rd = (ReportDefine) ReportUtils.read(reportFile);//读取报表

       } catch (Exception e) {

           e.printStackTrace();

       }

       Context cxt = new Context();

       Engine engine = new Engine(rd, cxt);

       IReport iReport = engine.calc();

       return iReport;

    }

以上代码的功能是运算报表,和在B/S模式下运算报表差不多。

展现报表

Private showReport(IReport iReport){

       CSReport csReport = new CSReport(iReport);

       try {//获取报表的显示面板,并且放置在frame窗体中

           getContentPane().add(csReport.getDisplayPane());

       } catch (Throwable e) {

           e.printStackTrace();

       }

       show();

    }

展现报表效果

 

导出报表(导出excel方法)

private void SaveAsExcel() {

       String fileName = “”;

       // 定义导出文件的格式

       FileNameExtensionFilter filter = new FileNameExtensionFilter(“excel”,

              “xls”);

       JFileChooser jFileChooser = new JFileChooser();

       jFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

       jFileChooser.setFileFilter(filter); // 调用定义好的文件类型

       jFileChooser.setDialogTitle(选择保存路径”);

       int result = jFileChooser.showSaveDialog(csReport.this);

       if (result == JFileChooser.APPROVE_OPTION) {//判断是否选择保存按钮

           fileName = jFileChooser.getSelectedFile().getAbsolutePath()

                  + “.xls”;

           System.out.println(fileName);

           try {

              ReportUtils.exportToExcel(fileName, iReporttrue);

           } catch (Throwable e) {

              e.printStackTrace();

           }

       }

    }

其他格式文件的导出方法和这个类似,这里就不介绍了。

导出保存时界面

 

打印报表

private void printReport() {

       JFrame jFrame = new JFrame();

       CSReport csReport = new CSReport(iReport);

       try {

           csReport.print(jFrame);

       } catch (Throwable e) {

           e.printStackTrace();

       }

    }

打印时首先定义一个窗体,然后调用CSReport类中打印方法就可以实现了。

 

CS模式下使用报表没有BS模式下方便,因为没有专门的标签或者方法直接调用,但是润乾提供了丰富的API接口,简单组织一下代码就能实现,通过上面的实例代码可以看出,代码并不复杂。