Ir para conteúdo

Arquivado

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

marvazoler

[Resolvido] Como dar um response.white em compo cadastrado

Recommended Posts

Olá galera beleza?

 

Bom estou cadastrando com campo numérico na minha tabela access e tendo a formatação intenar no banco com valor 0, ou seja, eu cadastro 1 e no banco fica 01, exemplo.

 

01

02

03

Bom, minha pergunta é como posso dar um response no campo com a formatação = a do banco?

pois quando eu faço um response.white m mostra assim

 

1

2

3

 

Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

se for maior que 9 é para adicionar 0 tambem?

 

se sim

 

basta concatenar

 

reponse.write("0" & valor)

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao

 

so concatene

 

<% Response.Write ("0" & oRs4("Cod"))%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Campeao......use essa função para formatar zeros a esquerda

 

Function Zero(Numero,NZeros)
Dim ZNovo_Numero,ZNumero
	ZNovo_Numero = 0
	If Numero = "" Then
		Zero = ""
	Else
		If IsNull(Numero) Then
			Numero = 0
		End If
		If Len(Numero) < CInt(NZeros) Then
			NZeros = CInt(NZeros)
			ZNumero = Len(Numero)
			ZNovo_Numero = NZeros - ZNumero
			ZNovo_Numero = CInt(ZNovo_Numero)
			Numero = String(ZNovo_Numero,Chr(48)) & Numero
		End If
		Zero = Numero
	End If
End Function
Exemplo de utilização:

 

For i = 1 to 100
	Response.write Zero(i,2) & "<br>"
Next

O resultado de 1 a 9 sera 01, 02, 03... e assim por diante. Quando chega no dez ele para de por zeros pois atingiu os 2 caracteres informados na função.

 

Se você alterar para

 

For i = 1 to 100
	Response.write Zero(i,3) & "<br>"
Next

os números de 1 a 99 serao exibidos no formado 001...002....030....099....100 onde ele não ultrapasse a quantidade de caracteres(zeros) informado na função.

 

Mais um detalhe caso você queira gravar por exemplo 01 no banco ou 001 no banco lembre-se que seu campo não poderá ser tipo número/inteiro pois é retirado qualquer zero a esquerda. Agora se você quiser gravar normal e só alterar no momento da exibição utilize:

 

<%= Zero(oRs4("Cod"),2) %>

OBS: Nao esqueça de adicionar a função "Zero" na sua página ou include.

 

Espero que tenha sido útil.

 

Att.,

 

Jorge Santos

// MSN: jvsantos@pop.com.br EMAIL: jorge@webbuilding.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...iai Jonathan...beleza?!

 

Quanto a usar o "simples" nao concordo muito pois se eu tivesse esse trecho e em pelo menos 3 paginas diferentes e a funçao que eu mostrei dentro de um include referenciado nas paginas....a manutencao do simples seria feita em 3 paginas diferentes enquanto em um include de funcoes contendo por exemplo essa funcao zero() sera alterado uma unica vez.

 

Mesmo que pegasse esse seu trecho right(....) e colocasse em um funcao em um include se um dia eu quisesse alterar a quantidade de zeros teria que ser alterado no primeiro e segundo parametro do right.

 

Eu utilizo um conceito de codigo reutilizavel e na hora da manutencao o simples podedar mais trabalho que o normal e por mais que a pessoa as vezes possa ser iniciante é bom sempre ter o conceito de codigo reutilizavel....mesmo que pra codigos que parecam simples.

 

Apesar que sao so pontos de vista diferentes. Valew Jonathna.

 

 

Abs ,

 

Jorge Santos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao concordo jorge

 

o codigo apresentado pelo jonh é mais simples e de maior performance

 

se quiser pode criar uma função com ele e colocar em seu include

Compartilhar este post


Link para o post
Compartilhar em outros sites

opiniões a parte, sou da opinião do mario, por isso segue outra função

<%
function zerosEsquerda(valor, zeros)
for i = 0 to zeros+len(valor)
	x = x&"0"
next
zerosEsquerda = cstr(right(x&valor,zeros+len(valor)) )
end function
Response.Write(zerosEsquerda("50",10))
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mário, o exemplo que dei não esta só relacionado a performance. Essa função foi apenas para exemplificar. Claro que dá pra fazer em menos linhas mas o ponto forte é de código reutilizavel. Na verdade, ou melhor, na minha opiniao, esse codigo com certeza deve estar dentro do include a nao ser que a pessoa na hora de fazer manutencao goste de ficar procurando todas as páginas que tem um right(a,B) para alterar. Quando eu disse "simples" estava me referenciando ao fato do codigo nao estar em uma funcao e nao o fato de usar right, left ou qualquer outra forma de replicar zeros. Por mais que os programadores estejam iniciando é bom sempre ter um conceito de codigo reutilizavel. Quando eu ensinava asp nas aulas sempre procurava fazer o pessoal entender sobre a importancia da reutilizacao de codigo. Fabricar um codigo que possa ser utilizado novamente pois um dia esse sistema com right() poderia cair na sua mão pra manutençao ai você teria que ficar procurando em quantas paginas teria que fazer o acerto.

 

Não estou questionando qual a funcao mais rapida e sim o uso de um funcao para utilizacao em mesma tarefa.

 

Cada um tem um ponto de vista mas codigo reutilizavel é essencial mesmo nas tarefas mais "simples".

 

Acho que a dúvida do usuário marvazoler ficou esclarecida depois desses varios exemplos que postamos.

 

 

Nao concordo jorge

 

o codigo apresentado pelo jonh é mais simples e de maior performance

 

se quiser pode criar uma função com ele e colocar em seu include

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...ficou legal na função Jonathan.

 

Uma outra forma dessa função seria

 

function zerosEsquerda(valor, zeros)

zerosEsquerda = CStr(String(zeros,"0") & valor)

end function

Apesar que essa esta simples...poderiamos aperfeiçoar tratando números maiores que zero, valores nulos entre outras coisas. O uso da função String([numero_repeticoes],[caracter_repetido]) também é uma boa em situações como essa.

 

Outra forma de deixa-la mais generica seria

 

function caracteresEsquerda(valor, zeros, caracter_a_repetir)

caracteresEsquerda= CStr(String(zeros,caracter_a_repetir) & valor)

end function

for j = 1 to 15
Response.Write caracteresEsquerda(j,1,"-") & "<br>"
next

ou no caso do zero

for j = 1 to 15
Response.Write caracteresEsquerda(j,1,"0") & "<br>"
next

Mas ficou bakana.

 

Valew pessoal!

 

opiniões a parte, sou da opinião do mario, por isso segue outra função

<%
function zerosEsquerda(valor, zeros)
for i = 0 to zeros+len(valor)
	x = x&"0"
next
zerosEsquerda = cstr(right(x&valor,zeros+len(valor)) )
end function
Response.Write(zerosEsquerda("50",10))
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

que bom que resolveu seu problema

 

e foi legal debater o assunto tamebm

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.