Diferencia entre revisiones de «Planta de Liq. Generales de la UNC»

De Wiki
Saltar a: navegación, buscar
(Programa "prg_fec_permanencia.prg")
 
(No se muestran 11 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
==FORMULARIO==
+
==<div style="text-align:center;color:blue">'''FORMULARIO'''</div>==
 +
 
 +
===planta.scx===
  
 
[[Imagen:Planta.PNG]]
 
[[Imagen:Planta.PNG]]
Línea 6: Línea 8:
 
[[Imagen:Planta2.PNG]]
 
[[Imagen:Planta2.PNG]]
  
==INFORME==
+
==<div style="text-align:center;color:blue">'''INFORME'''</div>==
  
 +
===planta.frx===
  
 +
[[Imagen:frx_Planta.PNG]]
  
==CÓDIGO==
+
===d_planta.frx===
 +
 
 +
 
 +
[[Imagen:D_planta.PNG]]
 +
 
 +
===d_lic.frx===
 +
 
 +
[[Imagen:D_lic.PNG]]
 +
 
 +
===renova.frx===
 +
 
 +
[[Imagen:Renova.PNG]]
 +
 
 +
==<div style="text-align:center;color:blue">'''CÓDIGO'''</div>==
  
  
Línea 148: Línea 165:
 
   return
 
   return
 
   *------------------------------------------
 
   *------------------------------------------
 +
 +
===Programa "planta_s.prg"===
 +
 +
 
 +
  *public fechaL ,fecha
 +
  public vm_legajo,vm_categ,vm_baja,fecha,fechal,descuenta,vm_cargo,vm_caracter
 +
  descuenta ="N"
 +
  SET DATE TO FRENCH
 +
  SET CENTURY ON
 +
  *set excl on
 +
 
 +
  *------base donde se carga los cargos con licencia
 +
  tabla= vm_bases_informes + "horaslic"
 +
  create table &tabla free (categ C (4),agrup c(4),horas n(6),caracter c(4),;
 +
                        depend c(3),horas_l n(6),legajo c(6),cargo c(9),tipo c(4),;
 +
                        fec_desde d(8),fec_hasta d(8))
 +
                       
 +
  *-------
 +
  tabla= vm_bases_informes + "plantale"
 +
  if used ("plantale")
 +
    sele plantale
 +
    use
 +
  endif
 +
  sele sele(1) 
 +
  use &tabla excl
 +
  index on legajo tag d_legajo additive
 +
  index on cargo tag d_cargo
 +
  *----------------------------------------------------------------------------------
 +
  tabla= vm_bases_informes + "dh21uni"
 +
  if used ("dh21uni")
 +
    sele dh21uni
 +
    use
 +
  endif
 +
  sele sele(1) 
 +
  use &tabla excl
 +
  index on nro_cargo tag dh21car
 +
  *---------base con renovaciones de cargo****
 +
  tabla= vm_bases_informes + "renova"
 +
  create table &tabla free (categ C (4),agrup c(4),horas n(6),caracter c(4),;
 +
                              depend c(3),legajo n(6), alta d(8), baja d(8) null ,cargo n(9),carant c(4))
 +
  if used ('renova')
 +
    sele renova
 +
    use
 +
  endif
 +
  sele sele(1) 
 +
  use &tabla excl
 +
  index on depend+alltrim(str(legajo)) tag lis_renova
 +
  *-----------------------------------------------------------------------------------------
 +
  *---filtro
 +
  *store "2003-06-30" to fechaL &&fecha para licencias s/g
 +
  *store {^2003/06/01} to fecha  &&fecha para cargos vigentes
 +
 
 +
  *----------------------------------------------------------------------------------------
 +
 
 +
 
 +
  sele dh03
 +
  set filter to (fec_baja >= &fecha)  or (empty(fec_baja)=.t.) or isnull(fec_baja)
 +
  index on padl(alltrim(str(nro_legaj)),6,"0")+ padl(alltrim(codc_categ),3,"0")+padl(alltrim(str(nro_cargo)),9,"0") tag dh03L
 +
 
 +
 
 +
 
 +
  *-----------------------------------------------
 +
 
 +
 
 +
  *----------------------------------
 +
  cadenasql=  "select *";
 +
              + " from dl02"
 +
  nom5=sys(3)
 +
  create sql view &nom5;
 +
  connection con_pampasql;
 +
  as &cadenasql
 +
 
 +
  if !used('v_dl02')
 +
    sele sele(1) 
 +
    use &nom5 alias v_dl02
 +
  endif
 +
 
 +
  tabla= vm_bases_informes + "dl02"
 +
  select *;
 +
  from v_dl02;
 +
  into table &tabla
 +
  *-----
 +
  if used ('dl02')
 +
    sele dl02
 +
    use
 +
  endif
 +
  sele sele(1) 
 +
  use &tabla excl
 +
 
 +
 
 +
  *---------------------------------------------------
 +
  *-----------base donde se carga la planta
 +
  tabla= vm_bases_informes + "planta"
 +
  if used ('planta')
 +
    sele planta
 +
    use
 +
  endif
 +
  sele sele(1) 
 +
  use &tabla excl
 +
  *---------------------------------------------------
 +
 
 +
 
 +
 
 +
  *--licencias de legajos en periodo informado por el usuario
 +
        select distinct dh05.nro_legaj,dh05.fec_desde,;
 +
                        dh05.fec_hasta, dh05.nrovarlice, dl02.codn_tipo_;
 +
              from dh05,dL02,dh03 where dh05.nro_cargo = 0 and ;
 +
                    dh05.nro_legaj = dh03.nro_legaj and;
 +
                    dl02.nrovarlice =dh05.nrovarlice and;
 +
                    dl02.porcremune  = 0 and dh05.fec_hasta >=&fechaL;
 +
                    into table vm_bases_informes+"V_L"
 +
   
 +
       
 +
  *--licencia de cargos
 +
            select distinct dh05.nro_cargo , dh05.fec_desde,;
 +
                            dh05.fec_hasta, dh05.nrovarlice, dl02.codn_tipo_;
 +
                    from dh05,dL02,dh03 where dh05.nro_legaj = 0 and ;
 +
                        dh05.nro_cargo = dh03.nro_cargo and ;
 +
                        dl02.nrovarlice = dh05.nrovarlice and;
 +
                        dl02.porcremune  = 0 and dh05.fec_hasta >=&fechaL;
 +
                        into table vm_bases_informes+"V_C"
 +
 
 +
  *----------------------------
 +
 
 +
  *--tabla para la vista de licencias por cargos     
 +
  tabla= vm_bases_informes+"lic_c" 
 +
  select *;
 +
  from V_C;
 +
  into table &tabla
 +
  index on nro_cargo tag cargo
 +
  *---tabla para la vista de licencias por legajos
 +
  tabla= vm_bases_informes+"lic_l" 
 +
  select *;
 +
  from V_L;
 +
  into table &tabla
 +
  index on nro_legaj tag legajo
 +
 
 +
  *-------------------------------------------------
 +
 
 +
  *-------lee el dh03 con cargos vigentes al mes y si tienen subrogancia(no docente) lo agrega
 +
  *en la plantay plantale
 +
  sele dh03
 +
 
 +
  scan
 +
    SCATTER MEMVAR
 +
    if m.nro_legaj =39100
 +
    * set step on
 +
    endif
 +
    if dh03.codc_carac = "SUBR"
 +
        sele planta
 +
        set order to planta
 +
        if !seek(alltrim(dh03.codc_categ)+alltrim(dh03.codc_uacad)+alltrim(dh03.codc_carac)+alltrim(dh03.codc_agrup))
 +
          *primera vez
 +
          append blank
 +
          repla categ    with dh03.codc_categ
 +
          repla depend  with alltrim(dh03.codc_uacad)
 +
          repla caracter with alltrim(dh03.codc_carac)
 +
          repla agrup    with alltrim(dh03.codc_agrup)
 +
          repla horas    with (dh03.hs_dedic)
 +
          repla ocupados with 1
 +
        else
 +
          repla ocupados with ocupados+1 
 +
          repla horas    with horas+dh03.hs_dedic
 +
        endif
 +
            sele plantale
 +
            append blank
 +
            repla legajo  with padl(alltrim(str(dh03.nro_legaj)),6,"0")
 +
            repla cargo  with padl(alltrim(str(dh03.nro_cargo)),9,"0")
 +
            repla categ    with dh03.codc_categ
 +
            repla depend  with alltrim(dh03.codc_uacad)
 +
            repla caracter with alltrim(dh03.codc_carac)
 +
            repla agrup    with alltrim(dh03.codc_agrup)
 +
            repla horas    with (dh03.hs_dedic)
 +
      endif 
 +
      do buscolic  &&llama al procedimiento que busca lic sin goce
 +
      sele dh03
 +
  endscan
 +
  *----------------
 +
 
 +
  *----lee del dh21 los cargos pagados y controla si tienen cargos renovados y si notiene licencia
 +
  *---lo resta de la planta
 +
  sele dh21uni  &&son los cargos pagados
 +
  go top
 +
    scan
 +
      scatter memvar
 +
      vm_regis=recno()
 +
      sele dh03 &&esta filtrada por cargos vigentes
 +
      set order to cargo
 +
      if seek (m.nro_cargo)
 +
          if m.nro_cargo=76304
 +
  *      set step on
 +
          endif 
 +
          vm_legajo = dh03.nro_legaj
 +
          vm_categ    = ALLTRIM(dh03.codc_categ)
 +
          vm_baja    = dh03.fec_baja
 +
          vm_depend  = ALLTRIM(dh03.codc_uacad)
 +
          vm_caracter = ALLTRIM(dh03.codc_carac)
 +
          vm_cargo    = padl(alltrim(str(dh03.nro_cargo)),9,"0")
 +
          SET ORDER TO DH03L
 +
          GO TOP
 +
          if SEEK(PADL(ALLTRIM(STR(vm_legajo)),6,"0")+padl(alltrim(vm_categ),3,"0"))
 +
            SCAN WHILE vm_legajo = dh03.nro_legaj and vm_categ = alltrim(dh03.codc_categ) and vm_depend = alltrim(dh03.codc_uacad)
 +
            if !empty (vm_baja )
 +
                if (vm_baja + 1) = dh03.fec_ALTA
 +
                  sele dh21uni
 +
                  set order to dh21car
 +
                  go top
 +
                  if seek(dh03.nro_cargo)
 +
                    sele renova
 +
                    append blank
 +
                    repla categ    with dh03.codc_categ
 +
                    repla depend    with alltrim(dh03.codc_uacad)
 +
                    if vm_caracter # dh03.codc_carac
 +
                      repla carant  with alltrim(vm_caracter)
 +
                    endif 
 +
                    repla caracter  with alltrim(dh03.codc_carac)
 +
                    repla agrup    with alltrim(dh03.codc_agrup)
 +
                    repla horas    with (dh03.hs_dedic)
 +
                    repla legajo    with dh03.nro_legaj
 +
                    repla alta      with dh03.fec_alta
 +
                    repla baja      with dh03.fec_baja
 +
                    repla cargo    with dh03.nro_cargo
 +
                    sele plantale
 +
                    set order to d_cargo
 +
                    if seek (vm_cargo) && si lo encuentra significa que tiene dias y dias y lo debe restar de planta detallada
 +
                      dele
 +
                      pack
 +
                    endif 
 +
                    @ 2,0  clear to 2,60
 +
                    @ 2,45 say "Fin del Proceso"
 +
                    *wait windows "Fin del proceso" nowait
 +
                  endif 
 +
                endif
 +
              endif
 +
            sele dh03
 +
            endscan
 +
          endif
 +
           
 +
      endif 
 +
      sele dh21uni
 +
      goto vm_regis
 +
  endscan
 +
   
 +
  *----esta parte lee del renova hacia el dh21uni para detectar si existen--------
 +
  *----cargos renovados que se hayan pagado en el mismo mes en la misma dep.
 +
  sele renova
 +
  go top
 +
  scan
 +
    banlic=0
 +
    scatter memvar
 +
    sele dh21uni
 +
    set order to dh21car
 +
    if seek (m.cargo)
 +
      sele planta
 +
      set order to planta
 +
      if !seek(alltrim(m.categ)+alltrim(m.depend)+alltrim(m.caracter)+alltrim(m.agrup))
 +
  *!*       append blank
 +
  *!*       repla categ    with m.categ
 +
  *!*       repla depend  with m.depend
 +
  *!*       repla caracter with m.caracter
 +
  *!*       repla agrup    with m.agrup
 +
  *!*       if (m.horas) <> 0
 +
  *!*         repla renova with m.horas &&acumulo las hs renovadas
 +
  *!*       else
 +
  *!*        repla renova with 1
 +
  *!*       endif
 +
      else  &&si ya existe la categoria en el pampa
 +
        ***se fija si tiene licencias del cargo
 +
        sele lic_c
 +
        set order to cargo
 +
        if seek (m.cargo) &&si un cargo renovado tiene licencia de cargo lo cargo como renovado y no lo resto de los cargos ocupados
 +
          banlic=1 
 +
          sele planta
 +
          if (m.horas) <> 0
 +
            repla renova  with renova + m.horas
 +
          else
 +
            repla renova  with renova+1 
 +
          endif
 +
        else
 +
          ***se fija si tiene licencias del legajo
 +
          sele lic_l
 +
          set order to legajo
 +
          if seek (m.legajo) &&si un cargo renovado tiene licencia de legajo lo cargo como renovado y no lo resto de los cargos ocupados
 +
            banlic=1 
 +
            sele planta
 +
            if (m.horas) <> 0
 +
              repla renova  with renova + m.horas
 +
            else
 +
              repla renova  with renova+1 
 +
            endif 
 +
          else
 +
            **si un cargo renovado no tiene licencia lo cargo como renovado y lo resto de la planta
 +
            sele planta
 +
            if empty(alltrim(m.carant))=.t.
 +
              if (m.horas) <> 0
 +
                repla horas    with horas - (m.horas)  &&le resto las horas de los cargos renovados
 +
                repla renova  with renova + m.horas
 +
              else
 +
                repla ocupados with ocupados - 1 &&le resto las personas de los cargos renovados
 +
                repla renova  with renova+1 
 +
              endif
 +
            else
 +
              if (m.horas) <> 0
 +
                repla renova  with renova + m.horas
 +
              else
 +
                repla renova  with renova+1 
 +
              endif
 +
            endif
 +
          endif
 +
        endif
 +
        **busco por caracter cambiado
 +
        sele planta
 +
        set order to planta
 +
        go top
 +
        if seek(alltrim(m.categ)+alltrim(m.depend)+ m.carant + alltrim(m.agrup) )
 +
          if (m.horas) <> 0
 +
            repla planta.horas with horas - (m.horas)
 +
          else
 +
            repla planta.ocupados with ocupados -1 
 +
          endif 
 +
        endif
 +
      endif
 +
    endif
 +
    sele renova
 +
  endscan
 +
 
 +
  *------------
 +
 
 +
 
 +
 
 +
 
 +
  *-------procedimientos
 +
  **no corre mas
 +
  ***-----busca si tiene licencias sin goce y las carga en otro campo en la planta sin restar nada
 +
  ****no corre mas
 +
  **si tiene licencias sin goce o sea dias y dias lo resta de cargos ocupados
 +
  procedure buscolic
 +
 
 +
  **viene del dh03
 +
  sele lic_l  &&licencia por legajo
 +
  set order to legajo
 +
  if seek (m.nro_legaj) && si tiene lic por legajo
 +
    **si tiene licencias s/g cargo las horas y ocupados con licencias
 +
    sele plantale
 +
    set order to d_legajo
 +
    if seek (padl(alltrim(str(m.nro_legaj)),6,"0")) && si lo encuentra significa que tiene dias y dias y lo debe restar de planta
 +
      descuenta = "S"
 +
      **borro de plantale
 +
      delete
 +
    else
 +
      descuenta = "N" 
 +
    endif   
 +
    sele planta
 +
    set order to planta
 +
        if !seek(alltrim(dh03.codc_categ)+alltrim(dh03.codc_uacad)+alltrim(dh03.codc_carac)+alltrim(dh03.codc_agrup))
 +
          *primera vez
 +
         
 +
          append blank
 +
          repla categ    with dh03.codc_categ
 +
          repla depend    with alltrim(dh03.codc_uacad)
 +
          repla caracter  with alltrim(dh03.codc_carac)
 +
          repla agrup    with alltrim(dh03.codc_agrup)
 +
          if dh03.hs_dedic <> 0
 +
            repla horas_l    with horas_l+dh03.hs_dedic
 +
          else
 +
            repla conlic with conlic+1 
 +
          endif
 +
        else
 +
          if dh03.hs_dedic <> 0
 +
            repla horas_l    with horas_l+dh03.hs_dedic
 +
          else
 +
            repla conlic with conlic+1 
 +
          endif
 +
          if descuenta = "S"
 +
            if dh03.hs_dedic <> 0
 +
                repla horas    with horas-dh03.hs_dedic
 +
            else
 +
                repla ocupados with ocupados-1 
 +
            endif
 +
              descuenta = "N"
 +
          endif
 +
        endif
 +
        if (alltrim(lic_l.codn_tipo_) = "999" or alltrim(lic_l.codn_tipo_) = "996")
 +
          repla planta.L9969 with planta.L9969 + 1
 +
          repla planta.H9969 with planta.H9969 + dh03.hs_dedic
 +
         
 +
        endif
 +
        if (alltrim(lic_l.codn_tipo_) = "9991" )
 +
          repla planta.L9991 with planta.L9991 + 1
 +
          repla planta.H9991 with planta.H9991 + dh03.hs_dedic
 +
         
 +
        endif
 +
        sele horaslic
 +
        append blank
 +
        repla categ    with dh03.codc_categ
 +
        repla depend    with alltrim(dh03.codc_uacad)
 +
        repla caracter  with alltrim(dh03.codc_carac)
 +
        repla agrup    with alltrim(dh03.codc_agrup)
 +
        repla horas_l    with (dh03.hs_dedic)
 +
        repla legajo    with padl(alltrim(str(dh03.nro_legaj)),6,"0")
 +
        repla cargo    with padl(alltrim(str(dh03.nro_cargo)),9,"0")
 +
        repla tipo      with lic_l.codn_tipo_
 +
        repla fec_desde with lic_l.fec_desde
 +
        repla fec_hasta with lic_l.fec_hasta
 +
       
 +
  endif
 +
  sele lic_c
 +
  set order to cargo
 +
  if nro_cargo = 109343
 +
  * set step on
 +
  endif
 +
 
 +
  if seek (m.nro_cargo)
 +
    **si tiene licencias s/g cargo las horas y ocupados con licencias
 +
    sele plantale
 +
    set order to d_cargo
 +
    if seek (padl(alltrim(str(m.nro_cargo)),9,"0")) && si lo encuentra significa que tiene dias y dias y lo debe restar de planta
 +
      descuenta = "S"
 +
      **borro de plantale
 +
      delete
 +
    else
 +
      descuenta = "N" 
 +
    endif   
 +
    sele planta
 +
    set order to planta
 +
        if !seek(alltrim(dh03.codc_categ)+alltrim(dh03.codc_uacad)+alltrim(dh03.codc_carac)+alltrim(dh03.codc_agrup))
 +
          *primera vez
 +
          append blank
 +
          repla categ    with dh03.codc_categ
 +
          repla depend  with alltrim(dh03.codc_uacad)
 +
          repla caracter with alltrim(dh03.codc_carac)
 +
          repla agrup    with alltrim(dh03.codc_agrup)
 +
          if dh03.hs_dedic <> 0
 +
            repla horas_l    with horas_l+dh03.hs_dedic
 +
          else
 +
            repla conlic with conlic+1 
 +
          endif
 +
         
 +
        else
 +
          if dh03.hs_dedic <> 0
 +
            repla horas_l    with horas_l+dh03.hs_dedic
 +
          else
 +
           
 +
            repla conlic with conlic+1 
 +
          endif
 +
        endif
 +
        if descuenta = "S"
 +
            if dh03.hs_dedic <> 0
 +
                repla horas    with horas-dh03.hs_dedic
 +
            else
 +
                repla ocupados with ocupados-1 
 +
            endif
 +
              descuenta = "N"
 +
        endif
 +
        **si es licencia 999 o 996 no resta nada del total ocupado
 +
        if (alltrim(lic_c.codn_tipo_) = "999" or alltrim(lic_c.codn_tipo_) = "996")
 +
          repla planta.L9969 with planta.L9969 + 1
 +
          repla planta.H9969 with planta.H9969 + dh03.hs_dedic
 +
        endif
 +
        if (alltrim(lic_c.codn_tipo_) = "9991" )
 +
          repla planta.L9991 with planta.L9991 + 1
 +
          repla planta.H9991 with planta.H9991 + dh03.hs_dedic
 +
         
 +
        endif
 +
 
 +
        sele horaslic
 +
        append blank
 +
        repla categ    with dh03.codc_categ
 +
        repla depend    with alltrim(dh03.codc_uacad)
 +
        repla caracter  with alltrim(dh03.codc_carac)
 +
        repla agrup    with alltrim(dh03.codc_agrup)
 +
        repla horas_l    with (dh03.hs_dedic)
 +
        repla legajo    with padl(alltrim(str(dh03.nro_legaj)),6,"0")
 +
        repla cargo    with padl(alltrim(str(dh03.nro_cargo)),9,"0")
 +
        repla tipo      with lic_c.codn_tipo_
 +
        repla fec_desde with lic_c.fec_desde
 +
        repla fec_hasta with lic_c.fec_hasta
 +
  endif
 +
  return
 +
 
 +
  *----------------------
 +
  *-----destruyo las vista
 +
  sele 1
 +
  use
 +
  drop view &nom1
 +
  *-------
 +
  sele 1
 +
  use
 +
  drop view &nom3
 +
  sele 1
 +
  use
 +
  drop view &nom2
 +
 +
  
 
===Botón "Ejecutar" (Command1)===
 
===Botón "Ejecutar" (Command1)===
Línea 261: Línea 772:
 
   *store {^2003/06/01} to fecha  &&fecha para cargos vigentes
 
   *store {^2003/06/01} to fecha  &&fecha para cargos vigentes
  
===Botón "Cancelar" (btnCancelar)===
+
===Botón "Listado"(Command3)===
 
+
 
   THISFORM.Release
+
  *--seteo
 
+
    set safe off
===Botón "Ayuda"(btnAyuda)===
+
    set century on
 
+
    set date to french
 
+
    vm_mes =(thisform.text1.value)
===Combo "Año" (cmbAnio)===
+
    vm_anio = (thisform.text2.value)
 
+
 
 +
  *-------------------------------------------------------
 +
    tabla= vm_bases_informes + "planta"
 +
    if used ("planta")
 +
        sele planta
 +
        use
 +
    endif
 +
    sele sele(1) 
 +
    use &tabla excl
 +
    set order to listado
 +
   
 +
      tabla= vm_bases_informes + "plantale"
 +
      if used ("plantale")
 +
          sele plantale
 +
          use
 +
      endif
 +
      sele sele(1) 
 +
      use &tabla excl
 +
      index on padl(alltrim(depend),3,"0")+padl(alltrim(categ),4,"0")+alltrim(caracter)+padl(alltrim(legajo),6,"0") tag d_lista
 +
   
 +
      tabla= vm_bases_informes + "horaslic"
 +
      if used ("horaslic")
 +
          sele horaslic
 +
          use
 +
      endif
 +
      sele sele(1) 
 +
      use &tabla excl
 +
      index on padl(alltrim(depend),3,"0")+padl(alltrim(categ),4,"0")+alltrim(caracter) tag d_liclis
 +
 
 +
 
 +
 
 +
  *----------------------------------------------------------------------------
 +
  *******pagina 1
 +
  if thisform.pageframe1.activepage = 1
 +
  &&planta
 +
    if thisform.pageframe1.page1.optiongroup1.option1.value = 1 &&planta por depend
 +
      if !empty(alltrim(thisform.pageframe1.page1.text3.value))
 +
      sele planta
 +
      set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text3.value ),2,"0")
 +
      report format vm_informes+"planta.frx" preview
 +
      else
 +
        messagebox ("Ingrese N° de dependencia.")
 +
        thisform.pageframe1.page1.text3.setfocus
 +
      endif 
 +
    endif
 +
   
 +
    if thisform.pageframe1.page1.optiongroup1.option2.value = 1 &&planta todas dep
 +
        sele planta
 +
        set filter to
 +
        report format vm_informes+"planta.frx" preview
 +
    endif
 +
   
 +
  &&detalle planta por depend
 +
  do case
 +
    *--depend
 +
