Newsgroup: it.comp.appl.access
Titolo: Access 2002, MDE, Report, Printer, PaperBin

Nell'oggetto del messaggio ho inserito tutti gli elementi in gioco nel
problema che mi trovo ad affrontare.
Il problema è il seguente:
    reports(0).printer.paperbin = 263
dà un errore numero 5: chiamata di routine o argomento non validi.
Mi rendo conto che la risposta più banale che si potrebbe dare è che sto
cercando di impostare un valore che non è tra quelli predefiniti del tipo
enumerato di Access, AcPrinterPaperBin.
Bene. Allora seguitemi adesso:
Apro un report
File -> Imposta Pagina
Leggo "Stampante predefinita"
Clicco su "Stampante specifica"
Clicco su "OK"
CTRL+G (finestra immediata)
?reports(0).printer.paperbin mi restituisce 263
sempre da finestra immediata provo ad impostare
reports(0).printer.paperbin=263 e mi da l'errore di cui sopra
sempre dalla finestra immediata provo ad impostare
reports(0).printer.paperbin = reports(0).printer.paperbin e continua a darmi
lo stesso errore 5 (me lo aspettavo)
A me pare proprio un bug.
Il mio collega ha chiamato Microsoft per chiedere lumi, consumando un
"incident". Gli hanno passato l'assistenza tecnica.
Quella non riusciva nemmeno ad aprire Access. Poi non sapeva come si scrive
"paperbin". Poi ha dato la colpa ai driver della stampante che sto
utilizzando io. Poi si è presa due giorni per rifletterci sopra e a hetto
che mi sarà sapere lunedì.
Voi che mi dite riguardo al problema che riscontro?
E riguardo al supporto tecnico di Microsoft Italia?
-- 
Gabriele Bertolucci
PBsoft

 dà un errore numero 5: chiamata di routine o argomento non validi.
Allora. Dopo aver discusso giorni con il supporto tecnico di Microsoft che
non capiva dove fosse il problema, alla fine è venuto fuori ciò che
all'incirca già si sapeva.
I valori di PaperBin vengono restituiti dai driver, quindi non è infrequente
vedersi restituire valori oltre il range accettato da Access (0-15).
Purtroppo non esistono tabelle di decodifica (tipo 262 su OkiDriver=15).
Quindi, il problema iniziale che è salvare le impostazioni di un report in
MDE rimane, a detta del supporto tecnico, insormontabile. Si deve
distribuire l'MDB.
Tra l'altro, il report può perdere le sue impostazioni cambiando PC (e non
mi riferisco al baco di Access 2000/Autocorrezione). In pratica, se imposto
un report in A5/orizzontale, sulla stampante predefinita di sistema, salvo,
creo l'MDE e poi lo porto su un altro PC, potrei avere l'amara sorpresa di
ritrovarmelo in A4 verticale (mi è successo personalmente).
Ragionando in altro modo, le proprietà PrtDevMode e PrtMip sono leggibili.
Se qualcuno trova il modo di applicarle alla stampante corrente (riferita da
Application.Printer), il semplice settaggio rpt.Printer=Application.Printer
dovrebbe bastare a ripristinare tutte le proprietà volute...
P.S.:
ho segnalato un malfunzionamento sul loro sito WEB ed il supporto tecnico ha
detto che non avrebbe fornito supporto (al che gli ho precisato che la
segnalazione era a LORO beneficio, per me si possono pure tenere il
malfunzionamento, visto che l'avevo già segnalato tempi indietro).
L'unica nota positiva è che non mi hanno decrementato l'incident... meglio
che nulla :-|
-- 
Jonathan Canova
www.aladinoinformatica.com

 distribuire l'MDB.
E' su questo punto che non ci s'intende.
L'obiettivo in fin dei conti è consentire all'utente di associare a ogni
reports impostazioni personalizzate, diverse dai default imposti a Design:
giusto?
Procediamo come segue:
1) Si crea una tabella che in chiave primaria ha il nome del Report e nei
campi seguenti le varie impostazioni personalizzabili (margini top/bottom,
orientamento, qualità, etc.)
2) Un'apposito programma d'utilità consentira di manutenere la tabella
d'associazione suddetta.
3) Su apertura applicazione si carica la tabella in una matrice in memoria.
4) Su apertura report (o anteprima) si cerca nella matrice la riga
corrispondente al report, se viene rilevata s'impostano i parametri
personalizzati attraverso Rpt.Printer
Se mi dici che non risolve i tuoi problemi, francamente non ti capisco...
Saluti.


Simone butteresti giù due righe per il carico in memoria.
E dai... e su....
MAssimiliano

 E dai... e su....
Cioč ti pare difficile da implementare?
Utilizzando "array di struttura" č piuttosto agile.
Saluti.

 Se mi dici che non risolve i tuoi problemi, francamente non ti capisco...
Non so se vengono gestiti tutti i casi possibili. Vedi per esempio la
proprietà PaperBin, che può contenere vari valori oltre quelli proposti da
Access...
Quella che proponi è una soluzione che hai già collaudato presso clienti?
-- 
Jonathan Canova
www.aladinoinformatica.com

 Quella che proponi è una soluzione che hai già collaudato presso clienti?
E' stata la prima cosa che abbiamo fatto con A 'XP: una procedura nata col
'97 che ci creava problemi coi margini _le carte intestate aziendali sono
assai eterogenee_
Nel caso nostro si è lavorato solo sui margini, ma nulla vieterebbe
d'includere altre features (orientamento, etc.).
Essendo la tabelle con le impostazioni di stampa sui Clients (non ti spiego
il perchè), leggo direttamente dalla tabella collegata il record relativo al
Report.
Ma nel caso si voglia creare la tabella sul .mdb condiviso in rete, a mio
avviso, è meglio ricorrere a un array in memoria caricato all'avvio, come
suggerivo in post precedente.
Soluzione che non ho sperimentato all'atto pratico ma che senz'altro farebbe
il proprio dovere.
Saluti.

 Access...
Sì può essere ... però un conto è dire che si tratta di una soluzione non
totalmente esaustiva, altro sostenere che l'oggetto Printer non sia
utilizzabile con un .MDE.
Direi al contrario che risolva il 90% dei problemi che ci affliggevano in
passato.
Saluti.