RECUPERAR DATOS
Para recuperar los datos lo programar de acuerdo a tu aplicación; evento open de la ventana, evento clicked de un botón, etc
string ls_ruta
int li_row
//obtiene la ruta de tu aplicacion en la variable ls_ruta
ls_ruta = getcurrentdirectory()
//verifica si existe el archivo en la ruta "ls_ruta"
if FileExists ( ls_ruta+'\'+nombre_archivo.csv' ) then
//si la el archivo existe almacena en el dw_1 todos los registros del archivo
//devolviendo en li_row la cantidad de registros
li_row = dw_1.ImportFile(CSV!, ls_ruta+'\'+nombre_archivo.csv')
end if
//verifica si hay algun registro recuperado segun la variable li_row
if not li_row > 0 then
//si no se recupera ningún registro, se inserta un registro en blanco en el dw_1
//esto es solo para datawindow freefrom
dw_1.insertrow(0)
end if
GUARDAR DATOS
Para guardar los datos:
1.- Si el archivo existe, lo eliminas para que tengas actualizada la información y luego lo guardar en un archivo con el mismo nombre.
int li_estado
string ls_ruta
ls_ruta = getcurrentdirectory()
li_estado = dw_1.saveas( ls_ruta+'\'nombre_archivo.csv',CSV!,false)
//si li_estado = 1 ok
NOTA
1.- El nombre del archivo tiene que ser el mismo tanto para guardar como para recuperar.
2.- Si tienes una lista de registros y deseas modificarlos, agregar, etc y no usas un dw tipo lista (tabular, grid); declaras un datastore como variable de instancia y los operaciones de guardar y recuperar usas el datastore. Para las opciones de búsqueda utilizas la función find.
3.- Al crear el datawindow en el origen de datos especificas "external"
4.- Esta es solo una sugerencia, si deseas guardar unos cuantos registros sin usar una Base de Datos
No dudes en preguntar si aún tienes algunas preguntas al respecto.