case thisform.pageframe1.page1.check1.value = 1  and thisform.pageframe1.page1.check2.value = 0  and thisform.pageframe1.page1.check3.value=0
 +
      if !empty(alltrim(thisform.pageframe1.page1.text4.value))
 +
        sele plantale
 +
        set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text4.value ),2,"0")
 +
        report format vm_informes+"d_planta.frx" preview
 +
      else
 +
        messagebox ("Ingrese N° de dependencia.")
 +
        thisform.pageframe1.page1.text4.setfocus
 +
      endif
 +
 
 +
  *-----categoria
 +
  case thisform.pageframe1.page1.check1.value = 0  and thisform.pageframe1.page1.check2.value = 1 and thisform.pageframe1.page1.check3.value=0
 +
        if !empty(alltrim(thisform.pageframe1.page1.text5.value))
 +
          sele plantale
 +
          set filter to  padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text5.value  ),4,"0")
 +
          report format vm_informes+"d_planta.frx" preview
 +
        else
 +
          messagebox ("Ingrese Categoria")
 +
          thisform.pageframe1.page1.text5.setfocus
 +
        endif
 +
       
 +
    *------caracter
 +
  case thisform.pageframe1.page1.check1.value = 0  and thisform.pageframe1.page1.check2.value = 0 and thisform.pageframe1.page1.check3.value=1
 +
          if !empty(alltrim(thisform.pageframe1.page1.text6.value))
 +
                sele plantale
 +
                set filter to  alltrim(caracter) = alltrim(thisform.pageframe1.page1.text6.value)
 +
                report format vm_informes+"d_planta.frx" preview
 +
          else
 +
                messagebox ("Ingrese Caracter")
 +
              thisform.pageframe1.page1.text6.setfocus
 +
          endif
 +
       
 +
    *--depend+categ
 +
  case thisform.pageframe1.page1.check1.value = 1  and thisform.pageframe1.page1.check2.value = 1 and thisform.pageframe1.page1.check3.value=0
 +
      if !empty(alltrim(thisform.pageframe1.page1.text4.value))
 +
        if !empty(alltrim(thisform.pageframe1.page1.text5.value))
 +
          sele plantale
 +
          set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text4.value ),2,"0") and padl(alltrim(categ),4,"0") =    
 +
  padl(alltrim(thisform.pageframe1.page1.text5.value  ),4,"0")
 +
            report format vm_informes+"d_planta.frx" preview
 +
        else
 +
          messagebox ("Ingrese Categoria")
 +
          thisform.pageframe1.page1.text5.setfocus
 +
        endif
 +
        else
 +
          messagebox ("Ingrese N° de dependencia.")
 +
          thisform.pageframe1.page1.text4.setfocus
 +
        endif
 +
  *----dep+caracter
 +
    *-depend+caracter
 +
  case thisform.pageframe1.page1.check1.value = 1  and thisform.pageframe1.page1.check2.value = 0 and thisform.pageframe1.page1.check3.value=1
 +
        if !empty(alltrim(thisform.pageframe1.page1.text4.value))
 +
            if !empty(alltrim(thisform.pageframe1.page1.text6.value))
 +
                sele plantale
 +
                set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text4.value ),2,"0");
 +
                        and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text6.value)
 +
                report format vm_informes+"d_planta.frx" preview
 +
            else
 +
                messagebox ("Ingrese Caracter")
 +
                thisform.pageframe1.page1.text6.setfocus
 +
            endif
 +
        else
 +
          messagebox ("Ingrese N° de dependencia.")
 +
          thisform.pageframe1.page1.text4.setfocus
 +
        endif   
 +
 
 +
 
 +
    *-depend+categ+caracter
 +
  case thisform.pageframe1.page1.check1.value = 1  and thisform.pageframe1.page1.check2.value = 1 and thisform.pageframe1.page1.check3.value=1
 +
        if !empty(alltrim(thisform.pageframe1.page1.text4.value))
 +
          if !empty(alltrim(thisform.pageframe1.page1.text5.value))
 +
              if !empty(alltrim(thisform.pageframe1.page1.text6.value))
 +
                sele plantale
 +
                set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text4.value ),2,"0");
 +
                and padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text5.value  ),4,"0") ;
 +
                and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text6.value)
 +
                report format vm_informes+"d_planta.frx" preview
 +
              else
 +
                messagebox ("Ingrese Caracter")
 +
          thisform.pageframe1.page1.text6.setfocus
 +
              endif
 +
          else
 +
            messagebox ("Ingrese Categoria")
 +
          thisform.pageframe1.page1.text5.setfocus
 +
          endif
 +
        else
 +
          messagebox ("Ingrese N° de dependencia.")
 +
          thisform.pageframe1.page1.text4.setfocus
 +
        endif   
 +
    *-categ+caractr
 +
  case thisform.pageframe1.page1.check1.value = 0  and thisform.pageframe1.page1.check2.value = 1 and thisform.pageframe1.page1.check3.value=1
 +
          if !empty(alltrim(thisform.text5.value))
 +
              if !empty(alltrim(thisform.text6.value))
 +
                sele plantale
 +
                set filter to  padl(alltrim(categ),4,"0") = padl(alltrim(thisform.text5.value  ),4,"0") ;
 +
                and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text6.value)
 +
                report format vm_informes+"d_planta.frx" preview
 +
              else
 +
                messagebox ("Ingrese Caracter")
 +
                thisform.pageframe1.page1.text6.setfocus
 +
              endif
 +
          else
 +
            messagebox ("Ingrese Categoria")
 +
            thisform.pageframe1.page1.text5.setfocus
 +
          endif
 +
       
 +
 
 +
  endcase
 +
 
 +
 
 +
  &&detalle licencias
 +
  do case
 +
    **solo dependencia
 +
  case thisform.pageframe1.page1.check4.value = 1  and thisform.pageframe1.page1.check5.value = 0  and thisform.pageframe1.page1.check6.value=0
 +
      if !empty(alltrim(thisform.pageframe1.page1.text7.value))
 +
      sele horaslic
 +
      set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text7.value ),2,"0")
 +
      report format vm_informes+"d_lic.frx" preview
 +
      else
 +
      messagebox ("Ingrese N° de dependencia.")
 +
      thisform.pageframe1.page1.text7.setfocus
 +
      endif
 +
  *---
 +
  **solo categoria
 +
  case thisform.pageframe1.page1.check4.value = 0  and thisform.pageframe1.page1.check5.value = 1 and thisform.pageframe1.page1.check6.value=0
 +
      if !empty(alltrim(thisform.pageframe1.page1.text8.value))
 +
          sele horaslic
 +
          set filter to padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text8.value  ),4,"0")
 +
          report format vm_informes+"d_lic.frx" preview
 +
      else
 +
          messagebox ("Ingrese Categoria")
 +
          thisform.pageframe1.page1.text8.setfocus
 +
      endif
 +
   
 +
    *--solo caracter 
 +
  case thisform.pageframe1.page1.check4.value = 0  and thisform.pageframe1.page1.check5.value = 0 and thisform.pageframe1.page1.check6.value=1
 +
          if !empty(alltrim(thisform.pageframe1.page1.text9.value))
 +
            sele horaslic
 +
            set filter to alltrim(caracter) = alltrim(thisform.pageframe1.page1.text9.value)
 +
            report format vm_informes+"d_lic.frx" preview
 +
          else
 +
            messagebox ("Ingrese Caracter")
 +
            thisform.pageframe1.page1.text9.setfocus
 +
          endif
 +
       
 +
    ***depe+categoria
 +
  case thisform.pageframe1.page1.check4.value = 1  and thisform.pageframe1.page1.check5.value = 1 and thisform.pageframe1.page1.check6.value=0
 +
      if !empty(alltrim(thisform.pageframe1.page1.text7.value))
 +
        if !empty(alltrim(thisform.pageframe1.page1.text8.value))
 +
          sele horaslic
 +
          set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text7.value ),2,"0") and padl(alltrim(categ),4,"0") =   
 +
  padl(alltrim(thisform.pageframe1.page1.text8.value  ),4,"0")
 +
          report format vm_informes+"d_lic.frx" preview
 +
        else
 +
          messagebox ("Ingrese Categoria")
 +
        thisform.pageframe1.page1.text8.setfocus
 +
        endif
 +
      else
 +
        messagebox ("Ingrese N° de dependencia.")
 +
        thisform.pageframe1.page1.text7.setfocus
 +
      endif 
 +
    **dep+categ+caracter
 +
    case thisform.pageframe1.page1.check4.value = 1  and thisform.pageframe1.page1.check5.value = 1 and isform.pageframe1.page1.check6.value=1
 +
      if !empty(alltrim(thisform.pageframe1.page1.text7.value))
 +
        if !empty(alltrim(thisform.pageframe1.page1.text8.value))
 +
          if !empty(alltrim(thisform.pageframe1.page1.text9.value))
 +
            sele horaslic
 +
            set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text7.value ),2,"0");
 +
            and padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text8.value  ),4,"0") ;
 +
            and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text9.value)
 +
            report format vm_informes+"d_lic.frx" preview
 +
          else
 +
            messagebox ("Ingrese Caracter")
 +
            thisform.pageframe1.page1.text9.setfocus
 +
          endif
 +
        else
 +
            messagebox ("Ingrese Categoria")
 +
            thisform.pageframe1.page1.text8.setfocus
 +
        endif   
 +
        else
 +
        messagebox ("Ingrese N° de dependencia.")
 +
        thisform.pageframe1.page1.text7.setfocus
 +
    endif
 +
  *----dep+caracter
 +
  case thisform.pageframe1.page1.check4.value = 1  and thisform.pageframe1.page1.check5.value = 0 and thisform.pageframe1.page1.check6.value=1
 +
      if !empty(alltrim(thisform.pageframe1.page1.text7.value))
 +
          if !empty(alltrim(thisform.pageframe1.page1.text9.value))
 +
            sele horaslic
 +
            set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text7.value ),2,"0");
 +
            and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text9.value)
 +
            report format vm_informes+"d_lic.frx" preview
 +
          else
 +
            messagebox ("Ingrese Caracter")
 +
            thisform.pageframe1.page1.text9.setfocus
 +
          endif
 +
      else
 +
            messagebox ("Ingrese N° de dependencia.")
 +
            thisform.pageframe1.page1.text7.setfocus
 +
      endif     
 +
     
 +
  *---categ + caracter
 +
  case thisform.pageframe1.page1.check4.value = 0  and thisform.pageframe1.page1.check5.value = 1 and thisform.pageframe1.page1.check6.value=1
 +
        if !empty(alltrim(thisform.pageframe1.page1.text8.value))
 +
          if !empty(alltrim(thisform.pageframe1.page1.text9.value))
 +
            sele horaslic
 +
            set filter to padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text8.value  ),4,"0") ;
 +
            and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text9.value)
 +
            report format vm_informes+"d_lic.frx" preview
 +
          else
 +
            messagebox ("Ingrese Caracter")
 +
            thisform.pageframe1.page1.text9.setfocus
 +
          endif
 +
        else
 +
            messagebox ("Ingrese Categoria")
 +
            thisform.pageframe1.page1.text8.setfocus
 +
        endif   
 +
  endcase
 +
  endif
 +
  set filter to
 +
 
 +
  if thisform.pageframe1.activepage = 2
 +
  ***pagina 2
 +
    if thisform.pageframe1.page2.optiongroup2.option1.value = 1
 +
      if !empty(alltrim(thisform.pageframe1.page2.text3.value))
 +
      sele RENOVA
 +
      set order to lis_renova
 +
      set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page2.text3.value ),2,"0")
 +
      report format vm_informes+"renova.frx" preview
 +
    else
 +
        messagebox ("Ingrese N° de dependencia.")
 +
        thisform.pageframe1.page2.text3.setfocus
 +
      endif 
 +
    endif
 +
   
 +
    if thisform.pageframe1.page2.optiongroup2.option2.value = 1
 +
        sele renova
 +
        set order to lis_renova
 +
        set filter to
 +
        report format vm_informes+"renova.frx" preview
 +
    endif
 +
  endif
 +
  set filter to
  
