Puntare ad una riga di una tabella

Creare una macro - Scrivere uno script - Usare le API
Rispondi
Blastor
Messaggi: 81
Iscritto il: mercoledì 26 gennaio 2011, 15:50

Puntare ad una riga di una tabella

Messaggio da Blastor »

Come da topic, non riesco a puntare tramite macro una riga di una tabella, vorrei riuscire a puntare la riga dopo quella visualizzata in un formulario..sto iniziando da poco ad usare le macro e ancora non riesco a trovare niente in merito, ho cercato anche su google ma niente..qualcuno riuscirebbe a darmi una mano?
OpenOffice 3.2 su Windows 7
Avatar utente
xergio
Messaggi: 315
Iscritto il: lunedì 15 marzo 2010, 21:54
Località: Arzignano (Vicenza)
Contatta:

Re: Puntare ad una riga di una tabella

Messaggio da xergio »

Per andare alla riga successiva alla corrente puoi usare il metodo Next del rowset.
Se vuoi inserire una riga puoi usare l'InsertRow del rowset.
Oppure direttamente dal form

Codice: Seleziona tutto

oModel = oEv.Source.getModel
oFormDoc = oModel.getParent
oFormDoc.moveToInsertRow()
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
Blastor
Messaggi: 81
Iscritto il: mercoledì 26 gennaio 2011, 15:50

Re: Puntare ad una riga di una tabella

Messaggio da Blastor »

xergio grazie intanto dell'aiuto..ma non riesco ad usare il rowset :oops:
potresti dirmi come richiamarlo?
avrei due problemi che dovrei risolvere in questo modo..ci sto sbattendo da un po ma ancora non ho trovato nessuna soluzione..ti posto i due problemi, spero riuscirai a farmi accendere una lampadina in testaXD
allora intanto mi servirebbe un tasto in un form che mi permette di eliminare una riga...un po come il tasto che c'è nella barra di navigazione del formulario, ma dovrei farlo tramite macro in quanto quella barra è nascosta per rendere il database più user friendly

Codice: Seleziona tutto

sub elimina
oDoc=ThisComponent
oForm=oDoc.DrawPage.Forms.MainForm

ctl=oForm.getbyname("fmtIDCliente")

sql="DELETE FROM `test`.`anagrafica clienti` WHERE `IDCliente`='"& ctl.text &"'"
connessione=connettiDB("nomedb")
EXupdate(connessione,sql)
'deleterecord()
End sub

'__________________________________________________________________

Function connettiDB(nomedb)
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName(nomedb)
If Not DataSource.IsPasswordRequired Then
Connection = DataSource.GetConnection("","")
Else
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
Connection = DataSource.ConnectWithCompletion(InteractionHandler)
End If
connettiDB=Connection
End function

' _____________________________________________________

Function EXupdate(conn as object,cmd as string)
Statement = conn.PrepareStatement(cmd)
Statement.executeUpdate()
end function
uso questo codice per eliminare una riga dal formulario, ma non viene aggiornato e se provo il metodo reload() riparte dalla prima riga, invece di posizionarsi nella riga precedente (come il tasto nella barra di navigazione del formulario) o successiva..

l'altro problema è che ho un campo nel MainForm che è collegato tramite macro ad una griglia in un sottoformulario, ogni volta che aggiorno questo campo, mi si aggiorna la riga nel subform, il problema è che se ho selezionato nel subform la seconda riga, mi aggiorna quella, mentre io vorrei sempre far aggiornare la prima riga a prescindere da quante righe è formata la griglia collegata al MainForm...
Spero sei risucito a capirmi.. se qualcosa non ti è chiaro dimmi pure...
OpenOffice 3.2 su Windows 7
vladko
Volontario
Volontario
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: Puntare ad una riga di una tabella

Messaggio da vladko »

1 metodo last ;)
2 focus
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 :-)
Rispondi