![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
Colocas en la banda de detalle tantos TQRDBText como te quepan por linea. ( En tu ejemplo 5). Rellenas la propiedad Dataset y DataFields ( que siempre será el mismo campo) Luego en el inspector de objetos y para los 4 primeros TQRDBText, colocas en el evento OnPrint la orden de avanzar un registro. ( Si fuese un dataset sería: MiTabla.Next ![]() Para el último campo de la linea, no debes poner ese evento ya que al terminar de llenar el renglón la tabla se desplaza un registro hacia abajo). Después de hacer esto te saldrá lo que deseas: valor1 valor2 valor3 valor4 valor5 valor6 valor7 valor8 valor9 valor10.. Un problema es si el último registro no coincide con el final de la linea. Por ejemplo, si tu tabla tuviese 7 registros. te saldrá algo parecido a esto: valor1 valor2 valor3 valor4 valor5 valor6 valor7 valor7 valor7 valor7. ¿ Como lo evitas ? Confío en ti, estoy seguro que lo lograras ![]() |
|
#2
|
||||
|
||||
|
Un detalle a tener en cuenta:
Con la solución de jmelida si una cadena de texto es muy grande, pisará al QRDBText que tiene a su derecha. Con un Memo, se verá todo el texto, pero desajusta el alineamiento a la izquierda de las columnas que vienen detrás. En el ejemplo he usado:
Se puede construir la linea en un String, y despues usar Memo.Lines.Add(linea). Con esto, la linea que tenga un texto grande se desplazará, pero la siguiente linea ya saldrá alineada a la izquierda con las demás columnas. Para que quede correctamente alineado, es mejor usar la fuente Courier New. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#3
|
|||
|
|||
|
hola, muchas gracias por sus ideas, las dos son muy buenas, por el momento probe la idea de jlmelida es muy rápida esa solución, pero como dice, hay un detalle y aun ese no he podido quitarselo, si le hago cambios al qrdbtext, me modifica todo lo que haya puesto ese qrdbtext, lo otro que se me habia ocurrido para los qrdbtext fue que si no es fin de consulta, entonces que avance (query.next), si no terminar la ejecución del query con el query.close; pero no pasa nada
pues seguire intentando otras cosas, ha! y para lepe, la información que imprimo son puros valores de longitud pequeña y también tu idea es muy buena, al menos ya tengo dos posibles soluciones cosa que les agradesco... |
|
#4
|
|||
|
|||
|
Cita:
if (not loquesea.eof) then loquesea.next else Value := ''; // Asi no se escribe nada En el evento onPrint del ultimo qrdbText de la linea ( que no usa el next) solo pones la segunda parte: If (loquesea.eof ) then Value := ''; Saludos |
|
#5
|
|||
|
|||
|
gracias, mil gracias
como se noto, tengo como 2 mese usando delphi, y lo poco que lo conozco si me ha gustado crei que iba a estar más dificil el hacer este reporte, pero ya vi que no, para nada. para lo de los valores que se repetian yo lo estaba haciendo asi: if not query1.eof then begin query1.next; end else begin (quise cerrar la consulta y no funciono) (hasta cambiarle a color blanco la fuente jajajaaj pero tampoco funcionaba) end; aun no conocia le instruccion value jeje. ya lo hice, y quedo muy bien yo me estaba complicando la vida.pues muchas gracias por su ayuda a todos los que me asesorarón ![]() bye... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|