Newsgroup: it.comp.appl.access
Titolo: [Aggiornamento]6.211 esportazione selettiva e scelta campi da stampare

Spesso in questo NG si chiede come formattare un report solo con i campi 
selezionati e nascondere tutti gli altri; in agiunta si desidera poter 
scegliere quali campi stampare.
Prendendo spunto da un mio precedente lavoro sull'esportazione selettiva in 
vari formati (
www.sitocomune.com
 6.211) ho deciso di aggiungere anche la 
possibilità di scegliere dei campi di una tabella e stampare solo quelli. La 
cosa funziona anche a runtime.
Condizioni:
Richiede FM20.dll (Microsoft Forms 2.0 Object Library) tra i riferimenti;
il report deve essere stato precedentemente creato e deve avere tutti i 
campi presenti in tabella, le etichette dei controlli devono 
obbligatoriamente avere il nome del controllo di riferimento + _etichetta:
per esempio se il controllo si chiama ID, la sua etichetta si deve chiamare 
ID_Etichetta.
Inoltre nella mashera SceltaStampa è previsto l'uso della tabella Comuni; se 
si desidera cambiare tale nome e usare una tabella differente, il nome andrà 
scritto nel codice al posto di "Comuni".
Questo il link per scaricare il demo in formato AXP:
http://www.frantoiogestione.com/EsportazioneSelettiva2002.zip
Se Roberto dovesse ritenere interessante tale contributo può senza meno 
utilizzarlo.
Lo stesso vale per AccessGroup.
Ciao, Carlo 

 Ciao, Carlo
Ottimo lavoro Carlo.
Non capisco una cosa:la casella riepilogativa da dove pesca i campi
della tabella?

 ha scritto nel messaggio 
news:1173458420.3...@64g2000cwx.googlegroups.com...
cut
Ottimo lavoro Carlo.
Non capisco una cosa:la casella riepilogativa da dove pesca i campi
della tabella?
Segui il codice e capirai...
Ciao, Carlo 

 ha scritto nel messaggio 
news:1173458420.3...@64g2000cwx.googlegroups.com...
cut
Ottimo lavoro Carlo.
Hai visto il codice nel report? Un vero gioiellino.
A mia memoria in questo NG non è mai stato proposto nulla di simile!
Sono meravigliato del fatto che nessuno dei "grossi" abbia fatto dei 
commenti...
Ciao, Carlo 

 Ciao, Carlo
Non ti meravigliare Carlo.... utlimamente noto molta indifferenza a
cose "simpatiche".
Non ho ancora avuto modo di vederlo, ma l'ho scaricato, solo che
sapendo non essere una banalità serve anche il tempo giusto per capire
le finezze...
@Alex

 @Alex
Ti espongo alcuni pensieri salienti ed assolutamente personali :
1) Personalmente avrei evitato l'uso della List Membro di Microsoft
Forms 2.0, sarebbe
    bastata una normale ListBox in multiselezione, ti avrebbe evitato
codice per compilarla...
2) Correggimi se sbaglio quanto ho intuito nella parte del Report:
    I Controlli dovrebbero Scalare tutti a SX.... ????
    Nella Routine credo ci sia un Bug in quanto non si comporta come
ho intuito(sempre sia giusto) se non selezioni sempre il Primo
[ID]....
Cioè se il Primo [ID] è selezionato tutto OK, altrimenti non
riposiziona, addirittura se selezioni solo l'ultimo va in errore per
ExtraSize....
Ho visto quale può essere il problema ma come ovvio ognuno ha il
proprio modo di scrivere il codice quindi non mi permetto di metterci
mano...
3) Questa osservazione è più di carattere funzionale che altro...
sempre relativa ai report.
    Che ne dici di rendere la Form di Selezione Campi Funzionale al
punto di non rendere necessario scrivere codice nei Report....?
    Intendo dire che apri la Form sopra il Report ed in base alla
selezione lo rigeneri
    opportunamente modificato RUNTIME
    Questo lo renderebbe estremamente più versatile e semplice da
riusare.
    Ci sarebbero da prendere in considerazione anche i SubReport,
quindi giocare con una funzioncina ricorsiva.... tanto semplice quanto
banale....
@Alex

mano...
Ancora non ci ho messo mano.
------------------
3) Questa osservazione è più di carattere funzionale che altro...
sempre relativa ai report.
    Che ne dici di rendere la Form di Selezione Campi Funzionale al
punto di non rendere necessario scrivere codice nei Report....?
    Intendo dire che apri la Form sopra il Report ed in base alla
selezione lo rigeneri
    opportunamente modificato RUNTIME
    Questo lo renderebbe estremamente più versatile e semplice da
riusare.
    Ci sarebbero da prendere in considerazione anche i SubReport,
quindi giocare con una funzioncina ricorsiva.... tanto semplice quanto
banale....
@Alex
-----------------------------------
Sì certo si può fare. Mi premeva trovare una soluzione che fin'ora, a mia 
memoria, non era ancora stata trovata a runtime...
Sono veramente contento delle tue osservazioni. I migliori lavori si fanno 
insieme e a più mani...se vuoi ci lavoriamo e la pubblichiamo.
Anzi speriamo che qualcun'altro voglia dare il suo contributo.
Ciao, Carlo

 ha scritto nel messaggio 
news:1173654303.1...@t69g2000cwt.googlegroups.com...
[CUT]
ho messo in linea il db con le seguenti correzioni:
eliminato il bug di ExtraSize qualora sia selezionato solo l'ultimo campo;
eliminato il bug del posizionamento del primo controllo qualora il primo 
campo selezionato non sia l'id o primo campo della tabella;
aggiunta la possibilità di scegliere a runtime quali campi stampare con form 
aperta sopra il report (solo pulsante preview).
Il link è sempre lo stesso:
http://www.frantoiogestione.com/EsportazioneSelettiva2002.zip
Ciao, Carlo 

 ha scritto nel messaggio 
