Nel file allegato troverai le due immagini della finestra di dialogo di come appare adesso e di come vorrei che apparisse.
Sempre nel file, troverai anche il codice che ho scritto per l'apertura della finestra di dialogo e che comunque riporto sotto.
Codice: Seleziona tutto
sub ApriDialog_Stampa
rem apro finestra dialogo
'carico librerie dialogo
'DialogLibraries.LoadLibrary( "Sandard" )
'creo oggetto finestra
Dim dlgStam As Object
dlgStam = CreateUnoDialog(DialogLibraries.Standard.Dialog_Stampa)
'genero le checkbox suddivise in due gruppi: TabellaGenerica
dim ArrTabellaGenerica() as String
dim i as integer
Dim NumeroCheckBoxStampa as integer
dim CheckBox as Object
dim CheckBoxModel as object
dim TabellaGenerica() as Object
dim tg as integer
ArrTabellaGenerica = Array("Intestazione","Arch. Fertilizzanti","Arch. Fitofarmaci","Mag. Fertilizzanti", _
"Mag. Fitosanitari")
For i = LBound(ArrTabellaGenerica) to Ubound(ArrTabellaGenerica)
NumeroCheckBoxStampa = NumeroCheckBoxStampa +1
CheckBox = createUnoService("com.sun.star.awt.UnoControlCheckBox")
CheckBoxModel = dlgStam.Model.createInstance("com.sun.star.awt.UnoControlCheckBoxModel")
CheckBox.setModel(CheckBoxModel)
dlgStam.addControl("CheckBox" & NumeroCheckBoxStampa,CheckBox)
Redim Preserve TabellaGenerica(tg) as object
TabellaGenerica(tg) = dlgStam.getControl("CheckBox" & NumeroCheckBoxStampa)
tg = tg + 1
With dlgStam.getControl("CheckBox" & NumeroCheckBoxStampa).getModel
.Enabled = True
.Label = ArrTabellaGenerica(i)
.State = 0
.Enabled = 0
end with
Set CheckBox = nothing
Set CheckBoxModel = nothing
next i
'genero le checkbox suddivise in due gruppi:TabellaCorpi
dim ArrTabellaCorpo() as string
dim TabellaCorpo() as object
dim tc as integer
ArrTabellaCorpo = Array("Appezzamenti","Fertilizzazioni","Trattamenti","Maturità/Raccolta", _
"Precipitazioni","Irrigazioni","Rilievi","Rame metallo","Altre Op. Culturali")
For i = LBound(ArrTabellaCorpo) to Ubound(ArrTabellaCorpo)
NumeroCheckBoxStampa = NumeroCheckBoxStampa +1
CheckBox = createUnoService("com.sun.star.awt.UnoControlCheckBox")
CheckBoxModel = dlgStam.Model.createInstance("com.sun.star.awt.UnoControlCheckBoxModel")
CheckBox.setModel(CheckBoxModel)
dlgStam.addControl("CheckBox" & NumeroCheckBoxStampa,CheckBox)
Redim Preserve TabellaCorpo(tc) as object
TabellaCorpo(tc) = dlgStam.getControl("CheckBox" & NumeroCheckBoxStampa)
tc = tc + 1
With dlgStam.getControl("CheckBox" & NumeroCheckBoxStampa).getModel
.Enabled = True
.Label = ArrTabellaCorpo(i)
.State = 0
.Enabled = 0
end with
Set CheckBox = nothing
Set CheckBoxModel = nothing
next i
'dispongo le checkbox in due colonne: prima colonna "Tabelle generiche"
dim PosizioneX as integer
dim PosizioneY as integer
PosizioneX = 10
PosizioneY = 80
For i = Lbound(TabellaGenerica) to Ubound(TabellaGenerica)
CheckBox = TabellaGenerica(i)
'posizione e dimensione checkbox
With CheckBox.getModel
.PositionX = PosizioneX
.PositionY = PosizioneY
.Width = 65
.Height = 10
end with
'ridefinisco la posizione Y per successiva checkbox
PosizioneY = PosizioneY +11
Set CheckBox = nothing
next i
Redim Preserve TabellaGenerica() As Object : Set TabellaGenerica() = nothing
'dispongo le checkbox in due colonne: seconda colonna "Tabelle Corpi"
' essendo la colonna più lunga contemporaneamente aumento l'altezza della finestra
' e sposto i pulsanti, label e campi numerici
dim AltezzaFinestra as integer
dim CommandButton as object
dim PosizioneYButton as integer
dim e as integer
PosizioneX = 115
PosizioneY = 80
For i = Lbound(TabellaCorpo) to Ubound(TabellaCorpo)
CheckBox = TabellaCorpo(i)
'posizione e dimensione checkbox
With CheckBox.getModel
.PositionX = PosizioneX
.PositionY = PosizioneY
.Width = 65
.Height = 10
end with
'aumento altezza finestra
AltezzaFinestra = dlgStam.Model.Height 'altezza finestra esistente
dlgStam.getModel.Height = AltezzaFinestra +11 'nuova altezza finestra
For e = 1 to 3 'ciclo per spostare su asse y i quattro pulsanti
CommandButton = dlgStam.getControl("CommandButton" & e)
PosizioneYButton = CommandButton.Model.PositionY
CommandButton.getModel.PositionY = PosizioneYButton +11
next e
'ridefinisco la posizione Y per successiva checkbox
PosizioneY = PosizioneY +11
Set CheckBox = nothing
Set CommandButton = nothing
next i
Redim Preserve TabellaCorpo() As Object : Set TabellaCorpo() = nothing
'definisco oggetto listbox1
Dim ListBox1Stampa as object
ListBox1Stampa = dlgStam.getControl("ListBox1")
'applico proprità finestra
'dlgStam.getPeer().setProperty ("NativeWidgetLook", False) 'se coloro campi in proprietà finestra
'dlgStam.enable = false 'disabilito chiusura finestra con x
dlgStam.getControl("OptionButton1").setFocus()
'apro finestra
dlgStam.Execute()
dlgStam.Dispose()
End Sub
Non considerare quanto da me scritto nel post precedente, perchè fuorviante.
Saluti
Geo
EDIT: mancava l'allegato