Hola, Juan.
>>> ... y en algunos casos hay que retorcarlos para que se vean bien. Los retoques son mínimos y fáciles de hacer, pero.....
Ultimamente he notado también que debo retocar los reportes cuando los llevo a los clientes. Y siempre es para desmarcar la opción de dice printer environment del reporte, como dice Integral.
Sinceramemte no le echaba la culpa al SET ENGINEBEHAVIOR 90.
Voy a hacer pruebas.
Mientras tanto te propongo y a la Comunidad:
Qué tal si --para generar el reporte, visualizarlo--, hacemos algo como una función.... más o menos así:
En vez de
USE CLIENTES.DBF SHARED
REPORT FORM CLIENTES.FRX PREVIEW
hacemos algo como una función y la llamamos así:
USE CLIENTES.DBF SHARED
EjecutarReporte("CLIENTES.FRX")
y la función sería así:
FUNCTION EjecutarReporte
LPARAMETER tFRX
LOCAL M.nOBJ, M.nACTUAL
M.nACTUAL = SELECT()
M.nOBJ=999999 && no recuerdo en este momento cuál es.... perdón------
LOCAL M.cTMP
M.cTMP = FORCEEXT(ADDBS(SYS(2023))+SYS(2015),"TTT")
SELECT 0
USE (tFRX) SHARED
COPY TO (M.cTMP)
DELETE FOR OBJTYPE=M.nOBJ && probablemente deba involucrarse otro campo....
PACK
USE
SELECT (M.nACTUAL
REPORT FORM (M.cTMP) PREVIEW
ERASE (M.cTMP)
ERASE FORCEEXT(M.cTMP),"FRX"
ERASE FORCEEXT(M.cTMP),"FRT"
ENDFUNC
¿Cuál es la idea?
La idea es: al momento de lanzar el reporte, borrar el environment que el reporte tenga: si no lo tiene, no pasa nada; si sí lo tiene, nos evitamos tener que modificarlo manualmente.
Claro que los cambios los hacemos sobre un archivo temporal con la misma definición del reporte.
OBSERVACION IMPORTANTE: Esto sólo se hace si el environment es el que nos está causando problemas (en mi caso sí). Claro que además del DELETE podemos hacer alguna otra cosa (si es que sabemos qué estamos haciendo, pero por el momento sólo les propongo el DELETE).
Incluso en mis escenarios tengom instalada la PDFCreator (claro que cada uno puede usar la impresora virtual PDF que desee; realmente no "obligo" que sea PDFCreator; sino que sea de PDF, incluso propietaria si cada uno puede/sabe distribuirla sin dificultad).
De esta forma se minimizan las dificultades como cambio de hoja (((me explico: en mi computador de desarrollo tengo la PDFCreator, hoja tamaño carta; pero cuando llevo el reporte donde el cliente, allá la impresora por defecto es una láser cualq..... Pero en el archivo el tamaño carta queda con un código que se usa sólo en la PDFCreator; y cuando se abre el reporte en el cliente se vé recortado por ejm: sólo se ven las primeras cuatro columnas y quedan faltando dos. Cuando modifico el reporte con VFP9 (tengo que llevarlo al cliente), veo que el tamaño es por ejm A3 (ni siquiera es A4), y tengo que buscar Letter, pero si el sistema tiene la láser, tengo que escoger "Carta" o tal vez "8.5 x 11".
¿Alguien tiene la experiencia o podemos intentarlo para que compartamos ya que el tema es tan recurrente?