• Super User

    In quel caso, come ti avevo detto, potresti controllare se la tabella è vuota e in caso non la fai vedere.


  • User

    questo l'ho capito, ma volevo un aiutino proprio su come strutturare la query...ti posso postare il codice?


  • User

    cali mi puoi dare un aiutino? te ne sarei davvero grato


  • Super User

    Premetto che non sono esperto di asp ma dovresti controllare che è vuoto con

    if rs.bof and rs.eof then ..non visualizzi niente... else ...visualizzi la tabella e la riempi...


  • User

    questa è una delle tabelle:

    <TD
    style="BORDER-RIGHT: #1e3f75 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top align=middle width=34 height=29>
    <P class=MsoNormal>
    <font size="1"> <%Response.Write(quantita)%></font></P></TD>
    <TD
    style="BORDER-RIGHT: 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top align=middle width=64 height=29>
    <P class=MsoNormal><font size="1"> <%Response.Write(codice)%></font></P></TD>
    <TD
    style="BORDER-RIGHT: 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top align=middle width=221 height=29>
    <P class=MsoNormal>
    <font size="1"> <%Response.Write(descrizione)%></font></P>
    </TD>
    <TD
    style="BORDER-RIGHT: 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top align=middle width=221 height=29>
    <P class=MsoNormal>
    <font size="1"> <%Response.Write(difetto)%></font></P>
    </TD>
    <TD
    style="BORDER-RIGHT: 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top align=middle width=36 height=29>
    <P class=MsoNormal>
    <SPAN style="COLOR:">
    <font size="1">
    <INPUT size=4
    name=qtval></font></SPAN></P></TD>
    <TD
    style="BORDER-RIGHT: 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top width=338 height=29>

    <font size="1">

    <script type="text/javascript" language="JavaScript">

    function alertselected(obj){
    selectedOption = obj.options[obj.selectedIndex];
    if(selectedOption.getAttribute('tipo_di_check') == "rm");
    {
    document.getElementById("rm").checked=true;
    document.getElementById("sm").checked=false;
    }
    if(selectedOption.getAttribute('tipo_di_check') == "sm");
    {
    document.getElementById("sm").checked=true;
    document.getElementById("rm").checked=false;
    }

    }

    </script>

    <script type="text/javascript" language="JavaScript">
    function alertselected(obj){
    selectedValue = obj.options[obj.selectedIndex].value;
    if(selectedValue == 1)
    {
    document.getElementById("rm").checked=true;
    document.getElementById("sm").checked=false;
    }
    else
    {
    document.getElementById("sm").checked=true;
    document.getElementById("rm").checked=false;
    }
    }
    </script>

    <form name="form">
    <select name="select" onChange="alertselected(this)" size="1">
    <option value="0">Seleziona</option>
    <option value="1">toner residuo gr30 funzionante</option>
    <option value="1">drum lesionato da manomissione</option>
    <option value="1">separatore toner intatto</option>
    <option value="1">toner esauriti senza toner nel contenitore</option>
    <option value="1">cartuccia mai rigenerata</option>
    <option value="1">carcasse rotte</option>
    <option value="1">è stato tolto il separatore di toner ma stampano bene</option>
    <option value="2">difettose doctor blade</option>
    <option value="1">funzionante</option>
    <option value="2">difettosa per drum</option>
    <option value="2">difettose per drum ingranaggi non funzionanti</option>
    <option value="1">funzionanti</option>
    <option value="1">carcassa spaccata in due</option>
    <option value="1">drum lesionato da urto</option>
    <option value="2">perdita di toner</option>
    <option value="1">lama di pulizia difettosa</option>
    <option value="1">cartuccia non ricondizionata da sea</option>
    <option value="1">sportello laterale rotto</option>
    <option value="2">mag roller difettoso</option>
    <option value="2">chip difettoso</option>
    <option value="2">difettosità di stampa lato sinistro</option>
    <option value="1">manica cartuccia rotto</option>
    <option value="2">ingranaggio drum scollato</option>
    <option value="2">perdita di toner</option>
    <option value="1">contatti elettrici non funzionanti</option>
    <option value="1">sportello drum rotto</option>
    <option value="1">non accertabile difettosità</option>
    <option value="1">prodotto non sea</option>
    <option value="2">difettosità per testina asciutta</option>
    <option value="1">prodotto non sea scarica</option>
    <option value="1">cartuccia vuota</option>
    <option value="1">sigillo di protezione non tolto</option>
    <option value="1">cartuccia non sea originale</option>
    <option value="1">cartuccia non sea integra</option>

    </select>
    <font color="#FF9900"><b> RM</b></font><input type="checkbox" id="rm" name="RM" value="1">
    <b><font color="#008080">SM</font></b><input type="checkbox" id="sm" name="SM" value="1">

        <b><font color="#800000">NC</font></b>
    
    
    <b><font size="3" face="Verdana"> 
    

    <SPAN style="COLOR:"><font size="1">
    <INPUT size=4 name=nc30></font></SPAN></font></b></font></TD>

    prima dei response devo inserire la query?


  • Super User

    Cosa intendi con query?


  • User

    E se provassi a non estrarre i record dalla query direttamente con opportune istruzioni SQL ????
    tipo:

    Select * from tabella WHERE qt > 0;
    Questo pensando che tu abbia solo un campo senza valore, altrimenti, se hai nel DB più campi senza valori, impostali tu, mi spiego meglio:

    Select IF(qt = 0; 0; quantità) AS QUANT, ....FROM tabella;
    Questo puoi farlo per qualsiasi campo, che pensi sia vuoto, così avrai almeno un valore che imposti tu !!!

    Ovviamente se i record vuoti sono in più campi, e su più tabelle, allora credo ti convenga fare delle tabelle dinamiche, ricorda con le giuste istruzioni SQL puoi estrarre quello che vuoi.

    Ciao
    Asorbanseo:figo2:


  • User

    scusami, parlavo delle condizioni...degli if

    if rs.bof and rs.eof then ..non visualizzi niente... else ...visualizzi la tabella e la riempi...


  • User

    Si avevo compreso....ma se il problema sono valori NULLI nei record, evita proprio di estrarli... secondo me potrebbe essere la via più semplice, cmq...rileggo il tuo codice e vedo se mi viene una soluzione per gli IF.

    Ciao


  • Super User

    Si questo lo dovresti mettere prima della tabella, quindi se il resultset è vuoto non vai vedere per niente la tabella, quindi lo metti prima di <table>.... Occhio a non lasciare tag di apertura o chiusura non allineati.


  • User

    no, non sono valori nulli ma semplicemente i record che estraggo dal database...ossia dall'inserimento del form dell'utente.
    il problema è che restano tutte le altre tabelle vuote...non essendo dinamiche

    mi spiego meglio

    form che compila l'utente
    qt=1
    codice=f001blc900b
    descrizione=cartuccia brother...
    difetto=stampa a righe

    ho creato tante tabelle per lasciare la possibilita' all'utente di avere piu' campi possibili...il problema non risiede nel database..ma nell'output video della pagina...in visualizzazione...ho problemi poi a stampare..per la moltitudine di tabelle vuote che restano.


  • User

    Credo che potresti fare come ti hanno detto in precedenza:

    <%
    IF Rs(quantita) ISNULL THEN
    %>
    <TD
    style="BORDER-RIGHT: #1e3f75 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top align=middle width=34 height=29>
    <P class=MsoNormal>
    <font size="1"> <%Response.Write(quantita)%></font></P></TD>
    <%
    END IF
    %>
    <%
    IF Rs(CODICE) ISNULL THEN
    %>
    <TD
    style="BORDER-RIGHT: 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top align=middle width=64 height=29>
    <P class=MsoNormal><font size="1"> <%Response.Write(codice)%></font></P></TD>
    <%
    END IF
    %>
    ...

    e così via....fai una prova....non ne sono molto sicuro !!!

    Ciao


  • User

    mi da questo errore:

    Microsoft VBScript compilation error '800a03f9'
    Expected 'Then'
    /reportdb.asp, line 494
    IF Rs(quantita) ISNULL THEN

    forse sarebbe meglio la proprietà true o false?

    sono proprio ingrippato ragazzi...ho realizzato cose molto piu difficili ma ora mi sono arenato.


  • Super User

    Perchè non provi con if rs.bof and rs.eof then?


  • User

    posto di nuovo il codice:

    <%
    IF Rs(quantita) IS NULL THEN
    %>
    <TD
    style="BORDER-RIGHT: #1e3f75 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top align=middle width=34 height=29>
    <P class=MsoNormal>
    <font size="1"> <%Response.Write(quantita)%></font></P></TD>

    <%
    END IF
    %>
    <%
    IF Rs(CODICE) IS NULL THEN
    %>
    <TD
    style="BORDER-RIGHT: 0.75pt inset; PADDING-RIGHT: 1.5pt; BORDER-TOP: 0.75pt inset; PADDING-LEFT: 1.5pt; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: 0.75pt inset; PADDING-TOP: 1.5pt; BORDER-BOTTOM: 0.75pt inset"
    vAlign=top align=middle width=64 height=29>
    <P class=MsoNormal><font size="1"> <%Response.Write(codice)%></font></P></TD>
    <TD

    pero' in questo modo non trova la corrispondenza dei campi nel database:

    ADODB.Recordset error '800a0cc1'
    Item cannot be found in the collection corresponding to the requested name or ordinal.
    /reportdb.asp, line 506


  • Super User

    Scusa ma Rs(quantita) che vuol dire? Non puoi copiare direttamente il codice così come te lo ha dato lui, riguardalo no? Dal codice che vedo nella pagina precedente, dovrebbe essere qualcosa del tipo Rs("quantita1") ecc...


  • User

    asorbanseo anche estraendo i dati con delle query specifiche come mi suggerivi tu...resta sempre il problema che quando carica la pagina mi visualizza comunque il resto delle tabelle vuote (perchè sono statiche) le ho inserite io.
    io vorrei che non si visualizzassero...ovvero:se la tabella è vuota..cioè senza alcun valore o record allora non stampare ( tipo true o false)


  • User

    cali il campo "quantita" sono i relativi record dei campi del form che ho creato:

    qt, codice, descrizione, difetto,
    qt2, codice2, descrizione2, difetto2 etc....fino a circa 30 campi


  • User

    asorbanseo forse mi sono spiegato male:

    ma non esistono record vuoti nel database..il database è ok..raccoglie tutti i dati provenienti dal form..fin qui va tutto bene.
    il problema nasce quando faccio stampare tutto a video in un'altra pagina asp

    escono le tabelle popolate dai record....tutto ok
    escono tutte le altre tabelle ovviamente vuote...essendo statiche


  • User

    aiutttttttttttttttttttttttttttttt