- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- tabelle dinamiche
-
Dipende da cosa devono visualizzare le tabelle, potrebbero essere necessarie tute e 20 oppure potrebbe bastarne una, dovreste descrive meglio il problema.
-
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
-
In quel caso, come ti avevo detto, potresti controllare se la tabella è vuota e in caso non la fai vedere.
-
questo l'ho capito, ma volevo un aiutino proprio su come strutturare la query...ti posso postare il codice?
-
cali mi puoi dare un aiutino? te ne sarei davvero grato
-
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...
-
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?
-
Cosa intendi con query?
-
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
-
scusami, parlavo delle condizioni...degli if
if rs.bof and rs.eof then ..non visualizzi niente... else ...visualizzi la tabella e la riempi...
-
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
-
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.
-
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 dinamichemi spiego meglio
form che compila l'utente
qt=1
codice=f001blc900b
descrizione=cartuccia brother...
difetto=stampa a righeho 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.
-
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
-
mi da questo errore:
Microsoft VBScript compilation error '800a03f9'
Expected 'Then'
/reportdb.asp, line 494
IF Rs(quantita) ISNULL THENforse sarebbe meglio la proprietà true o false?
sono proprio ingrippato ragazzi...ho realizzato cose molto piu difficili ma ora mi sono arenato.
-
Perchè non provi con if rs.bof and rs.eof then?
-
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>
<TDpero' 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
-
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...
-
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)
-
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