990 likes | 1.02k Views
Genero 2.40 – New Features. Scott Pickett – WW Informix Technical Sales For questions about this presentation contact: spickett@us.ibm.com. Agenda – Genero 2.40 New Features In. Genero 4gl Compatibility Genero Report Writer Genero Studio Genero Application Server and Web Client
E N D
Genero 2.40 – New Features Scott Pickett – WW Informix Technical Sales For questions about this presentation contact: spickett@us.ibm.com
Agenda – Genero 2.40 New Features In • Genero 4gl Compatibility • Genero Report Writer • Genero Studio • Genero Application Server and Web Client • Genero Web Client • Genero Desktop Client
Table Aggregate Fields It is now possible to define a summary line for TABLEs by using AGGREGATE form fields. Values can be automatically computed or can be calculated and displayed by the program. Types => SUM (default), AVG, MAX, MIN, PROGRAM. Label can be localized. AGGREGATE fields define screen-record fields that hold computed values to be displayed as footer cells in a TABLE container. Presentation Style can be applied.
DISPLAY ARRAY modification triggers New ON INSERT, ON APPEND, ON UPDATE and ON DELETE interaction blocks. Same dialog rules as for any other legacy/previous interaction block (ON KEY, ON ACTION, ...). Allowed in DISPLAY ARRAY dialogs to implement list modification, as an alternative to the traditional INPUTARRAY dialog. These new triggers simplify the programming of modifiable record lists.
Built-in Find in Display Array and Input Array New find and findnext implicit user actions in DISPLAY ARRAY and INPUT ARRAY to search rows where a field value matches one user-entered in the find dialog box. Crtl-F / Ctrl-G(Next) accelerators by default in DISPLAY ARRAY and INPUT ARRAY. By default, any table column is scanned, but the user can select a specific column in the find dialog box, as long as a column title is available. Case-sensitive or insensitive search as well as wrap-around options are also available.
Built-in Find in Display Array and Input Array • Works with any list container (TABLE, TREE, SCROLLGRID). • Only rows in memory can be searched. • When using page-mode (ON FILL BUFFER), the built-in search is disabled. • When implementing dynamic tree views, the built-in find will only search the tree nodes available in the program array. • Searches thru phantom fields will not be possible.
Built-in Seek in Display Array The DISPLAY ARRAY (not INPUT ARRAY) dialog supports a now built-in seek feature, to quickly find rows where a field value starts with the character typed by the user. The seek search is case-insensitive. The end user can rapidly type several characters on the keyboard, to search for a value that starts with the typed characters. After a given timeout (less than a second), the seek buffer is cleared and a new search filter can be taken into account.
Built-in Seek in Display Array • Works with any list container (TABLE, TREE, SCROLLGRID). • Only rows in memory can be searched. When using page-mode (ON FILL BUFFER), the built-in search is disabled. When implementing dynamic tree views, the built-in find will only search the tree nodes available in the program array.
4gl/BDL support Short-circuit evaluation option: By default, in the Genero language, the traditional behavior of AND and OR operators is to evaluate all operands on the left and right side of the operator. A new global program option to instruct the runtime system to optimize any module Boolean expressions evaluation. This feature can improve performance and simplify programming.
4gl/BDL support • The NVL() operator: • The Null Value Substitution allows you to write the equivalent of an IF expr IS NOT NULL THEN RETURN expr ELSE RETURN default END IF statement in a single scalar expression. • The IIF() operator: • The Immediate IF allows you to write the equivalent of an IFbool-exprTHEN RETURN true-value ELSE RETURN false-value ENDIF statement in a single scalar expression.
SQL support SQL ... END SQL blocks: Provides a convenient way to execute specific SQL statements that are not supported in the language as static SQL statements. Static SQL compliance with IBM Informix 4GL: SELECT projection clause options FIRST, LIMIT, SKIP, MIDDLE CASE expressions in SQL statements. IF EXISTS and IF NOT EXISTS clauses in SQL DDL statements.
SQL support • Transaction Savepoints: • Defines or resets the position of a rollback point in the current transaction. • Example: ROLLBACK WORK TO SAVEPOINT x; • Control shadow column extraction with fgldbsch: • Starting with IBM Informix IDS version 11.50.xC1, you can create shadow columns on tables, which must not be extracted by the fgldbsch tool. • You must use the -sc option to force the extraction of shadow columns.
MISC Support for terminfo capability database, previous Genero versions only supported legacy termcap. New database drivers: dbmntz6x for IBM Netezza ODBC client. dbmsncB0 for SQL Server 2011 Native client. dbmesmB0 for SQL Server 2011, with Easysoft ODBC driver. dbmpgs91x for PostgreSQL 9.1.x client. Control ORACLE DATE fetch into CHAR/VARCHAR variables (via fglprofile entry). Support for the ROWVERSION type of SQL Server (2008+).
Support / Debug considerations You can work on any tickets without having access to the real DB/datasource. You need to ask your customer 3 piece of information: Set GREDATAFILE=/path/to/file.xml and get the xml datasource The .4rp design report file. The .rdd file. With those three pieces of information you can debug an application using the exact runtime circumstances in use at the customer site. GREDEBUG is always a great help.
GRW features New Data matrix barcodes: Data matrix barcodes can be used to encode text and binary data of variable length. Additional options for MapCharts: Disabling legend and/or labels, specifying colors. Improved optimization for Report Viewer: Internal – embedded in GDC. Memory usage reduced by setting a disk cache for documents: Internal.
GRW Features New report output formats for Excel 2007 (.xlsx) and Word (.rtf). New properties for Text and Image fields allow them to behave as Hyperlinks. New function to create a process level data file and a document at the same time.
GRW Features • New functions to provide generic report auto-formatting when no report design document (.4rp) is specified for a report: • Alternative to compatibility mode. • OrderReport sample demo – ‘Generic List’ example. • Report Design Document Metadata Properties. • Additional new Report API functions, marked "New in 2.40“ • New functions to create Document Metadata for compatibility reports. • Improved page n of m (streaming).
General Features Additional Web Client support: AJAX, Silverlight, HTML5, Iphone theme. Custom .xcf can be read. Change your browser depending on the Theme. Import setup and preferences of earlier versions at first startup. Support of high contrast mode and of Windows screen readers for accessibility standards.
General Features • Ease of use - the Windows>>Workspace menu allows you to select the default layout. • You can toggle Full Size Documents or Full Screen to maximize your working space: • Via Alt-F11 / Alt-Shift-F11 (Full Screen Mode). • Multiple instances of Studio can be opened: • From Windows file system, click on several projects, it will open several GST instances. • States of previous session are remembered: • Re-open a project, all files that you left opened are in the state you left them. • Export diagrams as an image.
Code Editor Better optimization for 4GL and for its use in Remote configurations. Support for XML Catalogs: Part of the Report Writer. Recognition of [BLOCK], [POINT] for the Application Generator. Preview and print, on a single page or multiple pages.
Debugger & Source Code Manager DBG: Optimized for programs with large data in variables, and for use in remote configurations. SVN: Update options, to omit externals, for example. SVN: Add mode for adding multiple files.
Project & Database Managers Project Manager Automatically adds dependency information when a project is imported. View of intermediate files when build rules use these files: We will review this as part of the BAM section. Database Browser: Easier editing and viewing; options have been added in Edit mode, and document errors/warnings are displayed while editing. Multiple views of the same database can be created.
Business Application Modeling (BAM) A Model-Driven Approach - BAM allows you to develop business applications from design diagrams rather than writing some code and model: Business applications using diagrams describing the functionality of the applications. Components of your applications and their interconnection in a high level business diagram. Detailed designs of your database, forms, services in sub-diagrams.
Business Application Modeling (BAM) • A Model-Driven Approach - BAM allows you to develop business applications from design diagrams rather than writing some code and model (cont’d): • The structure of the database table columns in a sub-diagram to be used in generating code for reports. • Automatically generate an application matching the behavior. described in the diagrams without coding. • Enhance the generated code with your own logic. • Generate and output reports to a printer or in various output formats. • Create/Adapt your own templates.
BAM - Process Create the project first. Application Design: Create the diagram to model the application design. Create database, forms, services, reports: Create the diagrams that model these components of the application. A normalization process and external dependencies are ok here. Design user interface and generation options: Select the options for your application. If you create relationships, between objects, then you can reuse code. Generate code and insert custom code: Code generated based on the models, and customized if desired.
BAM: Generate simple CRUD CRUD = Create, Read, Update, Delete Review BAM process using a few tables. Great for simple prototypes. Using default dbapp 2.40 template.
BAM - Add a detail Master-detail integration within the same form. 2 record sets are created. Either the foreign/primary keys are already normalized or each needs to be specified.
BAM - Add Combobox Quick and easy way to create lookup field. Assign the widget to a dropdown List.
BAM - Add Report Add a report to the project. Creates a new record set. Generates a default report from xml if no Report Design is specified.
BAM - Custom Code Modify code: Intermediate files are visible from the Studio project. POINT/BLOCK. Modify resource files: Toolbar, TopMenu, Action Default. Import resources per managed form or you’ll need to modify the default files.
BAM - Add Program From the modified Toolbar, add an item. Create a new relationship between programs in the diagram.
BAM: Modify or create your own template You can replicate our default template and modify it: If point/block are not enough. You can start your own template from scratch: Advanced process, very tedious. All resources files can be duplicated. By default all our default templates use TCL, you can create/adapt your own using another scripting language (XSLT, Python, …). You then embed chunks of your custom 4gl.
BAM: Additional Resources and Thoughts Studio doc, Application Modeling section. Complete officestore demo generated: %GSTDIR\gst\samples\OfficeStore\OfficeStore.4pw. Two types of profiles/prospects: Easy: People that want to quickly create decent CRUD based on a default template to integrate in more complex Genero apps written manually. Experts: People that are used to an App Gen and that want to generate completely their packages without a single line of code manually written + provide entry points for customization.