Descargar

Aplicaciones prácticas de TI en el centro de trabajo (página 4)


Partes: 1, 2, 3, 4

thisform.pageframe1.page1.text7.ReadOnly= .f.

thisform.pageframe1.page1.text8.ReadOnly= .f.

thisform.pageframe1.page1.text9.ReadOnly= .f.

thisform.pageframe1.page1.text10.ReadOnly= .f.

thisform.pageframe1.page1.text11.ReadOnly= .f.

thisform.pageframe1.page1.text12.ReadOnly= .F.

thisform.pageframe1.page1.text13.ReadOnly= .F.

Thisform.pageframe1.page1.command1.Enabled=.T.

thisform.pageframe1.page1.commandgroup1.command1.Enabled= .F.

thisform.pageframe1.page1.commandgroup1.command2.Enabled= .F.

thisform.pageframe1.page1.commandgroup1.command3.Enabled= .F.

thisform.pageframe1.page1.commandgroup1.command4.visible= .T.

thisform.pageframe1.page2.Enabled = .f.

_curp=thisform.pageframe1.page1.text1.Value

_pat=thisform.pageframe1.page1.text2.Value

_mat=thisform.pageframe1.page1.text3.Value

_nom=thisform.pageframe1.page1.text4.Value

_dom=thisform.pageframe1.page1.text5.Value

_col=thisform.pageframe1.page1.text6.value

_ciu=thisform.pageframe1.page1.text7.value

_edo=thisform.pageframe1.page1.text8.value

_fnac=thisform.pageframe1.page1.text9.value

_fing=thisform.pageframe1.page1.text10.value

_cp=thisform.pageframe1.page1.text11.value

_fam=thisform.pageframe1.page1.text12.Value

_telf=thisform.pageframe1.page1.text13.value

SCATTER Memvar

_flag=2

Thisform.Refresh

Rutina para eliminar empleado.

cMessageTitle = 'Confirmación'

cMessageText = '¿ Esta seguro de que desea ELIMINAR los Datos ?'

nDialogType = 4 + 32 + 256

*  4 = Botones Sí y No

*  32 = Icono del signo de interrogación

*  256 = El segundo botón es el predeterminado

nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

DO CASE

CASE nAnswer = 6

       _curp=alltrim(thisform.pageframe1.page1.text1.value)

       DELETE

       DELETE FOR bdnomina.curp=_curp IN bdnomina

       WAIT WINDOW "Eliminado…." timeo(2)

CASE nAnswer = 7

       WAIT WINDOW Timeout(2) 'Espere….'

ENDCASE

thisform.Refresh

Rutina para guardar información en la base de datos.

DO CASE && CASE para Guardar Datos en Agregar o Modificar

CASE _flag=1 && Si Agregamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Agregar los Datos ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

  CASE nAnswer = 6

            GATHER MEMVAR

            replace nomlargo WITH ALLTRIM(paterno)+" "+ALLTRIM(materno)+" "+ALLTRIM(nombre)

            WAIT WINDOW "DATOS GUARDADOS….." TIMEOUT (2)

            thisform.pageframe1.page2.Enabled= .T.

            _curp=ALLTRIM(thisform.pageframe1.page1.text1.value)

   CASE nAnswer = 7

           DELETE in bdplant

   ENDCASE

   thisform.pageframe1.page1.commandgroup1.command1.Enabled= .T.

   thisform.pageframe1.page1.commandgroup1.command2.Enabled= .T.

   thisform.pageframe1.page1.commandgroup1.command3.Enabled= .T.

   thisform.pageframe1.page1.commandgroup1.command4.Visible= .F.

   thisform.pageframe1.page1.command1.Enabled= .F.

 

CASE _flag=2 && Si Modificamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Guardar los Cambios ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

   CASE nAnswer = 6

        gather memvar

        replace nomlargo WITH ALLTRIM(paterno)+" "+ALLTRIM(materno)+" "+ALLTRIM(nombre)

   CASE nAnswer = 7

       thisform.pageframe1.page1.text1.Value = _curp

       thisform.pageframe1.page1.text2.Value = _pat

       thisform.pageframe1.page1.text3.Value = _mat

       thisform.pageframe1.page1.text4.Value = _nom

       thisform.pageframe1.page1.text5.Value = _dom

       thisform.pageframe1.page1.text6.value = _col

       thisform.pageframe1.page1.text7.value = _ciu

       thisform.pageframe1.page1.text8.value = _edo

       thisform.pageframe1.page1.text9.value = _fnac

       thisform.pageframe1.page1.text10.value = _fing

       thisform.pageframe1.page1.text11.value = _cp

       thisform.pageframe1.page1.text12.Value = _fam

       thisform.pageframe1.page1.text13.Value =_telf

   ENDCASE

  ENDCASE

   thisform.pageframe1.page1.Text1.ReadOnly= .T.

   thisform.pageframe1.page1.text2.ReadOnly= .T.

   thisform.pageframe1.page1.text3.ReadOnly= .t.

   thisform.pageframe1.page1.text4.ReadOnly= .t.

   thisform.pageframe1.page1.text5.ReadOnly= .t.

   thisform.pageframe1.page1.text6.ReadOnly= .t.

   thisform.pageframe1.page1.text7.ReadOnly= .t.

   thisform.pageframe1.page1.text8.ReadOnly= .t.

   thisform.pageframe1.page1.text9.ReadOnly= .t.

   thisform.pageframe1.page1.text10.ReadOnly= .t.

   thisform.pageframe1.page1.text11.ReadOnly= .t.

   thisform.pageframe1.page1.text12.ReadOnly= .t.

   thisform.pageframe1.page1.text13.ReadOnly= .t.

   Thisform.pageframe1.page1.command1.Enabled=.f.

   thisform.pageframe1.page1.commandgroup1.command1.Enabled= .T.

   thisform.pageframe1.page1.commandgroup1.command2.Enabled= .T.

   thisform.pageframe1.page1.commandgroup1.command3.Enabled= .T.

   thisform.pageframe1.page1.commandgroup1.command4.Visible= .F.

   thisform.pageframe1.page1.command1.Enabled= .F.

   Thisform.pageframe1.page2.Enabled= .T.

   thisform.Refresh

