Newsgroup: it.comp.lang.delphi
Titolo: Come fare per ....

Ciao a tutti,
    rieccomi con un'altra delle mie richieste (quasi) assurde.
 
Prima una breve introduzione:
lavoriamo con un gestionale che, come ci si puo' aspettare, ha miriadi di 
funzioni, molte delle quali incomplete.
Tra queste, 2 sono importanti quella di gestione magazzino e quella di 
vendita che e' in relazione con la tabella del magazzino (per esempio vendo 
un collo lo tolgo dal magazzino, c'e' un reso incrementa la giacenza di 
un'unita' ecc...).
Come i piu' noti gestionali, e' dotato di un lettore per i codici a barre.
 
Ecco la domanda:
Esiste il modo di intercettare la lettura del codice a barre da un programma 
esterno???
 
Mi spiego meglio:
il programma (xyz cioe' il gestionale) e' nella procedura di carico 
magazzino, legge il codice a barre e nel momento in cui ha finito la 
scansione si apre una finestra (di un secondo programma, quello che dovrei 
fare) con il codice a barre decodificato aspettando il da farsi.
Ancora piu' delirante ......
Questa finestra si deve attivare solo quando il gestionale e' in fase di 
vendita o in fase di carico magazzino .......
 
Credo sia impossibile da realizzare una cosa del genere ...... ma aspetto 
una conferma dai piu' colti di me.
 
Grazie a tutti
 
Ciao
 
Daniele 
 
 

 vendita o in fase di carico magazzino .......
 
xche delirante?
 
A.

 esterno???
 
Prima di proporti "mirabolanti" soluzioni "altamente sofisticate" e 
"fortemente disaccoppiate", vorrei che mi spiegassi perchč vuoi 
intercettare un evento di un programma esterno, senza poterlo/doverlo 
modificare: una cosa che si rivelerebbe esponenzialmente piů semplice.
;-)
 
 
-- 
morde
Android
QT 4.7
Delphi (5,6,7.. expired)
Firebird Database
 

 modificare
 
perchè vogliono bypassare il programmatore esterno cercando in questo
modo di "risparmiare", scommetti? ennesima puntata della serie "Chi
vuole essere cantinaro" :)
 
-- 
Alessandra
 
Cristiano: seguace degli insegnamenti di Cristo solo finché non
intralcino i peccati a cui si dedica più volentieri - Ambrose Bierce

 xche delirante?
 
Perche' per me e' gia' quasi impossibile cercare di capire come si 
intercetta un evento generato da un programma esterno, figurati poi il 
capire da quale procedura e' stato invocato !!!
 
Per ora ti saluto e ti ringrazio
 
Ciao
 
Daniele 
 
 

 ;-)
Nessun problema.
C'e' la necessita' di sapere quali confezioni sono "uscite" dal magazzino.
Ecco parti delle procedure lavorarive:
- Si eseguono gli ordini e si ordinano, per esempio, 100 confezioni di creme 
solari, 50 di contorni occhi, 60 marmellate alla pesca ecc...
- Quando queste arrivano si controllano e "per ognuna" viene stampata una 
etichettina adesiva con un barcode. Il barcode contiene la data di scadenza 
piu' il numero interno di magazzinamento. Al momento questo e' fatto 
manualmente e ogni 2 mesi si fa il giro del magazzino controllando cosa si 
e' movimentato e cosa e' rimasto.
- Una volta applicate le etichette, vengono caricate a magazzino.
- In vendita ... bhe operazione nota a tutti.
 
L'etichetta che viene applicata e' per sapere la storia interna di quella 
particolare confezione.
 
Dato che "nessun" programma di gestione magazzino che ci e' stato proposto 
ha la doppia lettura sia per il magazzinamento, sia per vendita, considerato 
che il fornitore del programma (meglio dire gestionale perche' ha mille 
funzioni) dice che tra le, circa, 4000 installazioni che ha fatto solo 25-30 
clienti hanno richiesto queste nuove funzioni......... economicamente non ha 
convenienza a farlo; si pensava di arrangiarsi con quelo che abbiamo.
Cosa abbiamo ??
Abbiamo il gestionale che va per i fatti suoi e un programma nostro che 
lavora su un db proprio.
Quindi quando arriva la merce, si fanno le etichette, si applicano, si 
lancia il nostro programma e si carica il nostro magazzino leggendo il primo 
codice a barre (quello commerciale) e poi il secondo; dopo si ripassano nel 
gestionale operativo che si prende cura solo delle quantita' ricevute in 
accordo alla bolla e alla successiva fattura (su questa parte e' fatto 
davvero bene!!!!).
Ogni 2 mesi si fa il giro del magazzino ripassando tutti i prodotti in 
giacenza leggendo i due codici a barre e si riallinea.
Potrebbe sembrare inutile, ma vi garantisco che alla fine saltano fuori 
delle sorprese nella gestione delle vendite, della rotazione delle merci e 
con i pezzi da sostituire.
 
