Preguntaba Horacio, desde Argentina, sobre cómo hacer una consulta de la información de ciertos clientes que se seleccionan desde un grid.
Aunque no es un caso exactamente igual al descrito por Horacio, creo que es una buena aproximación a la respuesta que buscaba Horacio.
Tengo esta consulta en un archivo de texto (sql_DocsCobrar003.sql), la cual me trae, para un cierto cliente seleccionado, algunos tipos de documentos (curBase.doc_presup, curBase.doc_ordenc y curBase.doc_pendie):
SELECT ccVentac.doc_codigo ,;
empDocumentos.doc_nombre ,;
ccVentac.doc_numero ,;
ccVentac.doc_emisio ,;
ccVentac.doc_totgen ;
FROM ccVentac,empDocumentos ;
WHERE ccVentac.cli_rif=#1 ;
AND ccVentac.doc_codigo$#2 ;
AND EMPTY(ccVentac.doc_cancel);
AND EMPTY(ccVentac.doc_anula) ;
AND empDocumentos.doc_codigo=ccVentac.doc_codigo;
AND empDocumentos.doc_modulo='CXC';
ORDER BY 1,3
Entonces, el código del evento BUSCAR de mi formulario, queda de esta manera:
lSelect=FILETOSTR(gRutaSQL+'sql_DocsCobrar003.sql')
lSelect=oFun.ParaToStr(lSelect,curBase.cli_rif,lDocPresup+lDocOrden+lDocPend)
lCursor="curPresupuesto"
oVFPSclient.SelectToCursor(lSelect,lCursor)
IF !EMPTY(doc_codigo)
DO FORM buscaPresupuestos TO lOk
IF lOk
***
***
***
ENDIF
ENDIF
En el caso de la consulta de Horacio, debería encadenar todas las combinaciones CLIENTES+DOCUMENTOS seleccionadas y, entonces, realizar la sustitución con el evento oFun.ParaToStr.