docs: def setfields(self, *fldNames):
          """Define the name and order of the fields to access
          with the read() and write() methods.
  
          Args::
  
            fldNames  variable length argument specifying one or more
                      vdata field names
  
          Returns::
  
            None
  
          C library equivalent : VSsetfields
  
          setfields() indicates how to perform the matching between the vdata
          fields and the values passed to the write() method or returned
          by the read() method.
  
          For example, if the vdata contains fields 'a', 'b' and 'c' and
          a "setfields('c','a')" call is made,  read() will thereafter return
          for each record the values of field 'c' and 'a', in that order.
          Field 'b' will be ignored.
  
          When writing to a vdata, setfields() has a second usage. It is used
          to initialize the structure of the vdata, that is, the name and order
          of the fields that it will contain. The fields must have been
          previously defined by calls to the fdefine() method.
          Following that first call, setfields() can be called again to
          change the order in which the record values will be passed
          to the write() method. However, since it is mandatory to write
          whole records, subsequent calls to setfields() must specify every
          field name: only the field order can be changed.
  
                                                     """
  
          _checkErr('setfields', _C.VSsetfields(self._id, ','.join(fldNames)),
                    'cannot execute')
          self._setfields = fldNames