Visual Basic - Poner en columna números decimales

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Poner en columna números decimales

Publicado por Alberto (115 intervenciones) el 14/02/2018 09:43:07
Buenos días. Llevo alguna hora intentándolo y no lo consigo. Tengo un campo, "tpcto" (tanto por ciento), donde figuran tantos por ciento. Tengo definido el campo como número entero largo (seguramente no sea lo más afortunado, pero así lo tengo). En este campo figuran tantos por ciento como 4,25, 10, 9, 11,5, etc. Intento ponerlos bien alineados en una columna y no lo consigo. Seguramente primero debería convertirlos en una cadena y luego... ya me pierdo y no sé cómo seguir. Intento ponerlos en una columna tanto para presentarlos en la pantalla (print) como para luego imprimirlos (printer.print) . ¿Me podríais ayudar? Muchísimas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Poner en columna números decimales

Publicado por Antoni Masana (558 intervenciones) el 14/02/2018 10:52:16
Supongo que los valores de este campo deben ser enteros es decir: 4 - 25 - 10 - 9 - 11 - 5.
Por un lado el tipo de campo es desafortunado, porque para valores de 0 a 255 sin decimales con tipo Byte es suficiente.

Se deba hacer de otra forma. Quízas hay otra mejor pero es la que conozco

- Defines el margen derecho. Por ejemplo 1500
- Conviertes el número a texto. Por ejemplo Texto = STR(45)
- Imprimes restando al margen derecho la longitud del texto en pixel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Command1_Click()
    With Printer
        .FontName = "Arial"
        .FontSize = 18
        .FontBold = False
    End With
    Y = Printer.TextHeight("150")
 
    For a = 1 To 5
        Printer.CurrentX = 1500 - Printer.TextWidth(Str(4 ^ a))
        Printer.CurrentY = Y * a
        Printer.Print Str(4 ^ a)
    Next
    Printer.EndDoc
End Sub

Prueba este código.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Poner en columna números decimales

Publicado por Alberto (115 intervenciones) el 14/02/2018 11:25:38
Los he escrito mal, pero son decimales. Si fueran solo enteros no habría problema, es decir, son 4'25, 10, 9, 11'5. Con los enteros lo que hago es If nro > 0 and nro < 9.99 then currentX = ... else etc., etc. para la pantalla y para la impresora lo mismo
Seguro que tienes solución para mi problema. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Poner en columna números decimales

Publicado por Antoni Masana (558 intervenciones) el 14/02/2018 12:42:41
Pequeños cambios:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Command1_Click()
    Dim Texto As String, a As Integer, b As Integer
 
    With Printer
        .FontName = "Arial"
        .FontSize = 12
        .FontBold = False
    End With
    Y = Printer.TextHeight("150"): b = 1
 
    For a = 1 To 2880 Step 77
        b = b + 1
        Texto = Format(a / 6, "##0.00")
        Printer.CurrentX = 1500 - Printer.TextWidth(Texto)
        Printer.CurrentY = Y * b
        Printer.Print Texto
    Next
    Printer.EndDoc
End Sub

Prueba este código.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Poner en columna números decimales

Publicado por Alberto (115 intervenciones) el 14/02/2018 14:33:54
Gracias por tu respuesta que imprimo y me la tengo que estudiar .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Poner en columna números decimales

Publicado por Alberto (115 intervenciones) el 14/02/2018 16:21:42
Estimado Antoni: Con una mínima variación a tu código me queda perfecto. He puesto

1
2
3
4
5
tpcto = Rs2.Fields.Item(5)
tpcto = Format(tpcto, "##0.00")
CurrentX = 1500 - TextWidth(tpcto)
CurrentY = CurrentY - 230
Print tpcto

Muchas gracias y hasta luego.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar