REPCoder Changelog
What's new in REPCoder 9.60
Jan 12, 2015- The report description is no longer limited to 1000 characters. Now it is compressed in SFM or SFR file and has no limitation.
- In REPCoder script language (calculated fields):
- Variables of TEXT type are now passed by pointer between functions resulting in much faster execution of the scripts.
- A new operator: "+=" was introduced. It is mainly intended to concatenate TEXT variables. It works much faster because of using realloc function instead of malloc and memcpy. It is similar to the "+=" operator in the C++ std::string class.
- New predefined variables (similar to ROW_NUMBER): ROW_COUNT, ROW_TYPE.
- ROW_NUMBER - This is a predefined variable of the NUMERIC(0) type, that returns the current row number of the SQL query result.
- ROW_COUNT - This is a predefined variable of the NUMERIC(0) type, that returns the total number of rows in the SQL query result, or the number of rows in a group when the query is sorted with ORDER BY. It is used inside the aggregate rows (ROW_TYPE: -1, 1,2,3,...).
- ROW_TYPE - This is a predefined variable of the INT type, that returns the type of a row: 0 - standard rows; 1 - the total aggregate row of the SQL query result; 1,2,3,... - group aggregate rows of a sorted SQL query result this is the aggregate rank - position in the ORDER BY clause).
- SUM_..., $MIN_..., $MAX_... - special input fields:
- In the INPUT section, for aggregate rows, you can use special fields with names starting witch $SUM_, $MIN_, $MAX_. The rest of the name is the name of the corresponding SQL field, (example: $SUM_salary, $MIN_birthdate, $MAX_age). They represent SUM, MIN, MAX of the SQL field in the entire result set (ROW_TYPE = -1) or in aggregate groups due to ORDER BY clause (ROW_TYPE = 1,2,3,...). But in the standard records (ROW_TYPE = 0) these fields have NULL values. These special input fields are used only to calculate some needed statistics in the aggegate rows (ROW_TYPE = -1, 1,2,3,...). In this case the calculated OUTPUT fields for these rows must have names starting with $$$ (example: $$$sumofsalary, $$$minbirthdate.
- $$$... - special output fields:
- For example: $$$sumofsalary, $$$minbirthdate, $$$avgsalary
- They are special OUTPUT fields, that are accessible only in the grouping and total aggregate rows (ROW_TYPE = 1,2,3,... or ROW_TYPE = -1) of the SQL result. For standard records (ROW_TYPE = 0) these fields have NULL values. To calculate these fields you should normally use the special INPUT fields that have names starting with $SUM_, $MIN_, $MAX_. In the body of a script (LOCAL section) you can use conditional expressions (IF, ELSEIF, ELSE) depending on the value of ROW_TYPE.
- Example: IF( ROW_TYPE != 0 ) { do something 1 ... } ELSE { do something 2 ... } IMPORTANT: To calculate some average value you need to divide a sum value by the ROW_COUNT predefined variable, that returns the number of records in a group (ROW_TYPE = 1,2,3,...) or in the entire result set (ROW_TYPE = -1).
- Support for very long MEMO data was added:
- Now it can be divided into many pages. This feature was already available in the previous version: 9.50.
- New API functions in REPCODER.DLL:
- repc_get_report_desc_len
- repc_alloc_report_desc
- repc_free_memory
- repc_set_dialog_fonts
- repc_create_result
- repc_create_result_param
- repc_admin_setup
- "REPCoder Admin" version 1.0 was created and released:
- It is a reporting server based on REPCODER.DLL and Firebird (or InterBase) SQL server. This package (repcoder_admin.zip) can be dowloaded seperately.
New in REPCoder 9.30 (Dec 3, 2012)
- A programming interface for Java was added using jna.jar - currently Windows only
- A new sample report was added: "Report 23 - data transfer"
- Internal improvements