Compatibilità OpenOffice - Libreoffice etc

Creare una macro - Scrivere uno script - Usare le API
Rispondi
Luberfly
Messaggi: 70
Iscritto il: giovedì 20 maggio 2010, 9:02

Compatibilità OpenOffice - Libreoffice etc

Messaggio da Luberfly »

Ciao a tutti.
Ritorno dopo alcuni anni...
Alcuni anni fa realizzai un DB che funzionava sulla versione 4.02 di Libreoffice. Il DB conteneva una buona parte di codice VBA. Ora dopo circa 8 anni lo devo riprendere in mano.
Ho provato ad eseguirlo con Libreoffice 7.1 ed ho notato alcune caratteristiche / differenze.
Ecco alcuni quesiti
1) Tra Libreoffice ed OpenOffice vi è diversità in termini di database e di codice VBA? Nel senso un DB con relativo codice creato con una versione di Libreoffice può girare anche in Libreoffice?
2) Tra Libreoffice 4.02 e Libreoffice 7.1 vi possono essere diversità in termini di codice di programma?
3) E' ormale che il DB realizzato e funzionante con Libreoffice 4.02 sia mooolto lento nell'apertura dei vari formulari quando eseguito con la versione 7.1? Nel senso che tutte le operazioni sembrano rallentate anche banalmente la semplice apertura e chiusura di una tabella.
4) Nella versione 4.02 di Libreoffice dove installare anche il relativo modulo SDK. Nella versione 7.1 devo fare la stessa cosa?

Un grazie a tutti coloro che mi aiuteranno a rispolverare Libreoffice e la compatibilità.
Grazie

Luca
DellLatitude E5470 - Libreoffice 7.18 / Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4016
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da patel »

Luberfly ha scritto:Il DB conteneva una buona parte di codice VBA.
cosa intendi per codice VBA ? quello di excel o di starbasic ?
Comunque se non alleghi un file di esempio dubito che qualcuno possa risponderti.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Luberfly
Messaggi: 70
Iscritto il: giovedì 20 maggio 2010, 9:02

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da Luberfly »

Ciao e Grazie.
Per "VBA" usato in modo improprio, intendo il Basic di Libreoffice/OpenOffice, quindi suppongo si chiami Starbasic.
Allego una subroutine che mi da errore....
Allego anche foto dell'errore.

La mia domanda è: tra Libreoffice ed Openoffice ci sono incompatibilità?
Grazie
Luca

Codice: Seleziona tutto

REM *** AGGIORNA IL CAMPO DATA PRESENZA del formulario F_Presenze *****
public sub AggDTPRESENZA (oEvent)                     ' AGGIORNA CAMPO DATA
   dim oForm, oSForm as object                   ' FORMULARIO SU CUI SI OPERA
   dim sNmFrm, sNmSFrms as string                ' NOME FORMULARI SU CUI SI OPERA
   '---------------------------------------------'
   sNmFrm  = "F_Presenze"                        ' NOME FORMULARIO PRINCIPALE
   sNmSFrm = "SF_Presenze"                       ' NOME FORMULARIO SECONDARIO
   '---------------------------------------------'   
   oForm  = Ff_FrmLoad(sNmFrm)                   ' ACQ. OGGETTO FORM
   oSForm = oForm.getbyname(sNmSFrm)             ' ACQ. OGGETTO SUBFORM  
   oCntl  = oForm.getbyname("datData")
   oCntl.data   = TimeStampDate("DATA")          ' IMPOSTO DATA
   oCntl.commit = true                           ' CONFERMO IN DB
'   oForm.UpdateRow()
end sub                                          ' FINE
Allegati
Errore.JPG
DellLatitude E5470 - Libreoffice 7.18 / Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da charlie »

Ciao,
patel ha scritto:Comunque se non alleghi un file di esempio dubito che qualcuno possa risponderti.
Mi associo.
Comunque intuisco che siamo in Base, sbaglio?
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Luberfly
Messaggi: 70
Iscritto il: giovedì 20 maggio 2010, 9:02

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da Luberfly »

