Newsgroup: it.comp.lang.delphi
Titolo: Stampante in linea - DI NUOVO

Innanzi tutto ringrazio per l'aiuto precedente che mi avete fornito.
Le indicazioni erano corrette e riesco a controllare lo stato della 
stampante, quando però ho un processo in coda di stampa.
(mi ritorna lo stato di un job)
Il mio problema, però, è leggermente diverso. Io devo anticipare la 
stampa, ovvero devo controllare la stampante prima ancora di stampare.
Quindi solo se è tutto corretto (ho la carta e la stampante è collegata 
alla porta COM1) procedo con la mia stampa; è assolutamente necessario 
che chi utilizza il mio programma non perda nessuna stampa e che si 
accorga su mio segnale quando la carta è esaurita.
Necessito di aiutooooooooooooooooooooooo
Grazie
--- posted by geoForum on 
http://www.delphiedintorni.it

 ha scritto nel messaggio
news:lRG3c.2325$5h5....@tornado.fastwebnet.it...



La stampante ha un sensore per il fine carta, e questo sensore comunica 
con il driver per segnalare il problema. Quindi se c'è una comunicazione 
con il driver della stampante devo ottenere una cos asimile anche io 
interrogando la stampante...
E soprattutto avrei bisogno di sapere se il cavo non è collegato al pc...


"Villiam Bonini" ha scritto nel messaggio

Non so se fa al caso tuo, ma su MSDN ho trovato l'API GetPrinter.
Da lì la trattazione dell'argomento si dilunga notevolmente. Prova a darci
uno sguardo.
Dovresti poi vedere se esiste qualche API messa disposizione direttamente
dal driver o dal software di gestione della stampante, ma a questo punto
rischi di legarti notevolmente ad uno specifico modello o addirittura ad una
specifica versione del software di gestione.
Non comprendo bene un'esigenza del genere ed a mi avviso esiste un limite
oltre il quale le richieste dell'Utente/Cliente diventano comunque
impraticabili (sia per problematiche tecniche, ma anche solo per una
questione di costi che a questo punto deve poter/voler sostenere).
Ciao,
Gianluca.


La GetPrinter l'ho già provata e testata con una unit che mi era stata 
segnalata precedentemente. Funziona correttamente ma mi ritorna lo stato 
di un Job.
Il mio problema è anticipare lo stato della stampante prima ancora di 
iniziare la stampa...
Grazie comunque
Villiam
SyntraDev


 ha scritto nel messaggio
news:LjY3c.289$t81...@tornado.fastwebnet.it...

Anticipare lo stato della stampante.....
E 'interessante, ma credo poco percorribile.
Il sensore, come giustamente dicevi prima, segnala la fine carta
La segnalazione però è al HW della stampante e non al driver della stampante
(che "gira" sul PC);
infatti la stampante va in pausa e aspetta......
Credo che eliminare TUTTE le cause di errore di stampa sia impossibile.
Stampante on.line: dovresti poterlo riconoscere.
Come la mettiamo con il nastro rotto o che si inceppa ? impossibile
Con la carta inceppata ? forse ci riesci.
Non lo so, mi sembra forse eccessivo...
Essendo femmina la mia curiosità è comprensibile: ma che devi stampare di
così importante ?
Ciao
Martina

 così importante ?
Sono maschio ma mi associo. Si dice anche che la curiosità sia sintomo di
intelligenza ;-))
A parte gli scherzi, io ho un cliente che deve stampare su dei registri in
modulo continuo (con le pagine numerate e vidimate) i movimenti ed i consumi
di alcuni materiali deperibili. Ogni movimento è numerato progressivamente e
non posso avere alcun tipo di salto nella numerazione.
Inutile dire che in fase di analisi del programma la continuità del modulo
(che non poteva assolutamente essere interrotto) e l'impossibilità di
interrompere un processo di stampa era uno dei must.
Eppure, prese in considerazioni tutte le cause che potrebbero intervenire ad
interrompere una stampa (carta che si inceppa, necessità di cambiare il
nastro, cadute di corrente durante la stampa, ecc.), ad oggi per qualunque
problema di generazione del modulo (pagine in bianco perchè il nastro è
finito, disallineamenti rispetto alla fincatura, strappi della carta), esce
un responsabile che certifica il problema indicandolo sul foglio oggetto del
problema.
Allo stesso tempo la stampa viene interrotta ed il programma riprende a
stampare ripetendo l'ultima pagina che era stata stampata completamente
senza errori.
Questo per dire che comunque non potrai mai prevedere tutte le situazioni di
errore possibile ed immaginabile.
Consiglio di concentrarti piuttosto sulla possibilità di far ripartire
l'operazione esattamente da dove si era interrotta (o un passo prima) senza
quindi avere la perdita di informazioni.
Ciao,
Gianluca.

