Report Developer

download Report Developer

of 86

Transcript of Report Developer

  • 7/30/2019 Report Developer

    1/86

    REPORT DEVELOPER

    Reports Developer is a powerful enterprise reporting tool used to build reports that dynamically

    retrieve, format, and distribute information stored in the database.

    Reports Developer enables you to:

    Web publish high quality reports.

    Perform unlimited data formatting.

    Take advantage of application server based reporting.

    Meet us er needs with an integrated business intelligence solution.

    Reports Developer ToolsReports Developer provides a builder that enables you to easily construct sophisticated reports

    and a server that enables you to securely publish reports to your users.

    Report Builder Reports Server

    Report Builder:

    UseReport Builder to design professional, production-quality reports . You can create reports in

    a combination of styles and publish them in a variety of widely used formats, including HTML andPDF.

    Report Server:

    Use the Reports Server to securely publish production-quality reports. Using the Reports Serverin conjunction with Oracle Web DB, you can control access to reports and administer your

    Reports Servers from a Web interface. You can also use the Reports Server to distribute reportsthrough CGI-compatible Web servers.

    Supporting Reports Developer Tools

    Reports Developer includes additional tools to automate and manage application developmenttasks .

    Graphics Builder

    Project Builder

    Procedure Builder

    Schema Builder

    Query Builder

    Translation Builder

  • 7/30/2019 Report Developer

    2/86

    to build applications that enable end users to visualize data and interact graphically with a database

    Graphic Builder:

    UseGraphics Builder

    to build applications that enable end users to visualize data and interactgraphically with a database.

    Project Builder:

    UseGraphics Builderto build applications that enable end users to visualize data and interact

    graphically with a database.

  • 7/30/2019 Report Developer

    3/86

  • 7/30/2019 Report Developer

    4/86

    Data model

    Data Definition objects in data model:

    Queries:

    A query contains a SQL SELECT statement that retrieves data from the database

    for your report.

    Non-linkable queries:

    A non-linkable query is a detail query that contains column objects that prevent

    the query from being linked to via a column-to-column link. If you attempt to

    create such a link, a message dialo g box displays, which prompts you to choose

    whether to create a group-to-group quer y (using the parent groups), or to cancel

    the operation. A non-linkable query displays in its title bar.

    Instead, you can create a group-to-group link between the two queries and add a WHERE clause to the child

    querys SELECT statement, using a bind variable to reference the parent column.

    GROUPS:

    Groups are created to organize the columns in your report. When you create a

    query, Report Builder automatically creates a group that contains the columns

    selected by the query. You create additional groups to produce br eak levels in thereport, either manually or by using the Report Wizard to create a group above or

    group left report.

  • 7/30/2019 Report Developer

    5/86

  • 7/30/2019 Report Developer

    6/86

  • 7/30/2019 Report Developer

    7/86

    LEXICAL REFERENCES:

    Lex ical references ar e placeholders for text that you embed in a SELECT statement. You can use lexical

    references to replace the clauses appearing after SELECT, FROM, WHERE, GROUP BY, ORDER BY,

    HAVING, CONNECT

    BY, and START WITH.

    You cannot make lexical references in a PL/SQL statement. You can, however, use a bind reference in PL/SQL

    to set the value of a parameter that is then referenced lexically in SQL. Look at the example below.

    You create a lexical reference by enterin g an ampersand (&) followed immediately by the column or parameter

    name. A default definition is not provided for lexical references. Therefore, you must do the following:

    Before you create your query, define a column or parameter in the data model for each lex ical refer ence in the

    query. For columns, you must enter Value if Null, and, for parameters, you must enter Initial Value. Report

    Builder uses these values to validate a query with a lexical reference.

    Eg:

    SELECT &P_ENAME NAME, &P_EMPNO ENO, &P_JOB ROLE FROM

    EMP

    P_ENAME, P_EMPNO, and P_JOB can be used to change the columns selected at runtime. For example, youcould enter DEPTNO as the value for P_EMPNO on the Runtime Parameter Form. Note that in this case, you

    should use aliases for your columns. Otherwise, if you change the columns selected at runtime, the column

    names in the SELECT list will not match the Report Builder columns and the report will not run

  • 7/30/2019 Report Developer

    8/86

    DATA LINKS:

    Data links relate the results of multiple queries. A data link (or parent-child relationship) causes the child query

    to be executed once for each instance of its parent group. When you create a data link in the Data Model view o

    f your report, Report Builder constructs a clause (as specified in the link's Property Palette) that will be added to

    the child query's SELECT statement at runtime. You can view the SELECT statements for the individual parent

    and child queries in the Builder, but can not view the SELECT statement that includes the clause created b y the

    data link you define.

    Note:

    Oracle Reports does not support data links between queries that contain column objects. If you attempt to create

    such a link, a message dialog box displays, which enables you to choose whether to tell Repor ts to create a

    group-to-group

    query instead (using the parent groups), o r to can cel the operation. If you want to create a link between any type

    of column and a column object, you can manually type the SQL statement using the appropriate column alias(es).

    LEXICAL REFERENCES:

    Lex ical references ar e placeholders for text that you embed in a SELECT statement. You can use lexical

    references to replace the clauses appearing after SELECT, FROM, WHERE, GROUP BY, ORDER BY,

    HAVING, CONNECT

    BY, and START WITH.

    You cannot make lexical references in a PL/SQL statement. You can, however, use a bind reference in PL/SQL

    to set the value of a parameter that is then referenced lexically in SQL. Look at the example below. You create a

    lexical reference by enterin g an ampersand (&) followed immediately by the column or parameter name. A

    default definition is not provided for lexical references. Therefore, you must do the following: Before you create

    your query, define a column or parameter in the data model for each lex ical refer ence in the query. For

    columns, you must enter Value if Null, and, for parameters, you must enter Initial Value. Report Builder uses

    these values to validate a query with a lexical reference.

    Eg:

    SELECT &P_ENAME NAME, &P_EMPNO ENO, &P_JOB ROLE FROM

    EMP

  • 7/30/2019 Report Developer

    9/86

  • 7/30/2019 Report Developer

    10/86

    LAYOUT MODEL

    Layout Objects in reports:

    FRA MES:

    Frames are used to surround other objects and protect them from being overwritten or pushed by other objects.

    For example, a frame might b e used to surround all objects owned by a group, to surround column headings, or

    to surround summaries.

    When you default the layout for a report, Report Builder creates frames aro und report objects as n eeded; you

    can also create a frame manually in the Layout Model view.

    Note:Frame n ame always starts with M_.

    REPEATING FRAMES:

    Repeating frames surround all of the fields that ar e created for a groups columns. The repeating frame prints

    (is fired) once for each record of the group. When you default the layout for a report, Report Builder creates r

    epeating frames around fields as needed; you can also create a rep eating frame manually in the Layout Model

    view.

    For your understanding, consider there are more than 50 records in a table. Now when you have only the frameyou can display only one record.

    For eg:

    Without repeating frame:

    Sno. Name Empid Dept

    1 Dinesh 56971 GE

    With repeating frame:

  • 7/30/2019 Report Developer

    11/86

    Sno. Name Empid Dept

    1 Dinesh 56971 GE

    ..50 Vishnu 56973 GE

    REPEATING frame name always start with R_.

    Defining repeating frame inside main frame

    BOILERPLATE:

    Boilerplate is an y text or graphics that appear in a report every time it is run. Report Builder will create one

    boilerplate object for each label selected in the

    Report Wizard (it is named B_Column name). Also, one boilerplate object is sometimes created for each report

    summary. A boilerplate object is owned by the object surrounding it, unless otherwise noted.

  • 7/30/2019 Report Developer

    12/86

    FIELDS: (pic above)

    A field is the layout container for each column in the layout. A field is owned by the object surrounding it,

    typically a repeating frame, unless the field is a summary (in which case it is owned by a frame).

    Parameter Form field:Parameter Form fields are layout containers for parameters used on the Runtime

    Parameter Form.

    ANCHORS:

    Anchors are used to determine the vertical and ho rizontal positioning of a child object relative to its parent. The

    end of the anchor with a symbol on it is attached to the parent object. Since the size of some layout objects may

    chan ge when the report runs (and data is actually fetched), you need anchors to define where you want objects

    to appear relative to one another. An anchor defines the relative position of an object to the object to which it is

    anchored. Positioning is based on the size of the objects after the data has been fetched rather than on th eir size

    in the editor. It should also be

    noted that the position of the object in the Layout editor effects the final po sition in the report output. Any

    physical offset in the layout is incorporated into the percentage position specified in the Anchor property sheet.

    Anchor restrictions:

    An object may be anchored to only one other object.

    Matrix objects, anchors, and the mar gin cannot be anchored to anythin g (i.e., they may not be the parent orchild object for an anchor).

    A repeating frame th at is the vertical or horizontal repeating frame for a matrix cannot be an chored to another

    object, but other objects may b e anchored to it (i.e., it can be the parent but not the child object for an anchor).Nothing can be an chored to a hidden object (an object with Visible set to No).

    Moving an anchor also causes the two objects it anchors together to move. Objects cannot be ancho red together in such a way that they h ave a circulardependency.

    To copy an anchor, you must select the anchor and the two objects it anchorstogether. If you select theanchor by itself, nothing will be copied to the pastebuffer. If you select the anchor and one of the objects,

  • 7/30/2019 Report Developer

    13/86

    only the object is placed in

    the clipboard.

    An anchor cannot be resized.

    An anchor must always be on top of the objects it anchors together (i.e., it must be one or more layers

    above the parent and child objects). Report Builder prevents you from moving the anchor to a layer below

    its parent and child objects. You cannot use Align, Align Objects, or Size Objects from the Arrange menu on anchors.

    Examples:

    Centering fields horizontally

  • 7/30/2019 Report Developer

    14/86

    PARAMETER FORM

    Parameter Form

    The Report Editor's Parameter Form view enables you to create a Runtime Parameter Form for your report. You

    can select pre-d efined system parameters for your form using the Parameter Form Builder, or you can create

    your own.

    Painting regionThe painting region is the area in which you can create, modify, position, or delete objects while

    viewing their graphical representations on

    the screen.

    The painting region of the Parameter Fo rm view is comprised of physical pages(contains Boiler Plate,

    fields, graphics).

    You specify the size of each parameter form page and the number of pages using the Report property

    sheet (double-click the report's node in the Object Navigator).

    PROPERTY PALETTE

    The Property Palette has an outline-style interface that enables you to view, locate, and set object

    properties. The Property Palette features:

  • 7/30/2019 Report Developer

    15/86

    expandable and collapsible nodes

    In-place property editingSearch features

    Multi-selection

    Complex property dialogsThe ability to invoke multiple instances of the Property Palett

    Live Previewer

    The Report Editor's Live Previewer view enables you to preview and inspect your report output page by page

    Yo u can also work directly with the report output to customize and refine the appearance of your report.

  • 7/30/2019 Report Developer

    16/86

  • 7/30/2019 Report Developer

    17/86

    MANUALL REPORT TABULAR

    Tabular Report (Manual Report)

    Query:

  • 7/30/2019 Report Developer

    18/86

    Classification: Internal

  • 7/30/2019 Report Developer

    19/86

    Steps 3:Go to Property pallet of group and then change the name as

    G_p.

    Steps 4: Create a main frame. Go to property p alette and chan ge vertical & horizonda

    elasticity as Expand.

    (Vishav; pic upper ki neeche , neeche ki uper karo)

  • 7/30/2019 Report Developer

    20/86

    Steps 5:

    Now create a repeating frame inside main frame. Also sets its vertical & horizontal elasticity as expand

    . Then set the source to G_p.

    Step 6:

    Inside repeating frame create fields that is to be displayed in report. Right click each field and set the

    source f rom group attributes. Also set vertical & horizontal elasticity as expand.

  • 7/30/2019 Report Developer

    21/86

  • 7/30/2019 Report Developer

    22/86

    Step 7: Now run the report. By pressing

    NOTE : While manually creating a layout remember the order of creating its objects.

    1. Frame

    2. Repeating frame inside Frame

    3. Fields / boilerplates

    One more thing, your main frame should not cross the 7 inches in the rules. This applies

    both horizontally & vertically.

  • 7/30/2019 Report Developer

    23/86

    Summary Column (Report Level)

    Reset At

    The Reset At property is the group at which the summary column value resets to zero (if Function is Count),

    null (if Function is not Count), or Value If Null (if the column has one). Reset At has a list of values containing

    valid reset groups. Reset At determines if

    the summary is a running summary or a periodic (e.g., group-level) summary.

    ValuesPage Is used for page-lev el summaries. The summary is reset between p ages

    Report Is used for summaries that apply to the entire rep ort, such as gr and totals. The summary is resetafter the r eport (i.e., it is never reset).

    Is a valid group name. The summary is reset after each record of the group.

    Applies to summary columns.

    The reset group of a summary column may be its group or any group above its

    group, including Report and Page.

    To ensure that page summaries behave in a predictable way, make sure each record fits on a single page, o r if

    that is not feasible, force each new record to print on a new page.

    Reset At - Restrictions

    Reset At is only editable for summary columns.

    Summary columns that are owned by a cross-product group cannot have a Reset At of Page.

    If a summary has a Reset At of Page, then the sizing of the field or boilerplate object that displays it must be

    fixed.

    If a column has a Reset At of Page, then an y fields that use it as a source must be contained in repeating frames

    that use the column's group as their source.

    A Reset At of Page will not work for reports that have multiple repeating frames associated with a group that is

    involved in the summary. One common case of this is a matrix report. As a result, matrix reports cannot have

    page-level summaries.

    For multiple summary columns that are in child groups that share the same parent group, a Reset At of Pagemay produce incorrect results.

    If your data model contains multiple child groups with a shared p arent ( e.g., master-detail-d etail), summary

    columns with a Reset At of Page may give unexpected results.

    STEPS

    Consider the tabular report above. Follow the steps 1to step 3in above example.

    Step 4: In data model click (SUM like sign) for creatin g summary column.

  • 7/30/2019 Report Developer

    24/86

  • 7/30/2019 Report Developer

    25/86

  • 7/30/2019 Report Developer

    26/86

    Summary Column (Group Level)

    Consider the manually created tabular report abov e.

    Follow the steps 1to step 3 as above example.

    Step 4: Before Creating a summary column inside a Group, Select that grou p and then

    create summary column..In data model click Summary Column

    Step 5: Right click the cs2 and go to property palette.

  • 7/30/2019 Report Developer

    27/86

    Now select the function as Count and Source as PRODUCT_NO.

  • 7/30/2019 Report Developer

    28/86

    Step 6: Now go to Layout model create a field F_4 inside Main frame an d go to its property palette

    and set its source as CS_

  • 7/30/2019 Report Developer

    29/86

    Step 7: Now run the report

    .

    Conditional Formatting

    Using theConditional Formattingand Format Exception dialog boxes, you can specify output formatting

    attributes (font and/or color) for a selected layout object based on conditions that exist. The conditions that you

    define are called format exceptions.

    You can display the Conditional Formatting dialog box from the Live Previewer view o r Layout Model view inany of the following ways:

    Double-click the object to display the Property Palette. Under the General Layout node, click the Conditional

    Formatting value field (labeled ).

    Display the pop-up menu (right-click in Windows) for the object.

    Click the object, then choose Format Conditional Formatting.

    After you specify conditions and formatting for the current layout object in the Format Exception dialog box,

    the entire definition is exported to a PL/SQL format trigger. If a format trigger already exists for the layout

  • 7/30/2019 Report Developer

    30/86

    object, the definition in the Format Exception dialog box overwrites the existing trigger code wh en you confirm

    the Report Builder prompt.

    You can edit the format trigger manually via the PL/SQL Editor; however, if you subsequently modify the

    definition using the Format Exception dialog box , Report Builder displays a prompt to overwrite the ex isting

    format trigger. Consider the above report for demo.

    Step 1 to step 6 is same as above.

    Step 7: Go to Layout Model right click any object in the report, click conditional Formatting.

  • 7/30/2019 Report Developer

    31/86

    Now set the condition and format as per your wish.

    Set condition for COST_PRICE field also. Then run the report

  • 7/30/2019 Report Developer

    32/86

    Formula Column (Report Level)

    Query:

    selectproduct_no , qty_on_hand , cost_price fromproduct_master

    Now create the report manually using normal steps.

    Step 3: In Data Model

    Now click FORMULA COLUMN . Then click the report

  • 7/30/2019 Report Developer

    33/86

    Step 4: Now create Formula column by pressing this icon . Then right click CF_1, click property

    palette

    Click the PL/SQL Formula tab. Write the following code in the functio n.Code:

    return:CS_1 *0.125 ;

    Then Press Compile button to check code is write or not. If sucessfully completed

    Close the window.

    Note:

    While reteriving the v alue from any layout object put in front of object name.

  • 7/30/2019 Report Developer

    34/86

    Step 5: Noe create a layout in layout model and run the report

  • 7/30/2019 Report Developer

    35/86

    Formula Column (Group Level)

    Query:

    selectproduct_no , qty_on_hand , cost_price fromproduct_master

    Step 1: Create the report in usual manner.

    Step 2: Now go to data model for cr eating summary and formula column.

    Step 3: Now select the group and click Formula co lumn icon

  • 7/30/2019 Report Developer

    36/86

    Right click CF_1 and click property palette. Then click PLSQL Formula tab

  • 7/30/2019 Report Developer

    37/86

    then in Pl/SQL editor type Code:

    return (:qty_on_hand)*(:cost_price);

    Step 4: In the same way create a summar y column at report lev el

    Step 5: Now create one more formula column at report level

  • 7/30/2019 Report Developer

    38/86

  • 7/30/2019 Report Developer

    39/86

    Step 5: Now create one more formula column at report level.

    Code:

    return :CS_1 *0.125 ;

    Step 6: Move to Layout model to create layout for objects

  • 7/30/2019 Report Developer

    40/86

    Step 7: Now run the report.

  • 7/30/2019 Report Developer

    41/86

  • 7/30/2019 Report Developer

    42/86

  • 7/30/2019 Report Developer

    43/86

    Step 3: Now create layout for this report in layout model as below

    STEP 4. : RUN THE REPORT

  • 7/30/2019 Report Developer

    44/86

  • 7/30/2019 Report Developer

    45/86

    Parameter Form (Bind Reference)

    Query: select * from SALES_ORDER_DETAILS where product_no = :PRODUCT_NUM

    Step 1: Create the report in usual manner.

    As we have used bind reference in the query, automatically the User Parameter is created.

  • 7/30/2019 Report Developer

    46/86

  • 7/30/2019 Report Developer

    47/86

    Step 2: Now go to the parameter form. Then create a field using this icon

    .Then right click the field and go to its property palette.

    Now select the source as PRODUCT_NUM . You can think why product_num. This is because it is the bindreference used in SQL

    SELECT Statement in QUERY.

  • 7/30/2019 Report Developer

    48/86

  • 7/30/2019 Report Developer

    49/86

    Step 3: Now go to layout modelto create a layout for the report as below.

    Step 4: Run the report.

  • 7/30/2019 Report Developer

    50/86

  • 7/30/2019 Report Developer

    51/86

    NOW SELECT THE PRODUCT NUMBER AS OF UR CHOICE. AND PRESS ENTER

  • 7/30/2019 Report Developer

    52/86

  • 7/30/2019 Report Developer

    53/86

  • 7/30/2019 Report Developer

    54/86

  • 7/30/2019 Report Developer

    55/86

    Break Report (Without Joins)

    Break report is created when you want the repeating values for the column to be printed only once.

    Thus the break report are efficient only wh en the select statement includes a column, called abreak

    columncontaining at least one value which repeats over multiple records.

    Query:

    select * from sales_order

    Step1: create the report in usual manner.

    Step 2: Now click the ORDER_STATUS from the group G_S_ORDER_NO and drag it above the

    group as below.

  • 7/30/2019 Report Developer

    56/86

  • 7/30/2019 Report Developer

    57/86

    Step 3: Now go to the layout model & create a layout for this report. AND RUN THE REPORT

  • 7/30/2019 Report Developer

    58/86

  • 7/30/2019 Report Developer

    59/86

    Break Report (With Joins)

    Query:

    SELECTsales_order.s_order_no,sales_order.dely_date,sales_order_details.product_no,product_master.description,

    product_master.unit_measure, sales_order_details.qty_ordered, sales_order_details.qty_disp FROM

    sales_order, sales_order_details,product_master WHERE sales_order_details.s_order_no = sales_order.s_order_no AND

    sales_order_details.product_no = product_master.product_no AND sales_order_details.qty_ordered >sales_order_details.qty_disp

    Create the report in usual manner. Create a break group G_1 which has columns S_Order_no &

    Dely_date

  • 7/30/2019 Report Developer

    60/86

    Now Create A Layout As Shown Below And Run:

  • 7/30/2019 Report Developer

    61/86

  • 7/30/2019 Report Developer

    62/86

    Step 1: Create a report in usual manner. Write query into data model and name it as Q_master and Q_d etail.

    Then create a link between the query. Select the primary key column in G_master then click the following

    icon and drag the lik connect it to detail query then link is created. Set all summary column reset as to

    G_MASTER in property palette

    Step 2: Now go toTools report wizard.

  • 7/30/2019 Report Developer

    63/86

  • 7/30/2019 Report Developer

    64/86

  • 7/30/2019 Report Developer

    65/86

    STEP 3: Then run the report

  • 7/30/2019 Report Developer

    66/86

    Matrix Report

    A matrix report is a summary report that presents the desire data with headings across thetop and do wnleft side.

    The data in middle like spreadsheet.

    The totals are displayed across the bottom and right side.

    A matrix report is referred as Cross Tab report.

    A matrix report is cross tabulation of 4 set of data:

    1. one set across the page.

    2. one set of data do wn the page.

    3. one set of data is cross product.

    4. one set of data is filler.

    Different types of matrix report.

    a. Simple matrix.b. Nested matrix.

    c. Multi query matrix with break.

    d. Matrix break.

  • 7/30/2019 Report Developer

    67/86

  • 7/30/2019 Report Developer

    68/86

  • 7/30/2019 Report Developer

    69/86

    Matrix Report (Using Wizard)

    Query:SELECT product_master.description, sum(sales_order_details.qty_ordered) "quantity",

    to_char(sales_order.s_order_date,'mm') mth,

    to_char(sales_order.s_order_date,'mon') mthfull FROM sales_order_details,

    sales_order, product_master WHERE (sales_order_details.s_order_no = sales_order.s_order_no) AND(sales_order_details.product_no = product_master.product_no) GROUP BY to_char(sales_order.s_order_date,

    'mm'), product_master.description,to_char(sales_order.s_order_date,'mon') ORDER BY to_char(sales_order.s_order_date, 'mm')asc

    Step 1: Create a query in usual manner in data model.

  • 7/30/2019 Report Developer

    70/86

    Step 2: Now select the description inG_description and drag that column to upper left.

    Step 3: Similarly select mthfull from the groupG_description and drag that to upper right.

  • 7/30/2019 Report Developer

    71/86

    Now rename the group as follows:

    G_descriptionasG-quan tityG_1 as G_description

    Step 4: Now click the following icon [axb] to create a cross product group and name that as G_countquantity.

    Click the icon and select the groups G_description & G_mthfull.

    Rename G_2 as G_ count_quantity.

  • 7/30/2019 Report Developer

    72/86

  • 7/30/2019 Report Developer

    73/86

    Set the properties to following:

    Product order: G_descriptionFunction : Sum

    Source : Countquantity

    Reset At : G_description (Since we need to sum singly item qty for all month)

  • 7/30/2019 Report Developer

    74/86

    Set the properties to following:

    Product order: G_mthfull

    Function : SumSource : Countquantity

    Reset At : G_mthfull (Since we need to sum all item qty for all month)

  • 7/30/2019 Report Developer

    75/86

    Step 6: Now create a layout using report wizard

  • 7/30/2019 Report Developer

    76/86

  • 7/30/2019 Report Developer

    77/86

  • 7/30/2019 Report Developer

    78/86

  • 7/30/2019 Report Developer

    79/86

  • 7/30/2019 Report Developer

    80/86

    Matrix Report (Using Wizard)

    Query:SELECT product_master.description, sum(sales_order_details.qty_ordered) "quantity",

    to_char(sales_order.s_order_date,'mm') mth,

    to_char(sales_order.s_order_date,'mon') mthfull FROM sales_order_details, sales_order, product_master

    WHERE (sales_order_details.s_order_no = sales_order.s_order_no) AND (sales_order_details.product_no =product_master.product_no)

    GROUP BY to_char(sales_order.s_order_date, 'mm'), product_master.description,to_char(sales_order.s_order_date,'mon')ORDER BY to_char(sales_order.s_order_date, 'mm')asc

    Create the report as p er above example.

    STEPS 1 TO STEP 5 ARE SAME AS ABOVE.

    For differentiating I have changed the n ames of Groups as follows:

    Countquantityasfiller cell

    Sumcountquantityperdescription

    asqty_on_hand_all_monthsSumcountquantitypermthfull

    asqty_per_months

  • 7/30/2019 Report Developer

    81/86

    Step 6: Draw a layout fo r the matrix report in layout model.

  • 7/30/2019 Report Developer

    82/86

    Property Palette:

    Field F_1: Field F_2:

  • 7/30/2019 Report Developer

    83/86

    Field F_3: Field F_4:

  • 7/30/2019 Report Developer

    84/86

    Field F_5: Field F_6:

  • 7/30/2019 Report Developer

    85/86

    STEP 7: RUN THE REPORT.

  • 7/30/2019 Report Developer

    86/86