Dialog: Textfields Array

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Dialog: Textfields Array

Beitrag 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.
Gruß Jörg

Win 10 Pro AOO 4.1.15
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Dialog: Textfields Array

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Dialog: Textfields Array

Beitrag 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
Gruß Jörg

Win 10 Pro AOO 4.1.15
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Dialog: Textfields Array

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Antworten