Seite 1 von 1

function blank

Verfasst: Mi, 16. Nov 2011 1:09
von Werner_Bayern
dumme Frage...
Sehe gerade, dass ich in meinen Clipper-Sources eine Funktion blank verwende, um leere Datentype zu erzeugen (Datensatz-Felder leeren). Wo ist diese Funktion definiert, kann sie nirgends finden... :scratch:

Re: function blank

Verfasst: Mi, 16. Nov 2011 5:01
von AUGE_OHR
Werner_Bayern hat geschrieben:dumme Frage...
Sehe gerade, dass ich in meinen Clipper-Sources eine Funktion blank verwende, um leere Datentype zu erzeugen (Datensatz-Felder leeren). Wo ist diese Funktion definiert, kann sie nirgends finden... :scratch:
ich würde mal sagen das es eine "eigene" Function ist ;)

mittels DbStruct() und FieldPut() müsste das so gehen

Code: Alles auswählen

   #include "Dbstruct.ch" 
PROCEDURE Main 
      USE Kunden

      // use Recno()
      BLANK( Recno() )

      CLOSE Kunden 
RETURN

FUNCTION BLANK(nRec)
LOCAL aStructure := DbStruct()         // Datei-Struktur einlesen
LOCAL i,imax
LOCAL xValue
LOCAL lRet := .F.

   GOTO(nRec)
   IF DbRLock(nRec)
      imax := LEN(aStructure)
      FOR i := 1 TO imax
         DO CASE
            CASE aStructure[i][DBS_TYPE] = "C" ; xValue := ""
            CASE aStructure[i][DBS_TYPE] = "M" ; xValue := ""
            CASE aStructure[i][DBS_TYPE] = "N" ; xValue := 0
            CASE aStructure[i][DBS_TYPE] = "L" ; xValue := .F.
            CASE aStructure[i][DBS_TYPE] = "D" ; xValue := CTOD("")
         ENDCASE
         FieldPut(i,xValue)
      NEXT

      DbRUnlock(nRec)
      lRet := .T.
   ENDIF

RETURN lRet

Re: function blank

Verfasst: Mi, 16. Nov 2011 6:38
von Wolfgang Ciriack
Ist in den XbTools vorhanden.

Re: function blank

Verfasst: Mi, 16. Nov 2011 10:16
von Werner_Bayern
Danke, habe aber keine tools und eine eigene Funktion ist es auch nicht, evtl. undokumentiert?

Hab mir jetzt so geholfen, ist die für mich performanteste Lösung:

Code: Alles auswählen

static function blank(xVal)
local xRueck := "", cType := valtype(xVal)

do case
   case cType == "C"
      xRueck := ""
   case cType == "N"
      xRueck := 0
   case cType == "D"
      xRueck := ctod("  .  .  ")
   case cType == "L"
      xRueck := .f.
endcase
return xRueck