def parse_data_line(self, sline):
        """
        Parses the data line and builds the dictionary.
        :param sline: a split data line to parse
        :returns: the number of rows to jump and parse the next data line or return the code error -1
        """
        # if there are less values founded than headers, it's an error
        if len(sline) != len(self._columns):
            self.err("One data line has the wrong number of items")
            return -1

        rawdict = {}
        for idx, result in enumerate(sline):
            rawdict[self._columns[idx]] = result
        # Getting resid
        resid = rawdict['Sample name']
        del rawdict['Sample name']
        # Getting date
        rawdict['DateTime'] = self.csvDate2BikaDate(rawdict['Date'], rawdict['Time'])
        del rawdict['Date']
        del rawdict['Time']
        # Getting remarks
        rawdict['Remarks'] = rawdict['Remark']
        del rawdict['Remark']
        # Getting errors
        rawdict['Error'] = rawdict['Error/Warning']
        if rawdict['Error/Warning']:
            self.warn('Analysis warn', numline=self._numline)
        del rawdict['Error/Warning']

        rawdict['DefaultResult'] = 'Concentration'
        self._addRawResult(resid,
                          {rawdict['Parameter'].replace(' ', ''): rawdict},
                           False)
        return 0
Parses the data line and builds the dictionary.
        :param sline: a split data line to parse
        :returns: the number of rows to jump and parse the next data line or return the code error -1