news:1173654303.1...@t69g2000cwt.googlegroups.com...
[CUT]
Ho aggiunto in linea il solo db con le funzioni di "StampaSelettiva", in 
modo da poterci concentrare solo su quelle funzioni:
http://www.frantoiogestione.com/StampaSelettiva.zip
Se per te va bene possiamo riferirci solo a questo.
Ciao, Carlo

 ha scritto nel messaggio 
news:1173654303.1...@t69g2000cwt.googlegroups.com...
[CUT]
messo in linea il db senza FM20.dll
http://www.frantoiogestione.com/StampaSelettivaNoFM.zip
Ciao, Carlo 

 Ciao, Carlo
Ok, ora è piu standard....
Per il 3° Punto forse non mi sono spiegato bene.
A mio avviso sfruttando il sistema che ho usato nel ReportEditor si
potrebbe
elencare l'insieme dei Campi relativi all'Oggetto(sia esso Report o
SubReport) ed estendere a tutta la scala gerarchica di oggetti la
personalizzazione...
Questo permetterebbe di NON scrivere una riga di codice in nessun
Report.
L'idea è quella di fare una funzione Ricorsiva sull'Oggetto Report per
estrarne il RecordSource(ovviamente un SubReport è sempre un Report)
quindi strutturando bene la Function si popolera la ListBox con
l'Oggetto e tutti i suoi Fields..., a quel punto si potrà decidere per
ogni Oggetto(Report/SubReport) quale visualizzare e quale no...
Questo caso è estremamente più semplice dell'Editor quindi non ci
dovrebbero essere particolari complicazioni.
@Alex

 ha scritto nel messaggio 
news:1173695183.2...@30g2000cwc.googlegroups.com...







@Alex
--------------------------------------
Mettendo in listbox tutti i controlli del report (caselle di testo ed 
etichette) oltre ad eventuali sottoreport si potrebbe ottenere una listbox 
molto affollata che potrebbe generare confusione nell'utilizzatore...in 
alternativa la  listbox verrebbe popolata dalle sole caselle di testo 
lasciando fissa la regola per il nome delle etichette a 
NomeControllo+_Etichetta. Inoltre non sempre i controlli hanno il nome del 
field di origine.
Quando a scrivere codice nel report non mi sembra un grosso problema perchè 
comunque il codice va scritto...ma lo si potrebbe anche scrivere in una 
funzione pubblica.
Comunque possiamo andare avanti con qualche esempio.
Che ne dici?
Ciao, Carlo 

Ragazzi...vi sto seguendo nella discussione ma non ci capisco molto.
Volevo ringrarvi entrambi per l'interesse che avete a risolvere i vari
bug....dato che è stata una richiesta partita da me.
Grazie mille

 Ciao, Carlo
@Alex

 ha scritto nel messaggio 
news:1173697397.0...@j27g2000cwj.googlegroups.com...
Ragazzi...vi sto seguendo nella discussione ma non ci capisco molto.
Volevo ringrarvi entrambi per l'interesse che avete a risolvere i vari
bug....dato che č stata una richiesta partita da me.
Grazie mille
Prego.
Questo č un problema che torna di tanto in tanto nel NG a cui piů volte si č 
cercato di dare una soluzione.
Il problema nasce dal fatto che a runtime il report non puň essere aperto in 
struttura, fare le modifiche e quindi riaprirlo.
Con questo lavoro si bypassa proprio l'apertura in struttura e si permette 
la scelta dei controlli da visualizzare, nascondendo gli altri.
Anche la posizione dei controlli segue la logica della sequenza dei 
controlli scelti, posizionandoli da sx verso dx.
Segui il tread perchč penso che riusciremo anche a comprendere eventuali 
sottoreport.
Ciao, Carlo

 Ciao, Carlo
Hai posta...
@Alex

 - Mostra testo tra virgolette -
Ho trovato molto interessante il demo di Carlo,
ho provato ad effettuare una conversione  in Access 2000
ma viene generato un errore  nella
Form_SceltaStampaNoFM
Private Sub Comando2_Click()
alla riga  :               List1.AddItem fld.Name (impossibile trovare
il metodo o il membro dei dati)
è possibile  agggirare  questo errore ?

 wrote:
scarica questo che è già in formato AXP:
http://www.frantoiogestione.com/StampaSelettivaNoFM.zip
Oppure questo che è in formato A97 e poi potrai convertirlo:
http://www.frantoiogestione.com/StampaSelettiva97.zip
Se ci sono problemi riposta che vedo di inviarti una copia in formato A2000.
Ciao, Carlo 

 Ciao, Carlo
Ti  ringrazio ,
ho scaricato  StampaSelettiva97
e convertiso in StampaSelettiva2000
ho notato che il codice  della Form_StampaSetlettivaNoFM
Comando2_Click()
non fa uso del metodo  AddItem   che evidentemente  Access2000 non
digerisce.
Tutto funziona  bene.
Grazie

 Ciao, Carlo
Ho dimenticato di chiederti una cosa :
è possibile utilizzare un metodo simile per  Report basati (non su una
tabella come nel tue esempio) ma su una query ?
Grazie


Ho risolto il problema :
passo il nome di una query  a
Set rcs = MioDb.OpenRecordset(NomeTabella)  al posto di Nome Tabella

cut
Ho risolto il problema :
passo il nome di una query  a
Set rcs = MioDb.OpenRecordset(NomeTabella)  al posto di Nome Tabella
---------------------
Esattamente. La query è come una tabella, un recordset.
Complimenti.
Ciao, Carlo