Pannello di Controllo Moderatore ]

[Risolto] Base - macro per aggiornare data su più record

Creare una macro - Scrivere uno script - Usare le API

[Risolto] Base - macro per aggiornare data su più record

Messaggioda charlie » mercoledì 11 ottobre 2017, 5:39

Rilancio questo thread per una soluzione con macro: https://forum.openoffice.org/it/forum/v ... 556#p46526
charlie
macOS 10.12 Sierra: Open Office 4.1.5 - LibreOffice 6.0.7
Windows 7 pro (VirtualBox): Open Office 4.1.5 - LibreOffice 5.4.4.2
Ubuntu 17.04 LTE (VirtualBox): LibreOffice 5.1.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 5593
Iscritto il: mercoledì 19 dicembre 2012, 10:50

Re: Base - macro per aggiornare data su più record

Messaggioda hubert lambert » lunedì 16 ottobre 2017, 21:13

Buonasera,

Ecco una prima proposta : ammesso che il nome del controlo data è "nuova_data", la macro assegnata al pulsante :
Codice: Seleziona tutto   Espandi visualeStringi visuale
sub aggiornaData(event)
    form = event.Source.Model.Parent
    form.beforeFirst()
    DUnuova = form.getByName("nuova_data")
    DUcol = form.findColumn("Data-Udienza")
    if not isempty(DUnuova.Date) then
        do while form.next()
            form.updateDate(DUcol, DUnuova.Date)
            form.updateRow()
        loop
        form.getByName("MainForm_Grid").reset()
        DUnuova.reset()
        form.first()
    end if
end sub

Saluti.
Allegati
prova BIS.odb
(30.29 KiB) Scaricato 57 volte
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
hubert lambert
Volontario
Volontario
 
Messaggi: 134
Iscritto il: venerdì 9 giugno 2017, 12:48

Re: Base - macro per aggiornare data su più record

Messaggioda charlie » martedì 17 ottobre 2017, 8:33

Grazie @hubert, ho provato la macro ma mi dà questo errore:
Allegati
Schermata 10-2458044 alle 09.31.41.png
charlie
macOS 10.12 Sierra: Open Office 4.1.5 - LibreOffice 6.0.7
Windows 7 pro (VirtualBox): Open Office 4.1.5 - LibreOffice 5.4.4.2
Ubuntu 17.04 LTE (VirtualBox): LibreOffice 5.1.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 5593
Iscritto il: mercoledì 19 dicembre 2012, 10:50

Re: Base - macro per aggiornare data su più record

Messaggioda hubert lambert » martedì 17 ottobre 2017, 11:44

Ciao charlie,

Funziona soltanto con LibreOffice, perchè il valore restituito dalla proprietà "Date" di un controllo data è stato modificato per consistenza con alcuni metodi, come "updateDate" (https://wiki.documentfoundation.org/Rel ... o_UNO_APIs).
Si deve un pò modificare la macro per utilizzarla in Openoffice:
Codice: Seleziona tutto   Espandi visualeStringi visuale
sub aggiornaData(event)
    form = event.Source.Model.Parent
    form.beforeFirst()
    DUnuova = form.getByName("nuova_data")
    DUcol = form.findColumn("Data-Udienza")

    d$ = DUnuova.Date
    dim nuovadata as new com.sun.star.util.Date
    nuovadata.Year = left(d, 4)
    nuovadata.Day = right(d, 2)
    nuovadata.Month = mid(d, 5, 2)

    if not isempty(DUnuova.Date) then
        do while form.next()
            form.updateDate(DUcol, nuovadata)
            form.updateRow()
        loop
        form.getByName("MainForm_Grid").reset()
        DUnuova.reset()
        form.first()
    end if
end sub

;)
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
hubert lambert
Volontario
Volontario
 
Messaggi: 134
Iscritto il: venerdì 9 giugno 2017, 12:48

Re: Base - macro per aggiornare data su più record

Messaggioda charlie » martedì 17 ottobre 2017, 20:25

Grazie @hubert, funziona benissimo.
charlie
macOS 10.12 Sierra: Open Office 4.1.5 - LibreOffice 6.0.7
Windows 7 pro (VirtualBox): Open Office 4.1.5 - LibreOffice 5.4.4.2
Ubuntu 17.04 LTE (VirtualBox): LibreOffice 5.1.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 5593
Iscritto il: mercoledì 19 dicembre 2012, 10:50

Re: Base - macro per aggiornare data su più record

Messaggioda Fryone » mercoledì 18 ottobre 2017, 8:54

Grazie di cuore.
Libreoffice Ver 5.0.3.2 - O.S. : Windows 7
Fryone
 
Messaggi: 21
Iscritto il: giovedì 5 ottobre 2017, 8:22

Re: Base - macro per aggiornare data su più record

Messaggioda Fryone » mercoledì 18 ottobre 2017, 9:03

Funzionaaaaaaaaaaaa. Hubert non ho parole di come esprimere la mia gratitudine.
Libreoffice Ver 5.0.3.2 - O.S. : Windows 7
Fryone
 
Messaggi: 21
Iscritto il: giovedì 5 ottobre 2017, 8:22


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Google [Bot] e 1 ospite