PRINT

F001E 02/08/2007 09:01:31
#228981
Bom dia a Todos....é o seguinte...eu quero alinhar esses valores a direita...exemplo.....
1,00
10,00
100,00
1000,00
...desse jeito....mas nao vai.....
faço assim....printer.print;tab(10);format$(Valor.text,"@@@@@@@@@@")..
isso centraliza o valor....como faço pra alinhar a direita...nao me lembro como faz isso.....grato desde já....
USUARIO.EXCLUIDOS 02/08/2007 09:26:32
#228992


cara sei q é gambiarra..eu n me lembro tb como faz..mas o q pode fazer é

acrescentar espaços na string, num valor fixo de 6, por exemplo, antes da virgula..

assim todos valores ficarão com um Len igual..

entendeu?

boa sorte e sucesso!
USUARIO.EXCLUIDOS 02/08/2007 09:28:53
#228993
Resposta escolhida
Fernando segue uma função para fazer o alinhamento veja se ajuda:

Para fazer a chamada da função use:

dim dValor as double

dValor=Valor.Text

printer.print;tab(10);AlinhaNumDireita(dValor,8, "M");

Onde 8 é o tamanho máximo que seu campo poderá ter.
M indica que o campo é tipo moeda(decimais).

Private Function AlinhaNumDireita(ByVal vdValor As Double, _
ByVal viMax As Integer, _
ByVal vsTipo As String) As String

Rem *** Tipo M (Moeda), N (Número Inteiro) ***

Dim sAux As String, sAux1 As String
Dim iTamanho As Integer
Dim dNumero As Double

If vsTipo = "M" Then
sAux = Format(vdValor, "standard")
Else
sAux = vdValor
End If

iTamanho = Len(sAux)

sAux1 = String((viMax - iTamanho), " ") & sAux

AlinhaNumDireita = sAux1

End Function


ESPERO TER AJUDADO.

F001E 02/08/2007 10:21:29
#229007
Frau...eu fiz isso que vc me passou...tbm nao alinha.....depende do tamanho do valor....fica fora de alinhamento....tem valor q alinha pra direita e tem valor que fica centralizado....parece que o alinhamento nao respeita o " "..tem hora q e maior e tem hora q e menor e nao alinha...
F001E 02/08/2007 10:24:46
#229009
fica desse jeito
F001E 02/08/2007 10:55:54
#229023
galera...valews pela ajuda..mas eu desisto.....vou fazer no Crystal Report mesmo...valews..
USUARIO.EXCLUIDOS 02/08/2007 10:57:43
#229025
Nesta linha: printer.print;tab(10);AlinhaNumDireita(dValor,8, "M");

vc está passando a variavel double ou está passando direto o text? tipo : AlinhaNumDireita(Valor.Text,8, "M") ??? e Qual tamanho vc está passando?

Passe a linha (exatamente) como está no seu fonte para que eu possa analizar...blz!
Tópico encerrado , respostas não são mais permitidas