German Alle Spaltenwerte der selektierten Zeile ausgeben

Stefan080159

Member
Licensed User
Longtime User
Guten Abend,
ich wollte mal fragen, ob ich auch alle anderen Spaltenwerte der
Selektierten Zeile (und nicht nur der selektierten Zelle) herankomme?
Das Beispiel ist aus dem Tutorial "TableExample" leicht abgewandelt.

Sub Cell_Click
Dim l As Label
l = Sender
Msgbox(l.Text,"")
End Sub
 

klaus

Expert
Licensed User
Longtime User
Ich nehme as dass Du die Table Class benuzt.
Welche Version hast Du ?
Die letzte Version ist 1.43.
In der gibt es die Funktion Public Sub GetValues(Row As Int ) As String()
Diese gibt ein Array als String mit allen Werten der gegebenen Zeile.
 

Stefan080159

Member
Licensed User
Longtime User
Ich nehme as dass Du die Table Class benuzt.
Welche Version hast Du ?
Die letzte Version ist 1.43.
In der gibt es die Funktion Public Sub GetValues(Row As Int ) As String()
Diese gibt ein Array als String mit allen Werten der gegebenen Zeile.
Hallo Klaus,
danke für deine schnelle Antwort.
Eigentlich wollte ich es mit der Version 1.10 machen... gibt's vielleicht noch eine andere Möglichkeit?
mit freundlichen Grüßen
Stefan
 

klaus

Expert
Licensed User
Longtime User
Die Version 1.10 hab Ich nicht mehr.
Aber Du kannst diese Routine in die Table Class hinzufügen.
B4X:
' return array of strings hold all the values for a row.
Public Sub GetValues(Row As Int ) As String()
    Dim rowData() As String  = Data.get(Row) ' will throw an excpetion if row is not correct
    Dim tmp(NumberOfColumns) As String
    For i=0 To NumberOfColumns-1 ' copy the array
        tmp(i) =  rowData(i)
    Next
    Return tmp
End Sub
Ich habs nicht versucht.
 

Stefan080159

Member
Licensed User
Longtime User
Die Version 1.10 hab Ich nicht mehr.
Aber Du kannst diese Routine in die Table Class hinzufügen.
B4X:
' return array of strings hold all the values for a row.
Public Sub GetValues(Row As Int ) As String()
    Dim rowData() As String  = Data.get(Row) ' will throw an excpetion if row is not correct
    Dim tmp(NumberOfColumns) As String
    For i=0 To NumberOfColumns-1 ' copy the array
        tmp(i) =  rowData(i)
    Next
    Return tmp
End Sub
Ich habs nicht versucht.
...muss an der Stelle noch mal was fragen
die Tabelle ist ein ScrollView /ohne Klasse.
Es muss doch eine Möglichkeit geben, bei Klick auf Zeile die Werte aus allen Spalte der betreffenden Zeile
zubekommen!? Bei vb war das so einfach mit .Textmatrix beim Flexgrid z.B.

Weihnachtliche Grüße an alle...
 

klaus

Expert
Licensed User
Longtime User
Du musst mehr Informationen geben was Du genau gemacht hast!
Du sagst dass Du die Version 1.10 der TableView beutzt, welche eine Class ist.
Jetzt sagst Du dass die Tabelle eine ScrollView / ohne Klasse ist.
Da Ich nicht genau weiss was Du benutzt und was Du wie gemacht hast kann Ich keine konkrete Antwort geben.
Das Einfachste wäre dass Du dein Projekt als zip Datei schickst damit wir sehen können was Du gemacht hast.
 

Stefan080159

Member
Licensed User
Longtime User
Du musst mehr Informationen geben was Du genau gemacht hast!
Du sagst dass Du die Version 1.10 der TableView beutzt, welche eine Class ist.
Jetzt sagst Du dass die Tabelle eine ScrollView / ohne Klasse ist.
Da Ich nicht genau weiss was Du benutzt und was Du wie gemacht hast kann Ich keine konkrete Antwort geben.
Das Einfachste wäre dass Du dein Projekt als zip Datei schickst damit wir sehen können was Du gemacht hast.
Hallo Klaus,
ich wollte auf dem Totorial "Creating a table view based on ScrollView" aufbauen. Glaube, das war von Erel.
Bei
Sub Cell_Click
Dim l As Label
l = Sender
Msgbox(l.Text,"")
End Sub
bekomme ich den Wert der Zelle. Aber wie komme ich an alle Spaltenwerte der betreffenden Zeile?

Gruß
 

Stefan080159

Member
Licensed User
Longtime User
Hallo Klaus,
ich wollte auf dem Totorial "Creating a table view based on ScrollView" aufbauen. Glaube, das war von Erel.
Bei
Sub Cell_Click
Dim l As Label
l = Sender
Msgbox(l.Text,"")
End Sub
bekomme ich den Wert der Zelle. Aber wie komme ich an alle Spaltenwerte der betreffenden Zeile?

Gruß
... es sollen also alle Spaltenwerte der selektierten Zeile in Variabelen gespeichert werden...
 

klaus

Expert
Licensed User
Longtime User
Mit dieser Routine kannst Du die ganze Reihe auslesen:
B4X:
Private Sub Cell_Click
    Dim rc As RowCol
    Dim l As Label
    l = Sender
    rc = l.Tag
   
    Dim rowData() As String
    rowData = Data.get(rc.Row)
End Sub

Der Nachteil von Version 1.10 ist dass man nur senkrecht scrollen kann.
HIER ist eine Lösung die auch waagrecht scrollt.
 

Stefan080159

Member
Licensed User
Longtime User
Mit dieser Routine kannst Du die ganze Reihe auslesen:
B4X:
Private Sub Cell_Click
    Dim rc As RowCol
    Dim l As Label
    l = Sender
    rc = l.Tag
  
    Dim rowData() As String
    rowData = Data.get(rc.Row)
End Sub

Der Nachteil von Version 1.10 ist dass man nur senkrecht scrollen kann.
HIER ist eine Lösung die auch waagrecht scrollt.
ja, das ist Super...
 

Stefan080159

Member
Licensed User
Longtime User
Hallo Klaus,
gibt es hier auch eine Möglichkeit, die letzte Row zur ersten zu machen?

mfg
Stefan
 

klaus

Expert
Licensed User
Longtime User
In der letzten Version gibt es zwei Routinen:
Sub insertRowAt (Row As Int, Values() As String) As Boolean
Sub RemoveRow(Row As Int)

Du kannst die wahrscheinlich in die ältere Verion übernehmen.
Du kannst die letzte Zeile lesen, in die erste Zeile eingeben und die letzte löschen.
 
Top