Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Numero di fattura vb.net
lunedì 30 gennaio 2012 - 08.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 3.5
|
Windows 7
|
Visual Studio 2010
|
SQL Server 2008
|
Access (.mdb)
|
Office 2010
|
Internet explorer 8.0
|
Firefox
|
VBScript
|
CSS 3.0
|
HTML 5
raf741804
Profilo
| Newbie
34
messaggi | Data Invio:
lun 30 gen 2012 - 08:33
Ciao a tutti
ho un problema con il software che sto creando,
infatti dovrei creare il campo con il numero di fattura,tenedo
presente che questo con l'anno nuovo si azzera e riparte da 1
ho una text box dove vedo il numero di fattura e l'anno
nfat/anno
nfat è auto incrementato,ma non è l'id
il tutto controllato da un tasto dove scrivo crea nuovo documento.
qualcuno può postarmi il codice per risolvere sto problema?
darkeric
Profilo
| Senior Member
211
messaggi | Data Invio:
lun 30 gen 2012 - 10:48
Perchè non ti crei una tabella a parte?
id
tipodocumento
numero
anno
dove memorizzi l'ultimo numero di documento esistente
codi quando crei un nuovo documento
aggiungi uno a quel numero e aggiorni il campo
poi se stai emettendo la prima fattura del'anno successivo
ovviamente filtrando per anno non ti trova nessuna riga
automaticamente crei il nuovo anno con numerazione 0
e se poi aggiorni a 1 appena crei il primo documento
in genere si fa cosi!
Programmatore per passione!
raf741804
Profilo
| Newbie
34
messaggi | Data Invio:
lun 30 gen 2012 - 12:13
sai avrei bisogno di un esempio perchè
credimi lo so che è semplice,ma non riesco a metterci
le mani.
darkeric
Profilo
| Senior Member
211
messaggi | Data Invio:
lun 30 gen 2012 - 13:21
posta un pò del tuo codice cosi vediamo di dargli un occhiata
e poi lo integriamo con la gestione dei progressivi
Programmatore per passione!
raf741804
Profilo
| Newbie
34
messaggi | Data Invio:
lun 30 gen 2012 - 13:59
io pensavo di fare in questo modo,ma non funziona:
Dim six, dex As String
If InStr(1,NumeroTextBox.Text, "/") <> 0 Then
six = (NumeroTextBox.Text & "/") + 1
six = (six + 1)
If six <= 9 Then
six = ("0" & six)
Else
six = CStr(six)
End If
End If
dex = (Date.Today.Year)
If dex <> Date.Today.Year Then
dex = Date.Today.Year
six = "01"
End If
six = NumeroTextBox.Text
NumeroTextBox.Text = six & "/" & dex
salvami ti prego
darkeric
Profilo
| Senior Member
211
messaggi | Data Invio:
lun 30 gen 2012 - 18:26
ok ma con il DB come ci interagisci
da dove lo prendi l'ultimo numero per
proseguire con la numerazione?
dove salvi le fattura?
e soprattutto cosa salvi di ogni fattura
purtroppo non riesco a capire come stai gestendo queste cose!
Programmatore per passione!
raf741804
Profilo
| Newbie
34
messaggi | Data Invio:
lun 30 gen 2012 - 19:19
allora io ho 3 tabelle che chiamo testata,corpo e calce legate tra di loro con relazione uno a uno
quando salvo la fattura con una query ho una lista con tutti i documenti che ho emesso sia fatture che ddt
poi se mi serve cercare una fattura basta che filtro il numero e la trovo e me la stampo.
però non capisco io chiedo solo che la numerazione dei documenti a fine anno torni ad uno.
ti ho fatto vedere il ciclo che cerco di utilizzare per fare questi,ma non mi riesce.
se poi aiutarmi ad aggiustare il codice che ti ho scritto,perchè sono bloccatissimo.
raf741804
Profilo
| Newbie
34
messaggi | Data Invio:
lun 30 gen 2012 - 19:29
ti spiego come ho ragionato forse quello che ho pensato
sbaglio nel metterlo in atto:
Dim six, dex As String 'Perchè voglio che nella casella numero ci sia la scritta esempio 01/2012
If InStr(NumeroTextBox.Text, "/") <> 0 Then 'se il numero è diverso da zero
six = (NumeroTextBox.Text & "/") 'mettimelo nella textbox Numerotextbox
six = (six + 1) 'incrementami il numero di uno (forse sbaglo anche qua)
If six <= 9 Then 'se il numero è compreso tra 1 e 9
six = ("0" & six) 'mettimi uno zero davanti
Else
six = CStr(six) 'altrimenti no
End If
End If
dex = (Date.Today.Year) nella parte destra mettici l'anno
If dex <> Date.Today.Year Then 'se la parte destra è diversa dall'anno in corso allora
dex = Date.Today.Year 'cambia l'anno
six = "01" 'emetti a sinistra il numero 01
End If
NumeroTextBox.Text = six & "/" & dex 'il numero alla fine è dato da six e dex
ti prego dimmi dove sbaglio
darkeric
Profilo
| Senior Member
211
messaggi | Data Invio:
lun 30 gen 2012 - 21:42
>ti spiego come ho ragionato forse quello che ho pensato
>sbaglio nel metterlo in atto:
>Dim six, dex As String 'Perchè voglio che nella casella numero
>ci sia la scritta esempio 01/2012
occhio che six e dex li stai dichiarando come String
>If InStr(NumeroTextBox.Text, "/") <> 0 Then 'se il numero
>è diverso da zero
>six = (NumeroTextBox.Text & "/") 'mettimelo nella textbox Numerotextbox
>six = (six + 1) 'incrementami il numero di uno (forse sbaglo
>anche qua)
quindi ammettiamo che six abbia valore 10
è facile che quando fai six = six + 1 ti restituisca 101 e non 11
>If six <= 9 Then 'se il numero è compreso tra 1 e 9
>six = ("0" & six) 'mettimi uno zero davanti
>Else
>six = CStr(six) 'altrimenti no
>End If
>End If
>dex = (Date.Today.Year) nella parte destra mettici l'anno
e ci mette l'anno corrente
>If dex <> Date.Today.Year Then 'se la parte destra è diversa
>dall'anno in corso allora
non può succedere perchè hai già dato il valore dell' anno corrente
>dex = Date.Today.Year 'cambia l'anno
>six = "01" 'emetti a sinistra il numero 01
>End If
>NumeroTextBox.Text = six & "/" & dex 'il numero alla fine è dato
>da six e dex
>
>
perdonami ma secondo me stai sbagliando approccio
perchè non la gestisci cosi se non vuoi farti una tabella coi progressivi.
creati 2 campi per gestire il numero
anno
numero
dove salverai ovviamente l'anno e il numero di fattura
in visualizzazione usi 2 textbox e lo "/" lo metti in mezzo alle 2 con una label
(la stampa è un' altra cosa!)
quando crei un nuovo documento devi ordinare la tabella per anno e per numero (ovviamente questi valori devono essere dichiarati INT non string)
cosi l'ultima riga dà l'ultima fattura emessa
a questo punto assegno
AnnoTextbox.text = today.year
if annotextbox.text = (valore di anno dell' ultima fattura) then
numerotextbox.text = (valore del numero dell' ultima fattura) + 1
Else
numerotextbox.text = 1
finito
>
>ti prego dimmi dove sbaglio
spero di esserti stato utile!
Programmatore per passione!
raf741804
Profilo
| Newbie
34
messaggi | Data Invio:
mar 31 gen 2012 - 00:18
mi manca definire questo:
valore di anno dell' ultima fattura
fammi sapere
Peppino
Profilo
| Junior Member
186
messaggi | Data Invio:
mar 31 gen 2012 - 00:26
Guarda questo è un esempio che avuto mi sempra da Alex che ho aggiustato alla mia esegenza. Prova.
Private Function NumeroDocumento() As Integer
Try
'Cerco il numero del documento più alto salvato
Dim cmdTmp As New SqlCommand
cmdTmp.Connection = ConnessioneDatabase
cmdTmp.CommandText = "SELECT MAX(Prog) FROM DocumDdt WHERE anno = DATEPART(year, CURRENT_TIMESTAMP)"
ConnessioneDatabase.Open()
Dim ris1 As Object = cmdTmp.ExecuteScalar()
ConnessioneDatabase.Close()
If ris1 Is DBNull.Value Or ris1 Is Nothing Then
Return 1
End If
Return Convert.ToInt32(ris1) + 1
Catch ex As Exception
Messaggi.Errore("Errore non gestito nell'individuazione del nuovo numero documento : " & _
ex.ToString, "Attenzione")
Return 0
End Try
End Function
raf741804
Profilo
| Newbie
34
messaggi | Data Invio:
mar 31 gen 2012 - 08:33
Greazie davvero sei molto bravo ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !