DCBROWSCOL Spalte ermitteln

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 19287
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

DCBROWSCOL Spalte ermitteln

Beitrag von Manfred » Do, 20. Feb 2020 18:22

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7943
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: DCBROWSCOL Spalte ermitteln

Beitrag von Tom » Do, 20. Feb 2020 18:59

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: 19287
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCBROWSCOL Spalte ermitteln

Beitrag von Manfred » Do, 20. Feb 2020 19:05

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Antworten