234 messaggi dal 25 gennaio 2002
Salve ragazzi, io non penso si tratti di una anamolia ma il risultato da questa impressione.
Allora andiamo per gradi;
Io ho questa funzione:

' Funzione calcolo prezzo in base a sconto quantità
Function CalcPrzScQty3(lqta,lcod)
Set cn = Server.CreateObject("ADODB.Connection")
cn.open db_dsn

tabella_mdb = "prodotti"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.Open tabella_mdb, cn, ,-1
rs.Filter = "prod_id='" & lcod & "'"

' Parametri sconto quantità
pd_qty1 = Cint(rs("quantita_1")) '5
pd_qty2 = Cint(rs("quantita_2")) '10
pd_qty3 = Cint(rs("quantita_3")) '15
pd_qty4 = Cint(rs("quantita_4")) '20
pd_prz1 = rs("prezzo_1") '18,30
pd_prz2 = rs("prezzo_2") '15,30
pd_prz3 = rs("prezzo_3") '13,30
pd_prz4 = rs("prezzo_4") '10,30

If (lqta = pd_qty1) or (lqta < pd_qty2) Then
CalcPrzScQty3 = pd_prz1
End If
If lqta = pd_qty2 Then
CalcPrzScQty3 = pd_prz2
End If
If (lqta > pd_qty2) AND (lqta < pd_qty3) Then
CalcPrzScQty3 = pd_prz2
End If
If lqta = pd_qty3 Then
CalcPrzScQty3 = pd_prz3
End If
If (lqta > pd_qty3) AND (lqta < pd_qty4) Then
CalcPrzScQty3 = pd_prz3
End If
If (lqta = pd_qty4) OR (lqta > pd_qty4) Then
CalcPrzScQty3 = pd_prz4
End If

End Function


A questa funzione passo due parametri e cioè la quantità e l'ID univoco.

prz = CalcPrzScQty3(lqta,lcod)

Nella funzione, al fianco di ogni parametro ho scritto il valore di un esempio di prodotto

Supponendo di avere una quantità pari a 5 quindi
lqta = 5

Quando richiamo la funzione essa mi restituisce sempre il prezzo relativo all'ultima condizione (pd_prz4).

Se nelle condizioni (presenti all'interno della funzione) vado ad inserire manualmente, al posto delle variabili il loro rispettivi valore es.

If (lqta = 5) or (lqta < 10) Then
CalcPrzScQty3 = pd_prz1
End If

...la funzione esegue alla perfezione il suo dovere!

Ora io mi chiedo, cos'è che mi sfugge?
Eppure io tutti i parametri(estrapolati dal db) presenti all'interno della funzione, in fase di debug li ho stampati a video per assicurarmi della loro presenza.

Ok lascio a voi ogni interpretazione del caso.


Aikon


Aikon

...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
25 messaggi dal 11 aprile 2001
Appena entrato nella funzione, prova a fare lqta=cint(lqta), non si sa mai...
234 messaggi dal 25 gennaio 2002
marcocarro l'ho fatto e sai cosa succede?

adesso mi restituisce sempre il prezzo della prima condizione.


Aikon

Aikon

...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
2.584 messaggi dal 14 maggio 2001
Prova a fare un response.write dei valori di:

rs("quantita_1"))
rs("quantita_2"))
rs("quantita_3"))
rs("quantita_4"))

Per capire che valore hanno
234 messaggi dal 25 gennaio 2002
Seoman il tuo consiglio è una delle prime operazione di debug che ho effettuato.
Comunque mi stampa tranquillamente i valori contenuti nei campi.

Grazie


Aikon

Aikon

...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.