Rutina para adjuntar fotografía del empleado.

PUBLIC img

img=GETFILE("JPG,BMP")

REPLACE foto2 WITH img

thisform.image1.Picture=img

thisform.Refresh

Rutina para agregar datos laborales del empleado.

PUBLIC _flag as Integer

PUBLIC _cur,_puesto,_patron,_inea,_honor,_buroc,_cat

PUBLIC _adsc,_dpto,_cat

thisform.pageframe1.page2.text13.SetFocus

_flag=1

_curp=bdplant.curp &&thisform.pageframe1.page1.text1.Value

thisform.pageframe1.page2.combo1.ReadOnly= .F.

thisform.pageframe1.page2.combo2.ReadOnly= .F.

thisform.pageframe1.page2.combo3.ReadOnly= .F.

thisform.pageframe1.page2.text13.ReadOnly= .F.

thisform.pageframe1.page2.text14.ReadOnly= .F.

thisform.pageframe1.page2.text15.ReadOnly= .F.

thisform.pageframe1.page2.text16.ReadOnly= .F.

thisform.pageframe1.page2.text17.ReadOnly= .f.

thisform.pageframe1.page2.commandgroup1.command1.Enabled= .F.

thisform.pageframe1.page2.commandgroup1.command2.Enabled= .F.

thisform.pageframe1.page2.commandgroup1.command3.Enabled= .F.

thisform.pageframe1.page2.commandgroup1.command4.Visible= .T.

Thisform.pageframe1.page1.Enabled= .f.

*WAIT WINDOW "Aqui inicia Captura" TIMEOUT (2)

GO BOTTOM in bdnomina

APPEND BLANK IN bdnomina

SCATTER MEMVAR blank

bdnomina.curp=_curp

Thisform.Refresh

Rutina para modificar los datos laborales de empleado.

PUBLIC _puesto,_patron,_inea,_honor,_buroc,_cat

PUBLIC _adsc,_dpto,_cat

thisform.pageframe1.page2.combo1.SetFocus

_flag=2

thisform.pageframe1.page2.combo1.ReadOnly= .F.

thisform.pageframe1.page2.combo2.ReadOnly= .F.

thisform.pageframe1.page2.combo3.ReadOnly= .F.

thisform.pageframe1.page2.text13.ReadOnly= .F.

thisform.pageframe1.page2.text14.ReadOnly= .F.

thisform.pageframe1.page2.text15.ReadOnly= .F.

thisform.pageframe1.page2.text16.ReadOnly= .F.

thisform.pageframe1.page2.text17.ReadOnly= .f.

thisform.pageframe1.page2.commandgroup1.command1.Enabled= .F.

thisform.pageframe1.page2.commandgroup1.command2.Enabled= .F.

thisform.pageframe1.page2.commandgroup1.command3.Enabled= .F.

thisform.pageframe1.page2.commandgroup1.command4.visible= .T.

Thisform.pageframe1.page1.Enabled= .f.

_adsc=thisform.pageframe1.page2.combo1.Value

_dpto=thisform.pageframe1.page2.combo2.Value

_cat=thisform.pageframe1.page2.combo3.Value

_puesto=thisform.pageframe1.page2.text13.Value

_patron=thisform.pageframe1.page2.text14.Value

_inea=thisform.pageframe1.page2.text15.Value

_honor=thisform.pageframe1.page2.text16.Value

_buroc=thisform.pageframe1.page2.text17.Value

SCATTER Memvar

_flag=2

Thisform.refresh

Rutina para guardar datos laborales en la base de datos.

DO CASE && CASE para Guardar Datos en Agregar o Modificar

CASE _flag=1 && Si Agregamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Agregar los Datos ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

   CASE nAnswer = 6

            GATHER memvar

            REPLACE bdnomina.curp WITH _curp

            WAIT WINDOW "Guardando Datos…." TIMEOUT (2)

   CASE nAnswer = 7

           DELETE in bdnomina

           WAIT WINDOW "Espere….." TIMEOUT (2)

   ENDCASE

CASE _flag=2 && Si Modificamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Guardar los Datos ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

   CASE nAnswer = 6

          GATHER MEMVAR            

          WAIT WINDOW "Guardando Datos…." TIMEOUT (2)

   CASE nAnswer = 7

         thisform.pageframe1.page2.combo1.Value=_adsc

         thisform.pageframe1.page2.combo2.Value=_dpto

         thisform.pageframe1.page2.combo3.Value=_cat

         thisform.pageframe1.page2.text13.Value=_puesto

         thisform.pageframe1.page2.text14.Value=_patron

         thisform.pageframe1.page2.text15.Value=_inea

         thisform.pageframe1.page2.text16.Value=_honor

         thisform.pageframe1.page2.text17.Value =_buroc

         WAIT WINDOW "Espere….." TIMEOUT (2)

   ENDCASE

