This is a detailed list of changes in CSPro 7.7. For a more general overview, see the readme.txt file located in the CSPro installation folder.
- The dictionary editor has an additional view, the property panel. It allows the user to associate additional properties and/or features to a dictionary element.
- External logic files are now editable. Each logic file will appear in the forms or batch edit tree and can be viewed and modified just like any other PROC. Double-clicking on an error or warning in the compiler output window will now show the external logic editing window. If you want the old behavior of opening the file in Notepad++, hold down the Ctrl button while double-clicking.
- The logic editor supports code folding, a way to collapse and uncollapse sections of code.
- The new toggle button capture type presents field data with two states (selected and not selected).
- Value sets can be shown with colored labels.
- The Review Notes feature, which allows all notes to be reviewed in a single place, is now implemented on Windows.
- The gps function accepts new commands that can be used to capture GPS coordinates in interactive modes where details about the current GPS reading are shown or where an enumerator can select a location on a map.
- A new logic-based reporting system allows for the creation of dynamic reports, generally created in HTML. The report text, editable in the CSPro Designer, can include logic fills and can use logic to control what parts of the report are generated.
- A new object, Geometry, provides the ability to display and manipulate vector geometry (points, lines, and polygons). You can interactively trace or walk polygons and can compute a polygon's area and perimeter. Geometry data can be loaded from and saved to GeoJSON files.
- The default base map can be defined in additional ways. If a BaseMap attribute is defined in a PFF, that base map will be used when showing Map objects that have not had a base map specified.
- Question text can be added in right-to-left format, facilitating the addition of text in languages such as Arabic or Hebrew.
- Introduction of HTML dialogs for displaying logic functions (such as errmsg and accept) as well as other aspects of the CSPro user interface (UI). These are turned on by default but can be disabled. In a future release of CSPro, the old style of dialogs will be removed.
- A JavaScript interface exists to facilitate the invocation of user-defined functions from question text and while viewing web pages (using the view or htmldialog functions).
- A new operator, :=, allows you to specify arguments by name for some CSPro functions.
- New functions for logic-based reports: save, view, and write.
- A new object, Image, allows for the storage and manipulation of images. It has the functions: captureSignature, clear, height, load, resample, save, takePhoto, view, and width.
- A new object, Document, facilitates the storage of text or binary files. It has the functions: clear, load, save, and view.
- A new object, Geometry, allows for the display and manipulation of vector geometry. It has the functions: area, clear, getProperty, load, maxLatitude, maxLongitude, minLatitude, minLongitude, perimeter, save, setProperty, tracePolygon, and walkPolygon.
- New Map functions for adding and removing Geometry from a Map: addGeometry, clearGeometry, and removeGeometry.
- Another new Map function, saveSnapshot, saves the currently displayed map as an image.
- A new function, Path.getRelativePath, returns a relative path based on a path's location relative to a directory.
- Another new Path function, Path.selectFile, shows the operator a visual listing of the file system and returns the path of the file the operator selected.
- A new function, inadvance, indicates if an advance is in progress in a data entry application, allowing for the conditional execution of logic based on whether an enumerator has directly entered a field.
- A new function, currentkey, returns a key string comprised of a case's current IDs (as opposed to key, which uses a case's ID as they existed when the case was last loaded or written).
- A new function, synctime, returns the time of the last synchronization of a data file or a specific case. This function can be used to determine if any cases have not been synced.
- A new function, setbluetoothname, allows you to modify the name of the device as broadcast to other Bluetooth devices.
- The htmldialog function allows for the creation of custom dialogs using HTML and JavaScript.
- A new function, invoke, allows you to execute user-defined functions using runtime binding (where the function name is only known at runtime).
- The Downloads directory path can be retrieved. Copying files to and from this directory is a useful way to share files between applications on Android 11 devices.
- The dirlist function, with a new syntax using named arguments, provides additional ways to specify the source directory and wildcard filters. Hidden and system files are no longer included in the directory listing.
- The getproperty function can now return some system properties (such as the maximum display dimensions).
- The setproperty and Pff.setProperty functions' property values can be specified as numeric expressions instead of having to be given as strings.
- The setoutput function can take a string List as an argument to facilitate specifying multiple output data sources.
- The view function has new options that allow users to specify the window size and other attributes of how the embedded web browser will appear when viewing HTML files and websites.
- The encode function has two new options (including to encode text to write as a JSON string).
- The getos function can fill a HashMap with detailed operating system information.
- Recursive functions can now declare nearly all variable and object types locally, and function pointers can now use nearly all variable and object types as function parameters.
- Multiple Output Data entries can be provided for batch applications. Any cases output during the batch run will be written to each of these data sources.
- Some properties are now saved in a file with the extension .csprops. Modifying the properties for paradata must now be done using the new Application Properties dialog.
- The question text file is sorted in form order before saving, potentially making it easier to use when working in a version control environment.
- A Map Report visualizes case data by displaying each case on a map. Further, each case can be opened to view the collected data.
- Ability to upload files to the server via the CSWeb interface.