===Combo "Mes" (cmbMes)===
+
===Botón "Cancelar" (Command2)===
  
 +
  close table all
 +
  thisform.release
  
==MANUAL DEL USUARIO==
+
==<div style="text-align:center;color:blue">'''MANUAL DEL USUARIO'''</div>==
  
  
 
===Procedimiento de Uso===
 
===Procedimiento de Uso===

Revisión actual del 12:36 14 feb 2012

FORMULARIO

planta.scx

Planta.PNG


Planta2.PNG

INFORME

planta.frx

Frx Planta.PNG

d_planta.frx

D planta.PNG

d_lic.frx

D lic.PNG

renova.frx

Renova.PNG

CÓDIGO

Programa "planta.prg"

  SET DELETED ON
  SET DATE TO DMY
  SET TALK OFF
  SET EXCLUSIVE ON
  SET CENTURY ON
  SET SAFE OFF
  
  *--
  **
  *wait windows "Espere un momento por favor. Procesando datos......."+chr(13)+"Puede tardar unos minutos " 
  *------
  tabla= vm_bases_informes + "plantale"
  create table &tabla free (categ C (4),agrup c(4),horas n(6),caracter c(4),;
                            depend c(3),horas_l n(6),legajo c(6),cargo c(9))
  
  
  *-----
  tabla= vm_bases_informes + "planta"
  create table &tabla free (categ C (4),agrup c(4),horas n(6),caracter c(4),;
                            ocupados n(6), depend c(3), conlic n(6),;
                            renova n(6),horas_l n(6),conlic_s n(6),;
                            L9969 n(6),L9991 n(6),descrip c(60),H9969 n(6),H9991 n (6))
  
  *-----------------------------------------------------------------------------
  SELE DISTINC(NRO_CARGO)as nro_cargo,nro_legaj  FROM dh21 INTO table  vm_bases_informes + "dh21uni"
  
  sele dh03
  index on nro_cargo tag cargo
  
  *------------------------------------------------
  *---abro la vista del dh11  actual
  cadenasql=   "select *";
             + " from dh11"
  nom5=sys(3)
  create sql view &nom5;
  connection con_pampasql;
  as &cadenasql
  
  *connection con_pampasql;
  
  if !used('v_11')
   sele sele(1)  
   use &nom5 alias v_11
  endif
  
  tabla= vm_bases_informes + "dh11"
  select *;
  from v_11;
  into table &tabla
  *-----
  if used ('dh11')
    sele dh11
    use
  endif
  sele sele(1)  
  use &tabla excl
  index on val(codc_categ) tag categ
  
  *------------------------------------------------
  tabla= vm_bases_informes + "planta"
  if used ("planta")
    sele planta
    use
  endif
  sele sele(1)  
  use &tabla excl
  index on alltrim(categ)+alltrim(depend)+alltrim(caracter)+alltrim(agrup) tag planta additive
  index on padl(alltrim(depend),3,"0")+padl(alltrim(categ),4,"0") tag listado
  
  
  *---------------------------------------------------------------------------------
  public vm_depend
  store "   " to vm_depend
  
  *********
  **lee del dh21uni los cargos liquidados y saca del dh03 la categoria del agente y lo cuenta
  **como ocupado en planta segun categoria , caracter y agrupamiento
  **carga tambien en plantale el detalle de la persona
  
  SELE DH21UNI  &&nro de cargos distintos
  scan
    SCATTER MEMVAR
    sele dh03
    set order to CARGO
    if seek(m.NRO_CARGO)
      sele planta
      set order to planta
      @ 2,45 say "Procesando...." 
      if !seek(alltrim(dh03.codc_categ)+alltrim(dh03.codc_uacad)+alltrim(dh03.codc_carac)+alltrim(dh03.codc_agrup))
        *primera vez
        append blank
        repla categ    with dh03.codc_categ
        repla depend   with alltrim(dh03.codc_uacad)
        repla caracter with alltrim(dh03.codc_carac) 
        repla agrup    with alltrim(dh03.codc_agrup)
        repla horas    with (dh03.hs_dedic)
        repla ocupados with 1
      else
        repla ocupados with ocupados+1  
        repla horas    with horas+dh03.hs_dedic
      endif
        sele plantale
        append blank
        repla legajo with padl(alltrim(str(dh03.nro_legaj)),6,"0")
        repla cargo  with padl(alltrim(str(dh03.nro_cargo)),9,"0")
        repla categ    with dh03.codc_categ
        repla depend   with alltrim(dh03.codc_uacad)
        repla caracter with alltrim(dh03.codc_carac) 
        repla agrup    with alltrim(dh03.codc_agrup)
        repla horas    with (dh03.hs_dedic)
    endif  
    sele dh21UNI
  endscan
  
  
  *------------------------------------------
  
  llamada=vm_programas + "planta_s.prg" 
  *llamada1=vm_programas + "planta_r.prg" 
  do  &llamada
  *do  &llamada1
  sele planta
  scan
   sele dh11
   set order to categ
   if seek(val(planta.categ))
    repla planta.descrip with dh11.desc_categ
   endif
  sele planta
  endscan
  return
  *------------------------------------------