quindi avere la perdita di informazioni.
Saggia decisione: io per un programmino che stampa un registro vidimato dalla
questura, agisco ponendo questa domanda al termine della stampa: "la stampa
era definitiva?": se si', ha stampato sul registro e aggiorno in umeratori
delle pagine, diversamente era una stampa di prova. Inoltre do' la
possibilita' all'utente (sotto *sua* responsabilita') di modificare la
numerazione delle pagine da stampare (oltra all'opzione di stampare senza
numeri di pagina).
Insomma, la morale e': dai all'utente le maggiori liberta' possibili,
l'importante e' che il tuo programma funzioni secondo una logica ben precisa.
(Il resto, lo faranno gli avvocati quando verrai querelato... LOL!) ^_____^
-- 
Morde. 
(
mo...@despammed.com
)
M-List di icld: 
http://it.groups.yahoo.com/group/icld/


Il mio programma gestisce un ristorante e le eventuali ordinazioni. In 
pratica voglio essere sicuro che una mia ordinazione fatta con palmare 
venga stampata correttamente in cucina. Non posso quindi chiedere 
all'operatore se la stampa è avvenuta correttamente e devo essere sicuro 
che in cucina arrivi tutto quello che ordino con palmare...
Comunque penso di comprare un paio di manette per anticipare il tutto ... 
quando verrò querelato
CIAO e grazie


 che in cucina arrivi tutto quello che ordino con palmare...
Invece che stampare un'ordinazione in cucina, metterei un video, magari
touch, in modo che avvengano le fasi:
- il cameriere "crea" l'ordinazione sul palmare e la invia
- l'ordinazione viene "smistata" alle varie aree del ristorante (cucina,
bar, ecc.)
- da ogni area a video avviene la consultazione della coda delle ordinazioni
ancora aperte (per ciò che è di competenza dell'area)
- ogni area prepara quanto dovuto (segnalando l'ordinazione come "attiva")
- al termine della preparazione la singola area segnala al cameriere A
(attraverso il PC dell'area, verso il palmare) che l'ordinazione X è pronta
per essere consegnata al tavolo
- il cameriere si reca nell'area e preleva "il materiale"
Vantaggi:
- maggiori automatismi nella comunicazione tra le varie entità
- zero carta (in quanto il foglio che arriva in ogni area del ristorante
prima o poi verrà buttato via, quindi in fin dei conti è inutile)
Naturalmente al posto del Touchscreen potresti prevedere l'uso del mouse, ma
ovviamente progettando un'interfaccia molto semplificata.
La stampa, se necessaria, dovrebbe essere qualcosa che richiede l'operatore
della singola area.
Ciao,
Gianluca.


Ok questa è una delle opzioni disponibili sul programma...
Il problema è che un video costa molto di più che una stampante e quindi 
alcuni accettano il video, altri vogliono la stampante.
Purtroppo il cliente ha sempre ragione e devo fornirgli ciò che mi chiede
Grazie


 Purtroppo il cliente ha sempre ragione e devo fornirgli ciò che mi chiede
E' un punto di vista che rispetto ma che non condivido affatto. Pensandola
in questo modo rischi di entrare in un circolo vizioso di richieste assurde
dal quale risulta molto difficile uscire.
A mio avviso il cliente ha pienamente ragione su tutto ciò che riguarda il
suo lavoro e io sicuramente sono l'ultima persona che può commentare e
giudicare qualsiasi sua scelta imprenditoriale ed organizzativa. Ma quando
si tratta informatizzare una qualsiasi attività, fino a prova contraria il
tecnico e l'esperto sono io. E, visto e considerato che sono anche il
responsabile del mio lavoro, la mia parola ed il mio giudizio devono essere
insindacabili.
Ciao,
Gianluca.