Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Rcord count

  1. #1

    Rcord count

    Salve a tutti, ho una pagina asp dove una tabella ha le righe sono formate dai record di due tabelle: faccio il ciclo della prima tabella poi, quando sono finiti i record, inizia il ciclo della seconda.
    Il problema è: se io volessi (e guarda caso mi serve) che la tabella si fermi dopo una ventina di righe e i successivi record siano in un'altra pagina come faccio???
    Provo a postare un po' di codice...
    codice:
    <%
    				total = 18 'righe max per fattura	
    				riga = 0
    			  set rs3 = Server.CreateObject("ADODB.recordset")
    			sql3 = "SELECT * FROM ddt WHERE numerofattura = "& numero
    			rs3.LockType = 3
    			rs3.CursorType = 3
    			rs3.open sql3, conn
    			
    			do while not rs3.eof
    			numerobolla = rs3("numero")
    			databolla = rs3("data")
    
    			set rs4 = Server.CreateObject("ADODB.recordset")
    			sql4 = "SELECT * FROM ddtclarticoli WHERE numero = "& numerobolla
    			rs4.LockType = 3
    			rs4.CursorType = 3
    			rs4.open sql4, conn
    			
    			do while not rs4.eof 
    			riga = riga + 1
    			articolo = rs4("articolo")
        set rs6 = Server.CreateObject("ADODB.recordset")
    	sql6 = "SELECT * FROM cinture WHERE articolo = '"& articolo &"'" 
    	rs6.LockType = 3
    	rs6.CursorType = 3
    	rs6.open sql6, conn	
    	
    	if not rs6.bof or not rs6.eof then
    	Dim desc
    	
     If rs6("articolo") <> "" then
     articolo = "ART. " & rs6("articolo") & ", "
     Else
     articolo = ""
     End If
     altezza = "H: " & rs6("altezza") & ", "
     profilo = rs6("profilo") & ", "
     
     If rs6("forma") = "SAGOMATA" then
     	forma = rs6("forma") & ", "
     Else 
     	forma = ""
     End IF
    
      matsup = rs6("matsup") & ", "
     
     If rs6("matinf") <> "" then
     	matinf = "FODERA: " & rs6("matinf") & ", "
     Else
     	matinf = ""
     End If
     
     mat3 = rs6("mat3")
     mat4 = rs6("mat4")
     if mat3 <> "" then
     	altrimateriali =  mat3 & ", "
     	If mat4 <> "" then
     		altrimateriali = altrimateriali & mat4 & ", "
     	End If
     Else
     	altrimateriali = ""
     End If
     
     If rs6("cucitura") = "NO" then
     	cucitura = "NON CUCITA, "
     Else
     	cucitura = "CUCITA" & rs6("cucitura")  & ", "
     	cucitura = replace(cucitura,"SI"," ")
     End If	
    	
    ddt = "RIFERIMENTO DDT N. "  & numerobolla  & " DEL " & databolla
    
    desc  = articolo & "CINT. " & altezza & profilo & forma & matsup & matinf & altrimateriali & cucitura & ddt
    rs6.close
    set rs6 = nothing
    else
    desc = articolo
    end if
    
    				%>
                        <tr valign="top"> 
                          <td width="10%"><div align="center"><font size="2"><%=rs4("totalepezzi")%> </font></div></td>
                          <td width="64%"><font size="2"><%=desc%></font></td>
                          <td width="13%"><div align="right"><font size="2"><%=formatnumber(rs4("prezzo"),2)%></font></div></td>
                          <td width="13%"><div align="right"><font size="2"><%=formatnumber(rs4("totaleriga"),2)%></font></div></td>
                        </tr>
                        <% 
    					
    					rs4.movenext
    					loop
    					rs4.close
    					set rs4 = nothing
    					
    					
    					rs3.movenext
    					loop
    					rs3.close
    					set rs3 = nothing
    					
    					
    					sql5 = "SELECT * FROM fatturearticoli WHERE numero = "& numero
    					Set rs5 = Conn.Execute(sql5)
    					If not rs5.eof or not rs5.bof then
    					do while not rs5.eof
    					riga = riga + 1
    					 %>
                        <tr valign="top"> 
                          <td width="10%"><div align="center"><font size="2"><%=rs5("totalepezzi")%> </font></div></td>
                          <td width="64%"><font size="2"><%=rs5("descrizione")%></font></td>
                          <td width="13%"><div align="right"><font size="2"><%=formatnumber(rs5("prezzo"),2)%></font></div></td>
                          <td width="13%"><div align="right"><font size="2"><%=formatnumber(rs5("totaleriga"),2)%></font></div></td>
                        </tr>
                        <% 
    					rs5.movenext
    					loop
    					End If
    					rs5.close
    					set rs5 = nothing
    					%>
                      </table>
    Scusate il casino
    Chi mi aiuta è un Santo
    Grazie

  2. #2

    Re: Rcord count

    Originariamente inviato da tosk
    Il problema è: se io volessi (e guarda caso mi serve) che la tabella si fermi dopo una ventina di righe e i successivi record siano in un'altra pagina come faccio???
    Per prendere solamente i primi 20:
    codice:
    strSQL = "select top 20 * from tua_tabella where...."
    Per i successivi da visualizzare in un'altra pagina:
    codice:
    strSQL = "SELECT * FROM tua_tabella Where Id_tabella NOT IN (SELECT TOP 20 Id_tabella FROM tua_tabella ORDER BY Id_tabella desc) ORDER BY Id_tabella desc"
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  3. #3
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Almeno scrivilo bene con le indentature giuste... rendilo un po' conmprensibile...

  4. #4
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Dovrai fare un bottone che dice avanti.
    Verrà cambiata un variabile in querystring o in post.
    La select sarà:
    strSQL = "select * from tua_tabella where...."
    Però tu sai che devi partire da 20.
    Qundi fai uno skip dei primi 20 record semplicemnete co un Rs.moveNext per in un ciclo for da i a 20

  5. #5
    Grazie ragazzi, ma così mi sa che prende i primi 20 record dalla prima tabella e altri 20 dalla seconda!!!!
    Non c'è da costruire un ciclo??

  6. #6
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    così alla prima richiesta prenderà i primi venti. L'utente preme avanti, cambia il querystring, richarichi la stessa pagina, fai uno skip di venti record e quelli visulalizzati saranno dal ventesimo in poi.

  7. #7

    Intanto grazie
    poi, scusa, fammi capire...
    ma se la prima tabella ha, per esempio, 15 campi dovre dirgli di prenderne 5 dalla seconda e passare alla pagina successiva di partire dal record 6??

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non ti seguo... Che vuol dire la prima tabella???

    Roby

  9. #9
    La fattura pesca:
    A) tutte le DDT legate alla fattura (tab DDT)
    B) per ogni ddt vengono pescati gli articoli dalla tabella DDTclientiarticoli
    C) Finiti i due cicli vengono pescati gli articoli relativi alla fattura, ma non inseriti in alcuna bolla (tab fatturearticoli)

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.