FoxPro/Visual FoxPro - reporte a base de codigos

   
Vista:

reporte a base de codigos

Publicado por MANY (332 intervenciones) el 20/12/2011 15:05:34
Despues de saludarle quiero decir que:

Estoy haciendo un reporte a base de codigos de esta forma

?
?? Escuela Central Mogollon
?
?? Listado de estudiantes
?
use estudiantes

scan for matricula = 50

? ? matricula
??? nombre
??? promedio
?

endscan

el problema es que cuando una matricula o un nombre es mas largo que otro se descuadra el reporte, ejemplo:

matricula nombre promedio
52 jose 80
25654 pedro 90
2 alejandor 58

debe haber una forma de formatear el tamaño de cada campo para que siempre cubran la misma cantidad de comlumnas pero no se como hacerlo.

Lo que han trabajado con este tipo de reporte me entenderan muy bien.

esto me urge ya que todo los de mas lo domino.

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

reporte a base de codigos

Publicado por santiago (376 intervenciones) el 20/12/2011 15:39:01
Hola, lo que quieres se maneja asi:

@prow()+1, 0 say matricula && suponiendo que largo maximo es = 6, ocupara has el 5 y dejara 2 espacios en blanco antes de pintar el nombre
@prow(), 8 say nombre && suponiendo que el largo maximo es 30, pero no quieres ocupar mas de 20 espacios y dejar 2 espacios en blanco antes de pintar el promedio
@prow(), 40 say promedio pict '999999' && suponiendo que el largo maximo es 6


** suerte.
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

reporte a base de codigos

Publicado por santiago (376 intervenciones) el 20/12/2011 15:43:03
Fe de erratas:

la linea:

@prow(), 8 say nombre && suponiendo que el largo maximo es 30, pero no quieres ocupar mas de 20 espacios y dejar 2 espacios en blanco antes de pintar el promedio

debe decir:

@prow(), 8 say substr(nombre,1,20) && suponiendo que el largo maximo es 30, pero no quieres ocupar mas de 20 espacios y dejar 2 espacios en blanco antes de pintar el promedio
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

reporte a base de codigos

Publicado por MANY (332 intervenciones) el 20/12/2011 20:32:35
mil gracias:

Agradezco no solamente el que hayan resuelto mi problema, sino también la eficiencia y claridad de la respuesta.

lo hice asi , falta mucho pero esta es la logica principal lo demas son codigos normales dependiendo de lo individual.

close all
use c:\detalles
go top

m.linea = 5
scan
m.linea = m.linea + 1
@PROW()+m.linea,0 say cantidad pict '999.99'
*@PROW()+m.linea,8 say " "

@PROW()+m.linea,8 say SUBSTR(descrip,1,20)

@PROW()+m.linea,35 say valor pict '999.99'
endscan

Espero sirva para otros .
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

reporte a base de codigos

Publicado por santiago (376 intervenciones) el 20/12/2011 22:42:06
Hola Many:

Ten cuidado en tu codigo, solo debes sumar mlinea en cantidad ( la primera linea ), de lo contrario no saldra como quieres, pues saltara una linea para cada campo, en vez de alinearlos entre si.

Suerte.
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