dcbrowse ...

Moderator: Moderatoren

Antworten
XBaseAzubi
Rookie
Rookie
Beiträge: 10
Registriert: Fr, 13. Mai 2016 8:14
Wohnort: Tattendorf/Österreich

dcbrowse ...

Beitrag von XBaseAzubi »

Hallo!
Ich bekomme beim Öffnen der Anwendung die Fehlermeldung: "Fehler BASE/2266. Empfänger der Nachrichten ist kein Objekt. Operation: dataSource
Dabei soll nur unter anderem zu Beginn ein leeres Browse-Objekt angezeigt werden.

Code: Alles auswählen

CLASS Kassa
...   
   EXPORTED:
   VAR aKassa
   VAR oArtikel
...
ENDCLASS

method Kassa:show
   ::aKassa:={NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL}

...
@ 10,0 dcbrowse ::oArtikel DATA ::aKassa SIZE 99,25 TABSTOP OPTIMIZE
            dcbrowsecol DATA {||DC_GetColArray(1 ,::aKassa)} HEADER "KassenID" PARENT ::oArtikel PROTECT {||.t.}
...
return
Bitte wo habe ich den Denkfehler?

Danke
Martin
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: dcbrowse ...

Beitrag von brandelh »

bei normalen Browsern muss man leere Strings oder Zahlen angeben, NIL mag der gar nicht.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: dcbrowse ...

Beitrag von Tom »

Falsch ist der zweite Parameter von DC_GetColArray. Da muss das Browse-Objekt angegeben werden:

Code: Alles auswählen

DATA {||DC_GetColArray(1 ,::oArtikel)}
Ach so: DC_GetColArray() gibt bei leeren Arrays immer einen String zurück. Das ist gefährlich, wenn man Arrays browsen will, die spaltenweise andere Daten enthalten und dort anders formatieren. Dies nur als Hinweis. Man kann das so abfangen:

Code: Alles auswählen

DATA {||IF(Len(oBrowse:dataSource)>0,DC_GetColArray(1 ,oBrowse),0.00)} HEADER 'Preis'
Bei Strings ist das nicht nötig.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: dcbrowse ...

Beitrag von Tom »

Ergänzung:

Das:

Code: Alles auswählen

::aKassa:={NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL}
ist ein eindimensionales Array. Das geht sowieso nicht (zu browsende Arrays müssen zweidimensional sein, es sei denn, man hat ziemlich komplexe DATA-Codeblöcke gebaut), ist aber nicht für den Fehler verantwortlich. Es müsste so aussehen:

Code: Alles auswählen

::aKassa:={{NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL}}
Eigentlich aber reicht das hier:

Code: Alles auswählen

::aKassa:={}
DCBROWSE kann das, wie gesagt, aber der Parameter in DC_GetColArray ist falsch.
Herzlich,
Tom
Antworten