Announcement

Collapse
No announcement yet.

Cambiar código de la sentencia SQL del Grid

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Cambiar código de la sentencia SQL del Grid

    Hola compañeros!

    Tengo una sentencia sql y quiero cambiar algunos valores de esa sentencia. He pensado poder hacerl esos cambios en el onScriptInit. Esos cambios los quiero hacer segun el año que eligan los usuarios mediante un SELECT con los años 2018 y 2019.

    Mi sentencia es la siguiente:

    SELECT u.pk_user, u.name, u.apellidos, u.dias_disponibles_anterior,
    (u.dias_disponibles_anterior - COALESCE(dias_disfrutados,0) - COALESCE(ausencias,0)) AS dias_libres,
    COALESCE(dias_disfrutados,0) as dias_disfrutados,
    COALESCE(dias_baja,0) as dias_baja,
    COALESCE(dias_extra,0) as dias_extra,
    COALESCE(ausencias,0) as dias_ausencias,
    COALESCE(permisos,0) as dias_permisos,
    COALESCE(rechazadas,0) as solicitud_rechazadas
    FROM (

    select u.pk_user, u.name, u.apellidos, u.dias_disponibles_anterior
    , sum( case when s.fk_estado_sup = 1
    and (s.fk_motivo = 1)
    then N_DIASSOLICITADOS else 0 end ) as dias_disfrutados
    , sum( case when FK_MOTIVO = 4 and FK_ESTADO_SUP = 1
    then N_DIASSOLICITADOS else 0 end ) as dias_baja
    , sum( case when FK_MOTIVO = 2
    and (s.fk_estado_sup = 1 or s.fk_estado_sup = 2)
    then N_DIASSOLICITADOS else 0 end ) as dias_extra
    , sum( case when FK_MOTIVO = 3
    and (s.fk_estado_sup = 1)
    then N_DIASSOLICITADOS else 0 end ) as ausencias
    , sum( case when FK_MOTIVO = 5
    then N_DIASSOLICITADOS else 0 end ) as permisos
    , sum( case when FK_ESTADO_SUP = 2
    then 1 else 0 end) as rechazadas

    FROM sec_users u
    left join solicitud s on s.fk_empleado = u.login
    where ano_diassolicitados = 2018
    group by u.pk_user) u


    Si los usuarios en el SELECT seleccionan 2018, la sentencia se queda tal y como está, pero si seleccionan 2019 quiero cambiar lo siguiente:

    En la sentencia, donde pone u.dias_disponibles_anterior, cambiarlo por u.dias_disponibles.
    En la sentencia, donde pone 2018, lo quiero cambiar por 2019.

    ¿Alguna idea de como poder hacer esos cambios segun el SELECT?

  • #2
    Puede hacer el reporte para que inicie en modo de búsqueda por el año que especifique el usuario.

    Comment


    • #3
      Lo he intentado, pero aún así de una forma u otra debo cambiar el código SQL y nose como

      Comment


      • #4
        sc_select_where(add)
        Is possible, during grid execution time to add a field/condition to the search WHERE clause.



        Ex. 1: It adds the contente between the quotes (") in the grids select.
        if (empty({sc_where_current}))
        {
        sc_select_where(add) = "where campoX > [global]";
        }
        else
        {
        sc_select_where(add) = "AND campoX > [global_variable]";
        }
        Note: This command must be in the context of "process before the select".

        Macro Scope
        Aplicación Gráfica Aplicación Grid
        onScriptInit onHeader
        onScriptInit
        Last edited by alvagar; 02-11-2019, 05:46 PM.

        Comment

        Working...
        X