ENDCASE

 thisform.pageframe1.page2.combo1.ReadOnly= .t.

 thisform.pageframe1.page2.combo2.ReadOnly= .t.

 thisform.pageframe1.page2.combo3.ReadOnly= .t.

 thisform.pageframe1.page2.text13.ReadOnly= .t.

 thisform.pageframe1.page2.text14.ReadOnly= .t.

 thisform.pageframe1.page2.text15.ReadOnly= .t.

 thisform.pageframe1.page2.text16.ReadOnly= .t.

 thisform.pageframe1.page2.text17.ReadOnly= .t.

 thisform.pageframe1.page2.commandgroup1.command1.Enabled= .T.

 thisform.pageframe1.page2.commandgroup1.command2.Enabled= .T.

 thisform.pageframe1.page2.commandgroup1.command3.Enabled= .T.

 thisform.pageframe1.page2.commandgroup1.command4.Visible= .f.

 Thisform.pageframe1.page1.Enabled= .T.

thisform.Refresh

Rutina de búsqueda de empleados.

PUBLIC _pater,_mater as String

_pater=ALLTRIM(thisform.text19.Value)

_mater=ALLTRIM(thisform.text20.Value)

SET FILTER TO bdplant.paterno=RTRIM(_pater).and.bdplant.materno=RTRIM(_mater)

GO TOP IN bdplant

thisform.Refresh

Rutina ejecutada al cambiar de renglones en la tabla. Son dos una al desplazar hacia abajo el cursor (AfterRowColChange).

AfterRowColChange

thisform.pageframe1.page2.label2.Caption=catadsc.descadsc

thisform.pageframe1.page2.label3.Caption=catdepto.descdepto

thisform.pageframe1.page2.label4.Caption=catcata.desccat

thisform.image1.Picture =bdplant.foto2

thisform.pageframe1.page1.Refresh

thisform.pageframe1.page2.Refresh

THISFORM.REFRESH

Rutina para salir de módulo.

RELEASE thisform

Programa: formulario para catálogo de adscripciones.

Nombre de archivo: frmcatadsc.scx

Descripción: Rutinas para realizar alta, modificación, eliminación, guardar los datos del catálogo de adscripciones.

Fecha de creación: 23/05/2008.

Rutina para agregar nueva adscripción.

PUBLIC _flag,_cve as Integer

PUBLIC _des

thisform.text1.SetFocus

_flag=0

_flag=1

thisform.Text1.ReadOnly= .F.

thisform.text2.ReadOnly= .F.

thisform.command1.Enabled= .F.

thisform.commandgroup1.command1.Enabled= .F.

thisform.commandgroup1.command2.Enabled= .F.

thisform.commandgroup1.command3.Enabled= .F.

thisform.commandgroup1.command4.Visible= .T.

GO BOTTOM in catadsc

APPEND BLANK

SCATTER MEMVAR blank

Thisform.Refresh

Rutina para modificar datos de adcripción.

PUBLIC _cve as Integer

PUBLIC _des

thisform.text1.SetFocus

thisform.Text1.ReadOnly= .F.

thisform.text2.ReadOnly= .F.

thisform.commandgroup1.command1.Enabled= .F.

thisform.commandgroup1.command2.Enabled= .F.

thisform.commandgroup1.command3.Enabled= .F.

thisform.commandgroup1.command4.visible= .T.

_cve=thisform.text1.Value

_des=thisform.text2.Value

SCATTER Memvar

_flag=2

Thisform.Refresh.

Rutina para eliminar datos.

cMessageTitle = 'Confirmación'

cMessageText = '¿ Esta seguro de que desea ELIMINAR los Datos ?'

nDialogType = 4 + 32 + 256

*  4 = Botones Sí y No

*  32 = Icono del signo de interrogación

*  256 = El segundo botón es el predeterminado

nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

DO CASE

CASE nAnswer = 6

       DELETE

       WAIT WINDOW "Eliminado…." timeo(2)

CASE nAnswer = 7

       WAIT WINDOW Timeout(2) 'Espere….'

ENDCASE

thisform.Refresh

Rutina para guardar datos en el catálogo de adscripciones.

DO CASE && CASE para Guardar Datos en Agregar o Modificar

CASE _flag=1 && Si Agregamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Agregar los Datos ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

   CASE nAnswer = 6

            GATHER MEMVAR

            WAIT WINDOW "DATOS GUARDADOS….." TIMEOUT (2)

     CASE nAnswer = 7

            DELETE in bdplant

   ENDCASE

   thisform.commandgroup1.command1.Enabled= .T.

   thisform.commandgroup1.command2.Enabled= .T.

   thisform.commandgroup1.command3.Enabled= .T.

   thisform.commandgroup1.command4.Visible= .F.

 CASE _flag=2 && Si Modificamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Guardar los Cambios ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

              CASE nAnswer = 6

                  SCATTER memvar

              CASE nAnswer = 7

                  thisform.text1.Value = _cve

                  thisform.text2.Value = _des

   ENDCASE

 ENDCASE

   thisform.Text1.ReadOnly= .T.

   thisform.text2.ReadOnly= .T.

   thisform.command1.Enabled= .T.

   thisform.commandgroup1.command1.Enabled= .T.

   thisform.commandgroup1.command2.Enabled= .T.

   thisform.commandgroup1.command3.Enabled= .T.

   thisform.commandgroup1.command4.Visible= .F.

   thisform.Refresh

thisform.Refresh

Importante: La rutina para salir de módulo es la misma en todos los formularios, por lo que se omitirá en las siguientes páginas.

