Select en un DW en base a un dato externo

Estoy trabajando con PW7 y este es mi problema:
Tengo una ventana con un DataWindow que muestra las compras realizadas por la empresa, no necesito que las muestre todas (imagina que se hagan 1800 compras en un año, no quiero mostrar todo eso), me gustaría hacerlo por meses, incluyendo el mes en un SingleLineEdit o que me pida dos fechas (p. Ej.: Desde POR hasta Y).
¿Cómo puedo hacer ésto?

1 respuesta

Respuesta
1
Tienes varias maneras de hacer eso, tratare de explicártelo por pasos
paso 1. debes agregar como parámetros de entrada al dw las dos fechas FechaDesde y fecha Hasta (agrégaselas al retrieve), con eso las tienes vigentes en el dw
paso 2. si lo que tienes asociado al dw es un select lo puedes agregar en la construcción del where del select
paso 3. si lo tienes asociado a un store procedure, debes agregar al sp y luego a la llamada del sp (propiedades-store procedure)
Paso 4. también puedes asociar al menu de filtros (\rows\filters) y ahí hacer la selección
Las dos primeras opciones se ven interesantes, en la primera: ¿Los parámetros de entrada podría tomarlos desde la propia ventana o tendría que hacerlo por código? ¿Podrías darme un ejemplo?
En la segunda opción, podría declarar en el where que muestre las compras del mes actual, así podría digamos imprimir un reporte al final de cada mes. La sintaxis del where sería asi: WHERE "compra". "fecha_compra" = (Month(Today())) ? Si quisiera hacer una consulta de un mes anterior al actual, ¿cómo podría hacerlo desde la ventana?
Paso 1.
int l_filas
l_fila=dw_1.retrieve (datetime(em_FechaDesde.text),datetime(em_Fechahasta.text))
Con esto le pasas al dw el valor de los datetime que pides en la windows en un edit mask, por default te sugiero le pegues al edit mask la fecha del día 1 del mes actual y el ultimo día del mes actual, así que te queda paramétrico y el usuario puede cambiar la fecha a su voluntad, también puedes solo pedir el mes y año pero tendrías que sacar el día 1 y el día final en cada caso y verificar que no sea un año bisiesto, hay para todos los casos que quieras
Paso 2.
Como ya el dw recibió las 2 variables de fecha le agregas al dw opción sql, en el where defines argumentos tipo datetime y los asocias a los valores de la tabla que contiene la fecha, si fuese un sql syntax diría algo así como esto :
Select dato1, dato2, Fecha1 from tabla where Fecha1 between parFechaDesde and parFechaHasta;
Reemplaza el between según tu bdd que tengas instalada que puede ser también >= y <=, eso depende de tu bdd

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas