Newsgroup: it.comp.lang.visual-basic
Titolo: Algoritmo degli stati di un cliente

Salve a tutti,
devo gestire un problema che riguarda gli stati in cui si trova un cliente.
Gli stati possibili sono i seguenti:
-Nuovo Contratto(Quando il cliente fa il contratto)
-Rinnovo Contratto(Quando il cliente rinnova tacitamente o volutamente 
il contratto)
-Disdetta contratto(Quando il cliente manda la disdetta che annullla il 
contratto)
-Disabilita contratto (Quando il contratto viene disabilitato 
dall'azienda.Ad es. a seguito di un contenzioso o di uso improprio del 
servizio)

 Gli stati possibili sono i seguenti:
Come puoi pensare di ricevere risposta ad una domanda così generica e
senza senso alcuno???
-- 
IBM: It's Bugging Me
News 2000 [v 2.06] - 
http://www.akapulce.net/socket2000

 
Ad esempio potresti cominciarmi a dare dei suggerimenti su 
Documentazione della gestione degli stati generico.

 della gestione degli stati generico.
Stati tipo italia, Francia e Germania?
Traduco quello che intendeva dire Due di Picche: di cosa cavolo stai 
parlando? :)
Ciao 

Il Thu, 29 Jun 2006 09:02:30 +0200, Popiero ha scritto:
[cut]
Ciao,
Mi sembra improprio parlare di "algoritmo", semplicemente devi gestire un
flag nella tua anagrafica clienti che descriva lo stato, esempio "1" Nuovo
contratto, "2" Rinnovo, etc.
Sul "come" arrivi a modificarlo e a gestirlo nel resto della tua
applicazione lo devi sapere tu :-)
In pratica non è diverso dal gestire lo stato di un ordine (Inoltrato,
merce approntata, da evadere, evaso, etc etc)
Ciao
-- 
Stefano "HappyMan"
http://www.sgr.info

Stefano 'HappyMan' ha scritto:

Ti ringrazio molto della risposta: In pratica l'ho gestito come mi hai 
suggerito tu.
In questo modo, conosco, in qualunque istante lo stato in cui verte il 
cliente.
Però se a me serve un'altra funzione: Lo storico degli stati in funzione 
del tempo è questo il modo migliore di agire ? Quali dati mi conviene 
salvare ??
Spero di essere stato chiaro. Grazie di tutto.

 ha scritto nel messaggio 
news:e7vtoa$jqk$2...@nnrp-beta.newsland.it...



cliente."...
"devo gestire un problema che riguarda gli stati in cui si trova un 
cliente."...
"devo gestire un problema che riguarda gli stati in cui si trova un 
cliente."...
umm quindi ? Scusa ma non capisco il problema....
hai una tabella CLI ? Hai un campo Stato ? Questo campo ha un valore da 1 a 
4 , fine !
Per passare da uno stato all'altro basta cambiare questo valore, per 
cambiare questo valore ti serve una mezza interfaccia utente... una 
mascherina... una combobox o 4 bottoni o 4 check... scegli tu... poi un 
bottone per cancellare, uno per confermare e se vuoi fare lo sborone anche 
uno per chiudere la maschera, al clik del bottone fai l'update della tabella 
come ti pare , stinga sql con metodo Execute o proprio .Edit !Stato = valore 
.update....

 salvare ??
Ogni volta che "modifichi" un cliente registri su una tabella lo storico :
[Inserisco un cliente nella tabella tblCLI]
-> nella tabella tblCli_Stato vado ad AGGIUNGERE un record tipo :
[ID] [IDCLI] [STATO] [DATA]
fai la stessa operazione ad ogni cambio dello stato dell'utente.
Quando ti serve sapere qualcosa sullo storico basta che rileggi quella 
tabellina tipo
sql  = Select * from tblCli_Stato where IDCLI = [IdCliente] order by Data
ed hai la vista dello storico del cliente.
Ora pero'... prendi foglio e penna e organizza prima di tutto su foglio e 
poi passi a realizzare il programma, quando hai la logica di funzionamento 
del programma ben fatto su foglio (anche word, visio o quel che ti pare ) il 
programma vero e proprio si scrive da solo. 

 Spero di essere stato chiaro. Grazie di tutto.
Mi sembrano cose cosi banali che, perdonami l'ardire,
ma ti vedo male a buttar giù codice... :-)

Gigio2k [work] ha scritto:

Nell'ipotesi in cui gli stati fossero 4 chi ti dice che dallo stato 1 si 
possa passare indifferentemente allo stato 2 o 3 ??
Capisci bene che c'è uno studio da affrontare.
Es. Stato Cliente
Se lo staot cliente è Rinnovo, da rinnovo non ha senso andare allo stato
Nuovo.
Ecco cosa intendo quando parlo di algoritmo.
Avevo pensato che questi stati si potessero gestire tramite grafi.
Ma ho paura di impelarmi in qualcosa di difficile.
Ecco che ho chiesto a gente che ne sa + di me.

 Ma ho paura di impelarmi in qualcosa di difficile.
No problem, comincia a fare tutta la logica del programma a pezzettini, poi 
analizzi un pezzettino alla volta (gestione modifiche, inserimento nuovo cli 
ecc ecc... )

Gigio2k [work] ha scritto:
ola gigio
Interpretando quello che lui chiede....
chiede una cosa diversa.....e non banale!
Avendo un sistema X
configurabile in N stati diversi NON tutti ugualmente
reversibile...come implementare un algoritmo generico che mi consenta
di cambiare stato?
Ecco il perchè dei grafi...
Una possibile soluzione potrebbe essere implementare una tabella di
transizione che mantenga in archivio il consenso o meno a passare dallo
stato n1 a nx e consultarla prima di cambiare il valore del campo stato
Il problema si risolverebbe abbastanza bene con il lisp linguaggio che
gestisce benissimo liste e nodi...in VB dovrai replicare quella
struttura (in maniera inefficente)...usando ad esempio le collezioni di
oggetti o una matrice
insomma dovrai implementare una sorta di
http://it.wikipedia.org/wiki/Matrice_delle_adiacenze
Ora però ci dici a che ti serve perchè l'esempio fatto era veramente
risolvibile come ti ha detto gigio!
Devi gestire un piazzale di sosta container?
Un plastico ferroviario (gli scambi) ?
Una metropolitana?
Un esame universitario?

 ha scritto nel messaggio 
news:e7vtoa$jqk$2...@nnrp-beta.newsland.it...

Cerca su google (o in libreria) un testo sulla macchine a stati finiti. 
Dovrai disegnare un diagramma stati eventi e poi implementarlo -che con le 
conoscenze teoriche di base divenda quasi un'operazione automatica.
Ciao,
Elef 

 ha scritto nel messaggio 
news:e7vtoa$jqk$2...@nnrp-beta.newsland.it...

Una *soluzione* Banale potrebbe essere.......
Per restare sul generico.
:-))
Select Case StatusCliente
    Case 1
                '******-Nuovo Contratto(Quando il cliente fa il contratto)
            Call GestioneNuovoContratto
    Case 2
                '****** -Rinnovo Contratto(Quando il cliente rinnova 
tacitamente o volutamente
                                il contratto)
            Call  RinnovoContratto
    Case 3
                '*********-Disdetta contratto(Quando il cliente manda la 
disdetta che annullla il
                contratto)
            Call DisdettaContratto
    Case 4
            '*******-Disabilita contratto (Quando il contratto viene 
disabilitato
                        dall'azienda.Ad es. a seguito di un contenzioso o di 
uso improprio del
                         servizio)
            Call Disabilitacontratto
   End Select
Ciao.