Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    431

    ASP: Aggiungere record a recordset creato da una query

    Ciao a tutti,
    genero una pagina ASP con una tabella formattata in modo da stampare una pagina di etichette formato 8 righe x 2 colonne (16 etichette formato 105mmx37mm).
    Questo e' il codice che uso (ho solo messo le parti essenziali, la connessione al db l'ho fatta)

    codice:
    <%
    Set RSEti = server.CreateObject("ADODB.RecordSet")
    SQL = "SELECT richieste.codRichiesta, gest_arch.coddoc, gest_arch.pratica, gest_arch.scatola, gest_arch.progressivo, richieste.codTipoDoc, def_tipo.descrizioneTipoDoc "& _
    " FROM (richieste INNER JOIN gest_arch ON richieste.codDoc = gest_arch.coddoc) LEFT JOIN def_tipo ON richieste.codTipoDoc = def_tipo.codTipoDoc "& _
    " WHERE (((richieste.codRichiesta)="& codRichiesta &")) ORDER BY "& ord
    
    response.Write sql
    
    RSEti.open SQL, conn, 2, 3
    
    '****** QUI modifica per aggiungere record
    'RSEti.moveFirst
    RSEti.AddNew
    RSEti("codRichiesta").Value = 0
    RSEti("codDoc") = 0
    RSEti("pratica") = 0
    RSEti("scatola") = 0
    RSEti("progressivo") = 0
    RSEti("codTipoDoc") = 0
    RSEti("descrizioneTipoDoc") = "0"
    RSEti.Update
    '****** QUI modifica per aggiungere record
    %>
    
    <table border="0" style="width:17cm" cellpadding="0" cellspacing="0">
    <tr>
    <%
    rowcount=0
    eti=0
    while NOT RSeti.EOF
    eti=eti+1
    rowcount=rowcount+1
    
    if (eti mod 16 = 1 or eti mod 16 = 2) or (eti mod 16 = 15 or eti mod 16 = 0) then
    %>
        <td><table border="1" style="width:10cm;height:3.277cm;"> <!-- 3.277cm-->
    <%
    else
    %>
        <td><table border="1" style="width:10cm;height:3.7cm;"> <!-- 3.7cm -->
    <%
    end if
    %>
           <tr>
           <td align="center"><img src="../image/logo_small_b.jpg"></td>
           <td align="center"><input readonly type="text" value="<%=FormatNumber(RSEti("pratica"),0)%>" style="border: 1px dotted #000000;text-align:center;font-weight:bold;font-size:13pt"></td>
           </tr>
           <tr>
           <td valign="top">
           <table align="center">
           <tr><td style="text-align:center;font-size:9pt;font-family:tahoma" valign="top"><%=right("000" & session("path")(1),3)%>-<%=RSEti("codDoc")%>-<%=RSEti("codTipoDoc")%></td></tr>
           <tr><td style="text-align:center;font-size:9pt;font-family:tahoma" valign="top"><%=RSEti("scatola")%>-<%=RSEti("progressivo")%></td></tr>
           </table>
           </td>
           <td valign="top">
           <table align="center">
           <tr><td style="text-align:center;font-size:9pt;font-family:tahoma"><%=RSEti("descrizioneTipoDoc")%> n°</td></tr>
           <tr><td style="text-align:center;font-size:14pt;"><font face="39251">*<%=right("000"& session("path")(1),3)%>-<%=RSEti("codDoc")%>-<%=RSEti("codTipoDoc")%>*</font></td></tr>
           </table>
           </td>
           </tr>
           </table>
             
         </td>
    <%
    
    if eti mod 2 = 0 then 
        response.write "</tr><tr>"
    elseif rowcount mod 2 = 0 and eti mod 16 = 0 then
        response.write "</tr><tr></table>"
    end if
    
    if eti mod 16 = 0 then
        response.Write "</table><DIV STYLE='page-break-before:always;'></DIV><table border=0 style='width:17cm' cellpadding=0 cellspacing=0><tr>"
    end if
    RSEti.movenext
    wend
    
    RSEti.Close
    set RSEti = nothing
    
    conn.Close
    set conn = nothing
    %>
    Io dovrei aggiungere delle caselle bianche in modo da spostare le varie etichette in basso.
    Ho pensato a due metodi:
    - aggiungere dei record al recordset esistente RSEti prima di quelli della mia query
    - con jQuery posso spostare le celle ma credo sia molto piu incasinato

    ho provato la prima opzione ma mi da questo errore sull RSEti.Update

    Microsoft OLE DB Provider for ODBC Drivers error '80040e2f'

    [Microsoft][Driver ODBC Microsoft Access] Il campo non può essere aggiornato.

    Mi potete dare una mano?
    grazie
    Da un grande potere derivano grandi responsabilità

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    ho affrontato un problema simile per poter utilizzare fogli con etichette già iniziati, è lo stesso caso?
    se si: devi considerare che c'è un problema di somme relative sui record estratti che non torna mai, e per farlo tornare devi fare parecchia manipolazione sul numero dei record da stampare, ed è un inferno. alla fine ho rinunciato: troppa spesa <> poca resa

    edit:
    per la resa/spesa c'è da considerare che io stampo diverse pagine e ne rimane solo una sgaffa. se invece hai poche etichetta da stampare e ti rimangono sempre tanti fogli semi usati allora si può considerare di creare un "carrello etichette" con controllo sul numero di etichette da stampare
    Ultima modifica di Vincent.Zeno; 14-03-2019 a 12:57

  3. #3
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    431
    si e' quello il caso, il problema e' che abbiamo cambiato stampante ma se il foglio e' piu piccolo dell'A4 (noi prima lo tagliavamo per poter stampare sulle etichette rimanenti) lo rifiuta e bisogna inserire tutte le volte la dimensione, il tecnico dice che non e' possibile bypassare il controllo sulla dimensione quindi mi rimane solo lo spostamento delle etichette come soluzione
    Da un grande potere derivano grandi responsabilità

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    ho editato il post, rileggi se vuoi valutare la soluzione del "carrello"

  5. #5
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    431
    Si e' proprio quello il caso, spesso stampo solamente una etichetta, quindi dopo aver girato il foglio dai due lati devo per forza tagliarlo.
    Avevo anche pensato di mettere tutto in un array e poi usare quello come origine del ciclo while, potrebbe essere valida come idea?
    Da un grande potere derivano grandi responsabilità

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    per le stampe parziali farei così:
    dato il numero etichette per foglio (16)
    imposto la casella di partenza disponibile sul foglio (e quindi non devo stamparne più di 16 comprese le caselle vuote)
    nel ciclo di stampa imposto il numero di caselle vuote e poi proseguo con le piene (quelle estratte dal db)

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    devi fare attenzione al tipo di carta. la mia, una volta iniziata, tende a incepparsi
    Ultima modifica di Vincent.Zeno; 14-03-2019 a 13:35

  8. #8
    se volete ragionare sul recordset, optate per un recordset disconnesso e aggiungete record in testa dopo l'estrazione da db (oppure tutto connesso, ma aggiungete con una UNION farlocca)

  9. #9
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    431
    Con il recordset disconnesso devo fare un nuovo recordset ad esempio lo chiamo RSDiscon, e poi inserisco in quest'ultimo il recordset delle etichette?
    Da un grande potere derivano grandi responsabilità

  10. #10
    lo disconnetti e lo lavori. vedi qui http://www.devguru.com/content/featu...DisconnRS.html (ma ci sono tanti esempi in rete)

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.