ciclo di qua ciclo di la

grottafelix

Utente Attivo
5 Mar 2003
2.410
2
38
46
Parco chiuso -
www.girsms.com
Codice:
<%
sSQL="SELECT * FROM Amministrazione WHERE 
Incarico= '" & Request.QueryString("nome") & "'"
objRS.Open sSQL, objConn, 3, 3
%>

Leggo nella tabella.

Scrivo il campo:

Codice:
<%=objRS("Incarico")%>:

Apro i record:

Codice:
<%Do while not objRS.Eof
  ID=objRS("ID")
  Nome=objRS("Nome")
  Delega=objRS("Delega")
%>

Scrivo i campi se non sono vuoti:

Codice:
<%
   If objRS.Fields("Nome")<>"" Then 
%>

<%=objRs("Nome")%>

<%
end if
%>

<%
   If objRS.Fields("Delega")<>"" Then 
   Response.Write ("Delega: ")
%>

<%=objRs("Delega")%><br />

<%
end if
%>

<%
objRS.movenext
Loop
%>
<%
objRS.Close
%>

E fin qui tutto bene.
Ora ho un problemone...

vedete dove leggo il campo "Incarico"?
Bene.
Dovrei aggiungerci un code tipo:

Codice:
<%
   If objRS.Fields("Commissione")<>"" Then 
%>

<%=objRs("Commissione")%>
<%
end if
%>

per il campo "Commissione".

e anche qui tutto bene.
il problemone è che se lo metto prima del ciclo giustamente me lo esporta solo una volta (1) ...invece io vorrei che lo esportasse sempre...e voi mi dirte allo mettilo dopo il ciclo(2) , quindi cosi:

Codice:
<%Do while not objRS.Eof
  ID=objRS("ID")
  Nome=objRS("Nome")
  Delega=objRS("Delega")
  Commissione=obj.RS("Commissione")
%>

<%
   If objRS.Fields("Commissione")<>"" Then 
%>

<%=objRs("Commissione")%>
<%
end if
%>

e anche cosi funziona. Ma nn come dico io poichè verrebbe ripetuto in tutti i record.

io praticamente vorrei che "visivamente" sia estratto cosi:

Incarico:
Commissione Tizio
- Nome Delega
- Nome Delega
- Nome Delega

Commissione Caio
- Nome Delega
- Nome Delega
- Nome Delega

Commissione Sempronio
- Nome Delega
- Nome Delega
- Nome Delega




------------

nei casi che ho menzionato sopra invece me li estrae cosi:

(1)

Commissione Tizio
- Nome Delega
- Nome Delega
- Nome Delega

- Nome Delega
- Nome Delega
- Nome Delega

- Nome Delega
- Nome Delega
- Nome Delega


(2)

Incarico:
Commissione Tizio
- Nome Delega
Commissione Tizio
- Nome Delega
Commissione Tizio
- Nome Delega

Commissione Caio
- Nome Delega
Commissione Caio
- Nome Delega
Commissione Caio
- Nome Delega

Commissione Sempronio
- Nome Delega
Commissione Sempronio
- Nome Delega
Commissione Sempronio
- Nome Delega
 
Buongiornoooo
Allora se ho capito bene(...considerando l'orario...) vuoi che ti stampi la commissione solo una volta e gli altri campi sempre..
Avrei una mezza idea..

Potresti incrementare un contatore dentro il ciclo e poi dargli la condizione.. stampa solo quando il cont=1.

<%Do while not objRS.Eof

cont=cont+1

ID=objRS("ID")
Nome=objRS("Nome")
Delega=objRS("Delega")
Commissione=obj.RS("Commissione")
%>

<%
If objRS.Fields("Commissione")<>"" and cont=1 Then
%>

<%=objRs("Commissione")%>
<%
end if
%>

Fammi sapere se ho detto una cavolata..

ciauu :byebye:
 
grottafelix ha scritto:
io praticamente vorrei che "visivamente" sia estratto cosi:

Incarico:
Commissione Tizio
- Nome Delega
- Nome Delega
- Nome Delega

Commissione Caio
- Nome Delega
- Nome Delega
- Nome Delega

Commissione Sempronio
- Nome Delega
- Nome Delega
- Nome Delega
In questo caso Felix devi ricorrere al GROUP BY di SQL, lo conosci?

:byebye:
 
grottafelix ha scritto:
non ho proprio idea di cosa sia :evil:
Ah, sta gioventù.... :rolleyes:

Ti spiego: ;)
il GROUP BY serve raggruppare i dati estrapolati nel recordset in base ad un campo specifico.

nel tuo caso, dovrai fare un cosa del tipo
SQL="SELECT * FROM nome_tabella WHERE Incarico='" & var_incarico & "' GROUP BY Incarico,Commissione;"

Il risultato sarà:
Incarico1|Commissione Tizio|Nome Delega Tizio 1
Incarico1|Commissione Tizio|Nome Delega Tizio 2
Incarico1|Commissione Tizio|Nome Delega Tizio 3

Incarico1|Commissione Caio|Nome Delega Caio 1
Incarico1|Commissione Caio|Nome Delega Caio 2
Incarico1|Commissione Caio|Nome Delega Caio 3

Incarico1|Commissione Sempronio|Nome Delega Sempronio 1
Incarico1|Commissione Sempronio|Nome Delega Sempronio 2
Incarico1|Commissione Sempronio|Nome Delega Sempronio 3


A questo punto, per farlo apparire a video così:
Incarico:

Commissione Tizio
- Nome Delega
- Nome Delega
- Nome Delega

Commissione Caio
- Nome Delega
- Nome Delega
- Nome Delega

Commissione Sempronio
- Nome Delega
- Nome Delega
- Nome Delega

potresti fare:
<%
...
i=0
var_appoggio=""
do while not rs.EOF
i=i+1
if i=1 then response.write(rs("Incarico:")
if var_appoggio<>rs("Commissione") then
var_appoggio=rs("Commissione")
response.write("<br><br>" & rs("Commissione"))
end if
response.write("<br>- " & rs("Delega"))
rs.MoveNext
loop
...
%>


_La variabile i serve a far stampare a video il nome dell'incarico solo una volta;
_La variabile var_appoggio prenderà il nome della Commissione. Ad ogni ciclo essa viene confrontata con il nuovo rs("Commissione"), e verrà stampata solo quando sarà diversa da quest'ultimo.

Tieni conto che non l'ho provato, è solo un'idea di come buttar giù il programma :)
Buon Lavoro!
:byebye:
 

Discussioni simili