Programa "planta_s.prg"

  *public fechaL ,fecha
  public vm_legajo,vm_categ,vm_baja,fecha,fechal,descuenta,vm_cargo,vm_caracter
  descuenta ="N"
  SET DATE TO FRENCH
  SET CENTURY ON
  *set excl on
  
  *------base donde se carga los cargos con licencia
  tabla= vm_bases_informes + "horaslic"
  create table &tabla free (categ C (4),agrup c(4),horas n(6),caracter c(4),;
                        depend c(3),horas_l n(6),legajo c(6),cargo c(9),tipo c(4),;
                        fec_desde d(8),fec_hasta d(8))
                       
  *-------
  tabla= vm_bases_informes + "plantale"
  if used ("plantale")
    sele plantale
    use
  endif
  sele sele(1)  
  use &tabla excl
  index on legajo tag d_legajo additive
  index on cargo tag d_cargo
  *----------------------------------------------------------------------------------
  tabla= vm_bases_informes + "dh21uni"
  if used ("dh21uni")
    sele dh21uni
    use
  endif
  sele sele(1)  
  use &tabla excl
  index on nro_cargo tag dh21car
  *---------base con renovaciones de cargo**** 
  tabla= vm_bases_informes + "renova"
  create table &tabla free (categ C (4),agrup c(4),horas n(6),caracter c(4),;
                             depend c(3),legajo n(6), alta d(8), baja d(8) null ,cargo n(9),carant c(4))
  if used ('renova')
    sele renova
    use
  endif
  sele sele(1)  
  use &tabla excl
  index on depend+alltrim(str(legajo)) tag lis_renova
  *-----------------------------------------------------------------------------------------
  *---filtro
  *store "2003-06-30" to fechaL &&fecha para licencias s/g
  *store {^2003/06/01} to fecha   &&fecha para cargos vigentes
  
  *----------------------------------------------------------------------------------------
  
  
  sele dh03
  set filter to (fec_baja >= &fecha)  or (empty(fec_baja)=.t.) or isnull(fec_baja)
  index on padl(alltrim(str(nro_legaj)),6,"0")+ padl(alltrim(codc_categ),3,"0")+padl(alltrim(str(nro_cargo)),9,"0") tag dh03L
  
  
  
  *-----------------------------------------------
  
  
  *----------------------------------
  cadenasql=   "select *";
             + " from dl02"
  nom5=sys(3)
  create sql view &nom5;
  connection con_pampasql;
  as &cadenasql
  
  if !used('v_dl02')
   sele sele(1)  
   use &nom5 alias v_dl02
  endif
  
  tabla= vm_bases_informes + "dl02"
  select *;
  from v_dl02;
  into table &tabla
  *-----
  if used ('dl02')
    sele dl02
    use
  endif
  sele sele(1)  
  use &tabla excl
  
  
  *---------------------------------------------------
  *-----------base donde se carga la planta
  tabla= vm_bases_informes + "planta"
  if used ('planta')
    sele planta
    use
  endif
  sele sele(1)  
  use &tabla excl
  *---------------------------------------------------
 
 
  
  *--licencias de legajos en periodo informado por el usuario
       select distinct dh05.nro_legaj,dh05.fec_desde,;
                       dh05.fec_hasta, dh05.nrovarlice, dl02.codn_tipo_;
              from dh05,dL02,dh03 where dh05.nro_cargo = 0 and ;
                   dh05.nro_legaj = dh03.nro_legaj and;
                   dl02.nrovarlice =dh05.nrovarlice and;
                   dl02.porcremune  = 0 and dh05.fec_hasta >=&fechaL;
                   into table vm_bases_informes+"V_L"
    
        
  *--licencia de cargos
            select distinct dh05.nro_cargo , dh05.fec_desde,;
                            dh05.fec_hasta, dh05.nrovarlice, dl02.codn_tipo_;
                   from dh05,dL02,dh03 where dh05.nro_legaj = 0 and ;
                        dh05.nro_cargo = dh03.nro_cargo and ;
                        dl02.nrovarlice = dh05.nrovarlice and;
                        dl02.porcremune  = 0 and dh05.fec_hasta >=&fechaL;
                        into table vm_bases_informes+"V_C"
  
  *----------------------------
  
  *--tabla para la vista de licencias por cargos      
  tabla= vm_bases_informes+"lic_c"   
  select *;
  from V_C;
  into table &tabla
  index on nro_cargo tag cargo
  *---tabla para la vista de licencias por legajos
  tabla= vm_bases_informes+"lic_l"   
  select *;
  from V_L;
  into table &tabla
  index on nro_legaj tag legajo 
  
  *-------------------------------------------------
  
  *-------lee el dh03 con cargos vigentes al mes y si tienen subrogancia(no docente) lo agrega 
  *en la plantay plantale
  sele dh03
  
  scan
    SCATTER MEMVAR
    if m.nro_legaj =39100
    * set step on
    endif
    if dh03.codc_carac = "SUBR"
       sele planta
       set order to planta
       if !seek(alltrim(dh03.codc_categ)+alltrim(dh03.codc_uacad)+alltrim(dh03.codc_carac)+alltrim(dh03.codc_agrup))
          *primera vez
          append blank
          repla categ    with dh03.codc_categ
          repla depend   with alltrim(dh03.codc_uacad)
          repla caracter with alltrim(dh03.codc_carac) 
          repla agrup    with alltrim(dh03.codc_agrup)
          repla horas    with (dh03.hs_dedic)
          repla ocupados with 1
       else
          repla ocupados with ocupados+1  
          repla horas    with horas+dh03.hs_dedic
       endif
           sele plantale
           append blank
           repla legajo   with padl(alltrim(str(dh03.nro_legaj)),6,"0")
           repla cargo  with padl(alltrim(str(dh03.nro_cargo)),9,"0")
           repla categ    with dh03.codc_categ
           repla depend   with alltrim(dh03.codc_uacad)
           repla caracter with alltrim(dh03.codc_carac) 
           repla agrup    with alltrim(dh03.codc_agrup)
           repla horas    with (dh03.hs_dedic)
     endif  
     do buscolic  &&llama al procedimiento que busca lic sin goce
     sele dh03
  endscan
  *----------------
  
  *----lee del dh21 los cargos pagados y controla si tienen cargos renovados y si notiene licencia
  *---lo resta de la planta 
  sele dh21uni  &&son los cargos pagados 
  go top
    scan
      scatter memvar
      vm_regis=recno()
      sele dh03 &&esta filtrada por cargos vigentes
      set order to cargo
      if seek (m.nro_cargo)
         if m.nro_cargo=76304
  *       set step on
         endif   
          vm_legajo = dh03.nro_legaj
          vm_categ    = ALLTRIM(dh03.codc_categ)
          vm_baja     = dh03.fec_baja
          vm_depend   = ALLTRIM(dh03.codc_uacad)
          vm_caracter = ALLTRIM(dh03.codc_carac)
          vm_cargo    = padl(alltrim(str(dh03.nro_cargo)),9,"0")
          SET ORDER TO DH03L
          GO TOP
          if SEEK(PADL(ALLTRIM(STR(vm_legajo)),6,"0")+padl(alltrim(vm_categ),3,"0"))
           SCAN WHILE vm_legajo = dh03.nro_legaj and vm_categ = alltrim(dh03.codc_categ) and vm_depend = alltrim(dh03.codc_uacad)
            if !empty (vm_baja )
               if (vm_baja + 1) = dh03.fec_ALTA
                 sele dh21uni
                 set order to dh21car
                 go top
                 if seek(dh03.nro_cargo)
                   sele renova
                   append blank
                   repla categ     with dh03.codc_categ
                   repla depend    with alltrim(dh03.codc_uacad)
                   if vm_caracter # dh03.codc_carac
                     repla carant  with alltrim(vm_caracter) 
                   endif  
                   repla caracter  with alltrim(dh03.codc_carac) 
                   repla agrup     with alltrim(dh03.codc_agrup)
                   repla horas     with (dh03.hs_dedic)
                   repla legajo    with dh03.nro_legaj
                   repla alta      with dh03.fec_alta
                   repla baja      with dh03.fec_baja
                   repla cargo     with dh03.nro_cargo
                   sele plantale
                   set order to d_cargo
                   if seek (vm_cargo) && si lo encuentra significa que tiene dias y dias y lo debe restar de planta detallada
                     dele 
                     pack
                   endif  
                   @ 2,0  clear to 2,60
                   @ 2,45 say "Fin del Proceso"
                   *wait windows "Fin del proceso" nowait
                 endif  
               endif
             endif
           sele dh03
           endscan
          endif
           
      endif  
      sele dh21uni
      goto vm_regis
  endscan
   
  *----esta parte lee del renova hacia el dh21uni para detectar si existen--------
  *----cargos renovados que se hayan pagado en el mismo mes en la misma dep.
  sele renova
  go top
  scan
    banlic=0
    scatter memvar
    sele dh21uni
    set order to dh21car
    if seek (m.cargo)
      sele planta
      set order to planta
      if !seek(alltrim(m.categ)+alltrim(m.depend)+alltrim(m.caracter)+alltrim(m.agrup))
  *!*	      append blank
  *!*	      repla categ    with m.categ
  *!*	      repla depend   with m.depend
  *!*	      repla caracter with m.caracter
  *!*	      repla agrup    with m.agrup
  *!*	      if (m.horas) <> 0
  *!*	        repla renova with m.horas &&acumulo las hs renovadas
  *!*	      else
  *!*        repla renova with 1
  *!* 	      endif 
      else  &&si ya existe la categoria en el pampa 
        ***se fija si tiene licencias del cargo
        sele lic_c
        set order to cargo
        if seek (m.cargo) &&si un cargo renovado tiene licencia de cargo lo cargo como renovado y no lo resto de los cargos ocupados
          banlic=1   
          sele planta
          if (m.horas) <> 0
            repla renova   with renova + m.horas
         else
            repla renova   with renova+1  
          endif
        else
          ***se fija si tiene licencias del legajo
          sele lic_l
          set order to legajo
          if seek (m.legajo) &&si un cargo renovado tiene licencia de legajo lo cargo como renovado y no lo resto de los cargos ocupados
            banlic=1   
            sele planta
            if (m.horas) <> 0
              repla renova   with renova + m.horas
            else
              repla renova   with renova+1  
            endif   
          else
            **si un cargo renovado no tiene licencia lo cargo como renovado y lo resto de la planta
            sele planta
            if empty(alltrim(m.carant))=.t.
              if (m.horas) <> 0
                repla horas    with horas - (m.horas)  &&le resto las horas de los cargos renovados
                repla renova   with renova + m.horas
              else
                repla ocupados with ocupados - 1 &&le resto las personas de los cargos renovados
                repla renova   with renova+1  
              endif
            else
              if (m.horas) <> 0
                repla renova   with renova + m.horas
              else
                repla renova   with renova+1  
              endif
            endif 
          endif
        endif
        **busco por caracter cambiado
        sele planta
        set order to planta
        go top
        if seek(alltrim(m.categ)+alltrim(m.depend)+ m.carant + alltrim(m.agrup) )
          if (m.horas) <> 0
            repla planta.horas with horas - (m.horas) 
          else 
            repla planta.ocupados with ocupados -1  
          endif   
        endif
      endif
    endif
    sele renova
  endscan 
  
  *------------
  
  
  
  
  *-------procedimientos
  **no corre mas
  ***-----busca si tiene licencias sin goce y las carga en otro campo en la planta sin restar nada
  ****no corre mas
  **si tiene licencias sin goce o sea dias y dias lo resta de cargos ocupados
  procedure buscolic
  
  **viene del dh03
  sele lic_l  &&licencia por legajo
  set order to legajo
  if seek (m.nro_legaj) && si tiene lic por legajo
    **si tiene licencias s/g cargo las horas y ocupados con licencias
    sele plantale
    set order to d_legajo
    if seek (padl(alltrim(str(m.nro_legaj)),6,"0")) && si lo encuentra significa que tiene dias y dias y lo debe restar de planta
      descuenta = "S"
      **borro de plantale
      delete
    else
      descuenta = "N"  
    endif     
    sele planta
    set order to planta
       if !seek(alltrim(dh03.codc_categ)+alltrim(dh03.codc_uacad)+alltrim(dh03.codc_carac)+alltrim(dh03.codc_agrup))
          *primera vez
          
          append blank
          repla categ     with dh03.codc_categ
          repla depend    with alltrim(dh03.codc_uacad)
          repla caracter  with alltrim(dh03.codc_carac) 
          repla agrup     with alltrim(dh03.codc_agrup)
          if dh03.hs_dedic <> 0
            repla horas_l    with horas_l+dh03.hs_dedic
          else
           repla conlic with conlic+1  
          endif
       else
          if dh03.hs_dedic <> 0
           repla horas_l    with horas_l+dh03.hs_dedic
          else
           repla conlic with conlic+1  
          endif
          if descuenta = "S"
            if dh03.hs_dedic <> 0 
               repla horas    with horas-dh03.hs_dedic
            else
               repla ocupados with ocupados-1   
            endif
              descuenta = "N"
          endif
       endif
       if (alltrim(lic_l.codn_tipo_) = "999" or alltrim(lic_l.codn_tipo_) = "996")
         repla planta.L9969 with planta.L9969 + 1
         repla planta.H9969 with planta.H9969 + dh03.hs_dedic
         
       endif
       if (alltrim(lic_l.codn_tipo_) = "9991" )
         repla planta.L9991 with planta.L9991 + 1
         repla planta.H9991 with planta.H9991 + dh03.hs_dedic
         
       endif
       sele horaslic
       append blank
       repla categ     with dh03.codc_categ
       repla depend    with alltrim(dh03.codc_uacad)
       repla caracter  with alltrim(dh03.codc_carac) 
       repla agrup     with alltrim(dh03.codc_agrup)
       repla horas_l     with (dh03.hs_dedic)
       repla legajo    with padl(alltrim(str(dh03.nro_legaj)),6,"0")
       repla cargo     with padl(alltrim(str(dh03.nro_cargo)),9,"0")
       repla tipo      with lic_l.codn_tipo_
       repla fec_desde with lic_l.fec_desde
       repla fec_hasta with lic_l.fec_hasta
       
  endif
  sele lic_c
  set order to cargo
  if nro_cargo = 109343
  * set step on
  endif 
  
  if seek (m.nro_cargo)
    **si tiene licencias s/g cargo las horas y ocupados con licencias
    sele plantale
    set order to d_cargo
    if seek (padl(alltrim(str(m.nro_cargo)),9,"0")) && si lo encuentra significa que tiene dias y dias y lo debe restar de planta
      descuenta = "S"
      **borro de plantale
      delete
    else
      descuenta = "N"  
    endif     
    sele planta
    set order to planta
       if !seek(alltrim(dh03.codc_categ)+alltrim(dh03.codc_uacad)+alltrim(dh03.codc_carac)+alltrim(dh03.codc_agrup))
          *primera vez
          append blank
          repla categ    with dh03.codc_categ
          repla depend   with alltrim(dh03.codc_uacad)
          repla caracter with alltrim(dh03.codc_carac) 
          repla agrup    with alltrim(dh03.codc_agrup)
          if dh03.hs_dedic <> 0
           repla horas_l    with horas_l+dh03.hs_dedic
          else
           repla conlic with conlic+1  
          endif
          
       else
          if dh03.hs_dedic <> 0
           repla horas_l    with horas_l+dh03.hs_dedic
          else
           
           repla conlic with conlic+1  
          endif
       endif
       if descuenta = "S"
            if dh03.hs_dedic <> 0 
               repla horas    with horas-dh03.hs_dedic
            else
               repla ocupados with ocupados-1   
            endif
              descuenta = "N"
       endif
       **si es licencia 999 o 996 no resta nada del total ocupado
       if (alltrim(lic_c.codn_tipo_) = "999" or alltrim(lic_c.codn_tipo_) = "996")
         repla planta.L9969 with planta.L9969 + 1
         repla planta.H9969 with planta.H9969 + dh03.hs_dedic
       endif
       if (alltrim(lic_c.codn_tipo_) = "9991" )
         repla planta.L9991 with planta.L9991 + 1
         repla planta.H9991 with planta.H9991 + dh03.hs_dedic
         
       endif
  
       sele horaslic
       append blank
       repla categ     with dh03.codc_categ
       repla depend    with alltrim(dh03.codc_uacad)
       repla caracter  with alltrim(dh03.codc_carac) 
       repla agrup     with alltrim(dh03.codc_agrup)
       repla horas_l     with (dh03.hs_dedic)
       repla legajo    with padl(alltrim(str(dh03.nro_legaj)),6,"0")
       repla cargo     with padl(alltrim(str(dh03.nro_cargo)),9,"0")
       repla tipo      with lic_c.codn_tipo_
       repla fec_desde with lic_c.fec_desde
       repla fec_hasta with lic_c.fec_hasta
  endif
  return
  
  *----------------------
  *-----destruyo las vista 
  sele 1
  use
  drop view &nom1
  *-------
  sele 1
  use
  drop view &nom3
  sele 1
  use
  drop view &nom2


