ArrayBrowse falsch refreshed [ERLEDIGT]

Moderator: Moderatoren

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

ArrayBrowse falsch refreshed [ERLEDIGT]

Beitrag von Manfred »

Hi,

ich habe ein Arraybrowse, in dem man durch RETURN einen Spaltenwert ändern kann. Das klappt. Sobald ich aber in der Liste weiter runterscrolle und die Daten oben aus dem Scrollfenster verschwinden, wird nicht mehr die aktuelle Zeile geändert, sondern in einer Zeile weiter höher. Ein Dc_getrefresh(getlist) erfolgt jedesmal nach einem Itemselected.

Code: Alles auswählen

@ 15,5 DCBROWSE oDialogZusatz:oBrowse;
               CURSORMODE XBPBRW_CURSOR_ROW;
                     DATA aBrowse;
             ITEMSELECTED {|| IF(aBrowse[oDialogZusatz:oBrowse:rowPos,5] == "Nein",;
                                 aBrowse[oDialogZusatz:oBrowse:rowPos,5] := "Ja",;
                                 aBrowse[oDialogZusatz:oBrowse:rowPos,5] := "Nein"),dc_getrefresh(getlist);
                          };
              NOSOFTTRACK;
                   PARENT oRahmenBrowse;
                     SIZE DCGUI_PARENTWIDTH-10,DCGUI_PARENTHEIGHT-20
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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: ArrayBrowse falsch refreshed

Beitrag von Wolfgang Ciriack »

Hallo Manfred,
probier das mal so:

Code: Alles auswählen

ITEMSELECTED {|| IF(DC_GetColArray(5,oDialogZusatz:oBrowse) == "Nein",;
                                 DC_GetColArray(5,oDialogZusatz:oBrowse,"Ja"),;
                                 DC_GetColArray(5,oDialogZusatz:oBrowse,"Nein")), oDialogZusatz:oBrowse:RefreshCurrent() };
Viele Grüße
Wolfgang
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: ArrayBrowse falsch refreshed

Beitrag von Manfred »

Hi Wolfgang,

Danke, das war es wohl. Ich wußte irgendwas war da mit Arrays. Aber ich arbeite sonst immer nur mit DBF und dadurch hatte ich das wieder vergessen.
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: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: ArrayBrowse falsch refreshed [ERLEDIGT]

Beitrag von Tom »

oBrowse:rowpos ist ohnehin ein relativer Wert, der sich auf die Zeilenposition nach sichtbaren Zeilen bezieht. Das wäre nicht nur bei Arrays falsch, sondern auch bei Tabellen. Wenn man sechs Seiten abwärts geblättert hat und in der obersten sichtbaren Zeile steht, ist :rowpos immer 1. Mit diesem Wert kommt man nicht an die entsprechenden Zeilendaten.

Bei Arrays gibt es in eXpress++ neben dem DC_GetColArray(x,oBrowse) (Inhalt der aktuellen Zelle in Spalte x) auch noch DC_BrowseRow() (nur bei Arrays!). Das liefert für die aktuell markierte Zeile die Referenz auf die Datenquelle, ist also ein absoluter Wert.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: ArrayBrowse falsch refreshed [ERLEDIGT]

Beitrag von Manfred »

Tom,

stimmt. Fällt mir jetzt auch gerade auf. Sowas Dummes.

Ja, es sind die Details, die einem das Leben versüssen.
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