Programa: Formulario para catálogo de departamentos.

Nombre de archivo: frmcatdpto.scx

Descripción: Rutinas para agregar, modificar, eliminar, guardar datos en el catálogo de departamentos.

Fecha de creación: 23/05/2008.

Rutina para agregar datasen catálogo de departamentos.

PUBLIC _flag,_cve,_ads as Integer

PUBLIC _des

thisform.text1.SetFocus

_flag=0

_flag=1

thisform.Text1.ReadOnly= .F.

thisform.text2.ReadOnly= .F.

thisform.combo1.ReadOnly= .F.

thisform.command1.Enabled= .F.

thisform.commandgroup1.command1.Enabled= .F.

thisform.commandgroup1.command2.Enabled= .F.

thisform.commandgroup1.command3.Enabled= .F.

thisform.commandgroup1.command4.Visible= .T.

GO BOTTOM in catadsc

APPEND BLANK

SCATTER MEMVAR blank

Thisform.Refresh

Rutina para modificar datos en catálogo de departamentos.

PUBLIC _cve,_ads as Integer

PUBLIC _des

thisform.text1.SetFocus

thisform.Text1.ReadOnly= .F.

thisform.text2.ReadOnly= .F.

thisform.combo1.ReadOnly = .F.

thisform.command1.Enabled= .F.

thisform.commandgroup1.command1.Enabled= .F.

thisform.commandgroup1.command2.Enabled= .F.

thisform.commandgroup1.command3.Enabled= .F.

thisform.commandgroup1.command4.visible= .T.

_cve=thisform.text1.Value

_des=thisform.text2.Value

_ads=thisform.combo1.Value

SCATTER Memvar

_flag=2

Thisform.Refresh

Rutina para eliminar datos en  catálogo de departamentos.

cMessageTitle = 'Confirmación'

cMessageText = '¿ Esta seguro de que desea ELIMINAR los Datos ?'

nDialogType = 4 + 32 + 256

*  4 = Botones Sí y No

*  32 = Icono del signo de interrogación

*  256 = El segundo botón es el predeterminado

nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

DO CASE

 CASE nAnswer = 6

        DELETE

       WAIT WINDOW "Eliminado…." timeo(2)

 CASE nAnswer = 7

   WAIT WINDOW Timeout(2) 'Espere….'

ENDCASE

thisform.Refresh

Rutina para guardar datos en catálogo de departamentos.

DO CASE && CASE para Guardar Datos en Agregar o Modificar

CASE _flag=1 && Si Agregamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Agregar los Datos ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

   CASE nAnswer = 6

            GATHER MEMVAR

            WAIT WINDOW "DATOS GUARDADOS….." TIMEOUT (2)

    CASE nAnswer = 7

            WAIT WINDOW "Espere…." TIMEOUT (2)

   ENDCASE

   thisform.commandgroup1.command1.Enabled= .T.

   thisform.commandgroup1.command2.Enabled= .T.

   thisform.commandgroup1.command3.Enabled= .T.

   thisform.commandgroup1.command4.Visible= .F.

 CASE _flag=2 && Si Modificamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Guardar los Cambios ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

     CASE nAnswer = 6

          SCATTER memvar

     CASE nAnswer = 7

         thisform.text1.Value = _cve

         thisform.text2.Value = _des

         thisform.combo1.Value = _ads

   ENDCASE

  ENDCASE

   thisform.Text1.ReadOnly= .T.

   thisform.text2.ReadOnly= .T.

   thisform.combo1.ReadOnly= .T.

   thisform.command1.Enabled= .T.

   thisform.commandgroup1.command1.Enabled= .T.

   thisform.commandgroup1.command2.Enabled= .T.

   thisform.commandgroup1.command3.Enabled= .T.

   thisform.commandgroup1.command4.Visible= .F.

   thisform.Refresh

Programa: Formulario para catálogo de plaza burócrata

Nombre de archivo: frmcatburo.scx

Descripción: Rutinas para agregar, modificar, eliminar, guardar datos en el catálogo de plazas burócratas.

Fecha de creación: 23/05/2008.

Rutina para agragar datos en catálogo de plazas burócrata.

PUBLIC _flag,_cve as Integer

PUBLIC _des

thisform.text1.SetFocus

_flag=0

_flag=1

thisform.Text1.ReadOnly= .F.

thisform.text2.ReadOnly= .F.

thisform.command1.Enabled= .F.

thisform.commandgroup1.command1.Enabled= .F.

thisform.commandgroup1.command2.Enabled= .F.

thisform.commandgroup1.command3.Enabled= .F.

thisform.commandgroup1.command4.Visible= .T.

GO BOTTOM

APPEND BLANK

SCATTER MEMVAR blank

Thisform.Refresh

Rutina para modificar datos en catálogo de plazas burócrata.

PUBLIC _cve as Integer

PUBLIC _des

thisform.text1.SetFocus

thisform.Text1.ReadOnly= .F.

thisform.text2.ReadOnly= .F.

thisform.command1.Enabled= .F.

thisform.commandgroup1.command1.Enabled= .F.

thisform.commandgroup1.command2.Enabled= .F.

thisform.commandgroup1.command3.Enabled= .F.

thisform.commandgroup1.command4.visible= .T.

_cve=thisform.text1.Value

_des=thisform.text2.Value

SCATTER Memvar

_flag=2

Thisform.Refresh

Rutina para eliminar datos del catálogo de plazas burócratas.

cMessageTitle = 'Confirmación'