Botón "Ejecutar" (Command1)

  set excl on
  public planta, depend,busca,buscadh03,base,basedh03,buscadh05,basedh05 
  public fechaL ,fecha
  store " " to planta
  store 0 to depend
  
  base = "pla"+padl(alltrim(thisform.text1.value),2,"0")+right(alltrim(str(thisform.text2.value)),2)
  busca =vm_bases+ "pla"+padl(alltrim(thisform.text1.value),2,"0")+right(alltrim(str(thisform.text2.value)),2)+".dbf"
  buscadh05 =vm_bases+ "dh05"+padl(alltrim(thisform.text1.value),2,"0")+right(alltrim(str(thisform.text2.value)),2)+".dbf"
  basedh05 = "dh05"+padl(alltrim(thisform.text1.value),2,"0")+right(alltrim(str(thisform.text2.value)),2)
  buscadh03 =vm_bases+ "dh03"+padl(alltrim(thisform.text1.value),2,"0")+right(alltrim(str(thisform.text2.value)),2)+".dbf"
  basedh03 = "dh03"+padl(alltrim(thisform.text1.value),2,"0")+right(alltrim(str(thisform.text2.value)),2)
  
  
  
  if empty(thisform.text1.value ) = .f. 
    if empty(thisform.text2.value ) = .f. 
  *---------dh05-------------------
  if FILE('&buscadh05') = .t.
     if not used ('dh05')
       sele sele(1)
       *use &basedh05 alias dh05
       use &buscadh05 alias dh05
     else
       sele dh05
     endif 
       planta = "S"
   else
       wait windows "No existe inf de cargos del mes ingresado"
       planta = "N"
   endif  
  
  *---------dh03-------------------
  
  if FILE('&buscadh03') = .t.
     if !used ('dh03')
       sele sele(1)
       *use &basedh03 alias dh03
       use &buscadh03 alias dh03
     else
       sele dh03
     endif 
       planta = "S"
   else
       wait windows "No existe inf de cargos del mes ingresado"
       planta = "N"
   endif  
  
  
  *-------planta--------------------------------------------------------------
   if FILE('&busca') = .t.
     if !used ('dh21')
       sele sele(1)
       *use &base alias dh21
       use &busca alias dh21
     else
       sele dh21
     endif 
       planta = "S"
   else
       wait windows "No existe inf de planta del mes ingresado"
       planta = "N"
   endif  
  
   else
      wait windows "debe ingresar año" nowait
   endif
      else
      wait windows "debe ingresar mes" nowait
  
  endif  
  
  planta = "S"
  
  
  if planta = "S"
            
      fecha = ('{^' + alltrim(str(thisform.text2.value))+ '/' + padl(alltrim(thisform.text1.value),2,"0") +'/01}')
    if  inlist(val(alltrim(thisform.text1.value)) ,1,3,5,7,8,10,12) 
      *fechaL = alltrim(str(thisform.text2.value))+ '-' + padl(alltrim(thisform.text1.value),2,"0") +'-31'
       fechaL = ('{^' + alltrim(str(thisform.text2.value))+ '/' + padl(alltrim(thisform.text1.value),2,"0") +'/31}')
    endif
    if  inlist(val(alltrim(thisform.text1.value)),4,6,9,11) 
      *fechaL = alltrim(str(thisform.text2.value))+ '-' + padl(alltrim(thisform.text1.value),2,"0") +'-30'
      fechaL = ('{^' + alltrim(str(thisform.text2.value))+ '/' + padl(alltrim(thisform.text1.value),2,"0") +'/30}') 
    endif
    if val(alltrim(thisform.text1.value)) = 2 AND  thisform.text2.value % 4=0
      *año 2004 bisiesto febrero trae 29
      fechaL = ('{^' + alltrim(str(thisform.text2.value))+ '/' + padl(alltrim(thisform.text1.value),2,"0") +'/29}')
    endif
    if val(alltrim(thisform.text1.value)) = 2 AND  thisform.text2.value %4 <>0
      fechaL = ('{^' + alltrim(str(thisform.text2.value))+ '/' + padl(alltrim(thisform.text1.value),2,"0") +'/28}')
    endif
      do vm_programas+"planta.prg"
   
  endif
  thisform.command3.enabled = .t.
       thisform.pageframe1.page1.optiongroup4.option1.enabled = .t.
       thisform.pageframe1.page1.optiongroup4.option2.enabled = .t.
       thisform.pageframe1.page1.optiongroup4.option3.enabled = .t.
       thisform.pageframe1.page1.optiongroup1.option1.enabled = .t.
       thisform.pageframe1.page1.optiongroup1.option2.enabled = .t.
       thisform.pageframe1.page2.optiongroup2.option1.enabled = .t.
       thisform.pageframe1.page2.optiongroup2.option2.enabled = .t.
       thisform.pageframe1.page2.optgroupreno.optrenova.enabled = .t.
       thisform.pageframe1.page2.optgroupreno.opincapa.enabled = .t.
       thisform.command1.enabled = .f.
  *store "2003-06-30" to fechaL &&fecha para licencias s/g
  *store {^2003/06/01} to fecha   &&fecha para cargos vigentes

