Tuesday, April 26, 2011

Friday, April 22, 2011

NextReports : empty elements in designer

Till version 4.1 of designer when a new report was created all new empty cells from  new rows or new columns were 'null'. That means when we select an empty cell no properties are seen in corresponding panel. Secondly, to merge one or more cells, only one cell must be not-empty and all the others must be null.

These facts make it harder to accomplish layout formatting for your reports.

Starting with 4.1 version, when new empty cells are created, they will be by default text-based with an empty string. The only case in which a band element is null  is in a cell span.

The most important advantage is that we can start to format the cell immediately, we do not need a previous step of inserting an empty string. Practically the following business was modified :
  1. merge algorithm allows to merge cells with empty string
  2. insert row & insert column actions from layout and from tree will insert band elements with empty strings
  3. merge action will nullify all cells without data (empty strings)
  4. unmerge action will insert empty band elements inside the 'null' ones
  5. add group action will insert empty band elements in header & footer
  6. new report action will insert empty band elements in footer row

    Monday, April 04, 2011

    NextReports Server - Single Sign On

    NextReports Server allows integration with all your applications through Single Sign On using CAS.

    To make this possible, NextReports defines a process which first brings the users into the content repository. A simple xml configuration will define synchronization process. You must specify your data source and your queries to get users names and users attributes (which allows to map any fields you may have to NextServer repository):
    <bean id="syncService" class="com.asf.nextserver.security.DatabaseExternalUsersService">
            <property name="dataSource" ref="syncDataSource"/>
            <property name="userNamesQuery">
                <value>SELECT USER_NAME FROM USERS</value>          
            <property name="userQuery">
                <value>SELECT * FROM USERS WHERE USER_NAME = ?</value>
            <property name="mapping">
                    <!--  required -->
                    <entry key="user.username" value="USER_NAME"/>
    To define your CAS , a validation ticket must be written which will inform about cas login and cas logout urls:
    <bean id="tValidator" class="com.asf.nextserver.web.security.cas.CasServiceTicketValidator">
            <constructor-arg index="0" value="https://myurl:myport/cas"/>
            <property name="loginUrl" value="https://myurl:myport/cas/login"/>
            <property name="logoutUrl" value="https://myurl:myport/cas/logout"/>