cMessageText = '¿ Esta seguro de que desea ELIMINAR los Datos ?'

nDialogType = 4 + 32 + 256

*  4 = Botones Sí y No

*  32 = Icono del signo de interrogación

*  256 = El segundo botón es el predeterminado

nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

DO CASE

 CASE nAnswer = 6

       DELETE

       WAIT WINDOW "Eliminado…." timeo(2)

  

 CASE nAnswer = 7

            WAIT WINDOW Timeout(2) 'Espere….'

ENDCASE

thisform.Refresh

Rutina para guardar datos en catálogo de plazas burócratas.

DO CASE && CASE para Guardar Datos en Agregar o Modificar

CASE _flag=1 && Si Agregamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Agregar los Datos ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

    CASE nAnswer = 6

            GATHER MEMVAR

           WAIT WINDOW "DATOS GUARDADOS….." TIMEOUT (2)

     CASE nAnswer = 7

                    DELETE in bdplant

   ENDCASE

   thisform.commandgroup1.command1.Enabled= .T.

   thisform.commandgroup1.command2.Enabled= .T.

   thisform.commandgroup1.command3.Enabled= .T.

   thisform.commandgroup1.command4.Visible= .F.

CASE _flag=2 && Si Modificamos

   cMessageTitle = 'Confirmación'

   cMessageText = '¿ Esta seguro de que desea Guardar los Cambios ?'

   nDialogType = 4 + 32 + 256

   *  4 = Botones Sí y No

   *  32 = Icono del signo de interrogación

   *  256 = El segundo botón es el predeterminado

   nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

   DO CASE

     CASE nAnswer = 6

          SCATTER memvar

     CASE nAnswer = 7

          thisform.text1.Value = _cve

          thisform.text2.Value = _des

   ENDCASE

ENDCASE

   thisform.Text1.ReadOnly= .T.

   thisform.text2.ReadOnly= .T.

   thisform.command1.Enabled= .T.

   thisform.commandgroup1.command1.Enabled= .T.

   thisform.commandgroup1.command2.Enabled= .T.

   thisform.commandgroup1.command3.Enabled= .T.

   thisform.commandgroup1.command4.Visible= .F.

   thisform.Refresh

Programa: Formulario para enviar impresión de listado de empleados por adscripción y departamento.

Nombre de archivo: frmadsdpto.scx

Descripción: Rutinas para enviar reporte a vista preliminar e impresora.

Fecha de creación: 24/05/2008.

Rutina para enviar a vista preliminar el reporte.

PUBLIC _c1,_c2 as Integer

_c1=tads.cveadsc

_c2=tdpto.cvedpto

REPORT FORM frxficha.frx FOR bdnomina.cvadsc=_c1 .and. bdnomina.cvedpto=_c2 TO PRINTER PREVIEW

Rutina para enviar a la impresora el reporte.

PUBLIC _c1,_c2 as Integer

_c1=tads.cveadsc

_c2=tdpto.cvedpto

REPORT FORM frxficha.frx FOR bdnomina.cvadsc=_c1 .and. bdnomina.cvedpto=_c2 TO PRINTER PROMPT NOCONSOLE

Programa: Formulario para menu de opciones del sistema

Nombre de archivo: frmmenus.scx

Descripción: Rutinas para llamar los formularios que componen el sistema.

Fecha de creación: 25/05/2008.

Rutina para llamar fromulario de consulta de empleados.

DO FORM frmconsulta.scx

Rutina para llamar menú contextual de catálogos para el sistema.

CLOSE DATABASES

DO mnucaptura.mpr

Rutina para crear menú contextual.

DEFINE POPUP menúcontex SHORTCUT RELATIVE FROM MROW(),MCOL()

DEFINE BAR 1 OF menúcontex PROMPT "Plantilla de Personal"

DEFINE BAR 2 OF menúcontex PROMPT "-"

DEFINE BAR 3 OF menúcontex PROMPT "Catálogo de Adscripciones"

DEFINE BAR 4 OF menúcontex PROMPT "Catálogo de Departamentos"

DEFINE BAR 5 OF menúcontex PROMPT "Catálogo de Burócratas"

ON SELECTION BAR 1 OF menúcontex Do form frmplantilla2.scx

ON SELECTION BAR 3 OF menúcontex Do form frmcatads.scx

ON SELECTION BAR 4 OF menúcontex do form frmcatdpto.scx

ON SELECTION BAR 5 OF menúcontex Do form frmcatburo.scx

ACTIVATE POPUP menúcontex

Rutina para llamar formulario de reporte.

DO FORM frmadsdpto.scx

Rutina para salir del sistema.

Quit.

Una vez presentado y documentado el desarrollo del sistema se procede a la implementación del sistema.

3.4 Implementación.

     La implementación de este sistema se hizo de forma directa, ya que no existía una aplicación previa, para la alimentación de los datos se le proporcionó a la subdirección de personal, archivos con la estructura de las bases de datos de bdplant.dbf y bdnomina.dbf para que sean llenados en formato de Excel y posteriormente añadir la información al sistema, esto para dar rapidez al llenado de la base de datos a través de una carga masiva de datos, después de esto la misma subdirección se ecargará de adjuntar la fotografia de cada empleado a su registro.

El sistema estará hospedado en el servidor que se encuentra en el área de informática, para poder dar su respectivo mantenimiento a las bases de datos y el sistema; informática se encargará de realizar un respaldo cada semana de las bases de datos por seguridad. El acceso al sistema solo será para dirección general, dirección de administración y subdirección de personal.

