Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

alinear datos en un informe...

Estas en el tema de alinear datos en un informe... en el foro de Visual Basic clásico en Foros del Web. necesito ayuda para alinear un dato en un informe hecho a puro codigo...el punto es que tengo unos datos impresos de la siguiente manera: printer.currentx=12 ...
  #1 (permalink)  
Antiguo 22/08/2005, 20:23
Avatar de ccca001  
Fecha de Ingreso: agosto-2004
Mensajes: 388
Antigüedad: 19 años, 7 meses
Puntos: 0
alinear datos en un informe...

necesito ayuda para alinear un dato en un informe hecho a puro codigo...el punto es que tengo unos datos impresos de la siguiente manera:

printer.currentx=12
printer.currenty=5
printer.print formatcurrency(midato,0,,,)

y sale alineado a la izquierda... pero quiero alinerlos a la derecha... como puedo hacerlo si es un informe hecho a puro codigo...???
__________________
"How do you define Real?"
  #2 (permalink)  
Antiguo 22/08/2005, 21:40
Avatar de ccca001  
Fecha de Ingreso: agosto-2004
Mensajes: 388
Antigüedad: 19 años, 7 meses
Puntos: 0
mmm, logre alinear a la derecha con el comando RSET:

micadena = "01234567890123"
RSet micadena = !total
Debug.Print micadena

y alinea a la derecha de la expresion micadena el total...pero (siempre hay un pero), este es del tipo moneda y al darle la funcion formatcurrency:

RSet micadena = formatcurrency(!total,0,,,)

ya no funciona RSET y menos con Formatnumber...por lo tanto... ¿que puedo hacer?
¿alguna opinion?
gracias...
__________________
"How do you define Real?"
  #3 (permalink)  
Antiguo 23/08/2005, 18:00
Avatar de ccca001  
Fecha de Ingreso: agosto-2004
Mensajes: 388
Antigüedad: 19 años, 7 meses
Puntos: 0
ufff, en serio nadie puede opinar al respecto...????
__________________
"How do you define Real?"
  #4 (permalink)  
Antiguo 23/08/2005, 18:40
Avatar de ccca001  
Fecha de Ingreso: agosto-2004
Mensajes: 388
Antigüedad: 19 años, 7 meses
Puntos: 0
he aqui la solucion...

para los que le sirva... y que quieran alinear texto en informes diseñados sin datareport o crystal report (a puro codigo)...

la idea: tomar el ancho de la cadena de texto que se imprime con TextWidth...el resultado es devuelto en TWIPS (al menos en mi caso)... luego este valor los divido por 567 (567 twips = 1 cm ) e imprimo...

he aqui un ejemplo: (dos Text y un command en un form)

Private Sub Command1_Click()

n1 = FormatCurrency(Text1, 0, vbFalse, vbFalse, vbTrue)
n2 = FormatCurrency(Text2, 0, vbFalse, vbFalse, vbTrue)
largo1 = TextWidth(n1)
largo2 = TextWidth(n2)
largo1 = largo1 / 567
largo2 = largo2 / 567
Printer.CurrentX = 20 - largo1
Printer.CurrentY = 6
Printer.Print n1
Printer.CurrentX = 20 - largo2
Printer.CurrentY = 7
Printer.Print n2
Printer.EndDoc
End Sub

e imprime alineado a la derecha...
__________________
"How do you define Real?"
  #5 (permalink)  
Antiguo 24/08/2005, 08:07
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
mira disuculpa no habia visto tu mensaje.. o asi que aqui te pongo un código más simple y que hace lo mismo..

Código:
Printer.CurrentX = 5000 - Printer.TextWidth(Format$(Total, "#########.00"))
Printer.CurrentY = 1000
Printer.Print Format$(Total, "#########.00")
nos vemos.. y espero que te sirva..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:16.