Archive for 26 diciembre 2007

Murcie….GALÓ!

26 diciembre, 2007
Anuncios

Nooooooooo, interneeeeet…!

25 diciembre, 2007

A quien no le a pasado, que va a revisar un link interesante que le han enviado por mail el día anterior, y entonces…

Respuesta a Horacio

13 diciembre, 2007

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.

Variables dentro de los SelectToXX

12 diciembre, 2007

Hay momento en los cuales necesitamos realizar consultas SQL al VFPServer utilizando como filtro algunas variables. Por supuesto, esto nos genera un cierto problemita, ya que las consultas se envían al servidor como cadenas de textos.

Afortunadamente, tenemos el evento ParaToStr del objeto oFun. Este evento nos permite incluir fácilmente los valores deseados dentro de las cadenas de textos que definen las consultas.

Por ejemplo, si necesitamos consultar la información de un cliente X, podemos tener la siguiente consulta en un archivo de texto:

SELECT ccClient.cli_rif   ,;
	ccClient.cli_nit   ,;
	ccClient.cli_nombre,;
	ccClient.cli_dir   ,;
	ccClient.cli_email ,;
	ccClient.cli_criter,;
	ccClient.cli_dcredi,;
	ccClient.cli_limite,;
	ccClient.cli_precio,;
	ccClient.cli_iva   ,;
	ccClient.cli_descto,;
	ccClient.ven_codigo,;
	ccVendedor.ven_nombre ;
  FROM ccClient,ccVendedor;
 WHERE ccClient.cli_rif=#1;
   AND ccVendedor.ven_codigo=ccClient.ven_codigo

Entonces, en nuestro evento de búsqueda, podemos tener el siguiente código:

lSelect=FILETOSTR('\solprotec\sql\sql_Clientes002.sql')
lSelect=oFun.ParaToStr(lSelect,THIS.Value)
lCursor1="curClientes"
=oVFPSclient.SelectToCursor(lSelect,lCursor1)

Con este evento ParaToStr, podemos hacer hasta 50 sustituciones dentro de una misma cadena de texto.