Seite 1 von 1

Dialog: Textfields Array

Verfasst: Do, 28.01.2016 13:12
von Jörg
Hallo Fachleute,
nach dem Motto "und täglich grüßt das Murmeltier":

Hätte gedacht, dass ich das mit Hilfe meiner ähnliche Frage hinbekomme, nix.

viewtopic.php?f=18&t=66621#p260683

Mit Dialog8 möchte ich in Tabelle 18 den Bereich "A:L" füllen.
Leider scheitert es wieder daran, dieses mit Hilfe eines Array zu tun.
Für jedes einzelne TextField klappt es. (Siehe Zeilen mit Hochkomma)

Code: Alles auswählen

sub Datensatz_azh_Speichern
Dim aData()
Dim array(11)   
   odoc = ThisComponent
    osheet = ThisComponent.Sheets.GetByName("Tabelle18")
   myctrl = oDialog8.GetControl("ListBox2")
 rem----------------------------------------------------
      With oSheet 
         x = .Columns("0:11").queryEmptyCells()
         iLetzteZeile = x(x.Count-1).RangeAddress.StartRow +1
      End With
      mycell = oSheet.getCellRangeByName("A" & iLetzteZeile )
        ListBox2 = myctrl.selecteditem
        mycell.string = ListBox2 
      for ta = 1 to 11
      array(ta) = oDialog8.getControl("TextField" & ta).text
      next ta
      array= Array(array())
      osheet.getCellRangeByPosition(ta,0 & (iLetzteZeile)).setDataArray(array())
               
        'mycell = oSheet.getCellRangeByName("B" & iLetzteZeile )
        'mycell.string = oDialog8.getControl("TextField5").text
        'mycell = oSheet.getCellRangeByName("C" & iLetzteZeile )
        'mycell.string = oDialog8.getControl("TextField6").text
        'mycell = oSheet.getCellRangeByName("D" & iLetzteZeile )
        'mycell.string = oDialog8.getControl("TextField7").text
        'mycell = oSheet.getCellRangeByName("E" & iLetzteZeile )
        'mycell.string = oDialog8.getControl("TextField8").text
        'mycell = oSheet.getCellRangeByName("F" & iLetzteZeile )
        'mycell.formulalocal= oDialog8.getControl("TextField9").text
        ' mycell = oSheet.getCellRangeByName("G" & iLetzteZeile )
        'mycell.formulalocal = oDialog8.getControl("TextField10").text
        ' mycell = oSheet.getCellRangeByName("H" & iLetzteZeile )
        'mycell.formulalocal = oDialog8.getControl("TextField11").text
        ' mycell = oSheet.getCellRangeByName("I" & iLetzteZeile )
        'mycell.string = oDialog8.getControl("TextField1").text
        ' mycell = oSheet.getCellRangeByName("J" & iLetzteZeile )
        'mycell.string = oDialog8.getControl("TextField2").text
        'mycell = oSheet.getCellRangeByName("K" & iLetzteZeile )
        'mycell.string = oDialog8.getControl("TextField3").text
        'mycell = oSheet.getCellRangeByName("L" & iLetzteZeile )
        'mycell.string = oDialog8.getControl("TextField4").text
oDialog8.endExecute()
End Sub
Diese Zeile wird angemeckert.

Code: Alles auswählen

osheet.getCellRangeByPosition(ta,0 & (iLetzteZeile)).setDataArray(array())
Wo steckt der Fehler?
Gruß Jörg
P.s.
In Anlehnung an die "Datenmaske" ist es mein Ziel, dann vielleicht auch auf die "Ersten", die "Nächsten" usw. Zeilen zuzugreifen (blättern)
Hoffe,ich bin nicht zu ausverschämt mit meinen Anliegen.

Re: Dialog: Textfields Array

Verfasst: Do, 28.01.2016 13:49
von Karolus
Hallo

Code: Alles auswählen

outrange = sheet.getCellRangeByPosition(index_erste_spalte, # da kommenhalt vier.
                                        index_erste_zeile,  # .Argumente rein,(Ganzzahlen)
                                        index_letzte_spalte,# und nicht nur zwei..
                                        index_letzte_zeile) #..irgendwie geratene Sachen  
Karolus

Re: Dialog: Textfields Array

Verfasst: Do, 28.01.2016 14:32
von Jörg
Hallo Karolus
und danke erst mal,
meinst Du die Änderung so?

Code: Alles auswählen

osheet.getCellRangeByPosition(0,0,11,0 & (iLetzteZeile)).setDataArray(array())
funzt leider nicht.

Gruß Jörg

Re: Dialog: Textfields Array

Verfasst: Do, 28.01.2016 15:16
von Karolus
Hallo

array ist eine eingebaute Funktion mit array() erzeugst ein leeres solches.
0 & (iletzte)
was soll das sein ????

Beispiel:

Code: Alles auswählen

Sub Main
    sheet = thisComponent.Sheets(0)
    firstrow = array(1,2,5)
    secondrow = array("a", "b", "c")
    das_ganze_ding = array( firstrow, secondrow )
    ''# ubound( ... ) liefert den index des letzten Elements
    ''# damit kannst dir die benötigten Werte für letzte_spalte und letzte Zeile berechnen lassen.
    msgbox ubound( firstrow )
    msgbox ubound( das_ganze_ding )
    outrange = sheet.getCellRangeByPosition(0,0,ubound( firstrow ), ubound(das_ganze_ding)
    outrange.setDataArray( das_ganze_ding )

End Sub