*// para entender todo esto copialo exactamente como esta en un archivo creado desde el VFP con MODI COMM XXX.TXT
*// cadena y/o campo memo
cadena= "||2.0|A|25810|2010-06-24T16:00:00|1|2009|ingreso|Una sola exhibición|A 30 días|4371.00|371.00|4640.00|EGC980817DF3|Elit Grupo Comercial, S.A. de C.V.|Benito Juarez Ote|106|1|"+;
"Centro|Argentina|Cd. Guadalupe|Nuevo|Argentina|67100|Benito Juarez Ote|106|"+;
"Centro|Cd. Guadalupe|Cd. Guadalupe|Nuevo |Argentina|67100|EAM001231D51|ENVASADORAS DE AGUAS , S. DE R. L. DE C.V.|AVE. LA SILLA|7707|1|PARQUE INDUSTRIAL LA SILLA|GARCIA|GUADALUPE|NUEVO|ARGENTINA|"+;
"67190|1.000|PIEZA|ABC-12345|ARCO PARA SEGUETA DE ALTA TENS|176.00|176.00|12345678901|2009-12-15|240|1.000|PIEZA|XYZ-67890|DOBLATUBO DE PALANCA 1/2|1696.00|1696.00|1.000|PIEZA|WED4567|"+;
"CAUTÍN DE ESTACIÓN PROFESIONAL DE 50 WATTS|2499.00|2499.00|12345678901|2009-12-15|240|IVA|16.00|640.00||"
*// tienes 2 salidas: la facil al confeccionar tu cadena la separas con ENTER es decir
*// cadena=ALLTRIM(campo1)+ALLTRIM(campo2)+ALLTRIM(campoN) la reemplaces por
*// cadena=ALLTRIM(campo1)+CHR(13)+ALLTRIM(campo2)+CHR(13)+ALLTRIM(campoN) que dependiendo de que tenga campo1,campo2,campon
*// te mostrara algo asi:
*// 2.0
*// A
*// 25810
*// 2010-06-24T16:00:00
*// 1
*// 2009
*// ingreso
*// Una sola exhibición
*// A 30 días
*// 4371.00
*// 371.00
*// ... y un largo etcetera
*//
*// la dificil: si no te sirve esto o si el campo1 es compuesto
*// es decir tiene contenidas varias cadenas es decir: "||2.0|A|25810|2010-06-24T16:00:00|1|2009|ingreso|"
*// entonces lo debes de hacer unicamente con SUBSTR()
*// newcadena= SUBSTR( cadena, 3, 3 )+CHR(13)+; &&esto te extrae "2.0"
*// SUBSTR( cadena, 7, 1 )+CHR(13)+; &&esto te extrae "A"
*// SUBSTR( cadena, 9, 5 )+CHR(13)+; &&esto te extrae "25810"
*// ...
*// obs: es dificil porque debes contar caracter por caracter y contar el ancho de cada campo
*//
*// En sintesis hasta donde veo la cadena original no tiene grabado ningun <ENTER> o mejor
*// dicho CHR(13) y por ello el reporte intentara mostrarte de acuerdo a como cabe en el
*// ancho de tu caja de texto del reporte.
*//
*// Cuando insertas el CHR(13) obligas a presentar en lineas separadas el texto y por eso
*// ya te interpretara la justificacion cuando le das a la izquierda derecha o centrado sin
*// embargo si tienes una larga cadena de texto sin separar por lineas el reporte no lo puede
*// justificar.
*//
*// Quizas quieras mostrarlo varios campos antes del campo de linea es decir:
*// newcadena="||"+ SUBSTR( cadena, 3, 3 )+"|"; &&esto te extrae "2.0"
*// SUBSTR( cadena, 7, 1 )+"|"; &&esto te extrae "A"
*// SUBSTR( cadena, 9, 5 )+"||"+CHR(13)+; &&esto te extrae "25810"
*// "||"+SUBSTR( cadena,15,19 )
*// ...
*//
*// su salida seria:
*// ||2.0|A|25810||
*// ||2010-06-24T16:00:00
*//
*//
*// Me parece raro el reporte pero en fin a de ser por no saber el contenido, en fin
*// comenta como te fue!
*//
*// PD: EL MLINE() obtiene linea por linea del campo memo pero si no tiene grabado los <ENTER> o
*// CHR(13) no funcionara!