2016-03-02 Beta Release Notes


This is a beta release for CSPro 6.3. The future CSPro 7.0 release is going to introduce many changes, including a new way to store data, and it will have a significant impact on CSPro users. CSPro 6.3 is thus a release that builds incrementally off of CSPro 6.2 and may be the last release before the more significant CSPro 7.0 one. CSPro 6.3 introduces some new features and fixes some problems that were found in CSPro 6.2.

CSPro 6.3 is built with new versions of our programming tools, and this sometimes introduces quirks due to changes made by other parties. If you notice any unexpected behavior in CSPro 6.3, please email cspro@lists.census.gov. As part of this shift CSPro no longer runs on Windows XP machines.

We fixed a few bugs that users reported:

  • CSEntry taking a long time to redraw rosters on Windows.
  • Text Viewer crashing while opening a listing report.
  • The CSPro helps crashing when using the index on Windows 8 or 10.
  • The getos function not returning a correct value on Windows 10.
  • Underlines in question text not displaying correctly on Android.
  • Occurrence labels (set dynamically using setocclabel) not resetting when opening a new case.
  • Run as Batch not working when a data entry application used external logic files.

We are looking to streamline the CSPro language and other parts of the system. As part of this, in CSPro 6.3 we:

  • Removed the Convert Dictionary tool. It is now available on the Software page.
  • Removed the undocumented Android Wi-Fi peer-to-peer sync. If you used this, you should change your code to use Bluetooth instead.
  • Introduced deprecation warnings. If you are using features of the language that will no longer be supported in the future, you will see warnings when compiling your code. These can be controlled via the Options menu.

There are two new features in the CSPro Designer:

  • The position of the Designer window is saved and restored the next time you open CSPro.
  • If you want to view both names and labels at the same time, you can select View -> Append Labels to Names in Tree.

20160302 appendLabels

There are a couple enhancements for the Android CSEntry app:

  • The note icon appears blue when the field has a note, which is a nice way for the interviewer to know if they have left a note on the field.
  • A Review All Notes feature displays all of the notes for a case, allowing interviewers or supervisors to easily navigate to fields with notes. To access the feature, long-press on the notes icon or find the option off the menu button.
  • Help text defined for a field is now accessible and the interviewer can toggle between the question and help text.

20160302 help

There are a couple enhancements to the CSPro language:

  • You can use a negative index to get a substring starting from the right side of the string. For example: "JOANNA"[-4] returns "ANNA"
  • You can declare a numeric variable at the beginning of a do loop. In this case, the variable's scope will just be the duration of the loop.

    do numeric ctr = 1 while ctr <= totocc(PERSON_REC)

  • Savepartial has an optional parameter, clear. If used, the information in skipped fields will be cleared before the case is partially saved. Savepartial with clear simulates the behavior when a case is saved normally in system-controlled mode.
  • User-defined functions can now call themselves, meaning that recursion is now possible.
  • User-defined function pointers can be passed as arguments to other user-defined functions. For examples of this (and recursive functions), see the "Additional Examples of Functions" link at the bottom of the help page for functions.

There are three new CSPro language functions:

  • uuid: this function returns a string representing a universally unique identifier (UUID). This, a GUID, can be used if you need to uniquely identify something, as the odds of the function returning the same string twice are infinitesimally small.
  • loadsetting and savesetting: these functions allow you to store information as attribute-value pairs. The information is stored separately from any given application and thus can be shared between applications. These functions allow you to easily pass information between programs rather than needing to write information to a text file, external dictionary, or the parameters section of a .pff.