jet.api
Class MultipliedDesigner

java.lang.Object
  extended by jet.api.API
      extended by jet.api.Designer
          extended by jet.api.MultipliedDesigner

public class MultipliedDesigner
extends Designer

The MultipliedDesigner class allows an application to create and manipulate JReport ReportSets (.cls) and its children objects. By building a MultipliedDesigner instance in a Java program, users can edit a ReportSet by methods provided by API.
ReportSets are also called Page Reports in JReport manuals.

JReport ReportSet and its objects are stored in a tree structure. An instance of MultipliedDesigner can retrieve each object in the ReportSet by its handle. The handle of an object is named by its qualified and unique instance name.

A ReportSet is composed of one or more reports (also called tabs or sheets) that are designed for the same purpose, or related purposes. Report developers can design, maintain, run and schedule these reports together or separately. The reports in the same ReportSet can share the same parameters and DataSets which reduces the number of queries to the DBMS.

A dataset is the set of data built from the result of a query, and can optionally have filters applied to it. A dataset contains not only DBFields, but also all formulas, summaries, and parameters that use the DBFields. A dataset has a name, which by default is the name of the resource on which it is created. When you create a data component, you specify whether to create a new dataset for it or use an existing one.

JReport reports are usually composed of multiple components. Components in JReport can be classified as follows:

A label is an object that contains a string. It is typically a brief description used to identify a field or other value nearby.

An image is a digital representation of a picture. JReport supports the following image formats: .bmp, .gif, .jpg, and .png.

A table is composed of rows and columns, and each contains several cells. Tables give you great control over how to present data, including placing fields, grouping them, and sorting them. With such a structure a table is a good way to show any two-dimensional dataset.

A crosstab summarizes data and presents the summaries in a compact row and column format.

A chart organizes and graphically presents data in a way that makes it easy for end users to see comparisons, trends, and patterns in data. It represents the report data in a visually straightforward form. A chart is based on the chart platform. On the platform, the chart paper, the legend, and labels make up the chart. You can create a chart that contains only simple DBFields, or a complicated chart that contains DBFields, groups, summaries, and even formulas. Normally, DBFields, summaries, and formulas in a report are represented in a chart using chart data markers, and groups are used to produce category names and data series names. DBFields can also be used as category names.

A banded object is a component that can present grouped data and detailed data. A banded object is composed of several banded panels(sections) with which you can easily organize data fields and other elements.

A tabular is a component designed to lay out other components. Unlike a table component, which is used to display a dataset, a tabular is a set of cells that can each display a data component.

A report that is inserted into another report is referred to as the subreport. Subreports are inserted and managed just like a component in a primary report, but a subreport itself is created and managed just like a primary report. You can specify relationships between the primary report and the subreport as well as have JReport pass values to the primary report or the subreport. A primary report can have more than one subreport. They can be in the same ReportSet as the primary report or can be in different ReportSets.

Formula fields are calculated from DBFields, other formulas, summaries, parameters and constants, so they can present information that DBFields cannot do.

A summary is a special kind of formula. A summary generates a count, average, sum, standard deviation or other aggregation of a set of data values. A summary may apply to a defined group of data or can be a dynamic summary able to summarize on any group.

A parameter in JReport is a variable whose value is determined at runtime. The runtime parameters help you dynamically control your report results when used as parameters in a query.

Drawing objects can only be inserted into banded objects. You can add arcs, ovals, boxes, round boxes and lines to your report.

Some components can be bound with a dataset or inherit data from the dataset of their parents. These components are table, chart, crosstab, and banded object, and they are also referred to as data containers or data components. Depending on the location of the libraries you either need a Designer API License Key or a Server Designer API License Key. If you are using Designer libraries you need report.jar and JREngine.jar (Designer API License Key) If you are using Server libraries you need JRSRMI.jar (Server Designer API License Key)

For detailed explanation about the object properties, refer to the help document Getting property information

