24 de mayo de 2000

Convertir los métodos de un formulario en un archivo de procedimientos (.PRG)

Rutina que convierte todos los métodos de un formulario en un archivo de procedimientos .PRG.
*-----------------------------------------------------------
* FUNCTION SCX2PRG(tcForm, tcFile)
*-----------------------------------------------------------
* Pasa todos los métodos de un formulario y sus controles a
* un archivo de procedimientos.
* PARAMETROS:javascript:void(0);
*    tcForm: Ruta y nombre del formulario (.SCX)
*    tcFile: Ruta y nombre del archivo a generar (.PRG)
* AUTOR: LMG
* USO: SCX2PRG("C:\FORMS\FORM1.SCX", "C:\PRGS\METODOS.PRG")
*-----------------------------------------------------------
FUNCTION SCX2PRG(tcForm, tcFile)
  tcForm = FORCEEXT(tcForm, "SCX")
  IF NOT FILE(tcForm)
        MESSAGEBOX("El archivo" + CR + tcForm ;
      + CR + "no existe.", 16, "Aviso")
    RETURN .F.
  ENDIF
  IF EMPTY(tcFile)
    *--- Por defecto genera un PRG  con el
    *--- mismo nombre que el formulario
    tcFile = tcForm
  ENDIF
  tcFile = FORCEEXT(tcFile, "PRG")
  SET TEXTMERGE TO (tcFile) NOSHOW
  SET TEXTMERGE ON
  USE (tcForm) ALIAS MiScx
  \***********************************
  \*** METODOS DEL FORMULARIO
  \*** <<UPPER(tcForm)>>
  \***********************************
  SCAN ALL
    IF NOT EMPTY(MiScx.methods)
      \*-----------------------------------------------
      \*-- <<MiScx.objname>> -- (<<MiScx.Baseclass>>)
      \*------------------------------------------------
      \<<MiScx.methods>>
    ENDIF
  ENDSCAN
  USE IN MiScx
  \***********************************
  \*** FINAL DEL ARCHIVO
  \***********************************
  SET TEXTMERGE OFF
  SET TEXTMERGE TO
  RETURN .T.
ENDFUNC
Luis María Guayán

9 de mayo de 2000

¿Cómo verificar si una tabla está abierta en exclusiva?

Verificar si una tabla está abierta en exclusiva.
*--------------------------------------------------
FUNCTION _Exclusivo(tcTabla)
*--------------------------------------------------
* Verifica si una tabla esta abierta en  EXCLUSIVO
* USO: _Exclusivo("C:\VFP\MiTabla.DBF")
* PARAMETRO:
*    tcTabla = Ruta completa del archivo .DBF
* RETORNO: .T. si se puede abrir en exclusivo
*--------------------------------------------------
LOCAL lnHandle, llRet
lnHandle = FOPEN(tcTabla)
IF lnHandle = -1
   llRet = .F.
ELSE
   llRet = .T.
   =FCLOSE(lnHandle)
ENDIF
RETURN llRet
ENDFUNC
Luis María Guayán

Como hacer un cursor modificable II

Funciín para hacer un cursor modificable
*--------------------------------------------------
FUNCTION _Actualizable(tcAlias)
*--------------------------------------------------
* Hace actualizable un cursor
* USO: _Actualizable("MiCursor")
* PARAMETRO:
*    tcAlias = Alias del cursor
*--------------------------------------------------
 LOCAL lcAliasTmp, lcAliasAnt
 lcAliasAnt = ALIAS()
 IF EMPTY(tcAlias) OR NOT USED(tcAlias)
    WAIT WINDOW NOWAIT " No existe el alias "
    RETURN
 ENDIF
 lcAliasTmp = SYS(2015)
 USE DBF(tcAlias) IN 0 SHARE AGAIN ALIAS (lcAliasTmp)
 USE DBF(lcAliasTmp) IN (tcAlias) SHARE AGAIN ALIAS (tcAlias)
 USE IN (lcAliasTmp)
 IF NOT EMPTY(lcAliasAnt)
    SELECT (lcAliasAnt)
 ENDIF
 RETURN
ENDFUNC
Luis María Guayán