Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Paginazione automatica

  1. #1

    Paginazione automatica

    Salve, ho un report che raffigura un conto di spese :

    vi mostro la query


    <%


    strSQL1 = "SELECT * FROM fatturequery order by id ASC"

    Set rec1 = Server.CreateObject("ADODB.Recordset")
    rec1.cursorlocation = 3
    rec1.Open strSQL1, conn




    '*** NUMERO DI RECORDS PER PAGINA ******
    Const RECORDSPERPAGE = 10
    '***************************************


    rec1.PageSize = RECORDSPERPAGE

    If ( Request("pn") <> "" ) Then
    intPageNum = CInt(Request("pn"))
    Else
    intPageNum = 1
    End If

    'Conteggio delle righe
    intNumRows = rec1.RecordCount

    If (intNumRows <> 0) Then
    rec1.AbsolutePage = intPageNum
    'Esposizione dati
    For intCount = 1 To rec1.PageSize
    %>

    <table width="1000" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td valign="top" width="50" class="mod2"></td>

    <td valign="top" width="453" class="mod3"><%=Rec1("articolo")%></td>
    <td valign="bottom" width="133" class="mod3" align="right"><%=Rec1("quantita")%></td>
    <td valign="bottom" width="14" class="mod2"></td>
    <td valign="bottom" width="123" class="mod3" align="right">€ <%=FormatNumber(rec1("prezzounitario"),2,-2,0,-2)%></td>
    <td valign="bottom" width="14" class="mod2"></td>
    <td valign="bottom" width="163" class="mod3" align="right">€ <%=FormatNumber(rec1("importo"),2,-2,0,-2)%></td>
    <td valign="middle" width="50" class="mod2"></td>
    </tr>


    </table>

    <%
    rec1.MoveNext
    If ( rec1.EOF ) Then Exit For
    Next
    End If
    %>



    Nel caso raffigurato si fa una rappresentazione con un campio pagina in base al numero di record che in questo caso è pari a 9.

    Nella fattispecie non devo conteggiare i record ma l'altezza della tabella cioè se ci sono dei testi molto lunghi che fanno parte di solo 2 record e che gia raggiungono l'altezza di pagina max mi deve passare alla pag. succ.....

    Avete un consiglio x poter modificare il mio script ..... vi ringrazio dell'aiuto

    Salve

  2. #2
    ho trovato un modo per bloccare la paginazione della 1 pagina

    #div3 {
    height: 710px;
    overflow: hidden;
    }




    <div ID="div3">

    ......
    </div>


    ora grazie soprattutto al vostro aiuto dovrei bypassare il resto dei dati sulla 2 pag. o sulle pag. successive


    ciao

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Operazione abbastanza complessa lo spazio occupato dalla tabella nella pagina lo sai solo quando è visualizzata sul client (browser) pertanto dovresti caricare la pagina con ajax in prima instanza misurare lo spazio e se è troppo "grande" reinviare la pagina al server dicedogli re-impagina solo con due record invece di nove, ma forse la soluzione più veloce è usare un "tronca testo" che tagli i testi troppo lunghi e che li apra in una popup (tipo come vedi nei blog i puntini .... di sospensione)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Stavo pensando ci puo essere una soluzione nel contare le righe di un blocco ?

    Quello che voglio dire nn il conteggio dei singoli record ma le righe in modo da poter definire un valore di riga ed effettuare successivamente un redirect automatico.

    Attendo notizie ciao

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    E come fai a capire se nella riga uno c'è 100 caratteri e nella riga cinque 500?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    potresti contare i caratteri del campo, se superano il valore da te impostato valorizzi il RECORDSPERPAGE. questo significa fare due query: la prima serve per verificare quanti record puoi estrarre nella seconda.
    non so se ci sia un metodo più "compatto"


    edit
    vero è che sorge un problema con le pagine successive perché saranno estratte secondo il criterio precedente... uhm.
    dovresti quindi mantenere in memoria i record da escludere dalla nuova estrazione.
    un po' macchinoso

  7. #7
    si un po macchinosa e tosta soprattutto, il problema grosso nasce dal fatto che alcuni record sono di 5 caratteri e quindi di una riga ma ci sono anche record che hanno 300 caratteri con righe indefinite e si va male a far certi calcoli è tutto da vedere.


    Se vi viene in mente qualcosaltro....................

    ps se trovo una soluzione prima io vi faccio sapere

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da numapompilio
    si un po macchinosa e tosta soprattutto, il problema grosso nasce dal fatto che alcuni record sono di 5 caratteri e quindi di una riga ma ci sono anche record che hanno 300 caratteri con righe indefinite e si va male a far certi calcoli è tutto da vedere.


    Se vi viene in mente qualcosaltro....................
    Originariamente inviato da cavicchiandrea
    ... forse la soluzione più veloce è usare un "tronca testo" che tagli i testi troppo lunghi e che li apra in una popup (tipo come vedi nei blog i puntini .... di sospensione)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    dunque sto provando cosi con il tronca testo



    <%

    '*** NUMERO DI RECORDS PER PAGINA ******
    Const RECORDSPERPAGE = 7
    '***************************************


    rec1.PageSize = RECORDSPERPAGE

    If ( Request("pn") <> "" ) Then
    intPageNum = CInt(Request("pn"))
    Else
    intPageNum = 1
    End If

    'Conteggio delle righe
    intNumRows = rec1.RecordCount

    If (intNumRows <> 0) Then
    rec1.AbsolutePage = intPageNum
    'Esposizione dati
    For intCount = 1 To rec1.PageSize
    %>




    <table width="1000" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td valign="top" width="50" class="mod2"></td>

    <td valign="top" width="453" class="mod3"><%= LEFT(rec1("articolo"), 230)%>...</td>
    <td valign="bottom" width="133" class="mod3" align="right"><%=Rec1("quantita")%></td>
    <td valign="bottom" width="14" class="mod2"></td>
    <td valign="bottom" width="123" class="mod3" align="right">€ <%=FormatNumber(rec1("prezzounitario"),2,-2,0,-2)%></td>
    <td valign="bottom" width="14" class="mod2"></td>
    <td valign="bottom" width="163" class="mod3" align="right">€ <%=FormatNumber(rec1("importo"),2,-2,0,-2)%></td>
    <td valign="middle" width="50" class="mod2"></td>
    </tr>


    </table>

    <table width="1000" border="0" height="60" cellpadding="0" cellspacing="0">
    <tr><td></td></tr></table>


    <%
    rec1.MoveNext
    If ( rec1.EOF ) Then Exit For
    Next
    End If
    %>



    7 record per pagina , ad inizio pagina ed a fine pagina cosa devo richiamare una cosa tipo questa ?
    inizio
    <%

    While NOT pn.EOF

    %>


    fine

    <%pn.MoveNext : Wend %>

    mi da errore cosa devo impostare al posto di pn????

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    rec1
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.