[Risolto] Macro apre Form Dati

Discussioni sull'applicazione per i fogli di calcolo
Andrea Toniolo
Messaggi: 19
Iscritto il: giovedì 25 agosto 2016, 12:14

[Risolto] Macro apre Form Dati

Messaggio da Andrea Toniolo »

Buongiorno,
Avrei bisogno del vostro preziosissimo Aiuto per scrivere una macro che non riesco a realizzare con il registratore:
In un foglio Calc c'è la possibiltà di aprire una Form dal menu Dati per gestire I dati esistenti in una tabella all'interno dello stesso foglio.
Ho provato, nella mia totale ignoranza :-(...di registrare una macro che comandasse l'apertura della macro da un semplice pulsante, ma senza riuscirci.
Pensate che sia possibile?, in Excel avevo trovato qualcosa di simile, però vorrei lavoare co OO per mille motivi.

Vi ringrazio in anticipo del vostro preziosissimo aiuto

A presto
Ultima modifica di charlie il venerdì 18 novembre 2016, 17:05, modificato 6 volte in totale.
Motivazione: Inserito Risolto e spunta verde
Andrea
OpenOffice 4.1.0
W7
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Macro apre Form Dati

Messaggio da Gaetanopr »

Con il registratore di macro non andrai lontano, esiste un'estensione che dovrebbe andare bene a quello che ti serve
http://extensions.openoffice.org/en/project/dataform

Se utilizzi Libreoffice è già presente andando du Dati - Formulario

Ciao
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Andrea Toniolo
Messaggi: 19
Iscritto il: giovedì 25 agosto 2016, 12:14

Re: Macro apre Form Dati

Messaggio da Andrea Toniolo »

Ciao,
Prima di tutto grazie per l'interessamento e per la rapida risposta.
però mi sono spiegato male.
Io utilizzo già quella Form attivabile con l'estensione che mi ahai inviato, voglio solo automatizzarne l'apertura con un commando dedicato, in quanto l'utente che utilizzerà l'applicazione non deve avere accesso alla barra degli strumenti.
Andrea
OpenOffice 4.1.0
W7
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

[Risolto] Macro apre Form Dati

Messaggio da sanraff »

Buongiorno a tutti e scusatemi per l'intromissione ma anch'io ero interessato a risolvere il problema posto da Andrea.
All'inizio pensavo che il problema fosse nella libreria dell'estensione poiché lanciando il "Form" da "Esegui Macro", quest'ultima veniva eseguita correttamente mentre associandola ad un pulsante restituiva come errore "oFoglio = oRange.getSpreadSheet".
Allora ho provato a trasportare tutta la libreria da "Macro di OpenOffice.org" al mio foglio, di cui allego file per eventuali test "Lavorare con i dialoghi", però non ho ottenuto alcun risultato; forse agendo sull'errore sopraccitato si riesca a raggiungere il nostro scopo.
E' possibile avere un vostro intervento ?
grazie
Allegati
Lavorare con i dialoghi.ods
(27.45 KiB) Scaricato 278 volte
Ultima modifica di sanraff il venerdì 18 novembre 2016, 14:13, modificato 2 volte in totale.
OpenOffice 3.3 SU WINDOWS 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro apre Form Dati

Messaggio da patel »

è la prima volta che mi capita una domanda del genere, quindi ne faccio una io a voi: quale vantaggio c'è a lavorare in questo modo ? mi sembra più semplice inserire i dati nel foglio.
comunque basta modificare la macro così

Codice: Seleziona tutto

Sub coboDataForm()
	' Visualizza un modulo dati simile a quello di Excel.

	Dim lungFrm, posY, posX as Single
	Dim i as Integer
	Dim oCtrl, aWidth, maxLblWidth
	Dim oCur
	
	initStrLocale ' inizializza la lingua

		oRange = thisComponent.getCurrentSelection
		oFoglio = oRange.getSpreadSheet
		
		If oRange.Rows.Count = 1 And oRange.Columns.Count = 1 Then
			' single cell, expand to current region
			oCur = oFoglio.createCursorByRange(oRange)
			oCur.collapseToCurrentRegion
			oRange = oFoglio.getCellRangeByName(oCur.absoluteName)
		End If
		
		If oRange.Rows.Count = 1 Then 'And oRange.Columns.Count = 1 Then
			' dati insufficienti per modulo dati, termina
			msgbox strLocale(MSGNODATA), 16
			Exit Sub
		End If
	
	nCols = oRange.getColumns.Count
	nRows = oRange.getRows.Count

	' ridimensiona array criteri
	ReDim arrCriteri(1 to nCols)

	' creazione dialog
	
	lungFrm = CTRLS_MARGIN + nCols * (TXT_HEIGHT + CTRLS_MARGIN)
	
	If lungFrm < MIN_HEIGHT_FRM Then lungFrm = MIN_HEIGHT_FRM
	
	' dialog height is already known, set it in the model
	oDlg = DlgTool_CreateNewDialog(0, 0, btnWidth, lungFrm, oFoglio.Name)

	'*************************************************
	'* Campi di controllo variabili relativi al range
	
	posY = CTRLS_MARGIN
	posX = 7 ' left margin (pixel)
	For i = 1 to nCols
		DlgTool_Label(oDlg, 3, posY+2, 71, TXT_HEIGHT, "lblCampo" & i, oRange.getCellByPosition(i-1, 0).getString & ":")
		oCtrl = oDlg.getControl("lblCampo" & i)
		aWidth = oCtrl.getPreferredSize.Width
		oCtrl.setPosSize(posX, 0, aWidth, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
		If aWidth > maxLblWidth Then maxLblWidth = aWidth
		posY = posY + TXT_HEIGHT + CTRLS_MARGIN
	Next
	
	'**************************
	'* calcolo larghezza form *
	'**************************
	Dim newWidth , widthScreen as Integer
	newWidth = getMaxTextLen() * FONTSIZE
	widthScreen = getScreenWidth() / 3
	If newWidth < MINTEXTLEN Then
	 	newWidth = MINTEXTLEN
	End If
	If newWidth > widthScreen Then
		newWidth = widthScreen
	End If
	'---------------------------
	
	posY = CTRLS_MARGIN
	posX = posX + maxLblWidth + 10 ' += widest label + 10 pixel
	For i = 1 to nCols
		'DlgTool_Text(oDlg, 75, posY, 83, TXT_HEIGHT, "txtCampo" & i, "", "txtCampo")
		DlgTool_Text(oDlg, 0,posY,83, TXT_HEIGHT, "txtCampo" & i, "", "txtCampo")
		' --
		' sposta casella in base alla larghezza della label più larga
		oCtrl = oDlg.getControl("txtCampo" & i)
		'oCtrl.setPosSize(posX, 0,130, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
		
		'per cambiare la dimensione della casella di testo modificare il valore del terzo parametro
		oCtrl.setPosSize(posX, 0, newWidth , 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
		' --
		posY = posY + TXT_HEIGHT + CTRLS_MARGIN
	Next


	'*************************************************
	'* Campi di controllo fissi
	
	'posX = posX + 130 + 10 ' += textbox width + 10 pixel
	posX = posX + newWidth + 10 ' += textbox width + 10 pixel
	
	' barra di scorrimento verticale
	'DlgTool_Scrollbar(oDlg, -55, CTRLS_MARGIN, 8, lungFrm - (CTRLS_MARGIN * 2), "scrlBarra", com.sun.star.awt.ScrollBarOrientation.VERTICAL)
	DlgTool_Scrollbar(oDlg, 0, CTRLS_MARGIN, 8, lungFrm - (CTRLS_MARGIN * 2), "scrlBarra", com.sun.star.awt.ScrollBarOrientation.VERTICAL)
	oCtrl = oDlg.getControl("scrlBarra")
	oCtrl.Maximum = nRows - 1
	oCtrl.setPosSize(posX, 0, 17, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
	
	posX = posX + 17 + 10 ' += scrollbar width + 10 pixel
	
	' label in alto a destra
	DlgTool_Label(oDlg, -5, 5, btnWidth, 14, "lblConta", "")
	oCtrl = oDlg.getControl("lblConta")
	oCtrl.Alignment = com.sun.star.awt.TextAlign.CENTER
	oCtrl.setPosSize(posX, 0, btnWidth + 40, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
	' pulsante "Nuovo"
	DlgTool_Button(oDlg, -5, 17, btnWidth, 14, "btnNuovo", strLocale(CMDNEW))
	oCtrl = oDlg.getControl("btnNuovo")
	oCtrl.setPosSize(posX, 0, btnWidth + 40, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
	' pulsante "Elimina"
	DlgTool_Button(oDlg, -5, 35, btnWidth, 14, "btnElimina", strLocale(CMDDELETE))
	oCtrl = oDlg.getControl("btnElimina")
	oCtrl.setPosSize(posX, 0, btnWidth + 40, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
	' pulsante "Ripristina"
	DlgTool_Button(oDlg, -5, 54, btnWidth, 14, "btnRipristina", strLocale(CMDRESTORE))
	oCtrl  = oDlg.getControl("btnRipristina")
	oCtrl.Enable = False ' disabilitato
	oCtrl.setPosSize(posX, 0, btnWidth + 40, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
	' pulsante "Trova prec."
	DlgTool_Button(oDlg, -5, 75, btnWidth, 14, "btnPrec", strLocale(CMDFINDPREV))
	oCtrl = oDlg.getControl("btnPrec")
	oCtrl.setPosSize(posX, 0, btnWidth + 40, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
	' pulsante "Trova succ."
	DlgTool_Button(oDlg, -5, 93, btnWidth, 14, "btnSucc", strLocale(CMDFINDNEXT))
	oCtrl = oDlg.getControl("btnSucc")
	oCtrl.setPosSize(posX, 0, btnWidth + 40, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
	' pulsante "Criteri"
	DlgTool_Button(oDlg, -5, 110, btnWidth, 14, "btnCriteri", strLocale(CMDCRITERIA))
	oCtrl = oDlg.getControl("btnCriteri")
	oCtrl.setPosSize(posX, 0, btnWidth + 40, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
	' pulsante "Chiudi"
	DlgTool_Button(oDlg, -5, 133, btnWidth, 14, "btnChiudi", strLocale(CMDCLOSE))
	oCtrl = oDlg.getControl("btnChiudi")
	oCtrl.setPosSize(posX, 0, btnWidth + 40, 0, com.sun.star.awt.PosSize.X + com.sun.star.awt.PosSize.WIDTH)
	'*************************************************

	oDlg.setPosSize(0, 0, posX + btnWidth + 50, 0, com.sun.star.awt.PosSize.WIDTH)

	scorriRecord(1) ' visualizza campi del primo record

	modalita = MODULO ' modalità predefinita all'avvio

	inizioEsecuzione = True

	DlgTool_Execute(oDlg) ' visualizza il dialog

End Sub
-------------------
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
Andrea Toniolo
Messaggi: 19
Iscritto il: giovedì 25 agosto 2016, 12:14

[Risolto]Re: Macro apre Form Dati

Messaggio da Andrea Toniolo »

Bungiorno Patel,
grazie per il tuo interessamento, proverò ad adattare la macro al mio foglio , onestamente pensavo fosse molto più semplice.
Per rispondere alla tua domanda invece bisogna sempre valutare caso per caso. E' vero che per un utente mediamente esperto di un foglio di calcolo è più semplice lavorare sul foglio, se invece parliamo di utenti che non sanno nemmeno cos'è è sicuramente più semplice lavorare su maschere o form con comandi e funzioni automatizzate, da qui la mia richiesta.
Ringrazio ancora tutti coloro che si mettono a disposizione per le tantissime richieste inviate a questo utilissimo Forum.

Buona giornata
Andrea
OpenOffice 4.1.0
W7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro apre Form Dati

Messaggio da patel »

non c'è bisogno di adattare la macro, basta impostare la tabella sul foglio, poi selezionare una cella della tabella e cliccare sul pulsante
-------------------
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
Andrea Toniolo
Messaggi: 19
Iscritto il: giovedì 25 agosto 2016, 12:14

Re: [Risolto]Macro apre Form Dati

Messaggio da Andrea Toniolo »

ok...meglio ancora, grazie
ho chiarito i tuoi dubbi in merito alla mia richiesta?
Andrea
OpenOffice 4.1.0
W7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto]Macro apre Form Dati

Messaggio da patel »

certamente, uso il foglio elettronico dai tempi del Simphony e non mi rendo conto delle difficoltà che possono avere i principianti
-------------------
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
Andrea Toniolo
Messaggi: 19
Iscritto il: giovedì 25 agosto 2016, 12:14

Re: [Risolto]Macro apre Form Dati

Messaggio da Andrea Toniolo »

....Io mi ci immedesimo molto bene :ucrazy:
Andrea
OpenOffice 4.1.0
W7
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: [Risolto]Macro apre Form Dati

Messaggio da sanraff »

Buonasera Andrea, buonasera patel, non so se Andrea ha provato a testare la tua macro, io l'ho fatto e quando provo a lanciarla tramite il pulsante associato, mi restituisce solo la barra del titolo con scritto a sinistra il nome del foglio "sheet1" e a destra la "X" di chiusura.
Per quanto riguarda la tua domanda:
patel ha scritto:è la prima volta che mi capita una domanda del genere, quindi ne faccio una io a voi: quale vantaggio c'è a lavorare in questo modo ? mi sembra più semplice inserire i dati nel foglio.


Al di là di quanto già esposto da Andrea, a mio avviso la Microsoft ha capito che il foglio adottato in assoluto da tutti gli utenti, dopo quello della video scrittura è proprio quello di calcolo, infatti non a caso con questo riescono a realizzare anche dei veri e propri database.
Quasi sicuramente, da tutte le richieste che hanno avuto, lo hanno implementato con l'uso del "DataForm", una maschera molto utile per l'immissione e la gestione dei dati.

Secondo il mio modesto parere la comunità di Apache, dovrebbe prendere spunto da queste soluzioni anzi bisognerebbe che incominciasse a lavorare anche sulla sincronizzazione dei fogli di lavoro e a dirla tutta potrebbe iniziare a pensare di lanciare un altro tipo di prodotto costituito da una fusione tra "Calc" e "Base" come lo era una volta per chi de lo ricorda l'applicativo "Works".

Cmq ritornando alla macro proposta, a me non funziona è possibile capire perché, grazie
OpenOffice 3.3 SU WINDOWS 7
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: [Risolto]Macro apre Form Dati

Messaggio da sanraff »

Mi ero dimenticato di allegare il file per far fare test, grazie
Allegati
Lavorare con i dialoghi ver2.ods
(12.42 KiB) Scaricato 216 volte
OpenOffice 3.3 SU WINDOWS 7
Andrea Toniolo
Messaggi: 19
Iscritto il: giovedì 25 agosto 2016, 12:14

Re: [Risolto]Macro apre Form Dati

Messaggio da Andrea Toniolo »

ciao a tutti,
Si effettivamente ho provato nuovamente la macro con lo stesso risultato di sanraff, la cosa strana è che quando l'ho provata ieri funzionava, tant'è vero che ho provato ad aggiungere dei campi alla tabella per provare ad adattarla alle mie esigenze.
Andrea
OpenOffice 4.1.0
W7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto]Macro apre Form Dati

Messaggio da patel »

non funziona perché nel nuovo file manca qualcosa, provate questo
Allegati
dialoghiDaTabella.ods
(27.64 KiB) Scaricato 202 volte
-------------------
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
Andrea Toniolo
Messaggi: 19
Iscritto il: giovedì 25 agosto 2016, 12:14

Re: [Risolto]Macro apre Form Dati

Messaggio da Andrea Toniolo »

Confermo,
Con il nuovo file funziona
Andrea
OpenOffice 4.1.0
W7
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: [Risolto]Macro apre Form Dati

Messaggio da sanraff »

Buongiorno ragazzi, anch'io confermo che con il nuovo file la macro funziona, solo che facendo test mi sono accorto che c'è un problema non di poco conto.
Mi spiego e credo di poter parlare anche a nome di Andrea, sempre se ho interpretato bene le sue intenzioni.
Lo scopo di questo "dialogo" era di poter bloccare tutte le celle con pwd per evitare qualsiasi manomissione in fase di visualizzazione e di dare a pochi l'uso del "Dataform" per poter immettere e gestire i dati.
Dai test che ho fatto mi sono accorto che bloccando le celle, cmq non si riesce a fare niente, i dati non vengono né inseriti e né gestiti.
E' possibile avere ancora un vostro aiuto?, in allegato lascio file per fare test, grazie

Piccolo suggerimento: forse sarebbe opportuno per il momento riportare il titolo nella forma normale togliendo il "Risolto" e di rimetterlo quando sarà opportuno.
Allegati
Lavorare con i dialoghi patel.ods
(29.79 KiB) Scaricato 180 volte
OpenOffice 3.3 SU WINDOWS 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto]Macro apre Form Dati

Messaggio da patel »

anche questo allegato non funziona
-------------------
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
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: [Risolto]Macro apre Form Dati

Messaggio da Gaetanopr »

sanraff ha scritto: Lo scopo di questo "dialogo" era di poter bloccare tutte le celle con pwd per evitare qualsiasi manomissione in fase di visualizzazione e di dare a pochi l'uso del "Dataform" per poter immettere e gestire i dati.
Piccolo suggerimento: forse sarebbe opportuno per il momento riportare il titolo nella forma normale togliendo il "Risolto" e di rimetterlo quando sarà opportuno.
Il "Risolto" è stato messo da chi ha creato il post e che ha ritenuto risolta la sua problematica, solo successivamente dopo il tuo intervento è stata messa in evidenza la questione dei dati protetti da pw.

Prova il file in allegato
Allegati
dialoghiDaTabella_conpassword.ods
(27.97 KiB) Scaricato 179 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Andrea Toniolo
Messaggi: 19
Iscritto il: giovedì 25 agosto 2016, 12:14

Re: [Risolto]Macro apre Form Dati

Messaggio da Andrea Toniolo »

si....non me ne ero accorto che ci sfosse un problema con il blocco password....
se ritenete opportuno tolgo il "RISOLTO"
Andrea
OpenOffice 4.1.0
W7
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: [Risolto] Macro apre Form Dati

Messaggio da sanraff »

Buongiorno Gaetanopr, grazie per il tuo intervento, però ci tenevo a precisare una cosa da non prendere come una polemica ma come un'osservazione costruttiva, poiché sono una persona che tende sempre a rispettare le regole.
Io nella discussione di questo post sono entrato molto prima di quanto tu dici, si può dire quasi da subito, ( vedi la cronologia ) ed in riferimento alle soluzioni proposte da patel, avendo fatto io i test, mi sono accorto che c'era qualcosa che non andava e mi sembrava corretto segnalarle, come mi sembrava corretto far capire ad Andrea che il "Risolto" va messo solo se effettivamente la soluzione è stata testata e risulta essere funzionante, anche perché mettendomi nei panni di un visitatore, sarebbe opportuno fargli trovare la risoluzione della discussione e non un post ancora in una fase non conclusiva con un "Risolto" portato in evidenza nella barra del titolo; infatti venendo anche al tuo lavoro, facendo test, mi sono accorto che c'è ancora qualcosa che non va, mi spiego.
Fatto premessa sul funzionamento della macro, se io clicco sul pulsante, il dialogo si apre e toglie momentaneamente la pwd per l'immissione e la gestione dei dati, però ho notato che se invece di cliccare sul pulsante "Chiudi", per sbaglio si clicca sulla "X" posta nella barra del titolo, le celle restano sprotette da pwd a rischio di manomissione.
Io ho letto la macro da te postata ed ho visto dove hai posizionato la riga per togliere la pwd però non ho capito coma avviene il suo reinserimento.
E' possibile chiedere gentilmente ancora un vostro intervento?, grazie
OpenOffice 3.3 SU WINDOWS 7
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: [Risolto] Macro apre Form Dati

Messaggio da Gaetanopr »

Ciao sanraff, non importa in che fase sei entrato nella discussione, la questione è semplice Andrea ha richiesto un modo per attivare il Form Dati che non sia quello di andare nel Menu - Dati - Form, in quanto la barra degli strumenti è disabilitata.
Le soluzioni proposte hanno portato ad avviare il Form Dati tramite un pulsante, quindi Andrea ha ritenuto risolta la sua problematica.
L'uso di una finestra di dialogo(io ne uso tante nei miei file) non è esclusivamente fatto per evitare manomissioni nei dati, ma anche per facilitare l'immissione dei dati, per aver un'interfaccia più gradevole rispetto al normale foglio di calcolo.
Comunque le tue osservazioni sono pure giuste specialmente se l'uso della finestra di dialogo viene usata su di un foglio protetto.
sanraff ha scritto:....... però ho notato che se invece di cliccare sul pulsante "Chiudi", per sbaglio si clicca sulla "X" posta nella barra del titolo, le celle restano sprotette da pwd a rischio di manomissione....
Il problema non nasce solo cliccando sulla X che questa la si può disabilitare come ho fatto nel file che riallego, ma nasce anche dalla chiusura della finestra di dialogo tramite il tasto Esc.
Allegati
dialoghiDaTabella_conpassword.ods
(28.84 KiB) Scaricato 143 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: Macro apre Form Dati

Messaggio da sanraff »

Ciao Gaetanopr, in riferimento alla tua oservazione sul tasto "Esc", effettivamente non ci avevo pensato, però in base alla tua esperienza è possibile intervenire in qualche modo?, magari adottando qualche escamotage, hai qualche suggerimento da proporre?.

Concordo con il fatto che le maschere al di là del lato estetico, sono molto utili per l'inserimento e la gestione dei dati, però non sapendo gestire la corretta compilazione delle macro, ho sempre evitato di cimentarmi nell'uso dei "Dialog", però avendo visto questa del "DataForm", mi è sembrato utile approfondire qalche concetto.
Nella tua spiegazione ho letto che tu ne fai molto uso e mi chiedevo, sempre se è possibile e sempre se non ti scoccia, metterne a disposizione qualcuna, magari un pò più semplice oppure più intuitiva che faccia più o meno le stesse cose di questa, in modo da prenderla come spunto didattico.
Spero di non aver osato troppo nella richiesta, un saluto e Grazie di tutto.
OpenOffice 3.3 SU WINDOWS 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro apre Form Dati

Messaggio da patel »

un esempio lo trovi nell'allegato
Allegati
DialogoEsempio.ods
(16.55 KiB) Scaricato 182 volte
-------------------
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
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: Macro apre Form Dati

Messaggio da sanraff »

Buonasera patel, innanzitutto grazie per la dritta che mi hai dato in riferimento all'ultimo post, infatti ho cercato di mettermi subito a lavoro anche se sapevo di battere il capo in qualcosa :crazy:
Infatti il primo ostacolo l'ho incontrato proprio leggendo la guida in Basic nella sessione "Fogli Elettronici -> Righe e Colonne", poiché in base agli esempi da te forniti, volevo capire come trasferire una parola scritta in un "Campo Testo" su una determinata cella, ( anche perché il mio obbiettivo sarebbe quello di imparare a realizzare dei form come quello proposto nel "DataForm" ).
All'inizio pensavo che entrando nella "Proprietà dell'oggetto", da "dlgF_Finestra1 -> Proprietà " potevo fare una sorta di collegamento tra l'etichetta e la cella, poi avendo visto che non si poteva, ho dato un'occhiata alla guida in Basic, per fare un pò di pratica, infatti ho ricopiato il seguente esempio:
Sub Main
Dim Doc As Object
Dim Sheet As Object
Dim Row As Object
Dim Col As Object
Dim I As Integer

Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)

For I = 0 To 4
Row = Sheet.Rows(I)
Row.OptimalHeight = True
Next I

Col = Sheet.Columns(1)
Col.IsVisible = False
End sub

e già qui il sistema mi ha restituito due errori uno sulla riga "Doc = StarDesktop.CurrentComponent" poiché non riconosce lo"StarDesktop" e l'altro sulla riga "Sheet = Doc.Sheets(0)" dove mi dice "Variabile dell'oggetto non impostata.
Ho tentato di capire qualcosa sulla spiegazione fornita sul perché lo "StarDesktop" da dei problemi, però non so come rimediare, come pure non so come risolvere la seconda segnalazione in quanto trattandosi di una macro d'esempio, pensavo che funzionasse da subito.
Quindi mi chiedevo se era possibile avere un ulteriore aiuto al fine di mettermi nella condizione di potermi esercitare con queste macro d'esempio e se non chiedo troppo, di spiegarmi come si fa a trasferire un testo da un maschera guida ad una determinata cella, cioè creando una tabella con "Cognome, Nome e data" , come si fa a trasportare i dati nelle celle d'appartenenza riconoscendo le righe vuote da quelle già occupate.
grazie
OpenOffice 3.3 SU WINDOWS 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro apre Form Dati

Messaggio da patel »

Codice: Seleziona tutto

Sub Main
Doc = ThistComponent
Sheet = Doc.Sheets(0)
il resto non capisco a cosa serve, comunque prima di affrontare le finestre di dialogo, che costituiscono un punto di arrivo e non di partenza, è meglio che tu impari il linguaggio, una buona guida con esempi funzionanti è questa http://www.pitonyak.org/oo.php
-------------------
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
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: Macro apre Form Dati

Messaggio da sanraff »

Buongiorno patel, in questo fine settimana, ho provato a seguire il tuo consiglio, collegandomi anche al sito da te proposto.
patel ha scritto:è meglio che tu impari il linguaggio, una buona guida con esempi funzionanti è questa http://www.pitonyak.org/oo.php
.
Sinceramente non avendo fatto studi specifici sui linguaggi di programmazione, mi resta molto difficile ottemperare per questa soluzione, poiché mi sono reso conto che si tratta di un livello molto alto; questo però non significa gettare la spugna, ma essendo consapevole dei mie limiti, per imparare mi sembra più opportuno chiedere al forum e crescere con piccoli passi.
Infatti ritornando alle maschere d'inserimento, quello che chiedevo era di insegnarmi a realizzare un dialogo dove all'interno ho un campo testo, un campo per l'immissione di date, un campo per l'immissione di numeri ed un campo alfanumerico, dove una volta inserito i dati, tramite un tasto "inserisci", li avrebbe trascritti all'interno delle celle preposte con la possibilità di incrementare la riga per l'immissione di nuovi dati.

Chiaramente non sapendolo fare, sono andato a riguardarmi il file che ho allegato, dove sono riuscito a capire rispetto all'originale "DataForm", come poter modificare la grandezza del form, la posizione della scrollbar e la posizione dei singoli pulsanti, adattando questi ultimi a piacer mio; mentre non ho capito come è possibile fare la stessa cosa con le etichette ed il rispettivo campo testo associato, cioè li volevo configurare su due o tre colonne in modo da avere una distribuzione più corretta, anziché vederli impostati su un'unica colonna.
Sarebbe possibile avere un aiuto in merito, con la consapevolezza di lasciare inalterate le funzioni del "DataForm" ?, se fosse possibile intervenire in questo modo, avendo constatato che si tratta di un dialog molto completo, potrebbe esser utili anche ad altri del forum

Spero di esser stato chiaro, un grazie in anticipo
Allegati
dialoghiDaTabella_conpassword Ver2.ods
(29.03 KiB) Scaricato 166 volte
OpenOffice 3.3 SU WINDOWS 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro apre Form Dati

Messaggio da patel »

Normalmente, vedi esempio che ho allegato in precedenza, si costruisce la finestra di dialogo a nostro piacere e poi si crea il codice per gestirla, nel dataform invece la finestra di dialogo viene creata da codice e per poter adattarsi a qualsiasi tabella viene impostata su una unica colonna.
Intervenire su queso codice è senz'altro possibile, ma molto più difficile (parlo per me) che fare nel modo consueto.
-------------------
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
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: Macro apre Form Dati

Messaggio da sanraff »

Ciao patel, il tuo suggerimento io l'ho preso molto in considerazione, solo che purtroppo non avendo nessuna competenza nel saper costruire correttamente una macro, ( esempio: capire come richiamare un servizio, differenza tra oggetto, metodo, variabili e quant'altro ), mi sono subito arenato e per questo avevo chiesto aiuto al forum per insegnarmi
sanraff ha scritto:a realizzare un dialogo dove all'interno ho un campo testo, un campo per l'immissione di date, un campo per l'immissione di numeri ed un campo alfanumerico, dove una volta inserito i dati, tramite un tasto "inserisci", li avrebbe trascritti all'interno delle celle preposte con la possibilità di incrementare la riga per l'immissione di nuovi dati.
Dopodiché avrei cercato di adattarlo alle mie esigenze prendendo spunto da un codice già scritto per implementare l'inserimento di nuovi campi e quant'altro.

Nel frattempo però ho tentato di studiarmi anche la macro del "DataForm", poiché la considero molto completa, solo sono riuscito a raggiungere una parte del mio scopo.

Tirando le conclusioni, In allegato riporto due file
1) dialoghiDaTabella_conpassword Ver2 dove mi son fermato in questo punto
sanraff ha scritto:sono riuscito a capire rispetto all'originale "DataForm", come poter modificare la grandezza del form, la posizione della scrollbar e la posizione dei singoli pulsanti, adattando questi ultimi a piacer mio; mentre non ho capito come è possibile fare la stessa cosa con le etichette ed il rispettivo campo testo associato, cioè li volevo configurare su due o tre colonne in modo da avere una distribuzione più corretta, anziché vederli impostati su un'unica colonna.
2) Creare maschere di dialoghi, dove mi sono fermato in questo punto
sanraff ha scritto:quello che chiedevo era di insegnarmi a realizzare un dialogo dove all'interno ho un campo testo, un campo per l'immissione di date, un campo per l'immissione di numeri ed un campo alfanumerico, dove una volta inserito i dati, tramite un tasto "inserisci", li avrebbe trascritti all'interno delle celle preposte con la possibilità di incrementare la riga per l'immissione di nuovi dati.
Entrambe le soluzioni concorrerebbero a mio avviso ad un buon insegnamento didattico.

Spero di esser stato chiaro ed un grazie in anticipo a chi mi darà una mano
Allegati
dialoghiDaTabella_conpassword Ver2.ods
(29.03 KiB) Scaricato 151 volte
Creare maschere di dialoghi.ods
(11.97 KiB) Scaricato 157 volte
OpenOffice 3.3 SU WINDOWS 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro apre Form Dati

Messaggio da patel »

la seconda strada è quella giusta, hai creato la maschera, ora si tratta soltanto di gestirla, a questo proposito ti allego un esempio simile funzionante
Allegati
DialogoOK.ods
(14.64 KiB) Scaricato 179 volte
-------------------
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
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: Macro apre Form Dati

Messaggio da sanraff »

Ok, fatto test, però per inserire un testo??

Ho fatto prova, credo di aver impostato correttamente il campo per ricevere testo però mi restituisce zero, inoltre ho notato che dopo l'inserimento i campi del "dialog" restano con le scritte inserite, invece io pensavo che si cancellassero in automatico è possibile capire come si fa??,

Riallego file con modifica, grazie
Allegati
DialogoOKver2.ods
(14.59 KiB) Scaricato 181 volte
OpenOffice 3.3 SU WINDOWS 7
Rispondi