gestire le prenotazioni

Discussioni sulle caratteristiche di database
Rispondi
angulo
Messaggi: 8
Iscritto il: domenica 12 giugno 2016, 16:59

gestire le prenotazioni

Messaggio da angulo »

buongiorno,
devo fare un database x gestire un B&B.
mi interessa trovare il modo per visualizzare la disponibilità delle camere in un determinato periodo.
quello che vorrei è inserire la data di arrivo e la data di partenza, premere il pulsante visualizza e vedere qualli camere sono libere inquel periodo.
vi allego il database che ho iniziato a creare.

grazie
Allegati
beb.odb
(22.94 KiB) Scaricato 193 volte
open office 4.1.2 su windows 8
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: gestire le prenotazioni

Messaggio da Gaetanopr »

Ho inserito una macro che effettua una query(da testare bene) per ricercare le camere libere del periodo indicato, la query aggiorna il formulario che ho modificato indicando le colonne delle camere.
Per funzionare bisogna registrare il database andando su Strumenti -> Opzioni -> OpenOfficeBase -> Database -> Nuovo-> OK.

EDIT: dB rimosso, da controllare.
Controllato, stranamente va in errore se come data iniziale indico 02/08/2016 con le altre data sembra funzionare.
Potete darmi conferma?
Ciao
Allegati
beb.odb
(24.33 KiB) Scaricato 177 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: gestire le prenotazioni

Messaggio da charlie »

Ciao Gaetano, confermo il problema con quella data:
Allegati
Schermata 10-2457678 alle 09.27.27.png
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
vladboscaneanu
Volontario
Volontario
Messaggi: 379
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: gestire le prenotazioni

Messaggio da vladboscaneanu »

Salve a tutti.
Sto solo cercando di aiutare Gaetanopr, quindi non sto rispondendo al'autore del topic.
Dall screenshot allegato da charlie, posso dire che l'errore è dovuto al fatto che le funzioni Year, Month e Day accettano come argomento una variabile del tipo Date, mentre nel esempio di sotto, loro ottengono come argomento una variabile testuale( string ),è proprio quello che restituisce l'attributo .text del " Campo data 1" -- in poche parole o vedi se l'oggetto ha l'apposito attributo .date ,o la stringa va convertita prima.
Spero di essere stato utile.
LibreOffice ultima versione su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: gestire le prenotazioni

Messaggio da charlie »

Ma perchè solo con la data 2/8/2016 e non con altre date?
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
vladboscaneanu
Volontario
Volontario
Messaggi: 379
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: gestire le prenotazioni

Messaggio da vladboscaneanu »

Confermo di non ricevere nessun errore,sia con la data sopraindicata, che con le altre.
Test eseguito sul LibreOffice, ultima versione.
LibreOffice ultima versione su Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: gestire le prenotazioni

Messaggio da Gaetanopr »

Buongiorno, grazie per i vari riscontri ricevuti.
@ vladboscaneanu ho provato a passare le variabili di tipo Date e a fare varie conversioni ma niente, la cosa strana è che con altre date tutto funziona tranne con il 02/08/16(non ho provato tutto il calendario)vorrà dire che per il 02/08/16 non si accetteranno prenotazioni :D .
Comunque ho modificato la macro e ora accetta pure il 02/08/16, usando openoffice non so con libreoffice, dato che il campo data delle due suite sono gestite diversamente .

Ciao

Codice: Seleziona tutto

Sub ProvaQuery (oEvent As Object) 'Button > Execute > event
    oForm = oEvent.Source.Model.Parent 'MainForm from Button
    oStatement = oForm.ActiveConnection.createStatement() 'Create an SQL statement object
    oForm = oEvent.Source.Model.Parent.Parent
    dataaV = Cstr(oForm.getByName("Campo data 1").currentvalue)
    datapV = Cstr(oForm.getByName("Campo data 2").currentvalue)
    dataarrv = Left(dataaV, 4) & "-" & Mid(dataaV, 5, 2) & "-" & Right(dataaV, 2)
    datapartv = Left(datapV, 4) & "-" & Mid(datapV, 5, 2) & "-" & Right(datapV, 2)
    sSQL = "SELECT * FROM ""camere"" WHERE NOT EXISTS ( SELECT * FROM ""pren"" WHERE ""pren"".""ncam"" = ""camere"".""n.cam"" AND ( ""dataarr"" < '" & datapartv & "' AND '" & dataarrv & "'< ""datapart"" ) )"
                                                                                                                              
                                                                                                                                                                        '
   	DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
	DataSource = DatabaseContext.getByName("beb")	
	QueryDefinitions=DataSource.getQueryDefinitions() 	


	QueryDefinition=QueryDefinitions.getByName("Query1")
	QueryDefinition.Command=sSQL
	oForm = oEvent.Source.Model.Parent      
	oForm.reload

end sub	
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Rispondi