4. Rediseño de red de datos para la oficina de informática

4.1 Análisis de requerimientos y situación actual.

     En primera instancia inciaremos con la situación actual en la que se encuentra el centro de cómputo en la oficina de informática. El instituto ha realizado dos cambios de domicilio, debido a esto la oficina en donde se encuentra el centro de cómputo y conectividad no ha tenido una buena infraestructura de red, pues muchas de estas al llegar al nuevo edificio donde se estableció el insittuto, el espacio que se le asignó al centro de cómputo no contaba con las condiciones necesarias para ello, por consecuencia se tuvo que armar este con lo que se cuenta de momento para tener alimentación eléctrica y red de datos. Además no se cuenta con conductos como canaletas plásticas para los cables de red una mejor y optimización del espacio.

El centro de cómputo cuenta con:

-          Una oficna de 4 mts de ancho por 5 mts de fondo.

-          2 escritorios

-          1 mesa de trabajo.

-          1 rack para montar equipos de red.

-          1 archivero.

-          1 estante.

-          Red de datos con topología de estrella.

En cuanto a equipo de conectividad el instituto cuenta con:

-          Ruteador Cisco 1800 administrable.

-          Equipo Multiservicio para voz Cisco 2800.

-          NTU Tellabs para servicio de voz.

-          STU E1 WATSON para servicio de datos (Internet).

-          Firewall Fortinet modelo Fortigate 200, para supervision de la red.

-          Switch LAN 24 puertos 3com.

-          Patch panel para organización de cableado 24 puertos.

Se procedió a realizar un análisis de requerimientos, que son los siguientes:

-          Se requiere de canaleta plástica para realizar una estructuración del cableado para el centro de cómputo.

-          Reorganización del moviliario que se encuentra dentro del centro de cómputo.

-          Organización del cableado que llega al rack donde se ecuentras los equipos de red y suministro de Internet.

Una vez expuestas estas necesidades se procederá al diseño de la reestructuración del centro de cómputo.

4.2 Diseño.

     Como se comenta anteriormente la oficina cuenta con muy poca infraestructura para datos, por lo que se procederá realizar un croquis de la oficina para la red de datos.

Para el cableado de esta oficina se utilizará la canaleta para llevar el cableado UTP para tres computadoras y el servidor que hospeda la página web del instituto y otros cables con los que se realiza la conexión a otros concentradores y ruteadores inalambricos en las demás áreas del edificio.

El moviliario será acomodado de forma que los cables de conexión de las computadoras no se vean a simple vista, esto para que la presentación sea más estética ya que los cables dan mal aspecto a la oficina. Además el fin de esto es hacer que el lugar se vea más espacioso y se pueda circular libremente dentro.

4.3 Croquis

     Dentro del diseño de red esta es necesaria para dar una referencia gráfica de cómo se van a realizar las conexiónes y serán estructuradas. A continuación se presentarán la estructuración de la red de datos y eléctrica.

Croquis red de datos.

4.4 Resultado Final.

Gracias a esta reestructuración del centro de cómputo, se obtuvo una mejor vista de la oficina al no tener los cables de datos y eléctricos en el suelo, además de la optimización del espacio, ya que la distribución que se tenía del mobiliario restaba espacio, además de no tener espacio de libre acceso, movilidad al usuario y personal que realice visitas al centro de cómputo.

El resultado son instalaciones y distribución del espacio más eficiente y funcional para las necesidades dentro del centro de cómputo de informática.

4.5 Reglas para centro de cómputo y mantenimiento de la red.

    Para el buen funcionamiento del centro de cómputo se requieren ciertas reglas para mantener limpio el lugar y asegurar el buen estado de las computadoras; por lo que se estableceran estos criterios que se deben seguir:

-          No consumir alimentos y bebidas enfrente de las computadoras.

-          No Fumar dentro del centro de cómputo.

-          Mantener limpia el área de la computadora.

-          Guardar la herramienta que utilices en su lugar.

-          No dejar equipo para compostura en el suelo.

-          No dejar el software fuera de su lugar.

-          La herramienta debe ser puesta en su lugar después de utilizarla.

-          No bajar música para no restar velocidad a la red.

-          Apagar los reguladores de corriente al terminar la jornada de trabajo.

-          Realizar el mantenimiento de los equipos de cóputo por lo menos cada dos meses.

Para el mantenimiento a la red se establece:

-          Realizar una revisión cada mes de las IP asignadas a los usuarios, Esto se realizará con la aplicación gratuita IP Scanner y se verificará en cada equipo por parte del personal del departamento de informática.

-          Se revisarán las conexiones a los ruteadores inalámbricos periódicamente para asegurar la calidad de la señal de los datos.

-          Revisar de virus las computadoras que cuenten con conexión a red peródicamente por el personal de informática.

-          Actualizar antivirus y sus definiciones de virus periódicamente para tener los equipos en la red libres de virus.

-          Revisar que las conexiones eléctricas tengan el voltaje necesario (120Volts).

-          Limpieza periódica de los equipos de conectividad al menos cada 3 meses.

Con estas medidas se tendrá una red sin problemas y robusta y el centro de cómputo estrá en óptimas condiciones.

5. Conclusiones

Dentro de toda organización que cuenta con la infraestructura necesaria para implementar TI (Tecnologías de la Información) para realizar mejoras en sus procesos, darse a conocer a través de Internet, implementar sistemas en línea o bien apliaciones a nivel intranet para uso local, es posible realizarlo con las herramientas que nos presentan los sistemas operativos que conocemos, claro que hay que realizar un bosquejo de lo que nos ofrece, tal vez no sean tan completas como el comprar un software mas especializado, pero, podemos obtener aplicaciones sencillas y eficientes para realizar estas con un bajo coste para la organización.

