- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- tabelle dinamiche
-
tabelle dinamiche
ciao a tutti,
ho un form con queste tabelle, dove estraggo i dati dal db. Sul form ho circa 30 righe per permettere all'utente di inserire quanti articoli vuole.tabella a) qt
tabella b) codice
tabella c) discrezione
tabella d) difetto
tabella e) casella combinata
il problema è che quando poi visualizzo sulla pagina asp tutti i record...mi capita che alla fine dei record estratti, ho sempre delle tabelle vuote senza record (ovviamente)...come potrei fare a non mostrare le tabelle non vuote..(visto che le tabelle non sono dinamiche ma statiche e quindi solo il contenuto è dinamico)...secondo voi ho sbagliato nell'aver creato tabelle statiche? dovrei crearle dinamicamente? Dovrei controllare la variabile..qualcosa del tipo:<%if strVariabile &"[]" <> "[]" then Response.Write(strVariabile) end if%>
posto il codice della pagina:
Dim conn
set conn=Server.CreateObject("adodb.connection")
conn.open"Driver={Microsoft Access Driver (*.mdb)}; dbq=" & server.MapPath("/db/db.mdb")Dim rs
set rs=Server.CreateObject("adodb.recordset")
rs.open "select datarichiesta,ragionesociale,indirizzo,colli,email,vettore,corriere,corriere2,fatture,commenti,partitaiva,telefono,fax,descrizione,descrizione2,descrizione3,descrizione4,descrizione5,descrizione6,descrizione7,descrizione8,descrizione9,descrizione10,descrizione11,descrizione12,descrizione13,descrizione14,descrizione15,descrizione16,descrizione17,descrizione18,descrizione19,descrizione20,quantita,quantita2,quantita3,quantita4,quantita5,quantita6,quantita7,quantita8,quantita9,quantita10,quantita11,quantita12,quantita13,quantita14,quantita15,quantita16,quantita17,quantita18,quantita19,quantita20,codice,codice2,codice3,codice4,codice5,codice6,codice7,codice8,codice9,codice10,codice11,codice12,codice13,codice14,codice15,codice16,codice17,codice18,codice19,codice20,difetto,difetto2,difetto3,difetto4,difetto5,difetto6,difetto7,difetto8,difetto9,difetto10,difetto11,difetto12,difetto13,difetto14,difetto15,difetto16,difetto17,difetto18,difetto19,difetto20,consuno,consdue from rma",connDo while NOT RS.EOF
Dim id,datarichiesta,ragionesociale,indirizzo,colli,email,vettore,corriere,corriere2,fatture,commenti,partitaiva,telefono,fax,descrizione,descrizione2,descrizione3,descrizione4,descrizione5,descrizione6,descrizione7,descrizione8,descrizione9,descrizione10,descrizione11,descrizione12,descrizione13,descrizione14,descrizione15,descrizione16,descrizione17,descrizione18,descrizione19,descrizione20,quantita,quantita2,quantita3,quantita4,quantita5,quantita6,quantita7,quantita8,quantita9,quantita10,quantita11,quantita12,quantita13,quantita14,quantita15,quantita16,quantita17,quantita18,quantita19,quantita20,codice,codice2,codice3,codice4,codice5,codice6,codice7,codice8,codice9,codice10,codice11,codice12,codice13,codice14,codice15,codice16,codice17,codice18,codice19,codice20,difetto,difetto2,difetto3,difetto4,difetto5,difetto6,difetto7,difetto8,difetto9,difetto10,difetto11,difetto12,difetto13,difetto14,difetto15,difetto16,difetto17,difetto18,difetto19,difetto20,consuno,consdue
datarichiesta=rs("datarichiesta")
ragionesociale=rs("ragionesociale")
indirizzo=rs("indirizzo")
telefono=rs("telefono")
fax=rs("fax")
email=rs("email")
fatture=rs("fatture")
partitaiva=rs("partitaiva")
colli=rs("colli")
vettore=rs("vettore")
corriere=rs("corriere")
corriere2=rs("corriere2")
commenti=rs("commenti")
quantita=rs("quantita")
quantita2=rs("quantita2")
quantita3=rs("quantita3")
quantita4=rs("quantita4")
quantita5=rs("quantita5")
quantita6=rs("quantita6")
quantita7=rs("quantita7")
quantita8=rs("quantita8")
quantita9=rs("quantita9")
quantita10=rs("quantita10")
quantita11=rs("quantita11")
quantita12=rs("quantita12")
quantita13=rs("quantita13")
quantita14=rs("quantita14")
quantita15=rs("quantita15")
quantita16=rs("quantita16")
quantita17=rs("quantita17")
quantita18=rs("quantita18")
quantita19=rs("quantita19")
quantita20=rs("quantita20")
codice=rs("codice")
codice2=rs("codice2")
codice3=rs("codice3")
codice4=rs("codice4")
codice5=rs("codice5")
codice6=rs("codice6")
codice7=rs("codice7")
codice8=rs("codice8")
codice9=rs("codice9")
codice10=rs("codice10")
codice11=rs("codice11")
codice12=rs("codice12")
codice13=rs("codice13")
codice14=rs("codice14")
codice15=rs("codice15")
codice16=rs("codice16")
codice17=rs("codice17")
codice18=rs("codice18")
codice19=rs("codice19")
codice20=rs("codice20")
descrizione=rs("descrizione")
descrizione2=rs("descrizione2")
descrizione3=rs("descrizione3")
descrizione4=rs("descrizione4")
descrizione5=rs("descrizione5")
descrizione6=rs("descrizione6")
descrizione7=rs("descrizione7")
descrizione8=rs("descrizione8")
descrizione9=rs("descrizione9")
descrizione10=rs("descrizione10")
descrizione11=rs("descrizione11")
descrizione12=rs("descrizione12")
descrizione13=rs("descrizione13")
descrizione14=rs("descrizione14")
descrizione15=rs("descrizione15")
descrizione16=rs("descrizione16")
descrizione17=rs("descrizione17")
descrizione18=rs("descrizione18")
descrizione19=rs("descrizione19")
descrizione20=rs("descrizione20")
difetto=rs("difetto")
difetto2=rs("difetto2")
difetto3=rs("difetto3")
difetto4=rs("difetto4")
difetto5=rs("difetto5")
difetto6=rs("difetto6")
difetto7=rs("difetto7")
difetto8=rs("difetto8")
difetto9=rs("difetto9")
difetto10=rs("difetto10")
difetto11=rs("difetto11")
difetto12=rs("difetto12")
difetto13=rs("difetto13")
difetto14=rs("difetto14")
difetto15=rs("difetto15")
difetto16=rs("difetto16")
difetto17=rs("difetto17")
difetto18=rs("difetto18")
difetto19=rs("difetto19")
difetto20=rs("difetto20")
consuno=rs("consuno")
consdue=rs("consdue")tabelle**
queste sono alcune delle tabelle:
<td style="padding-left: 4px; padding-right: 4px" bordercolor="#C0C0C0"><b>
<font color="#FF0000" size="2" face="Verdana">Rag.Soc</font><font color="#0066FF" size="2" face="Verdana">: <%response.write(quantita)%></font></td><td style="padding-left: 4px; padding-right: 4px" bordercolor="#C0C0C0"><b>
<font color="#FF0000" size="2" face="Verdana">Rag.Soc</font><font color="#0066FF" size="2" face="Verdana">: <%response.write(descrizione)%></font></td><td style="padding-left: 4px; padding-right: 4px" bordercolor="#C0C0C0"><b>
<font color="#FF0000" size="2" face="Verdana">Rag.Soc</font><font color="#0066FF" size="2" face="Verdana">: <%response.write(codice)%></font></td><td style="padding-left: 4px; padding-right: 4px" bordercolor="#C0C0C0"><b>
<font color="#FF0000" size="2" face="Verdana">Rag.Soc</font><font color="#0066FF" size="2" face="Verdana">: <%response.write(difetto)%</font></td>
<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=36 height=29>
<P class=MsoNormal>
<SPAN style="COLOR:">
<font size="1">
<INPUT size=4
name=qt22></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=362 height=29><font size="1">
<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 funzionantenante</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>
<%
RS.MoveNext
Loop
rs.close
conn.close
set rs=nothing
set conn=nothing%>
-
Non ho capito bene il problema francamente..
Non è che puoi cercare di spiegarlo un pochino meglio?
-
allora holin...mi spiego meglio:
ho creato un form con delle tabelle, quando estrapolo i dati dal DB,le tabelle vengono ovviamente popolate. Il problema nasce dal fatto che non essendo dinamiche le tabelle...nel form mi restano tante righe (tabelle) vuote, per cui diventa molto lunga la pagina...soprattutto in caso di stampa.
dovrei fare in modo che le tabelle vuote non venissero visualizzate...forse dovrei renderle dinamiche le tabelle e non statiche? vorrei un piccolo aiutino perchè mi sono impallato!!!
se vuoi vederlo on line
www.ettorino.it/rma.asp
-
Ciao ettorpa e benvenuto nel Forum GT!
Penso che potresti controllare prima i campi, se è vuoto non visualizzi nemmeno la tabella, altrimenti vai vedere la tabella e poi in caso stampi con <%response.write(quantita)%>
-
grazie del benvenuto CALI...in effetti volevo un aiutino sulla query
-
Cioè il problema è la query o le tabelle vuote?
-
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?
-
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.