Botón "Listado"(Command3)

  *--seteo
   set safe off
   set century on
   set date to french
   vm_mes =(thisform.text1.value)
   vm_anio = (thisform.text2.value)
  
  *-------------------------------------------------------
    tabla= vm_bases_informes + "planta"
    if used ("planta")
       sele planta
       use
    endif
    sele sele(1)  
    use &tabla excl
    set order to listado
   
      tabla= vm_bases_informes + "plantale"
      if used ("plantale")
         sele plantale
         use
      endif
      sele sele(1)  
      use &tabla excl
      index on padl(alltrim(depend),3,"0")+padl(alltrim(categ),4,"0")+alltrim(caracter)+padl(alltrim(legajo),6,"0") tag d_lista
    
      tabla= vm_bases_informes + "horaslic"
      if used ("horaslic")
         sele horaslic
         use
      endif
      sele sele(1)  
      use &tabla excl
      index on padl(alltrim(depend),3,"0")+padl(alltrim(categ),4,"0")+alltrim(caracter) tag d_liclis
  
  
  
  *----------------------------------------------------------------------------
  *******pagina 1
  if thisform.pageframe1.activepage = 1
  &&planta 
   if thisform.pageframe1.page1.optiongroup1.option1.value = 1 &&planta por depend
     if !empty(alltrim(thisform.pageframe1.page1.text3.value))
      sele planta
      set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text3.value ),2,"0")
      report format vm_informes+"planta.frx" preview 
     else
       messagebox ("Ingrese N° de dependencia.")
       thisform.pageframe1.page1.text3.setfocus
     endif  
   endif
   
   if thisform.pageframe1.page1.optiongroup1.option2.value = 1 &&planta todas dep
       sele planta
       set filter to
       report format vm_informes+"planta.frx" preview 
   endif 
    
  &&detalle planta por depend
  do case
   *--depend
