Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guilherme Teixeira

s ao gerar mais que duas colunas

Recommended Posts

Olá amigos,

 

tenho esse script que funciona perfeitamente para dividir uma SQL em duas colunas. Porém agora gostaria de adaptá-lo para se dividir em tres ou mais colunas então mudei o seguinte:

 

nLinhas = int(nEmpresas/2) + 1 mudei para => nLinhas = int(nEmpresas/3) + 1 por que gostaria de dividir em três colunas no caso

 

e em:


response.write "<td>"& empresas(i) & "</td>"

if ( i+nLinhas <= nEmpresas ) then

response.write "<td>"& empresas(i+nLinhas) & "</td>"
else
response.write "<td>  </td>"
end if

response.write "<tr>"
next

end if

**** alterei para ****


response.write "<td>"& empresas(i) & "</td>"

if ( i+nLinhas <= nEmpresas and i+nLinhas <> i+2*nLinhas  ) then

response.write "<td>"& empresas(i+nLinhas) & "</td>"
else if ( i+2*nLinhas <= nEmpresas and i+2*nLinhas <> i+nLinhas ) then

response.write "<td>"& empresas(i+2*nLinhas) & "</td>"

response.write "<td>  </td>"
end if

response.write "<tr>"
next

end if

*******

 

daí ele dá um erro onde está localizado o NEXT do código abaixo:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="includes/connect.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style5 {	font-size: 11px
}
-->
</style>
</head>

<body><%
Dim objConn, rs

recuperaDados()

listaDados()

encerraConexao()

Sub recuperaDados()
<!--#include virtual="includes/connect.asp"-->

'cria o recordset para executar uma consulta e retornar com os dados obtidos
Set rs= Server.CreateObject("ADODB.Recordset")


'texto do comando sql a ser executado
sql = "SELECT * FROM Empresa"

' executa a consulta
rs.Open sql, Conn, 3, 3
End Sub

Sub listaDados()
%>
<table>
<%
'testa se foi ao final do arquivo sem encontrar nada e para
if ( rs.eof ) then
%>

<tr>
<td>
Não existem registros, encerrando!
</td>
</tr>

<%
else
' existem registros logo vamos listá-los
' carrega um vetor com nome das empresas
Dim empresas(1000), nEmpresas
nEmpresas=1
do while not rs.eof
empresas(nEmpresas) = Ucase(trim(rs("Titulo")))
nEmpresas = nEmpresas + 1
rs.movenext
loop

nEmpresas = nEmpresas - 1

' imprime os resultados em 2 colunas

nLinhas = int(nEmpresas/2) + 1

for i= 1 to nLinhas

response.write "<tr>"
response.write "<td>"& empresas(i) & "</td>"

if ( i+nLinhas <= nEmpresas ) then

response.write "<td>"& empresas(i+nLinhas) & "</td>"
else
response.write "<td>  </td>"
end if

response.write "<tr>"
next

end if
%>
</table>
<%
End Sub

Sub encerraConexao()
'importante .. fechar conexao e destruir objetos
set rs= nothing
Conn.close
set Conn = nothing
End Sub

%>
</body>
</html>

 

Alguem poderia me sugerir algo???

 

desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Esse código para mim funciona muito bem e é super simples, testa ai...

 

Aqui você muda o número de colunas : If Coluna >=3 Then

 

<%
Query_produtos = "SELECT * from tabela"
Set RS_Produto = CreateObject("ADODB.Recordset")
Set RS_Produto.ActiveConnection = Conexao
RS_Produto.CursorLocation = 3
RS_Produto.CursorType = 0
RS_Produto.LockType =  1
%>

<table cellspacing="0" cellpadding="0" width="17%" border="0" cellpadding="0" cellspacing="10" align="center" valign="top">
 <tr>
<%
	'Zera os contadores	
	Coluna = 0	
	Contador = 0
	'Loop para exibição dos produtos
	Do Until RS_Produto.EOF
%>
			<td valign="top" align="center">
				<table border="0" cellspacing="5" cellpadding="5" height="192" width="188">
					<tr>
						<td align=center height="32">
								 </td>
					</tr>
					<tr>
						<td align=center>
								 </td>
					</tr>
					<tr>
						<td align=center>
	 								 </td>
					</tr>
					<tr>
						<td height=18></td>
					</tr>
				</table>
			</td>
<%
		'Define o numero de Produtos por linha
		Coluna=Coluna+1
		If Coluna >=3 Then
			Coluna=0
%>
		</tr>
		<tr> 
<%		  'Atualiza o contador
			Contador = Contador + 1
			RS_Produto.MoveNext	
		Else
			'Atualiza o contador
			Contador = Contador + 1
			RS_Produto.MoveNext	
		End If
	Loop 

End If
%>
		</tr>
	</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for apenas para alterar a quantidade de colunas, tenta isto:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="includes/connect.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style5 { font-size: 11px
}
-->
</style>
</head>

<body><%
Dim objConn, rs

recuperaDados()

listaDados()

encerraConexao()

Sub recuperaDados()
<!--#include virtual="includes/connect.asp"-->

'cria o recordset para executar uma consulta e retornar com os dados obtidos
Set rs= Server.CreateObject("ADODB.Recordset")


'texto do comando sql a ser executado
sql = "SELECT * FROM Empresa"

' executa a consulta
rs.Open sql, Conn, 3, 3
End Sub

Sub listaDados()
%>
<table>
<%
'testa se foi ao final do arquivo sem encontrar nada e para
if ( rs.eof ) then
%>

<tr>
<td>
Não existem registros, encerrando!
</td>
</tr>

<%
else

' existem registros logo vamos listá-los
do while not rs.eof
response.write "<tr>"
n = 0
do while n < 3 and not rs.eof 'Aqui você define o número de colunas desejado, neste ex, são 3
%>
<td><% =Ucase(trim(rs("Titulo"))) %></td>
<%
rs.movenext
n = n + 1
Loop
response.write "</tr>"
Loop

end if
%>
</table>
<%
End Sub

Sub encerraConexao()
'importante .. fechar conexao e destruir objetos
set rs= nothing
Conn.close
set Conn = nothing
End Sub

%>
</body>
</html>

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.