En muchas ocasiones, no se realizan implementaciones de TI porque no hay un acercamiento estrecho con las instancias de informática, pero cuando hay una estrecha comunicación, se pueden realizar muchas mejoras con aplicaciones, equipos, plataformas existentes para generar cambios dentro de la organización, así como el dejar que estas se conviertan en una parte importante dentro de los alcances de objetivos y metas. Explotar esta tecnología que ha venido a más con el venir de los años ha hecho que muchas organizaciones tengan grandes posibilidades de expasión y éxito.

Como en este caso práctico dentro del Instituto Estatal de Educación para Adultos, en donde se especificó que no se contaba con fondos para invertir en TI debido al momento por el que pasaba esta institución por un déficit de recursos y no solo en TI si no también en otros rubros de infraestructura necesarios para el funcionamiento de esta; se inicio una investigación y análisis de los recursos existentes dentro de la infraestructura informática con la que se cuenta actualmente, y gracias a las herramientas nativas del sistema operativo que se utiliza para el servidor y las aplicaciones freeware como PHP, VBScript fue posible realizar este proyecto con tan solo la inversión de tiempo para poder comprenderlo, aprenderlo e implementarlo para el desarrollo de las aplicaciones que se estaban requiriendo. Dando resultado un sitio web sencillo y funcional y las aplicaciones de igual manera, así como la aplicación local para la organización de la información del personal del instituto, al contar con liciencia del lenguaje de programación proporcionada por las Oficinas Centrales de INEA en años anteriores.

Si bien el realizar este proyecto sin inversión financiera es para demostrar que con herramientas sencillas podemos realizar proyectos que ayuden a la operación y optimización de recursos e información que meneja la institución.

Dentro de los resultados obtenidos en la operación con las aplicaciones, se han detectado adultos que ya habían terminado en cualquiera de los niveles de primaria y secundaria, estos, se han canalizado para realizarles un duplicado de su certificado en el nivel que hayan concluido. Gracias a la aplicación de las actas de nacimiento, en conjunto con el cotejo digital se han agilizado los trámites para realizar certificados en menor tiempo y los expedientes de los educandos no quedan incompletos para el historial documental y electrónico; se ha evitando el volver a incorporar dentro del sistema información duplicada de los adultos que concluyeron su educación básica, así como de asegurar una base de datos del sistema SASA (Sistema de Acreditación y Seguimiento Automatizado) confiable y depurada.

Dentro de los resultado con la información del personal del instituto se ingresaron al sistema un total de 950 empleados de 1200 existentes dentro del instituto y sus 21 coordinaciones de zona, de los cuales se han recabado su informacióm personal, laboral y contar con fotografía, gracias a ello se tiene un mejor control sobre esta información además de tener un acervo de expedientes más condensado y organizado, además el Director General tiene un acceso rápido a esta información en cualquier momento.

Dentro del centro de cómputo, la optimización del espacio de este, una mejor organización del cableado para evitar que se maltrate, el rack de conectividad se encuentra mejor organizado, con sus cables mejor distribuidos para una fácil localización y vista de limpieza. En cuanto a la optimización del espació se distribuyó el mobiliario de tal manera que haya un mejor espacio al centro para poder moverse con libertad en la oficina, además de poder manípular equipos que entren a reparación pues es muy importante contar con el espacio necesario para maniobrar con este.

Así pues para concluir con este trabajo, la página web, las aplicaciones no quedan ahí solamente, estas deben estar en constante actualización, no solo de información, si no también de renovación, mejorar los diseños y contenidos, optimizar espacios dentro de la presentación de los resultados, optimizar las consultas, todo ello requiere de un procesos de rediseño que más adelante se trabajará con él, esperándo también que con estos resultados se obtengan importantes invesiones dentro de la institución dentro del rubro de TI, para el desarrollo de mejores y nuevas aplicaciones para esta institución que ha entrado al mundo de esta tecnología con aplicaciones que ayuden a mantenerse en contacto cercano con la gente a la que este instituto sirve.

Las TI son un gran árbol, donde el fruto de este son la gran cantidad de soluciones que se pueden obtener de estas, con la combinación de las computadoras, Internet y telecominucaciones, abren la gran ventana al mundo globalizado, acortan distancias, ayuda a cambiar también la forma de ver el mundo, revolucionan y por ende, hay una evolución en la forma que se realizan las actividades cotidianas.

6. Apéndice I. Manuales de las herramientas

Manual de usuario para "Sistema de Búsqueda de Educandos"

     Para ingresar a la aplicación de "Sistema de Búsqueda de Educandos" debe realizarse de la siguiente manera:

-          Hacer clic en el icono de su navegador de Internet (Explorer, FireFox, Mozilla, etc.).

-          Escribir la siguiente dirección en la barra de direcciones de su navegador.

-          Entrará a la siguiente pantalla:

-          La pantalla se compone de un selector con el cual se va a seleccionar la base de datos donde se desea buscar. Son tres: Histórico de INEA 1981-2001, Histórico SEyC 1997-2008, Histórico SASA UCN 1997-2008.

-          Un cuadro de texto para  escribir el nombre iniciando por apellidos, si en el nombre aparece la letra Ñ o ñ esta letra se va a sustituir por un signo de porciento (%) para que se ejecute la búsqueda.

