Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217

    problema Array bidimensionale

    Ragazzi sono riuscito a creare la coppia nome/valore ma nell'arrAy mi prende anche le coppie con valore 0 e questo a me non va bene come posso risolvere per fare in modo che nell'array vengano memorizzati solo i valori superiori a 0?


    codice:
    'creiamo un array bidimensionale, un po abbondante visto
    ' che non conosco il numero di controlli del form
    ReDim arrayForm(2, 255)
    
    intIndice = 0
    
    conteggio = Request.Form.Count
    
    For intLoop = 1 to conteggio
    'Request.Form(varItem).count 
    
    'se il numero di controlli del form e uguale a uno
    
    If Request.Form(intloop).count <> 0 Then
    
    'immagazzino nell'array le coppie nome-controllo/valore-controllo
    arrayForm(0, intIndice) = Request.Form.Key(intLoop) 
    arrayForm(1, intIndice) = Request.Form.Item(intLoop) 
    intIndice = intIndice + 1
    end if 
    
    
    Next
    'End If
    
    'Next
    
    'ridimensiono l'array alle giuste dimensioni, dato che ora
    ' conosco il numero di controlli del form
    ReDim Preserve arrayForm(2, intIndice - 1)
    
    'MOSTRO A VIDEO IL CONTENUTO DELL'ARRAY
    For intIndice = 0 To UBound(arrayForm, 2)
      Response.Write arrayForm(0, intIndice) & " = " & arrayForm(1, intIndice) & "
    "
      Next
    
    
    
    
    %>

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Hai ragione ma purtroppo dopo 1 ora non si può modificare il titolo e haime nn sono riuscito ancora nonostante il tanto sbattimento,
    Posto a video l'array cosi da far capire cosa esce:


    codice:
    Nome campo:ST - Valore campo: ST3MQ
    Nome campo:nr - Valore campo: 1
    Nome campo:totale - Valore campo: € 1.500 ,00
    
    Nome campo:nr1 - Valore campo: 0
    Nome campo:totale1 - Valore campo: € 0 ,00
    Nome campo:nr2 - Valore campo: 0
    Nome campo:totale2 - Valore campo: € 0 ,00
    
    Nome campo:BM - Valore campo: BM05
    Nome campo:nr3 - Valore campo: 1
    Nome campo:totale3 - Valore campo: € 1.300 ,00
    
    Praticamente io vorrei che nell'array venissero memorizzate solo le coppie in cui nome campo/ valore siano popolati e soprattutto diversi da 0 come nel caso del campo ST e BM05
    mentre con il ciclo sotto vengono popolati tutti i campi e inseriti nell'array.
    -------------------------------------------------------------
    
    For intLoop = 1 to conteggio
    
    'immagazzino nell'array le coppie nome-controllo/valore-controllo
    arrayForm(0, intIndice) = Request.Form.Key(intLoop) 
    arrayForm(1, intIndice) = Request.Form.Item(intLoop) 
    intIndice = intIndice + 1
    Next
    
    Io avrei pensato a porre anche una condizione
    
    IF Request.Form(intLoop) <> 0 ma essendo che il valore del form è una stringa non l'accetta e non ho proprio idea di come porre in modo corretto la condizione

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Dopo una giornata di sbattimento sono riuscito a realizzare parte del lavoro. Infatti adesso grazie alla condizione IF dal ciclo FOR EACH vengono estratti solo i campi desiderati.
    Tutti i campi come si può notare sono strutturati in questo modo: IDprodotto - Quantità - Totale
    Mentre scontistica e Costo Totale riportano esclusivamente lo sconto e il totale.
    Il problema attualmente sta nel riuscire a posizionarli correttamente nella tabella possibilmente nell'ultima cella e uno sotto l'altro.
    Di seguito il codice:

    codice:
    <%
    'creiamo un array bidimensionale, un po abbondante visto
    ' che non conosco il numero di controlli del form
    reDim arrayForm(1, 255)
    intIndice = 0
    For intLoop = 1 to Request.Form.Count
    'se il numero di controlli del form e uguale a uno
    valore =  Request.Form(intLoop)
    IF Isnumeric(valore) = True then 
    valore = Cint(valore)
    end if  
    
    IF valore <> "0" then
    
    'immagazzino nell'array le coppie nome-controllo/valore-controllo
    arrayForm(0, intIndice) = Request.Form.Key(intLoop) 
    arrayForm(1, intIndice) = Request.Form.Item(intLoop) 
    intIndice = intIndice + 1
    end if 
    
    Next
    
    'ridimensiono l'array alle giuste dimensioni, dato che ora
    ' conosco il numero di controlli del form e tolgo il campo invia
    ReDim Preserve arrayForm(1, intIndice-1)
    Session("cart") = arrayForm
    
    col = 3
    Response.Write VALORE
    For intIndice = 0 To UBound(arrayForm, 2)
    Response.Write "Nome campo: " & intIndice &" - " & arrayForm(0, intIndice) & " - Valore campo: " & arrayForm(1, intIndice) & "
    "
    Next
    
    j = 1 'contore delle colonne
    
    response.write "<table border=1>" & VbCrLf
    response.write "<tr>"
    'for k = 1 to col
    response.write "<td> IDprodotto </td><td> Quantità</td><td> Prezzo </td>" 
    'response.write "<td> " & k &"</td>"
    'next
    response.write "</tr>"
    
    Do While count < UBound(arrayForm, 2)
    
    'controlliamo l'inizo riga della tabella
    if j = 1 then
    response.write "<tr>" & VbCrLf
    end if
    
    'controlliamo e popoliamo le celle
    if j <= col then
    response.write "<td>"& arrayform (1,count) & "</td>" & VbCrLf
    
    'se questo è l'ultimo elemento da visaulizzare
    'e non ci troviamo nell'ultima colonna, allora
    'dobbiamo inserire tot celle vuote pari alle
    'celle mancanti per completare la tabella
    if count = UBound(arrayForm, 2) Then
    for j = j + 1 to col
    response.write "<td>   </td>" & VbCrLf
    next
    j = col
    end if
    end if
    
    'controlliamo la fine della riga
    if j = col then
    response.write "</tr>" & VbCrLf
    end if
    
    'aggiorniamo i contatori
    if j < col then
    j = j + 1
    else
    j = 1
    end if
    count = count + 1
    loop
    response.write "</table>"
    
    %>
    Immagini allegate Immagini allegate

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.