The following is one example of the use of the MultipliedDesigner. The code:

 
  MultipliedDesigner dr = null;
        try
        {
                  String path = "C:\\JReport\\Designer\\Demo\\Reports\\TutorialReports";
        String catName = "TutorialReports.cat";
        DesignerUserInfo userInfo=new DesignerUserInfo("UID", "designer API license key");
                  dr = new MultipliedDesigner(path, catName,userInfo);
                  CatalogAPI cat = dr.getCatalogAPI();
         ......         
        }
        finally
        {
                dr.exit();
        }

   // To create a new ReportSet (Page Report) with a banded object using the above MultipliedDesigner (dr)
   // 1. Create ReportSet
   reportset = dr.createReportSet(name);
   // 2. Add Dataset
   dataset = dr.addDataset(reportset, queryname, dsname, null, Designer.DATASET_TYPE_QUERY);
   // 3. Create a report tab inside the ReportSet
   report = dr.addReport(reportset, name);
   // 4. Insert a PagePanel into the report tab
   page = dr.insertPage(report);
   // 5. Insert the data component you want to use such as a banded object
   banded = dr.insertBandedObject(reportbody, true, true, true);
   // 6. Bind the dataset to the reportbody and set inherit from parent for the banded object
   dr.bindDataSet(reportbody, queryname);
   dr.set(banded, "dataInherit", true);
   // 7. Get handles so that you can start adding objects to the report
   handles = dr.getHandles(banded, Designer.PAGE);
      ......
   // 8. Add groups to the banded object page
   GroupInfo ginfo = new GroupInfo(dbfield,GroupInfo.DESCENDING);
   group = dr.insertSectionGroup(handles[0], ginfo);
      .....
   // 9. Exit and save changes
   dr.exit();
  


Field Summary
 