-          Hacer clic en el botón buscar para que realice el porceso.

-          Y aparecerá la  ventana con los resutados:

De esta manera se ejecutan las consultas dentro del "Sistema de Búsqueda de Educandos", para determinar si el educando procede a capturarse, reincorporase o canalizarse para realizar un duplicado de su certificado.

Manual para "Búsqueda de Actas de Nacimiento".

-          Hacer clic en el icono de su navegador de Internet (Explorer, FireFox, Mozilla, etc.).

-          Escribir la siguiente dirección en la barra de direcciones de su navegador. http://coahuila.inea.gob.mx/actas.htm

-          Entrará a la siguiente pantalla:

-          Esta pantalla cuenta con un cuadro de texto para ingresar el nombre inciando por los apellidos de la persona. Si el nombre lleva la letra Ñ o ñ esta se debe sustituir por un signo de porciento (%) para que se ejecute la búsqueda.

-          Hacer clic en el botón buscar para ejecutar la consulta.

-          Al terminar aparecerá la siguiente pantalla con el resultado:

De esta manera al localizar a la persona se realiza una impresión del resultado y se anexa al expediente, o bien anotar número de acta, libro, foja del documento.

Es importate aclarar que el manual de usuario de la aplicación de la plantilla de personal no se editará ya que por parte de la Dirección General se dispuso que este sistema sólo será utilizado por tres personas, el Director General, el Director de Administración y el Subdirector de Personal, por lo que pidió de manera muy ateneta el Director General no se publicara un documento de esto ya que es de uso exclusivo para estas instancias, así que sólo se procedió a capacitar a estas tres figuras en el uso del sistema.

El Subdirector de personal será el encargado de remitir a la oficina de informática las modificaciones que se hagan al sistema.

8. Bibliografía

1. Senn, James A., "Análisis y Diseño de Sistemas de Información.", 2da. Edición, McGraw Hill, 1999.

2. Márquez Vite, Juan Manuel, "Sistemas de Información por Computadora", Editorial Trillas, 1987.

3. Gil Rubio, F. Javier, Alonso Villaverde, Santiago, Tejedor Cerbel, Jorge A. Yagüe Panadero, Agustín, "Creación de Sitios web con PHP5", McGraw Hill, 2005.

4. Camps Paré Rafael, Casillas Santillan Luis Alnerto, "Bases de Datos", Fundación de Postgrado UOC, 1ra edición, 2005.

5. Zaïane, Osmar R., "Database Systems and structures", CMPT  lecture notes. 1995.

6. Wikipedia Bases de datos. http://es.wikipedia.org/wiki/Base_de_datos#Base_de_datos_de_red.

7. Administración de bases de datos, Monografías.com http://www.monografias.com/trabajos40/administracion-bases-datos/administracion-bases-datos2.shtml#qesbase.

8. Monografias.com. Bases de Datos. /trabajos12/basdat/basdat.shtml?monosearch

9. Metodologías modernas de análiss y diseño de sistemas. /trabajos12/docmento/docmento.shtml?monosearch

10. Análisis y diseño de sistemas– Instituto Tecnológico La Paz.

http://sistemas.itlp.edu.mx/tutoriales/analisis/index.htm

11. Análisis y diseño de sistemas de información. Universidad Autónoma de Chihuahua.

http://comunidad.uach.mx/marana/materias/adsi/adsi.htm

12. Redes Informáticas. http://es.wikipedia.org/wiki/Redes_Inform%C3%A1ticas

13. Topologías de Red. /trabajos15/topologias-neural/topologias-neural.shtml

14. Protocolos de red. http://es.wikipedia.org/wiki/Protocolo_de_red

15. Redes Informáticas segunda Parte. /trabajos40/redes-informaticas/redes-informaticas2.shtml?monosearch.

I. Dedicatoria.

Quiero dedicar este trabajo a mi esposa Elizabeth, mi hijo Ricardo que gran parte de este esfuerzo es para ellos para darles una mejor calidad de vida, a mi padre Gulmaro Martínez, gracias por su apoyo, por la paciencia, estímulo para seguir adelante, gracias por hacerme quien soy. A mi madre gracias por darme la vida y hacer de mí  un hombre de bien, a mi hermana.

II. Agradecimientos

Gracias a mi padre por todo su apoyo para seguir adelante y ser mi principal mentor y amigo.

A Lic. Miguel Ángel Monroy quien gracias a su confianza en el área laboral, su gran amistad y por alentarme a reanudar mis estudios a nivel superior. ¡Gracias Amigo! A Rafael Santos que gracias a él estoy en mi actual trabajo en el Instituto Estatal de Educación para Adultos, además porque fue aquí  donde nosotros tres tuvimos un gran crecimiento en el área laboral y personal.

Al Profr. Víctor Manuel Zamora y la Lic Liliana Ortega por alentarme a ser todavía más autodidacta y esforzarme más aún en aprender cosas nuevas para aplicarlas al trabajo. Gracias a sus ideas esta Tesis tomó forma y ahora es una realidad, ¡Gracias por su confianza!

Gracias AIU por permitirme estudiar, es una gran experiencia el cómo puedo estudiar y disfrutar de mi familia al mismo tiempo. Gracias por esta oportunidad.

A todos los amigos que han estado cerca de mí.

Propuesta de Tesis de Licenciatura

Thesis – Practical applications of IT in the work center

 

 

 

 

Autor:

Jesús Humberto Martínez Obregón

Atlantic International University

Honolulu, Hawaii.

September, Summer 2008.

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente