code: def setResult(self, value):
          
          # Always update ResultCapture date when this field is modified
          self.setResultCaptureDate(DateTime())
  
          # Ensure result integrity regards to None, empty and 0 values
          val = str("" if not value and value != 0 else value).strip()
  
          # UDL/LDL directly entered in the results field
          if val and val[0] in [LDL, UDL]:
              # Result prefixed with LDL/UDL
              oper = val[0]
              # Strip off LDL/UDL from the result
              val = val.replace(oper, "", 1)
              # Check if the value is indeterminate / non-floatable
              try:
                  val = float(val)
              except (ValueError, TypeError):
                  val = value
  
              # We dismiss the operand and the selector visibility unless the user
              # is allowed to manually set the detection limit or the DL selector
              # is visible.
              allow_manual = self.getAllowManualDetectionLimit()
              selector = self.getDetectionLimitSelector()
              if allow_manual or selector:
                  # Ensure visibility of the detection limit selector
                  self.setDetectionLimitSelector(True)
  
                  # Set the detection limit operand
                  self.setDetectionLimitOperand(oper)
  
                  if not allow_manual:
                      # Override value by default DL
                      if oper == LDL:
                          val = self.getLowerDetectionLimit()
                      else:
                          val = self.getUpperDetectionLimit()
  
          # Set the result field
          self.getField("Result").set(self, val)
docs: Validate and set a value into the Result field, taking into
          account the Detection Limits.
          :param value: is expected to be a string.