Fields inherited from class jet.api.Designer
ARC, AREA_ARRAY_2D, AREA_ARRAY_3D, AREA_PERCENT_2D, AREA_PERCENT_3D, AREA_STACK_2D, AREA_STACK_3D, AREACHART, BANDEDOBJECT, BANDEDOBJECT_FOOTER, BANDEDOBJECT_HEADER, BANDEDOBJECT_PAGEFOOTER, BANDEDOBJECT_PAGEHEADER, BAR_ARRAY_3D, BAR_PERCENT_2D, BAR_PERCENT_3D, BAR_PERCENT_AREA_STACK_2D, BAR_PERCENT_LINE_ARRAY_2D, BAR_PERCENT_LINE_STACK_2D, BAR_SIDEBYSIDE_2D, BAR_SIDEBYSIDE_3D, BAR_SIDEBYSIDE_AREA_STACK_2D, BAR_SIDEBYSIDE_LINE_ARRAY_2D, BAR_SIDEBYSIDE_LINE_STACK_2D, BAR_STACK_2D, BAR_STACK_3D, BAR_STACK_AREA_STACK_2D, BAR_STACK_LINE_ARRAY_2D, BAR_STACK_LINE_STACK_2D, BARCHART, BARCODEFIELD, BENCH_ARRAY_3D, BENCH_PERCENT_2D, BENCH_PERCENT_3D, BENCH_SIDEBYSIDE_2D, BENCH_SIDEBYSIDE_3D, BENCH_STACK_2D, BENCH_STACK_3D, BENCHARRAYCHART, BENCHCHART, BOX, BUBBLE_2D, CENTERBOTTOM, CENTERCENTER, CENTERTOP, CHART2DCOORDINATEPAPER, CHARTCOORDINATEPAPER, CHARTLABEL, CHARTLEGEND, CHARTPLATFORM, CODABAR, CODE_128, CODE_39, COLUMN, COMPUTEDCOLUMN, CROSSTAB, CTAGGFIELD, CTAGGINFO, CTDBFIELD, CTHDDBFIELD, CTHDTEXTFIELD, DATAOBJECT, DATASET, DATASET_TYPE_HDS, DATASET_TYPE_ONDEMAND, DATASET_TYPE_QUERY, DBFIELD, DETAIL, DIRECTION_BACKSIDE, DIRECTION_FORESIDE, EAN_13, EAN_8, FETCHDATE, FETCHTIME, FIELD_CATALOGPATH_ONDISK, FIELD_CATALOGPATH_ONSERVER, FIELD_REPORTPATH_ONDISK, FIELD_REPORTPATH_ONSERVER, FORMULA, GAUGE_BALLS_2D, GAUGE_BARS_2D, GAUGE_DIALS_2D, GROUP, GROUPFOOTER, GROUPHEADER, GROUPNAME, GROUPNUMBER, GROUPNUMBERS, IMAGE, JBROWSER, JHYPERLINK, JUSTIFYBOTTOM, JUSTIFYCENTER, JUSTIFYTOP, LABEL, LEFT, LEFT_UNDERSIDE_POINT, LEFT_UPSIDE_POINT, LEFTBOTTOM, LEFTCENTER, LEFTTOP, LINE, LINE_ARRAY_2D, LINE_ARRAY_3D, LINE_ARRAY_LINE_ARRAY_2D, LINE_PERCENT_2D, LINE_STACK_2D, LINECHART, MEDIAFIELD, MODIFIEDDATE, MODIFIEDTIME, MULTI_VALUE_BOX, NEWSTYLETABLE, OVAL, PAGE, PAGEBREAK, PAGEEND, PAGEFOOTER, PAGEHEADER, PAGENOFM, PAGENUMBER, PAGENUMBERS, PAGESTART, PARAGRAPH, PARALLELDETAIL, PARAMETER, PIE_SIDEBYSIDE_2D, PIE_SIDEBYSIDE_3D, PIECHART, PRINTDATE, PRINTTIME, RADAR_2D, RECORDNUMBER, RENDER_BARCODE, RENDER_BUTTON, RENDER_CHECKBOX, RENDER_DROPDOWNLIST, RENDER_IMAGE, RENDER_IMAGEBUTTON, RENDER_LIST, RENDER_RADIOBTN, RENDER_RANK, RENDER_RESETBUTTON, RENDER_SUBMITBUTTON, RENDER_TEXT, RENDER_TEXTAREA, RENDER_TEXTFIELD, REPORT, REPORTBODY, REPORTFOOTER, REPORTHEADER, REPORTSET, REPORTSHEET, RIGHT, RIGHT_UNDERSIDE_POINT, RIGHT_UPSIDE_POINT, RIGHTBOTTOM, RIGHTCENTER, RIGHTTOP, ROUNDBOX, RPTDATASOURCE, SCATTER_POINTS_2D, SCATTER_SMOOTH_LINES_2D, SCATTER_STRAIGHT_LINES_2D, SHAPE, SIDEBYSIDEBARCHART, SQLSTATMENT, STACKEDBARCHART, STACKEDBENCH, STOCK_HIGH_LOW_2D, STOCK_HIGH_LOW_CLOSE_2D, STOCK_OPEN_HIGH_LOW_CLOSE_2D, SUBLINK, SUBPARAMLINK, SUBREPORT, SUBRETVALUE, SUMMARY, SURFACE_3D, TABLE, TABLE_COMMONCOLUMN, TABLE_DETAILCOLUMN, TABLE_DETAILSECTION, TABLE_FOOTERSECTION, TABLE_GROUP_FOOTERSECTION, TABLE_GROUP_HEADERSECTION, TABLE_GROUPCOLUMN, TABLE_HEADERSECTION, TABLE_SUMMARYCOLUMN, TABLECELL, TABULARCELL, TEXT, TEXTBOX, UDO, UPC_A, UPC_E, USERNAME, ZORDER_BACKWARD, ZORDER_BOTTOM, ZORDER_FORWARD, ZORDER_TOP
 
Fields inherited from class jet.api.API
BOOLEAN, CAT, CENTIMETER, COLOR, DOUBLE, ENUM, FLOAT, INCH, INTEGER, LONG, PIXEL, REFERENCE, RPT, SELFRPT, STRING, TEXTRPT, UNKNOWN, XMLCAT, XMLRPT
 
Constructor Summary
MultipliedDesigner(java.lang.String path, java.lang.String name, java.lang.String suffix, DesignerUserInfo user)
          Constructor.
 
Method Summary
 MultipliedCatalogAPI getCatalogAPI()
          Gets a MultipliedCatalogAPI instance with the specified catalog.
 