case thisform.pageframe1.page1.check1.value = 1  and thisform.pageframe1.page1.check2.value = 0  and thisform.pageframe1.page1.check3.value=0
     if !empty(alltrim(thisform.pageframe1.page1.text4.value))
       sele plantale
       set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text4.value ),2,"0") 
        report format vm_informes+"d_planta.frx" preview 
      else
       messagebox ("Ingrese N° de dependencia.")
       thisform.pageframe1.page1.text4.setfocus
      endif
  
  *-----categoria
  case thisform.pageframe1.page1.check1.value = 0  and thisform.pageframe1.page1.check2.value = 1 and thisform.pageframe1.page1.check3.value=0
       if !empty(alltrim(thisform.pageframe1.page1.text5.value))
          sele plantale
          set filter to  padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text5.value  ),4,"0")
          report format vm_informes+"d_planta.frx" preview 
       else
          messagebox ("Ingrese Categoria")
          thisform.pageframe1.page1.text5.setfocus 
       endif
       
   *------caracter
  case thisform.pageframe1.page1.check1.value = 0  and thisform.pageframe1.page1.check2.value = 0 and thisform.pageframe1.page1.check3.value=1 
          if !empty(alltrim(thisform.pageframe1.page1.text6.value)) 
               sele plantale
               set filter to  alltrim(caracter) = alltrim(thisform.pageframe1.page1.text6.value) 
               report format vm_informes+"d_planta.frx" preview 
          else
               messagebox ("Ingrese Caracter")
              thisform.pageframe1.page1.text6.setfocus 
          endif
        
   *--depend+categ
 case thisform.pageframe1.page1.check1.value = 1  and thisform.pageframe1.page1.check2.value = 1 and thisform.pageframe1.page1.check3.value=0
      if !empty(alltrim(thisform.pageframe1.page1.text4.value))
        if !empty(alltrim(thisform.pageframe1.page1.text5.value))
          sele plantale
          set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text4.value ),2,"0") and padl(alltrim(categ),4,"0") =    
  padl(alltrim(thisform.pageframe1.page1.text5.value  ),4,"0")
           report format vm_informes+"d_planta.frx" preview 
        else
          messagebox ("Ingrese Categoria")
          thisform.pageframe1.page1.text5.setfocus 
        endif
       else
          messagebox ("Ingrese N° de dependencia.")
          thisform.pageframe1.page1.text4.setfocus
       endif 
  *----dep+caracter
    *-depend+caracter
 case thisform.pageframe1.page1.check1.value = 1  and thisform.pageframe1.page1.check2.value = 0 and thisform.pageframe1.page1.check3.value=1 
        if !empty(alltrim(thisform.pageframe1.page1.text4.value))
            if !empty(alltrim(thisform.pageframe1.page1.text6.value)) 
               sele plantale
               set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text4.value ),2,"0");
                       and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text6.value) 
               report format vm_informes+"d_planta.frx" preview 
            else
               messagebox ("Ingrese Caracter")
               thisform.pageframe1.page1.text6.setfocus 
            endif
        else
          messagebox ("Ingrese N° de dependencia.")
          thisform.pageframe1.page1.text4.setfocus
        endif     
  
  
    *-depend+categ+caracter
  case thisform.pageframe1.page1.check1.value = 1  and thisform.pageframe1.page1.check2.value = 1 and thisform.pageframe1.page1.check3.value=1 
        if !empty(alltrim(thisform.pageframe1.page1.text4.value))
          if !empty(alltrim(thisform.pageframe1.page1.text5.value))
             if !empty(alltrim(thisform.pageframe1.page1.text6.value)) 
               sele plantale
               set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text4.value ),2,"0");
               and padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text5.value  ),4,"0") ;
               and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text6.value) 
                report format vm_informes+"d_planta.frx" preview 
             else
               messagebox ("Ingrese Caracter")
          thisform.pageframe1.page1.text6.setfocus 
             endif
          else
            messagebox ("Ingrese Categoria")
          thisform.pageframe1.page1.text5.setfocus 
          endif
        else
          messagebox ("Ingrese N° de dependencia.")
          thisform.pageframe1.page1.text4.setfocus
        endif     
    *-categ+caractr
  case thisform.pageframe1.page1.check1.value = 0  and thisform.pageframe1.page1.check2.value = 1 and thisform.pageframe1.page1.check3.value=1 
          if !empty(alltrim(thisform.text5.value))
             if !empty(alltrim(thisform.text6.value)) 
               sele plantale
               set filter to  padl(alltrim(categ),4,"0") = padl(alltrim(thisform.text5.value  ),4,"0") ;
               and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text6.value) 
               report format vm_informes+"d_planta.frx" preview 
             else
               messagebox ("Ingrese Caracter")
               thisform.pageframe1.page1.text6.setfocus 
             endif
          else
            messagebox ("Ingrese Categoria")
            thisform.pageframe1.page1.text5.setfocus 
          endif
       
  
  endcase
  
  
  &&detalle licencias
  do case
    **solo dependencia
 case thisform.pageframe1.page1.check4.value = 1  and thisform.pageframe1.page1.check5.value = 0  and thisform.pageframe1.page1.check6.value=0
     if !empty(alltrim(thisform.pageframe1.page1.text7.value)) 
      sele horaslic
      set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text7.value ),2,"0") 
      report format vm_informes+"d_lic.frx" preview 
     else
      messagebox ("Ingrese N° de dependencia.")
      thisform.pageframe1.page1.text7.setfocus
     endif
  *---
  **solo categoria
  case thisform.pageframe1.page1.check4.value = 0  and thisform.pageframe1.page1.check5.value = 1 and thisform.pageframe1.page1.check6.value=0
     if !empty(alltrim(thisform.pageframe1.page1.text8.value)) 
         sele horaslic
         set filter to padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text8.value  ),4,"0")
         report format vm_informes+"d_lic.frx" preview 
     else
         messagebox ("Ingrese Categoria")
         thisform.pageframe1.page1.text8.setfocus
     endif
   
   *--solo caracter  
  case thisform.pageframe1.page1.check4.value = 0  and thisform.pageframe1.page1.check5.value = 0 and thisform.pageframe1.page1.check6.value=1 
         if !empty(alltrim(thisform.pageframe1.page1.text9.value)) 
           sele horaslic
           set filter to alltrim(caracter) = alltrim(thisform.pageframe1.page1.text9.value) 
           report format vm_informes+"d_lic.frx" preview 
         else
            messagebox ("Ingrese Caracter")
            thisform.pageframe1.page1.text9.setfocus
         endif
        
    ***depe+categoria
  case thisform.pageframe1.page1.check4.value = 1  and thisform.pageframe1.page1.check5.value = 1 and thisform.pageframe1.page1.check6.value=0
     if !empty(alltrim(thisform.pageframe1.page1.text7.value)) 
       if !empty(alltrim(thisform.pageframe1.page1.text8.value)) 
         sele horaslic
         set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text7.value ),2,"0") and padl(alltrim(categ),4,"0") =     
  padl(alltrim(thisform.pageframe1.page1.text8.value  ),4,"0")
         report format vm_informes+"d_lic.frx" preview 
        else
         messagebox ("Ingrese Categoria")
        thisform.pageframe1.page1.text8.setfocus
        endif
     else
        messagebox ("Ingrese N° de dependencia.")
        thisform.pageframe1.page1.text7.setfocus
     endif   
    **dep+categ+caracter
    case thisform.pageframe1.page1.check4.value = 1  and thisform.pageframe1.page1.check5.value = 1 and isform.pageframe1.page1.check6.value=1 
     if !empty(alltrim(thisform.pageframe1.page1.text7.value)) 
       if !empty(alltrim(thisform.pageframe1.page1.text8.value)) 
         if !empty(alltrim(thisform.pageframe1.page1.text9.value)) 
           sele horaslic
           set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text7.value ),2,"0");
           and padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text8.value  ),4,"0") ;
           and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text9.value) 
           report format vm_informes+"d_lic.frx" preview 
          else
            messagebox ("Ingrese Caracter")
            thisform.pageframe1.page1.text9.setfocus
          endif
        else
           messagebox ("Ingrese Categoria")
           thisform.pageframe1.page1.text8.setfocus
        endif    
       else
        messagebox ("Ingrese N° de dependencia.")
        thisform.pageframe1.page1.text7.setfocus
    endif
  *----dep+caracter
  case thisform.pageframe1.page1.check4.value = 1  and thisform.pageframe1.page1.check5.value = 0 and thisform.pageframe1.page1.check6.value=1 
     if !empty(alltrim(thisform.pageframe1.page1.text7.value)) 
         if !empty(alltrim(thisform.pageframe1.page1.text9.value)) 
           sele horaslic
           set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page1.text7.value ),2,"0");
           and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text9.value) 
           report format vm_informes+"d_lic.frx" preview 
          else
            messagebox ("Ingrese Caracter")
            thisform.pageframe1.page1.text9.setfocus
          endif
      else
            messagebox ("Ingrese N° de dependencia.")
            thisform.pageframe1.page1.text7.setfocus
      endif      
     
  *---categ + caracter
  case thisform.pageframe1.page1.check4.value = 0  and thisform.pageframe1.page1.check5.value = 1 and thisform.pageframe1.page1.check6.value=1 
       if !empty(alltrim(thisform.pageframe1.page1.text8.value)) 
         if !empty(alltrim(thisform.pageframe1.page1.text9.value)) 
           sele horaslic
           set filter to padl(alltrim(categ),4,"0") = padl(alltrim(thisform.pageframe1.page1.text8.value  ),4,"0") ;
           and alltrim(caracter) = alltrim(thisform.pageframe1.page1.text9.value) 
           report format vm_informes+"d_lic.frx" preview 
          else
            messagebox ("Ingrese Caracter")
            thisform.pageframe1.page1.text9.setfocus
          endif
        else
           messagebox ("Ingrese Categoria")
           thisform.pageframe1.page1.text8.setfocus
        endif    
  endcase
  endif
  set filter to
  
  if thisform.pageframe1.activepage = 2
  ***pagina 2
   if thisform.pageframe1.page2.optiongroup2.option1.value = 1 
     if !empty(alltrim(thisform.pageframe1.page2.text3.value))
      sele RENOVA
     set order to lis_renova
     set filter to alltrim(depend)= padl(alltrim(thisform.pageframe1.page2.text3.value ),2,"0")
     report format vm_informes+"renova.frx" preview 
    else
       messagebox ("Ingrese N° de dependencia.")
       thisform.pageframe1.page2.text3.setfocus
     endif  
   endif
   
   if thisform.pageframe1.page2.optiongroup2.option2.value = 1 
       sele renova
       set order to lis_renova
       set filter to
       report format vm_informes+"renova.frx" preview 
   endif 
  endif
  set filter to

Botón "Cancelar" (Command2)

  close table all
  thisform.release

MANUAL DEL USUARIO

Procedimiento de Uso