Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

Comando FOR em ASP

  • Por favor, faça o login para responder
9 respostas neste tópico

#1 Nino7

Nino7
  • Membros
  • 11 posts

Postado 18 maio 2010 - 23:51

Ae galera, como vcs são experts, qria saber se tem como fazer um FOR nesse código imaginando que seja até 100 por exemplo...

'Recupera para montar o Mecanismo dos Códigos
		code1 = request.Form("code1")
		produto1 = request.Form("produto1")
		valor1 = request.Form("valor1")

	if len(code1) <> 0 then
		Set rsCode = Conn.Execute("Select Produto,Valor from Produtos where Codigo = '" & code1 & "'")
		if not rsCode.EOF then
		produto1 = rsCode("Produto")
		valor1 = rsCode("Valor")
		end if
	end if

		'Código 2
		code2 = request.Form("code2")
		produto2 = request.Form("produto2")
		valor2 = request.Form("valor2")

	if len(code2) <> 0 then
		Set rsCode = Conn.Execute("Select Produto,Valor from Produtos where Codigo = '" & code2 & "'")
		if not rsCode.EOF then
		produto2 = rsCode("Produto")
		valor2 = rsCode("Valor")
		end if
	end if
	
		'Código 3
		code3 = request.Form("code2")
		produto3 = request.Form("produto2")
		valor3 = request.Form("valor2")

	if len(code3) <> 0 then
		Set rsCode = Conn.Execute("Select Produto,Valor from Produtos where Codigo = '" & code3 & "'")
		if not rsCode.EOF then
		produto3 = rsCode("Produto")
		valor3 = rsCode("Valor")
		end if
	end if

  • 0

#2 desisto

desisto
  • Banidos
  • 0 posts

Postado 19 maio 2010 - 01:08

for i=0 to 100

response.write(i)

next



#3 Alexandre.Itba

Alexandre.Itba
  • Membros
  • 52 posts

Postado 19 maio 2010 - 01:29

Bom, não sei como está seu sistema, mas eu faria da seguinte forma:
Na página que posta o form, deixaria os campos Code, todos com o mesmo nome:
<form action="tratarForm.asp" method="post">
    <fieldset>
	Item 1:
        <input type="text" name="code" />
	Item 2:
        <input type="text" name="code" />
	Item 3:
        <input type="text" name="code" />
	Item 4:
        <input type="text" name="code" />
	Item 5:
        <input type="text" name="code" />
	Item 6:
        <input type="text" name="code" />
        <input type="submit" />
    </fieldset>
</form>

E na página que trata essas informações faria assim:
<% 
code = Request.Form("code")
sql = "SELECT Produto, Valor FROM Produtos WHERE Codigo in ("& code& ")"
Set rsCode = Conn.Execute(sql)
Response.Write sql

If Not rsCode.eof Then
    ' Entre com seu código, uma sujestão seria montar um array para campo.
End If
%>

Não sei se resolve seu problema, mas que de longe mais simples e economico, isto é.
Imagina tendo que fazer 100 consultas ao banco a cada vez que este código fosse executado?
  • 0

#4 xanburzum

xanburzum
  • Membros
  • 11.542 posts

Postado 19 maio 2010 - 09:01

Podemos fixar o número de looping em um bloco de código a ser feito por meio de laços FOR...NEXT. Este é um dos scripts de comandos mais comuns utilizados em diferentes idiomas. Vamos começar com a sintaxe básica do loop for próximo.

For count_start to count_end step 1
Script block
Next

count_start é a variável que armazena o valor inicial da contagem, count_end é o valor final do ciclo e o valor dos aumentos count_start pelo valor do step. Valor padrão do step é de 1. Aqui está um código simples para mostrar o número 1-10 por loop For Next.


Dim i
For i=1 to 10 
Response.Write i & "<br>"
Next



O código acima irá imprimir o número 1-10. Nós podemos modificar o código, adicionando um valor de 3 step (de 3 em 3) como este


Dim i
For i=1 to 10 step 2
Response.Write i & "<br>"
Next



A saída do código acima é 1 3 5 7 9 com quebras de linha após o final de cada número
  • 0

#5 Nino7

Nino7
  • Membros
  • 11 posts

Postado 19 maio 2010 - 23:01

Na verdade o que eu qro fazer é o seguinte:
O cara digita o código e clica INCLUIR ai busca o produto e mostra o código e o produto...
Ai ele digita outro código no outro campo que apareceu e clica incluir dinovu, e aparece o produto dinovu...

E assim por diante, mas se ele incluir 100 campos,
No meu código eu fiz até o 10 assim:

'Recupera para montar o Mecanismo dos Códigos
		code1 = request.Form("code1")
		produto1 = request.Form("produto1")
		valor1 = request.Form("valor1")

	if len(code1) <> 0 then
		Set rsCode = Conn.Execute("Select Produto,Valor from Produtos where Codigo = '" & code1 & "'")
		if not rsCode.EOF then
		produto1 = rsCode("Produto")
		valor1 = rsCode("Valor")
		else
		code1 = ""
		end if
	end if

E o FORM ficou:

total_inputs = 1
	response.Write "<tr bgcolor='#FFFFFF'><td width=50>&nbsp;Código:</td><td><input type=text size=10 name=code1 id=code value='" & code1 & "'></td>" &_
					"<td>&nbsp;Produto:</td><td><input type=text size=40 name=produto1 disabled value='" & produto1 & "'></td>" &_
					"<td>&nbsp;Valor:</td><td><input type=text name=valor1 disabled value='" & FormatCurrency(valor1,2) & "'></td></tr>"

Só que tb tive que fazer varios, se for 100 tenho que fazer 100 mudando os valores de:
code1... produto1... valor1...
  • 0

#6 xanburzum

xanburzum
  • Membros
  • 11.542 posts

Postado 20 maio 2010 - 08:29

na verdade você terá um formulárion simples, onde o user entra com o codigo e você faz a busca e exibe na tela para ele, existem exemplos usando AJAX que fica interesssante para seu caso...

O cara digita o código e clica INCLUIR ai busca o produto e mostra o código e o produto...
Ai ele digita outro código no outro campo que apareceu e clica incluir dinovu, e aparece o produto dinovu...


  • 0

#7 Nino7

Nino7
  • Membros
  • 11 posts

Postado 21 maio 2010 - 23:59

Eh que AJAX não sei usar,
Mas recomenda algum simples pra mim?

Ja sei o que eu preciso e não consigo...
Preciso que a variavel seja o contador do FOR,
Por exemplo:

for x=1 to 10
code1 = request.form("Codigo")
next

Mas imagine que a variavel "code1" eu criei na mão,
Preciso que essa variavel seja "code2" "code3" e assim até o fim do LOOP.

Tentei assim mas não consegui:
for x=1 to 10
"code"&x = request.form("Codigo")
next

Alguma luz?
  • 0

#8 desisto

desisto
  • Banidos
  • 0 posts

Postado 22 maio 2010 - 13:02

como esta o formulario?




#9 Nino7

Nino7
  • Membros
  • 11 posts

Postado 22 maio 2010 - 22:52

O Loop que eu preciso indifere do Form,
Mas ta ai:

response.Write "<tr><td width=50>&nbsp;Código:&nbsp;</td><td><input type=text size=10 name=code1 id=code value='" & code1 & "'></td>" &_
	"<td>&nbsp;Produto:</td><td><input type=text size=40 name=produto1 disabled value='" & produto1 & "'></td>" &_
	"<td>Qtd:&nbsp;</td><td><input type=text size=1 name=qtd1 value='" & qtd1 & "'></td>" &_
	"<td>&nbsp;Valor:</td><td><input type=text name=valor1 disabled style='width:75; text-align=right' value='" & FormatCurrency(valor1,2) & "'></td></tr>"

Ai abaixo vem o code2... produto2... e assim por diante!
  • 0

#10 Nino7

Nino7
  • Membros
  • 11 posts

Postado 29 maio 2010 - 01:43

Teria jeito de fazer um LOOP pra não digitar os 30 ifs?

function validaForm(){
   if(document.cadform.code30.value!=""){	
   if(document.cadform.qtd30.value < "1"){
   alert("Digite a quantidade!");
   document.cadform.qtd30.select();
   return false;
	}}
return true;
}

Alias eu ja fiz os 30 mas qria otimizar... Valeu!
  • 0




Publicidade

/ins>