Methods inherited from class jet.api.Designer
addDataset, addDisplayName, addDisplayName, addReport, appendTabularColumn, appendTabularRow, bindDataSet, canDeleted, canMergeTableCell, canMergeTabularCell, changeTabularCellHeight, changeTabularCellWidth, changeTabularHeight, changeTabularWidth, changeZOrder, close, closeReportSet, create, create, createReportSet, delete, deleteBandedObject, deleteCrossTabAggregations, deleteCrossTabColumns, deleteCrossTabRows, deleteDetailPanel, deleteGroup, deletePage, deletePageController, deleteReport, deleteReport, deleteReportFile, deleteSectionFooterPanel, deleteSectionHeaderPanel, deleteTableColumns, deleteTabularColumn, deleteTabularRow, exit, exitAndSave, getAllDisplayNames, getAllResourceNames, getCatalogName, getChangedByFields, getChartLabel, getControlField, getControlFields, getDatasetBLFilter, getDBFields, getDisplayName, getFormats, getFormulae, getFormulas, getGeometries, getGeometries, getGroupInfo, getGroupNames, getGroups, getIndex, getKey, getMinSectionHeight, getObjectInfo, getObjectType, getParameter, getParent, getProcedures, getProcedures, getQueries, getQueries, getQueryName, getReporthome, getReportSortInfo, getSections, getSections, getSections, getSortInfo, getSQLs, getSQLs, getSummaries, getTableColumnHandle, getTableColumnIndex, getTableWidth, getTabularCell, getTabularColumnCells, getTabularRowCells, getUDS, getUDS, getUID, getUserID, getViews, hasPageSecurity, hideTableColumn, insert, insert, insert, insert, insert, insert, insert, insert, insert, insert, insert, insert, insert, insert, insertBandedObject, insertChart, insertColumn, insertCrossTab, insertCrossTabAggregations, insertCrossTabColumns, insertCrossTabRows, insertDetailPanel, insertField, insertPage, insertPageBreak, insertPageStartEnd, insertSectionFooterPanel, insertSectionGroup, insertSectionHeaderPanel, insertSectionPanel, insertShape, insertSubReport, insertTable, insertTable, insertTableColumn, insertTableColumn, insertTableGroup, insertTabular, mergeTableCells, mergeTabularCells, moveCrossTabAggregations, moveCrossTabColumns, moveCrossTabRows, moveTableColumns, open, pivotCrossTab, pivotTable, quit, quit, removeDisplayName, removeTableGroup, resizeTable, resizeTabular, saveAs, saveSelfContainedReport, saveSelfReport, set, set, setControlFields, setCTAggFieldHeight, setCTAggFieldWidth, setCTAggTitleHeight, setCTAggTitleWidth, setCTColHeaderHeight, setCTRowHeaderWidth, setDataset, setDatasetBLFilter, setDefaultFormat, setPageWidth, setReporthome, setReportSortInfo, setSortInfo, setStyle, setStyle, setTableColumnWidth, setUserInfo, showTableColumn, splitTabularCell, updateDisplayName
 
Methods inherited from class jet.api.API
clearError, clearMsg, clearWarning, closeLog, containPropName, getBool, getChildren, getClassType, getColor, getDouble, getError, getFloat, getHandles, getHandles, getHandles, getHandles, getInstanceName, getInt, getLong, getPropNames, getPropType, getQualifyName, getString, getStringArray, getUnit, getWarning, set, set, set, set, set, setLog, setLog, setLog, setReference, setUnit, writeLog, writeLog
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultipliedDesigner

public MultipliedDesigner(java.lang.String path,
                          java.lang.String name,
                          java.lang.String suffix,
                          DesignerUserInfo user)
                   throws jet.jetc.ReadFailureException,
                          jet.universe.exception.UniverseFileException
Constructor. Creates a MultipliedDesigner class instance. The MultipliedDesigner loads the catalog object with the specified catalog file's path and name. If the catalog file does not exist, a new catalog will be created. Since JReport version 13.5, JReport upgrades the universe in structure and functional level. MultipliedDesigner will load the universe and upgrade it automatically.

Parameters:
path - Indicates the path of the catalog file.
name - Indicates the name of the catalog file.
user - The DesignerUserInfo includes the product license of Design API.
suffix - Indicates the suffix of the catalog file. Design API can save a catalog in binary or XML format. The suffix can be XMLCAT or CAT.
Throws:
jet.jetc.ReadFailureException
jet.universe.exception.UniverseFileException
Since:
version 6.1.
Method Detail

getCatalogAPI

public MultipliedCatalogAPI getCatalogAPI()
Gets a MultipliedCatalogAPI instance with the specified catalog.

Overrides:
getCatalogAPI in class Designer
Returns:
a reference of MultipliedCatalogAPI. If fails, a null value will be returned, you can use getError() to check the error message.