Ir para conteúdo

POWERED BY:

Arquivado

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

Alexandre Zito

Array de valores perde as casas decimais ao ser recuperado

Recommended Posts

Boa tarde Caros,

 

Preciso de uma ajuda, tenho uma aplicação na qual preciso submeter valores dentro de um insert conforme aponto abaixo:

 

arrayCodigo=(Split(Request.Form("selecionado"),","))
arrayDDL=(Split(Request.Form("vDDL"),","))
arrayQTD=(Split(Request.Form("vQTD"),","))
arrayVALOR=(Split(Request.Form("xVAL"),",")) ' variavel de valores
arrayCPL=(Split(Request.Form("vCPL"),","))

		  i=0

		  For Each item in arrayCodigo
	
	if arrayQTD(i) = 0  then
	
	Cabecpequenared("PREENCHER A QUANTIDADE !!!!!!")
	
	RESPONSE.End()
	END IF
	
	if arrayVALOR(i) = 0 then
	Cabecpequenared("PREENCHER o VALOR !!!!!!")
	RESPONSE.End()
	End if
   
   if arrayDDL(i) = 0 then
	
		Cabecpequenared("PREENCHER o PRAZO !!!!!!")
	RESPONSE.End()
	End if
	
   sqlCAD = "INSERT INTO dbo.HIS ( dbo.His.hiscod, dbo.His.HisDia, hisQTD," 
   sqlCAD = sqlCAD & " dbo.His.HisCPL,dbo.His.Hisval,dbo.His.hisSET,dbo.HIS.hisOBR) Values ("& arrayCodigo(i) &","& arrayDDL(i) &","& arrayQTD(i) & ",'"& arrayCPL(i) & "'," & Transforma(arrayVALOR(i)) &"," & vSET &"," & vOBR &"," & vTIP &")"


response.write sqlCAD
response.end
		  i=i+1
		  
		  Conn.Execute ( sqlCAD )
		  
		  Next

Quando dou um response.write no insert a ser montado, o valor (arrayValor(i)) aparece apenas com o primeiro numero, os demais das casas decimans que deveriam vir EX 1,50, aparecem apenas 1 .

 

Alguem pode me ajudar nesta duvida, estou sem saber como resolver este impasse

 

A disposição

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que esta acontecendo com os valores exatamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi você possui mais de um campo com o mesmo nome em seu FORM. Se for isso troque seu laço FOR EACH por um laço FOR "comum", mas usando a propriedade COUNT do Request. Fica +/- assim:

'arrayCodigo=(Split(Request.Form("selecionado"),","))
'arrayDDL=(Split(Request.Form("vDDL"),","))
'arrayQTD=(Split(Request.Form("vQTD"),","))
'arrayVALOR=(Split(Request.Form("xVAL"),",")) ' variavel de valores
'arrayCPL=(Split(Request.Form("vCPL"),","))

	  i=0

	  FOR x = 1 TO Request.Form("selecionado").COUNT
i = X-1
if Request.Form("vQTD")(i) = 0  then

Cabecpequenared("PREENCHER A QUANTIDADE !!!!!!")

RESPONSE.End()
END IF

if Request.Form("xVAL")(i) = 0 then
Cabecpequenared("PREENCHER o VALOR !!!!!!")
RESPONSE.End()
End if

  if Request.Form("vDDL")(i) = 0 then

	Cabecpequenared("PREENCHER o PRAZO !!!!!!")
RESPONSE.End()
End if

  sqlCAD = "INSERT INTO dbo.HIS ( dbo.His.hiscod, dbo.His.HisDia, hisQTD," 
  sqlCAD = sqlCAD & " dbo.His.HisCPL,dbo.His.Hisval,dbo.His.hisSET,dbo.HIS.hisOBR) Values ("& Request.Form("Selecionado")(i) &","& Request.Form("vDDL")(i) &","& Request.Form("vQTD")(i) & ",'"& Request.Form("vCPL")(i) & "'," & Transforma(Request.Form("xVAL")(i)) &"," & vSET &"," & vOBR &"," & vTIP &")"


response.write sqlCAD
response.end

	  Conn.Execute ( sqlCAD )

	  Next

O que aparentemente está acontecendo é que o seu SPLIt está dividindo o valor decimal. Dessa forma que fiz não pois a cada passada estará sendo recuperado o dado.

 

Testa e poste novamente.

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.