DCBROWSCOL Spalte ermitteln

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

DCBROWSCOL Spalte ermitteln

Beitrag von Manfred »

das hier ist gegeben

Code: Alles auswählen

DCBROWSECOL DATA {|| zeigeSpesen(oDialogZusatz,SPESEN) };         
                       EVAL {|x|x:dataArea:lbDblClick := {|a,b,o| aendereSpesen(oDialogZusatz,SPESEN)}};
                     HEADER "Spesen";
                     PARENT oDialogZusatz:oBrowseTagesdienste;
                    PROTECT {|| .T.};
                      WIDTH oSysPara:skaliereXbParts(50)
bisher habe ich über die SPESEN Konstante die Spalte angegeben, aber als ich ein Feld ins Array davor eingefügt hatte, knallte es. Meine Frage ist nun, wie kan man die Spalte ermitteln, aus der die Funktion aufgereufen wurde um somit die festen Spaltennummer flexibel zu gestalten? Zeile in der man im Browse steht geht ja mit DC_GETCOLARRAY() Gibt es da auch eine Funktion, die die aktuelle Spalt ermittelt?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: DCBROWSCOL Spalte ermitteln

Beitrag von Tom »

oBrowse:ColPos sagt Dir, wo Du bist. Aber Du meinst nicht im Eventhandling, sondern aus dem Datencodeblock der Spalte heraus, richtig? Dafür gibt es verschiedene Methoden. Wenn ich Browserspalten in einer Iteration erzeuge, nehme ich den Cargo-Slot, um später auf die numerische Anordnung zugreifen zu können.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSCOL Spalte ermitteln

Beitrag von Manfred »

ich glaube ich habe schon was gefunden.

Code: Alles auswählen

DCBROWSECOL OBJECTVAR gueltigbez;
                  DATATOOLTIP {|| .T.} TIPBLOCK{|nPos| oDialogZusatz:aTagesdienste[nPos]:gueltigbez};
                         EVAL {|x|x:dataArea:rbClick := {|a,b,o| zeigeDaten(oDialogZusatz,"Gültigkeitsbezeichnung",o)}};
                       HEADER "Gültigkeits-Bezeichnung";
                       PARENT oDialogZusatz:oBrowseTagesdienste;
                        VALID {|| oDialogZusatz:validcol("gueltigbez",GUELTIGBEZ) };
                        WIDTH oSysPara:skaliereXbParts(200)

Code: Alles auswählen

FUNCTION zeigeDaten(oDialog,cFeld,oZelle)
         LOCAL cText
         LOCAL nZeile := DC_GetColArray(0,oDialog:oBrowseTagesdienste)

         MEMVAR oSysPara

         IF ! Empty(oZelle:getcell(nZeile))
            cText := StrTran(oZelle:getcell(nZeile),";",CRLF)
            oSysPara:oMessage:anzeigen(cText,,,,,"Inhalt der Spalte: " + cFeld)
         ENDIF
         RETURN(.T.)
Das löst zumindest schonmal ein Problem.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten