macro per apertura formulario [RISOLTO]

Discussioni sulle caratteristiche di database
Rispondi
laquila
Messaggi: 8
Iscritto il: martedì 13 dicembre 2011, 9:04

macro per apertura formulario [RISOLTO]

Messaggio da laquila »

buongiorno a tutti,
sono un nuovo utente alle prese per la prima volta con un database. Ho copiato e incollato questa macro (vedi sotto) per l'apertura del formulario "DATI POZZO". Il mio database si chiama invece "DEMANIO AQ". Vorrei utilizzare la macro per collegarla ad un pulsante da inserire all'interno di un altro formulario.
Ovviamente :) la macro mi dà errore, non so se ho modificato correttamente la mia macro per adattarla al mio database. Potete gentilmente aiutarmi?
Grazie!
Uliana

Codice: Seleziona tutto

Dim oForm

sub main
subDisplayForm("DEMANIO AQ.odb","DATI POZZO")
end sub

sub subDisplayForm(sDatabaseName as string, sFormName as string)
dim mArgs(1) as new com.sun.star.beans.PropertyValue

oDatabase = fnGetOpenDatabase(sdatabaseName)
oConnection = oDatabase.DataSource.getConnection("","")
mArgs(0).name = "OpenMode"
mArgs(0).value = "open" '"openDesign" ' '"openForMail"
mArgs(1).name = "ActiveConnection"
mArgs(1).value = oConnection
oForm = oDatabase.getFormDocuments.getByName(sFormName)
'oForm.visibilityChanged(true)
oDatabase.getFormDocuments.loadComponentFromURL(sFormName, _
"_blank", 0, mArgs())
end sub

function fnGetOpenDatabase(sDatabaseName as string)

oEnum = StarDesktop.getComponents.createEnumeration
while oEnum.hasMoreElements
oPosDB = oEnum.nextElement
if oPosDB.implementationName = "com.sun.star.comp.dba.ODatabaseDocument" then
msgbox oPosDB.DataSource.name
if right(oPosDB.DataSource.name, len(sDatabaseName)) = sDatabaseName then
fnGetOpenDatabase = oPosDB
exit function
end if
end if
wend
end function
Ultima modifica di laquila il martedì 20 dicembre 2011, 8:15, modificato 2 volte in totale.
openoffice.org 3.3.0 su win7 professional (32bit)
vladko
Volontario
Volontario
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: macro per apertura formulario

Messaggio da vladko »

Codice: Seleziona tutto

sub main
subDisplayForm("DATI POZZO")
end sub
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
Avatar utente
bydindi
Volontario
Volontario
Messaggi: 258
Iscritto il: lunedì 21 febbraio 2011, 10:16

Re: macro per apertura formulario

Messaggio da bydindi »

Come si chiama il formulario che vuoi aprire con il pulsante?
la macro mi sembra corretta (anche io la utilizzo, tranne ovviamente il nome del database e il nome del formulario)
vladko ha scritto:

Codice: Seleziona tutto

sub main
subDisplayForm("DATI POZZO")
end sub
Vladko! "DATI POZZO" NON è il suo formulario! (troppi interventi ti fanno confondere heheheh ma mi raccomando, continua ad intervenire! ;) )
tornando a laquila:

io utilizzo questa macro:

Dim oForm
sub subDisplayForm(sDatabaseName as string, sFormName as string)
dim mArgs(1) as new com.sun.star.beans.PropertyValue
oDatabase = fnGetOpenDatabase(sdatabaseName)
oConnection = oDatabase.DataSource.getConnection("","")
mArgs(0).name = "OpenMode"
mArgs(0).value = "open" '"openDesign" ' '"openForMail"
mArgs(1).name = "ActiveConnection"
mArgs(1).value = oConnection
oForm = oDatabase.getFormDocuments.getByName(sFormName)
oDatabase.getFormDocuments.loadComponentFromURL(sFormName, "_blank", 0, mArgs())
end sub
REM ----------------------------------------------------------------------
function fnGetOpenDatabase(sDatabaseName as string)
oEnum = StarDesktop.getComponents.createEnumeration
while oEnum.hasMoreElements
oPosDB = oEnum.nextElement
if oPosDB.implementationName = "com.sun.star.comp.dba.ODatabaseDocument" then
'msgbox oPosDB.DataSource.name
if right(oPosDB.DataSource.name, len(sDatabaseName)) = sDatabaseName then
fnGetOpenDatabase = oPosDB
exit function
end if
end if
wend
end function
REM ----------------------------------------------------------------------
Dim oForm
sub AperturaRa
ThisComponent.CurrentController.Frame.close(True)
subDisplayForm("Ska.odb","AperturaRA") 'il mio database si chiama Ska.odb e il formulario si chiama AperturaRA
end sub
OOo 4.1.1 su Windows Vista
laquila
Messaggi: 8
Iscritto il: martedì 13 dicembre 2011, 9:04

Re: macro per apertura formulario

Messaggio da laquila »

il formulario è "DATI POZZO"
il database invece "DEMANIO AQ"
non posso provare la macro prima di venerdì, ma vi ringrazio per le rispote, vi farò sapere presto!
openoffice.org 3.3.0 su win7 professional (32bit)
il fendente
Messaggi: 19
Iscritto il: mercoledì 14 dicembre 2011, 10:27

Re: macro per apertura formulario

Messaggio da il fendente »

ciao io uso questa

Codice: Seleziona tutto

Sub OpenForm( oEvent as variant, aFormName as string) as variant
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container as variant

container = oEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments

args(0).Name = "ActiveConnection"
args(0).Value = oEvent.Source.Model.Parent.ActiveConnection
args(1).Name = "OpenMode"
args(1).Value = "open"
container.loadComponentFromURL(aFormName,"_blank",0,args())

End Sub

Sub onClickOpenInserisci ( oEvent as variant )
OpenForm(oEvent, "Inserisci nuovo utente")
End sub
"Inserisci nuovo utente" è il nome del formulario che devo aprire con il pulsante.
Creata la macro apri le impostazioni del pulsante e inserisci questa macro in "esegui azione".
La macro che devi inserire in questo esempio si chiama "onClickOpenInserisci", nome che puoi cambiare nella riga

Codice: Seleziona tutto

Sub onClickOpenInserisci ( oEvent as variant )
Ciao
openoffice 3.3.0
OOO 330m20

Mac OS X 10.7.2
Avatar utente
bydindi
Volontario
Volontario
Messaggi: 258
Iscritto il: lunedì 21 febbraio 2011, 10:16

Re: macro per apertura formulario

Messaggio da bydindi »

laquila ha scritto:il formulario è "DATI POZZO"
il database invece "DEMANIO AQ"
non posso provare la macro prima di venerdì, ma vi ringrazio per le rispote, vi farò sapere presto!
:oops: :oops: avevo capito male io!!! (ho fatto confusione tra "database" e "formulario")... scusami vladko!!!
OOo 4.1.1 su Windows Vista
laquila
Messaggi: 8
Iscritto il: martedì 13 dicembre 2011, 9:04

Re: macro per apertura formulario

Messaggio da laquila »

ho provato con la macro di "il fendente" funziona!
grazie a tutti!!
openoffice.org 3.3.0 su win7 professional (32bit)
Rispondi