Usuário com melhor resposta
Inserir quebra de linha numa exibição

Pergunta
-
Eu montei uma tabela que puxa informaçoes do banco de dados
Mas na hora de exibir as informações ela não quebra linha e exibe uma linha só com 150 caracteres.
Tem algum jeito especificar uma certa quantidade de caarcteres para depois disso pular a linha?
Obs. Quebrar a linha em algum espaço em branco para não cortar nenhuma palavra.
Obrigado xD
Respostas
-
Po ta dificil hehe =(
Tenta com o código abaixo:
<%
session("numos")=request("os")
SQL= ("SELECT sac.* from sac where sac.nros ="&request("os")&"")
Set rsOficinasOS = Conn.execute (sql)if not rsOficinasOS.EOF then
Dim numCarac
Dim numLinhas
Dim aux
Dim caracInicio
aux = 0
caracIniciio = 1
numCarac = 50
while not rsOficinasOS.eof
if (len(rsOficinasOs("obs")) > numCarac) then
numLinhas = len(rsOficinasOS("obs")) / numCarac
if (Cint(numLinhas) < 1) then
numLinhas = 0
else
numLinhas = Cint(numLinhas)
end ifend if
txtRelatorioOS = txtRelatorioOS & "<tr style=""background-color:"&bgColor&""">"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("data")&"</font></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("hora")&"</font>></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"if (len(rsOficinasOS("obs")) > numCarac) then
While aux <= numLinhas
txtRelatorioOS = txtRelatorioOS & Mid(rsOficinasOS("obs"),caracInicio,numCarac)&
if (aux < numLinhas) then
txtRelatorioOs = txtRelatorioOS & "<br />"
else
txtRelatorioOS = txtRelatorioOS & "</font></td>"
end if
caracInicio = CInt(caracInicio) + CInt(numCarac)
aux = aux + 1
Wend
aux = 0
caracInicio = 1else
txtRelatorioOS = txtRelatorioOS & rsOficinasOS("obs") & "</font></td>"
end if
txtRelatorioOS = txtRelatorioOS & "<td><a href=""novocoment.asp?os="&rsOficinasOS("nros")&"""><font size=1>NOVO</a></font></td>"
txtRelatorioOS = txtRelatorioOS & "</tr>"
rsOficinasOS.movenext
Wend
end if
%>Segue abaixo um exemplo que eu fiz, se quiser testar.
<%
Dim MyArray(5)
MyArray(1) = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
MyArray(2) = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
MyArray(3) = "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
MyArray(4) = "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
MyArray(5) = "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"Dim numCarac
Dim numLinhas
Dim aux
Dim caracInicio
Dim contador
aux = 0
contador = 1
caracInicio = 1
numCarac = 25
Response.Write("<table border='2'>")
While contador <= 5
numLinhas = len(MyArray(contador)) / numCarac
if (Cint(numLinhas) < 1) then
numLinhas = 0
else
numLinhas = Cint(numLinhas)
end ifResponse.Write("<tr><td><font size=2>")
While aux <= numLinhasResponse.Write(Mid(MyArray(contador),caracInicio,numCarac))
if (aux < numLinhas) then
Response.write("<br />")
else
Response.Write("</td>")
end if
caracInicio = Cint(caracInicio) + CInt(numCarac)
aux = aux + 1
Wend
aux = 0
caracInicio = 1
response.Write("</tr>")
contador = contador + 1
Wend
Response.Write("</table>")
%>Abraços
-
Tipo de erro:
Erro de compilação do Microsoft VBScript (0x800A03EA)
Erro de sintaxe
/sac.asp, line 48, column 80
txtRelatorioOS = txtRelatorioOS & Mid(rsOficinasOS("obs"),caracInicio,numCarac)&
-------------------------------------------------------------------------------^
Esse erro copiando do jeito que você postou.
Tipo de erro:
Erro de compilação do Microsoft VBScript (0x800A03EA)
Erro de sintaxe
/sac.asp, line 48, column 64
txtRelatorioOS = txtRelatorioOS & Mid(rsOficinasOS("obs"),1,50)&
---------------------------------------------------------------^
E esse quando eu altero por números.
O teste que você mandou da tabeinha ta pegando normal.
Bom agora arrumei quer dizer consegui usar ele precisa usar o contador, a linha do mid ficou assim:
txtRelatorioOS = txtRelatorioOS & (Mid(rsOficinasOS("obs"),1,75))
Coloquei ( antes do mid e fechei no final, tirei o & que tava no final bom ai ele já pegou mas sem o "contador ", ai coloquei 1,75 porque pra mim eu já tenho um número máximo de caracteres por comentário portanto tanto faz colocar o número ai funcionou, de qualquer forma em cima onde define número de linhas e número de carcteres não ta pegando mas ta marcado como resposta porque eu só ajustei pra poder usar.
Vlw pela ajuda.
Abraço.
Todas as Respostas
-
Flavio, pelo que entendi voce esta montando uma tabela no HTML com ASP e quer criar uma linha nova ao atingir um número de registros certos?
Bom se for isso creio que já respondi isso no fórum, de uma olhada pra ver se ajuda.
http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=3496764&SiteID=21
Abraços
Estevam
-
O meu ta assim:
while not rsOficinasOS.eof
txtRelatorioOS = txtRelatorioOS & "<tr style=""background-color:"&bgColor&""">"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("data")&"</font></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("hora")&"</font>></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("obs")&"</font></td>"
txtRelatorioOS = txtRelatorioOS & "<td><a href=""novocoment.asp?os="&rsOficinasOS("nros")&"""><font size=1>NOVO</a></font></td>"
txtRelatorioOS = txtRelatorioOS & "</tr>"
Ai eu criei uma tabela com titulos tal e embaixo aparece essas informçãoes, só que em obs que são comentários ele tinha que pular linha para não encher a tela e criar uma barra de rolgaem, eu queria colocar uma limitação de characters para ele pular linha automaticamente nessa tabela.
Entendeu ? xD -
Entendi tenta assim então, tentei criar algo mais dinâmico aonde você só altera a variável "numCarac" que é o total de caracteres que você quer na linha, não testei por isso faça uns testes ai para ver se da certo.
Code SnippetDim numCarac
Dim numLinhas
Dim aux
Dim caracInicio
aux = 0
caracIniciio = 1
numCarac = 50
numLinhas = len(rsOficinasOS("obs")) / numCarac
if (Cint(numLinhas) < 1) then
numLinhas = 0
else
numLinhas = Cint(numLinhas)
end if
while not rsOficinasOS.eof
txtRelatorioOS = txtRelatorioOS & "<tr style=""background-color:"&bgColor&""">"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("data")&"</font></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("hora")&"</font>></td>"While aux <= numLinhas
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"& left(rsOficinasOS("obs"),caracInicio,numCarac)&"</font></td>"if (numLinhas > 0) then
txtRelatorioOs = txtRelatorioOS & "<br />"
end if
caracInicio = caracInicio + numCarac
aux = aux + 1
Wend
txtRelatorioOS = txtRelatorioOS & "<td><a href=""novocoment.asp?os="&rsOficinasOS("nros")&"""><font size=1>NOVO</a></font></td>"
txtRelatorioOS = txtRelatorioOS & "</tr>"rsOficinasOS.movenext
Wend
Abraços
Estevam
-
Cara se eu abro uma tabela vazia da erro nessa linha:
numLinhas = len(rsOficinasOS("obs")) / numCarac
Se tiver informações ai da erro nessa no left se tirar o left da erro left(rsOficinasOS("obs"),caracInicio,numCarac).
session("numos")=request("os")
SQL= ("SELECT sac.* from sac where sac.nros ="&request("os")&"")
Set rsOficinasOS = Conn.execute (sql)
Dim numCarac
Dim numLinhas
Dim aux
Dim caracInicio
aux = 0
caracIniciio = 1
numCarac = 50
numLinhas = len(rsOficinasOS("obs")) / numCarac
if (Cint(numLinhas) < 1) then
numLinhas = 0
else
numLinhas = Cint(numLinhas)
end if
while not rsOficinasOS.eof
txtRelatorioOS = txtRelatorioOS & "<tr style=""background-color:"&bgColor&""">"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("data")&"</font></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("hora")&"</font>></td>"
While aux <= numLinhas
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"& left(rsOficinasOS("obs"),caracInicio,numCarac)&"</font></td>"
if (numLinhas > 0) then
txtRelatorioOs = txtRelatorioOS & "<br />"
end if
caracInicio = caracInicio + numCarac
aux = aux + 1
Wend
txtRelatorioOS = txtRelatorioOS & "<td><a href=""novocoment.asp?os="&rsOficinasOS("nros")&"""><font size=1>NOVO</a></font></td>"
txtRelatorioOS = txtRelatorioOS & "</tr>"
rsOficinasOS.movenext
Wend
'if not rsOficinasOS.EOF then
' while not rsOficinasOS.eof
'
' txtRelatorioOS = txtRelatorioOS & "<tr style=""background-color:"&bgColor&""">"
' txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("data")&"</font></td>"
' txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("hora")&"</font></td>"
' txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("obs")&"</font></td>"
' txtRelatorioOS = txtRelatorioOS & "<td><a href=""novocoment.asp?os="&rsOficinasOS("nros")&"""><font size=1>NOVO</a></font></td>"
' txtRelatorioOS = txtRelatorioOS & "</tr>"
'
' rsOficinasOS.movenext
' wend
' else
txtRelatorioOS = "<tr><td colspan=""5""><font color=""#ff0000"">Nenhum dado localizado para os parâmetros selecionados</font></td></tr>"
' end if
'Response.Write sac
%>
-
É realmente estava com erros, tente com o código abaixo:
Code Snippetsession("numos")=request("os")
SQL= ("SELECT sac.* from sac where sac.nros ="&request("os")&"")
Set rsOficinasOS = Conn.execute (sql)if not rsOficinasOS.EOF then
Dim numCarac
Dim numLinhas
Dim aux
Dim caracInicio
aux = 0
caracIniciio = 1
numCarac = 50
numLinhas = len(rsOficinasOS("obs")) / numCarac
if (Cint(numLinhas) < 1) then
numLinhas = 0
else
numLinhas = Cint(numLinhas)
end if
while not rsOficinasOS.eof
txtRelatorioOS = txtRelatorioOS & "<tr style=""background-color:"&bgColor&""">"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("data")&"</font></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("hora")&"</font>></td>"
While aux <= numLinhas
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"& Mid(rsOficinasOS("obs"),caracInicio,numCarac)&"</font></td>"
if (numLinhas > 0) then
txtRelatorioOs = txtRelatorioOS & "<br />"
end if
caracInicio = caracInicio + numCarac
aux = aux + 1
Wend
txtRelatorioOS = txtRelatorioOS & "<td><a href=""novocoment.asp?os="&rsOficinasOS("nros")&"""><font size=1>NOVO</a></font></td>"
txtRelatorioOS = txtRelatorioOS & "</tr>"
rsOficinasOS.movenext
Wend
end if
'Response.Write sac
%>Abraços
Estevam
-
Tipo no lugar do left lá você colocou mid, tipo ai deu erro também, ele não tá reconhecendo estranho
Tipo de erro:
Erro de tempo de execução do Microsoft VBScript (0x800A0005)
Chamada de procedimento ou argumento inválido: 'Mid'
/sac.asp, line 43 -
-
-
-
-
Flavio, antes do while tente colocar o if como abaixo:
if (Len(rsOficinasOS("obs")) > 0 ) Then
While aux <= numLinhas
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"& Mid(rsOficinasOS("obs"),caracInicio,numCarac)&"</font></td>"
if (numLinhas > 0) then
txtRelatorioOs = txtRelatorioOS & "<br />"
end if
caracInicio = caracInicio + numCarac
aux = aux + 1
WendEnd if
Abraços
Estevam
-
-
Flavio, muito estranho, isso só pode estar ocorrendo porque a função Mid esta recebendo algum parametro incorreto, mando o resultado do response.write abaixo.
if (Len(rsOficinasOS("obs")) > 0 ) Then
Response.Write("RS: " & rsOficinasOS("obs") & "<br />" )
Response.Write("Inicio: " & caracInicio & "<br />" )
Response.Write("NumCarac: " & numCarac & "<br />")
Response.End
While aux <= numLinhas
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"& Mid(rsOficinasOS("obs"),caracInicio,numCarac)&"</font></td>"
if (numLinhas > 0) then
txtRelatorioOs = txtRelatorioOS & "<br />"
end if
caracInicio = caracInicio + numCarac
aux = aux + 1
WendEnd if
Abraços
Estevam
-
-
-
Obs eu comentei as seguintes linhas pra página pode rodar e eu conseguir rodar:
' txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"& mid(rsOficinasOS("obs"),caracInicio,numCarac)&"</font></td>"
' txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"& Mid(rsOficinasOS("obs"),caracInicio,numCarac)&"</font></td>"
Ai copiei o seu wrute exatamente como você me passou mas deu erro na linha do primeiro write, dpeois mandei um write de cada vez sem aquela sua função, mas mesmo assim não deu nada só erro o0 =D -
Tipo colocando valores 1,20 deu certo só que quando abro a tabela o comentário não fica no lugar certo e o que tinha que ser depois dele volta um lugar na tabela ou seja a função não deve ta funcionado.
Vlw pelas ajudas você ta sempre quebrando galho aqui huahahau xD -
Flavio, realmente havia um erro na programação tente com o código abaixo e veja se da certo.
Code Snippet<%
session("numos")=request("os")
SQL= ("SELECT sac.* from sac where sac.nros ="&request("os")&"")
Set rsOficinasOS = Conn.execute (sql)if not rsOficinasOS.EOF then
Dim numCarac
Dim numLinhas
Dim aux
Dim caracInicio
aux = 0
caracIniciio = 1
numCarac = 50
while not rsOficinasOS.eof
numLinhas = len(rsOficinasOS("obs")) / numCarac
if (Cint(numLinhas) < 1) then
numLinhas = 0
else
numLinhas = Cint(numLinhas)
end if
txtRelatorioOS = txtRelatorioOS & "<tr style=""background-color:"&bgColor&""">"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("data")&"</font></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("hora")&"</font>></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"
While aux <= numLinhas
txtRelatorioOS = txtRelatorioOS & Mid(rsOficinasOS("obs"),caracInicio,numCarac)&
if (aux < numLinhas) then
txtRelatorioOs = txtRelatorioOS & "<br />"
else
txtRelatorioOS = txtRelatorioOS & "</font></td>"
end if
caracInicio = caracInicio + numCarac
aux = aux + 1
Wend
aux = 0
caracInicio = 1
txtRelatorioOS = txtRelatorioOS & "<td><a href=""novocoment.asp?os="&rsOficinasOS("nros")&"""><font size=1>NOVO</a></font></td>"
txtRelatorioOS = txtRelatorioOS & "</tr>"
rsOficinasOS.movenext
Wend
end if
%>Abraços
Estevam
-
Erro na linha do mid de novo
com você ta funcionando?
Desse seu novo jeito mesmo que eu coloque o número direto não vai, e no outro quando eu colocava o número direto fazia mo bagunça ficava comentário pulando linha mas ele ficava na outra coluna -
Po ta dificil hehe =(
Tenta com o código abaixo:
<%
session("numos")=request("os")
SQL= ("SELECT sac.* from sac where sac.nros ="&request("os")&"")
Set rsOficinasOS = Conn.execute (sql)if not rsOficinasOS.EOF then
Dim numCarac
Dim numLinhas
Dim aux
Dim caracInicio
aux = 0
caracIniciio = 1
numCarac = 50
while not rsOficinasOS.eof
if (len(rsOficinasOs("obs")) > numCarac) then
numLinhas = len(rsOficinasOS("obs")) / numCarac
if (Cint(numLinhas) < 1) then
numLinhas = 0
else
numLinhas = Cint(numLinhas)
end ifend if
txtRelatorioOS = txtRelatorioOS & "<tr style=""background-color:"&bgColor&""">"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("data")&"</font></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"&rsOficinasOS("hora")&"</font>></td>"
txtRelatorioOS = txtRelatorioOS & "<td><font size=2>"if (len(rsOficinasOS("obs")) > numCarac) then
While aux <= numLinhas
txtRelatorioOS = txtRelatorioOS & Mid(rsOficinasOS("obs"),caracInicio,numCarac)&
if (aux < numLinhas) then
txtRelatorioOs = txtRelatorioOS & "<br />"
else
txtRelatorioOS = txtRelatorioOS & "</font></td>"
end if
caracInicio = CInt(caracInicio) + CInt(numCarac)
aux = aux + 1
Wend
aux = 0
caracInicio = 1else
txtRelatorioOS = txtRelatorioOS & rsOficinasOS("obs") & "</font></td>"
end if
txtRelatorioOS = txtRelatorioOS & "<td><a href=""novocoment.asp?os="&rsOficinasOS("nros")&"""><font size=1>NOVO</a></font></td>"
txtRelatorioOS = txtRelatorioOS & "</tr>"
rsOficinasOS.movenext
Wend
end if
%>Segue abaixo um exemplo que eu fiz, se quiser testar.
<%
Dim MyArray(5)
MyArray(1) = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
MyArray(2) = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
MyArray(3) = "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
MyArray(4) = "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
MyArray(5) = "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"Dim numCarac
Dim numLinhas
Dim aux
Dim caracInicio
Dim contador
aux = 0
contador = 1
caracInicio = 1
numCarac = 25
Response.Write("<table border='2'>")
While contador <= 5
numLinhas = len(MyArray(contador)) / numCarac
if (Cint(numLinhas) < 1) then
numLinhas = 0
else
numLinhas = Cint(numLinhas)
end ifResponse.Write("<tr><td><font size=2>")
While aux <= numLinhasResponse.Write(Mid(MyArray(contador),caracInicio,numCarac))
if (aux < numLinhas) then
Response.write("<br />")
else
Response.Write("</td>")
end if
caracInicio = Cint(caracInicio) + CInt(numCarac)
aux = aux + 1
Wend
aux = 0
caracInicio = 1
response.Write("</tr>")
contador = contador + 1
Wend
Response.Write("</table>")
%>Abraços
-
Tipo de erro:
Erro de compilação do Microsoft VBScript (0x800A03EA)
Erro de sintaxe
/sac.asp, line 48, column 80
txtRelatorioOS = txtRelatorioOS & Mid(rsOficinasOS("obs"),caracInicio,numCarac)&
-------------------------------------------------------------------------------^
Esse erro copiando do jeito que você postou.
Tipo de erro:
Erro de compilação do Microsoft VBScript (0x800A03EA)
Erro de sintaxe
/sac.asp, line 48, column 64
txtRelatorioOS = txtRelatorioOS & Mid(rsOficinasOS("obs"),1,50)&
---------------------------------------------------------------^
E esse quando eu altero por números.
O teste que você mandou da tabeinha ta pegando normal.
Bom agora arrumei quer dizer consegui usar ele precisa usar o contador, a linha do mid ficou assim:
txtRelatorioOS = txtRelatorioOS & (Mid(rsOficinasOS("obs"),1,75))
Coloquei ( antes do mid e fechei no final, tirei o & que tava no final bom ai ele já pegou mas sem o "contador ", ai coloquei 1,75 porque pra mim eu já tenho um número máximo de caracteres por comentário portanto tanto faz colocar o número ai funcionou, de qualquer forma em cima onde define número de linhas e número de carcteres não ta pegando mas ta marcado como resposta porque eu só ajustei pra poder usar.
Vlw pela ajuda.
Abraço.