• User

    grazie del benvenuto CALI...in effetti volevo un aiutino sulla query


  • Super User

    Cioè il problema è la query o le tabelle vuote?


  • User

    tutte e due..vorrei che mi consigliassi cosa fare....nel form ho aggiunto una 20 di tabelle...secondo te dovrei cancellarle e lasciarne solo una? rendendo tutto dinamico o no?


  • Super User

    Dipende da cosa devono visualizzare le tabelle, potrebbero essere necessarie tute e 20 oppure potrebbe bastarne una, dovreste descrive meglio il problema.


  • User

    INFATTi è proprio questo il problema..le tabelle devono mostrare solo i record interessati..cioè quelli prelevati dal database..le altre tabelle vuote e statiche non devono essere mostrate


  • 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