Leandro:
Como te comente en mi post anterior, si amplias el 谩rea te vas a enfrentar a un problema
cuando el 谩rea se debe imprimir al final de la p谩gina, es decir parte del texto debe caer
al pie de la p谩gina y el resto del texto debe caer al inicio de la siguiente p谩gina.
Para dar soluci贸n al problema de imprimir campos tipo memo yo hago lo siguiente:
STATIC FUNCTION PrtArea02(oVrd)
LOCAL nLineas := 0
LOCAL nLargo := oRsFdf:Fields("FOL_ANC"):Value
LOCAL cDes := ""
LOCAL nLoop := 0
IF oRsDet:RecordCount() > 0
oRsDet:MoveFirst()
nLoop := 0
DO WHILE ! oRsDet:EOF()
nLineas := MLCOUNT(ALLTRIM(oRsDet:Fields("DET_DES"):Value),nLargo)
FOR nLoop := 1 TO nLineas
cDes := MEMOLINE(ALLTRIM(oRsDet:Fields("DET_DES"):Value),nLargo,nLoop)
IF nLoop == 1
PRINTAREA 2 OF oVrd;
ITEMIDS {201,202,203,204,205,206};
ITEMVALUES {TRANSFORM(oRsDet:Fields("DET_CTD"):Value,"@Z 99,999.999"),;
oRsDet:Fields("DET_UDM"):Value,;
oRsDet:Fields("DET_CDP"):Value,;
cDes,;
TRANSFORM(oRsDet:Fields("DET_PUN"):Value,"@Z 999,999,999.99"),;
TRANSFORM(oRsDet:Fields("DET_IMP"):Value,"@Z 999,999,999.99")}
ELSE
PRINTAREA 2 OF oVrd;
ITEMIDS {204};
ITEMVALUES {cDes}
ENDIF
IF oVRD:nNextRow > oVRD:nPageBreak
PRINTAREA 3 OF oVrd
PAGEBREAK oVRD
PrtArea01(oVrd)
ENDIF
NEXT
oRsDet:MoveNext()
ENDDO
ENDIF
RETURN(.T.)
El truco esta en seccionar el campo memo en diferentes tramos de un x tama帽o, en mi
caso la longitud la defino en nLargo, de esta manera imprimo varios renglones cuidando
al llegar al fin de la p谩gina, mira el c贸digo IF oVRD:nNextRow > oVRD:nPageBreak.
Ojala que esto te sirve a apoyo, cualquier duda estoy por aqu铆.
Saludos