This is a detailed list of changes in CSPro 7.5. For a more general overview, see the readme.txt file located in the CSPro installation folder.
- On Android devices it is possible to record and play audio in two modes: interactive mode, with the enumerator able to control the recording; and background mode, with the recording controlled by logic functions using the new Audio object.
- Listing files can now be written as comma-separated values (CSV) or CSPro data files. Traditional listing files in text format are still supported.
- A new object, Audio, that allows for recording or playing audio. It has the functions: clear, concat, length, load, play, record, recordInteractive, save, and stop.
- A new object, HashMap, that facilitates storage of numbers or strings in an associative array. It has the functions: clear, contains, getKeys, length, and remove.
- A new function, syncparadata, similar in behavior to syncdata, allows for the syncing of paradata between devices over Bluetooth, or between a device and a CSWeb, Dropbox, or FTP server.
- A new function, replace, returns a string with one of more instances of a substring replaced with new text.
- A new function, encode, escapes special characters to facilitate writing to HTML or CSV files, or encodes characters when writing out URIs or URI components.
- A new namespace, Path, has functions for interacting with file paths: Path.concat, Path.getDirectoryName, Path.getExtension, Path.getFileName, and Path.getFileNameWithoutExtension.
- User-defined functions now support optional parameters as well as passing numeric and string values by reference.
- Conditional compilation of logic is now possible due to the addition of a logic preprocessor.
- New functions for List objects: List.removeDuplicates removes duplicate values; List.removeIn removes values specified in an in list; and List.sort sorts a List.
- The List.show and ValueSet.show functions work with string List and string ValueSet objects.
- The ValueSet.randomize function is a new way to randomize value sets (which previously could be done using randomizevs). These value set randomizations now obey any seed value provided using the seed function.
- The ValueSet.sort function sorts the order of entries in the value set by either label or code.
- The randomin function now accepts non-integer values in the input in list.
- New numeric and string variables can be declared inline in the recode statement's destination variables section.
- A new callback function, OnSystemMessage, provides a way to override the displaying of system error messages.
- It is possible to check a value against all special values using the code special in an in list (which are also used by recode and when statements).
- List objects can also be used as inputs of an in list.
- The loadsetting and savesetting functions accepts numeric values as part of the attribute-value pair.
- The hash function accepts numeric values as inputs.
- The Deploy Application tool has options to refresh all files or all data entry applications within a folder.
- CSWeb can convert case data to MySQL/MariaDB relational tables using a command line process, allowing for more dynamic reporting.