Cosa si puo' fare per migliore la vita?
Cercare di caricare il nostro db quando si carica il magazzino al 
ricevimanto merci (ma farlo anche da fuori non e' un problema), invece 
cambia proprio la vita intercettare durante la vendita anche il secondo 
codice a barre, salvarlo in un file di testo (per esempio sulla riga mettere 
il primo codice a barre seguito dal secondo).
A fine giornata prima di chiudere tutto si processa il file di testo andando 
ad aggiornare quotidianamente il nostro db sapendo quando e quale confezione 
e' uscita.
 
Se e' possibile bene, altrimenti una domenica ogni 2 mesi e' dedicata al 
giro del magazzino.
 
Questo e' quanto ..... e per le mie capacita' non e' per niente semplice.
 
Alla prossima e grazie per l'interesse.
 
Ciao
Daniele 
 
 

 vuole essere cantinaro" :)
Sono stato tentato di inizare un polemica non produttiva ... ma sorridiamo 
tutti assieme.
Comunque, quando nessuno reputa economicamente conveniente stravolgere un 
progetto per l'esigenza di pochi, quando il mercato non offre niente per 
risolvere le tue necessita' cosa si deve fare???
Risposta: Cerca dei professionisti che fanno questo per te.
Ci abbiamo provato rivolgendoci a delle case di software, le quali (dopo che 
hanno compreso che si paga per il lavoro e non per le chiacchere) sono 
sparite.
Tieni anche presente che pochi sono i seri professionisti (a partita iva che 
a 20-25 euro lorde all'ora) che sanno quello che fanno quando c'e' da 
mettere le manine su un  qualcosa di gia' fatto prendendosi caricodelle 
responsabiltia' del loro lavoro (alcuni non lo fanno, se funziona bene, 
altrimenti altre ore di lavoro) !!!.
 
Cantinaro?? perche' no !
Lo siamo tutti un po in tutti i campi, l'importante e' saperlo !!
 
In attesa di una tua risposta (magari sul problema, se c'e' soluzione), 
mentre mi incammino pe la cantina, ti saluto con un sorriso
 
Ciao e buona giornata...
 
Daniele 
 
 

 (a partita iva che a 20-25 euro lorde all'ora) 
 
"seri professionisti" che lavorano a 20 euro l'ora? Ma esiste gente che
lavora per questi quattro soldi? lol..
La tipa che pulisce le scale da noi ne prende 15, in nero..
E il mio meccanico ne prende 60+iva.
E' così svalutato il lavoro dei "seri professionisti" dell'informatica?
 
Comunque, tornando a bomba.. se il produttore si rifiuta
categoricamente di realizzare la personalizzazione (dietro pagamento,
chiaro..), si potrebbe chiedergli se non altro di esporre qualche
genere di interfaccia (fosse pure un .txt generato in particolari
circostanze) che possa essere usata da un modulo esterno, realizzato da
chiunque ne sia in grado. Almeno riguardo a questo non dovrebbe fare
troppe obiezioni.
 
-- 
Alessandra
 
Può darsi che dio esista, però è meglio non fidarsi  - A.Casiraghi

 il primo codice a barre seguito dal secondo).
 
 
 
Una service application che va in polling sulle tabelle coinvolte nel processo di vendita. 
Sul vs db avete una tabella con i valori di primary key gia processati.
 
Ad esempio, inizio oggi e leggo ddt/fatture a partire dal 1 gennaio 2012.
Leggo la prima fattura/ddt, mi becco i dati che mi servono, popolo le mie tabelle e inserisco in una tabella di appoggio la PK della fattura/ddt appena processata. Al prossimo giro, faccio una select su fatture/ddt aventi primary key maggiore dell'ultima processata.
Per evitare rallentamenti, suggerirei un intervallo di polling alto e un numero di massimo di righe da processare basso.
Questi 2 parametri dovrebbero essere configurabili tipo da file ini.
 
Ancora:
potreste chiedere una personalizzazione del tipo:
"ogni volta che viene inserita/cancellata/aggiornata una fattura/ddt, alcuni dati delle righe dei documenti li scrivete in una tabella di transito.
A quel punto, la service application andrebbe in polling su QUESTA TABELLA e el righe processate potrebbero essere cancellate o etichettate come gia processate.
 
Il vantaggio (ovvio) rispetto ad andare direttamente sul loro database  e' che se cambia qualcosa nelle tabelle, non dovete riscrivere parte del service....
 
Ovviamente, ma non per tutti, vi serve l'accesso RIGOROSAMENTE IN LETTURA alle tabelle del gestionale.
Potreste chiedere a chi produce e/o chi vi fa il supporto di creare un utente sul db per tali scopi.
 
 
Infine, la butto li.
Esatto di Esa Software ha un SDK che permette(va) tramite un activex di ricevere delle notifiche dal gestionale.
Non e' che anche il vs gestionale ha una cosa simile?
se si, potreste vedere di usarlo per iniettare della logica per popolare la tabella o le tabelle di appoggio...
 
 
A.
 

 Sul vs db avete una tabella con i valori di primary key gia processati.
[...]
 
Sottoscrivo in toto quanto suggerito da Alberto.