Si, è in base. Allego database
DellLatitude E5470 - Libreoffice 7.18 / Windows 10
Luberfly
Messaggi: 70
Iscritto il: giovedì 20 maggio 2010, 9:02

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da Luberfly »

Allego database completo. 1Mb circa una volta decompresso.
Provate la sezione Presenza, Inserimento. andrà in errore. E provate a vedere la velocità di apertura delle form.
Lo sto usando con Libreoffice 7.18
Sono ben graditi tutti i suggerimenti / consigli
Grazie
Allegati
Stamecone2 - TEST.zip
(234.18 KiB) Scaricato 84 volte
DellLatitude E5470 - Libreoffice 7.18 / Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da charlie »

Il problema si presenta anche in OpenOffice e quindi escludo che sia dovuto a differenze con LibreOffice.
Il messaggio di errore e piuttosto chiaro, non trova una proprietà o un metodo. In effetti la proprietà 'data' non esiste, semmai sarà 'date'. Ma anche così dà lo stesso errore. Usando la proprietà 'text' l'errore scompare ma non so valutare l'effetto ai fini del funzionamento generale, vista anche la complessità del database.

Per quanto riguarda la velocità di esecuzione non vedo problemi con il mio computer (vedi firma)
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Luberfly
Messaggi: 70
Iscritto il: giovedì 20 maggio 2010, 9:02

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da Luberfly »

Ti ringrazio.
La proprietà "text" mi da un errore di dato in quanto il campo è di tipo data e quindi dovrei convertire il valore da text a data.
Una domanda: dove trovo i'elenco dei metodi?
Grazie
Luca
DellLatitude E5470 - Libreoffice 7.18 / Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da charlie »

Qualcosa trovi nel manuale Base Handbook di LibreOffice che qualche tempo fa ho tradotto in italiano: viewtopic.php?f=29&t=10531.
A pag. 19 e seguenti ci sono le proprietà dei controlli.
Ma a pag. 38 c'è un paragrafo dedicato alle date che fa pensare possano essere le differenze che cercavi fra OO e LO. Ne riporto l'essenziale:
Da LO 4.1.2, le date sono state memorizzate come matrici all'interno dei controlli del formulario. Ciò significa che il valore corrente del controllo non può essere utilizzato per accedere alla data stessa. La data deve essere ricreata dal giorno, mese e anno se deve essere utilizzata ulteriormente nelle macro.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da charlie »

Ho avuto modo di approfondire, anche cercando aiuto ...
La proprietà da usare per leggere un campo data in LibreOffice è

Codice: Seleziona tutto

.CurrentValue
o, in maniera più specifica

Codice: Seleziona tutto

.CurrentValue.Year   .CurrentValue.Month   .CurrentValue.Day
Se poi si deve ri-usare il risultato come data, si può ricorrere alla funzione

Codice: Seleziona tutto

CDateFromUnoDate(oField.CurrentValue) 
oppure alla funzione

Codice: Seleziona tutto

CDateFromIso(oField.CurrentValue.Year & Format(oField.CurrentValue.Month,"00") & Format(oField.CurrentValue.Day,"00"))
In quest'ultima bisogna formattare (Format) il mese e il giorno perchè darebbero errore qundo sono ad una sola cifra. Infatti la funzione vuole in input il formato AAAAMMGG o AAAA-MM-GG.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Luberfly
Messaggi: 70
Iscritto il: giovedì 20 maggio 2010, 9:02

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da Luberfly »

Ok. Grazie.
CurrentValue però è di sola lettura.
Se devo scrivere la data su un control (oCntl.data) come nel mio caso come faccio?
Se uso oCntl.text mi da errore perchè associato al control ho un campo di tipo data e "text" e "data" sono incompatibili.
Se uso OCntl.data mi dice che non riconosce la proprietà data
Ed è qui che mi perdo...
DellLatitude E5470 - Libreoffice 7.18 / Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Compatibilità OpenOffice - Libreoffice etc

Messaggio da charlie »

Devi usare la proprietà BoundField come nell'esempio a pag 17 del manuale che ti ho linkato in precedenza.
Riporto qui uno screenshot:
Schermata 2022-01-19 alle 15.22.41.png
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Rispondi