* Código que debería estar en un método del form
* Usa el PROCEDURE String_Val() para conformar el encadenamiento.
LOCAL lcString ,;
lcString_part,;
lnFields,;
i
LOCAL ARRAY laFields(1)
* 1 - Crear el cursor con los datos requeridos.
SELECT idclien,nombre,cuit,monto ;
FROM clientes ;
WHERE TRIM(ciudad)=="ROSARIO" ;
ORDER BY NOMBRE ;
INTO CURSOR MYCURSOR
* 2 - Si contiene datos, rellenar lcString con los datos de las 4 columnas.
lcString = ""
IF _TALLY > 0
lnFields = AFIELDS(laFields,"MyCursor")
SELECT MYCURSOR
SCAN
lcString_Part = ""
FOR i= 1 TO m.lnFields
lcString = m.lcString ;
+ string_val(EVALUATE(fields(i)),laFields[i,3]+laFields[i,4]) ;
+ IIF(m.i = m.lnFields , CHR(13)+CHR(10) , CHR(9))
NEXT
ENDSCAN
*Crear el EditBox si no existe
IF !PEMSTATUS(thisform,"edtApila",5)
thisform.NewObject("edtApila","Editbox")
WITH thisform.edtApila
.top= 24
.left = 3
.Height = thisform.Height - 6 - 24
.Width = thisform.Width - 6
.Readonly = .t.
.disabledbackColor = RGB(255,255,255)
.disabledForeColor = RGB(0,0,0)
.BorderColor = RGB(114,136,141)
.allowTabs = .t.
.FontName = "Courier New"
.FontSize = 8
.visible = .t.
.Anchor = 15
ENDWITH
ENDIF
thisform.edtApila.Value = m.lcString
ENDIF
*-----------------------
PROCEDURE String_Val
LPARAMETERS txDato , tnWidth
LOCAL lcType,;
lcResp,;
lnCommas
lnCommas = INT(tnWidth/3)
lcType = VARTYPE(txDato)
lcResp = ICASE(lcType = "C",PADR(txDato,tnWidth,CHR(32)),;
lcType = "N",PADL(RTRIM(TRANSFORM(txDato,"999,999,999,999.99")),tnWidth+lncommas,CHR(32)),;
TRANSFORM(txDato))
RETURN m.lcResp
ENDPROC