Ceare una distinta base

mercoledì 17 giugno 2009 - 18.23

zolamia Profilo | Newbie

Ciao a tutti spero mi possiate aiutare perchè veramente sto impazzendo
ho creato il form con una list dove registro i nomi delle distinte , nella tabella DistinteTipi
poi un datagrid dove inserisco gli articoli che compongono la distinta ( e che vengono poi registrati nella tabella DistinteRigheDettagli) ...

ma il mio problema è che quando vado ad ricercare ( e quindi ad inserire ) l'articolo che deve comporre la distinta, dopo averla selezionata nella listbox e riportati i dati nelle texbox:

Private Sub ListDistinte_Click()
TxtCodiceDistinta.Text = Mid(ListDistinte.Text, 1, 3)
TxtDescrizione.Text = Mid(ListDistinte.Text, 4, 50)
CodiceDistinta = Mid(ListDistinte.Text, 1, 3)
Call CaricaProdotti
End Sub

mi registra gli articoli considerandomi sempre e solo il primo IdTipoDistinta

Private Sub RicercaProdotto()
IDArticoloSelezionato = RicercaInArchivioArticoli(txtChiaveRicerca.Text, cboCampoDiRicerca.ListIndex)
If IDArticoloSelezionato <= 0 _
Then
'-1 nessun record trovato
If IDArticoloSelezionato = -1 _
Then
Call MsgBox("Nessun Articolo trovato.", vbQuestion, App.Title)
End If
Else
If CodiceDistinta <> "" _
Then
strSQL = "Select * From DistinteRigheDettaglio Where IdTipoDistinta =" & IdTipoDistinta
strSQL = strSQL & " And IdArticolo=" & IDArticoloSelezionato

RsAddProdotto.Open strSQL, Db, adOpenStatic, adLockOptimistic

If RsAddProdotto.RecordCount > 0 _
Then
Call MsgBox("Prodotto già presente", vbQuestion, App.Title)
RsAddProdotto.Close
Else
RsAddProdotto.Close

'aggiungo prodotto prendo i dati dell'articolo
strSQL = "Select * From Articoli Where IdArticolo=" & IDArticoloSelezionato
RsAddProdotto.Open strSQL, Db, adOpenStatic, adLockOptimistic

TxtArticolo.Text = RsAddProdotto!DescrizionePrincipale
Text4.Text = RsAddProdotto!UnitaMisura
RsAddProdotto.Close

TxtQta.SetFocus
TxtQta.SelStart = 0
TxtQta.SelLength = Len(TxtQta.Text)

End If

Set RsAddProdotto = Nothing

Else
Call MsgBox("Selezionare Gruppo", vbQuestion, App.Title)
End If
End If

End Sub


potete aiutarmi??
grazie grazie grazie

spero di essere stata chiara
ciaoo
:::...Truly madly deeply...:::

Dainesi Profilo | Senior Member

Scusa ma se utilizzi una lista per scegliere l'articolo, come mai utilizzi ListDistinte.Text e non ListDistinte.List(ListDistinte.ListIndex) ?

> Ciao a tutti spero mi possiate aiutare perchè veramente
>sto impazzendo
>ho creato il form con una list dove registro i nomi delle distinte
>, nella tabella DistinteTipi
>poi un datagrid dove inserisco gli articoli che compongono la
>distinta ( e che vengono poi registrati nella tabella DistinteRigheDettagli)
>...
>
>ma il mio problema è che quando vado ad ricercare ( e quindi
>ad inserire ) l'articolo che deve comporre la distinta, dopo
>averla selezionata nella listbox e riportati i dati nelle texbox:
>
>Private Sub ListDistinte_Click()
>TxtCodiceDistinta.Text = Mid(ListDistinte.Text, 1, 3)
>TxtDescrizione.Text = Mid(ListDistinte.Text, 4, 50)
>CodiceDistinta = Mid(ListDistinte.Text, 1, 3)
>Call CaricaProdotti
>End Sub
>
>mi registra gli articoli considerandomi sempre e solo il primo
>IdTipoDistinta
>
>Private Sub RicercaProdotto()
>IDArticoloSelezionato = RicercaInArchivioArticoli(txtChiaveRicerca.Text,
>cboCampoDiRicerca.ListIndex)
>If IDArticoloSelezionato <= 0 _
>Then
>'-1 nessun record trovato
>If IDArticoloSelezionato = -1 _
>Then
>Call MsgBox("Nessun Articolo trovato.", vbQuestion, App.Title)
>End If
>Else
>If CodiceDistinta <> "" _
>Then
>strSQL = "Select * From DistinteRigheDettaglio Where IdTipoDistinta
>=" & IdTipoDistinta
>strSQL = strSQL & " And IdArticolo=" & IDArticoloSelezionato
>
>RsAddProdotto.Open strSQL, Db, adOpenStatic, adLockOptimistic
>
>If RsAddProdotto.RecordCount > 0 _
>Then
>Call MsgBox("Prodotto già presente", vbQuestion, App.Title)
>RsAddProdotto.Close
>Else
>RsAddProdotto.Close
>
>'aggiungo prodotto prendo i dati dell'articolo
>strSQL = "Select * From Articoli Where IdArticolo=" & IDArticoloSelezionato
>RsAddProdotto.Open strSQL, Db, adOpenStatic, adLockOptimistic
>
>TxtArticolo.Text = RsAddProdotto!DescrizionePrincipale
>Text4.Text = RsAddProdotto!UnitaMisura
>RsAddProdotto.Close
>
>TxtQta.SetFocus
>TxtQta.SelStart = 0
>TxtQta.SelLength = Len(TxtQta.Text)
>
>End If
>
>Set RsAddProdotto = Nothing
>
>Else
>Call MsgBox("Selezionare Gruppo", vbQuestion, App.Title)
>End If
>End If
>
>End Sub
>
>
>potete aiutarmi??
>grazie grazie grazie
>
>spero di essere stata chiara
>ciaoo
>:::...Truly madly deeply...:::

Autore del libro sul FOREX, MetaTrader e creazione dei trading system http://ilmiolibro.kataweb.it/schedalibro.asp?id=115872

zolamia Profilo | Newbie

ho cambiato totalmente tutto.. e ci sono riuscita.. finalmente dopo 2 mesi..
adesso in pratica io mi complilo la distinta base ( esempio porta o finestra ) però il secondo problema è che il fornitore consegna le bolle con il calcolo in kg ( barra di alluminio) e quindi registro la mia bolla considerando i kg ma io quando vado a vendere vendo a mt e compilo anche la distinta base considerando i metri.. come devo ragionare qui? non capisco...
:::...Truly madly deeply...:::

Dainesi Profilo | Senior Member

E qui devi cambiare ragionamento e introdurre una equivalenza basata sul peso specifico ed il volume per mt. Quindi per ogni pezzo ottieni l'area di sezione in cm2 e poi per ogni cm di lunghezza applichi il peso specifico (da 2,66 a 2,85 gr/cm3 a seconda della qualità dell'alluminio). Alla fine potrai ottenere un peso per metro lineare che utilizzerai per l'equivalenza con l'ordine del cliente.

Es. la barra pesa 3 kg al metro. Se il Cliente ordina 100 kg significa che sono 33,3 mt.


.
Autore del libro sul FOREX, MetaTrader e creazione dei trading system http://ilmiolibro.kataweb.it/schedalibro.asp?id=115872
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5