Hallo Micha:el,
Micha:el hat geschrieben:Vielen Dank für Deine Mühe
Gern geschehen
Micha:el hat geschrieben:könnte man ja auch eine Dialogbox konstruieren, welche die Bereiche einer Quelltabelle block- und spaltenweise in Zeilen transponiert, nach entsprechender Eingabe oder Auswahl der Parameter. Ich habe da mal im Internet geguckelt aber nix entsprechendes gefunden....
Dazu habe Dir mal einen Link herausgesucht.
Es wird dort das Thema "
Calc-Tabelle in ein Gridcontrol" laden beschrieben.
Weiter unten gibt es dort eine Beispieldatei:
http://de.openoffice.info/viewtopic.php?t=73707
Noch ein kleiner Wegweiser.
Das Dialogfenster wurde vom Programmierer im Designer der Basic-IDE gezeichnet.
1 Dialogfenster
2 Label
1 Textbox
3 CommandButton
Das Tabellen-Steuerelement (Gridcontrol) erzeugt er "on the fly" mittels Code.
Im Modul "Dialog_starten" befindet sich der nachfolgende Codeabschnitt.
Hiermit wird das Grid geladen, formatiert, usw.
Code: Alles auswählen
REM ein Tabellen-Grid-Controllelement erzeugen und dem Dialog zuweisen
REM Basis-TabellenGrid Model erzeugen
oGridModel = oDlg.Model.createInstance("com.sun.star.awt.grid.UnoControlGridModel")
oGridModel.Name = "myGrid"
REM globale Eigenschaften zuweisen
With oGridModel
.ShowColumnHeader = True
.ShowRowHeader = True
.HScroll = false
.VScroll = True
.Sizeable = True
.Step = 0
.GridDataModel = GetTabellenDaten_Bsp1() 'Das Daten-Model wird zugewiesen
.ColumnModel = GetColumnModel_Bsp1() 'Das Spalten-Modekl wird zugewiesen
End with
REM das eigentliche Grid-Controlelement erzeugen
oGridControl = createUnoService("com.sun.star.awt.grid.UnoControlGrid")
oGridControl.setModel(oGridModel) 'das Model zuweisen
REM jetzt das Control dem Dialog zufügen
oDlg.addControl("tab_g1", oGridControl)
REM Größe und Position des Controls setzen (Das muss vorher ausprobiert werden!)
oGridControl.setPosSize(39,143,591,122, com.sun.star.awt.PosSize.POSSIZE)
Ich denke, nun wird es für Dich kein Problem mehr sein, transponieren und ein
Dialogfenster mit Gridcontrol unter einen Hut zu bekommen.
Bleibt auch Du gesund und immer an eine Sicherungskopie denken!