Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo crear y utilizar programas .prg en vfp

Cómo crear y utilizar programas .prg en vfp

Programación del programa principal VFP SQL

Este es el formato recomendado para principiantes. No es necesariamente el mejor, pero en realidad es factible

* Nombre del programa: main.prg

. p>

* Función: Entrada a todo el sistema

* Ruta: \ su directorio de programas \ prgs

Desactivar Talk

Desactivar Escap

p>

* Inicio, manejo de errores del programa

ON ERROR DO Err.PRG With Error(), Message(), Message(1), Program(), Lineno( 1)

* El primer paso es limpiar el medio ambiente***** *******************

*******

Cerrar todo y cerrar todas las bases de datos, tablas e índices abiertos en el espacio de trabajo y seleccione el espacio de trabajo 1.

Borrar menús y libera todas las variables y matrices de memoria de la memoria, así como todas las barras de menú,

menús y definiciones de ventanas definidas por el usuario. Todas las bibliotecas externas de enlaces dinámicos de Windows de 32 bits (.DLLS) registradas con DECLARE-ALL también se eliminarán de la memoria

amp;amp;.

* Cierra el menú del sistema

* Si modificó el sistema de menús después de ejecutar el comando SET SYSMENU SAVE, puede restaurar la configuración anterior emitiendo el comando

* SET SYSMENU TO DEFAULT.

Establecer guardar menú del sistema

* Descarta la barra de menú principal de Visual FoxPro durante la ejecución del programa.

Establecer Sysmenu Off

Establecer Sysmenu To

* Paso 2, configure el entorno

* Guarde el búfer de datos al salir de lectura Contenido de

Activar Autoguardado

* Al crear un nuevo registro usando los comandos INSERTAR, APLICAR y EXAMINAR, los datos del registro actual no se copian en el nuevo registro.

Establecer transferencia

* Especifica si se puede salir del cuadro de texto escribiendo el último carácter del cuadro de texto.

Desactivar confirmación

* No mostrar la parte del siglo de la fecha

Desactivar siglo

* Establecer el formato de fecha en "AAAA. MM.DD "Formato

Establecer fecha Ansi

* No mostrar registros eliminados

Establecer eliminación en

* Determinar si es posible, utilice LOCK ( ) o RLOCK ( ) para bloquear varios registros.

Establecer bloqueos múltiples activados y específicos de programación de red

* Determina cómo los comandos ATLTER TABLE, CREATE TABLE e INSERT-SQL manejan los valores nulos.

Establecer nulo en

* El texto que se muestra cuando el campo especificado es nulo (NUll) es

Establecer NullDisplay en ''

* No mostrar el cuadro de diálogo antes de sobrescribir el archivo existente

Desactivar seguridad

* Eliminar la barra de estado de los gráficos.

Desactivar la barra de estado

* Paso 3: Establecer la ruta del programa

* Establecer el directorio de inicio del programa

GcMainPath público

p >

gcMainPath = Sys(5) Sys(2003) "\"

Establecer como valor predeterminado amp;gcMainPath

* Directorio de datos (base de datos local y tabla)

gcDataPath público

gcDataPath = gcMainPath "Data\"

* Directorio de programas

gcPrgsPath público

gcPrgsPath = gcMainPath " Prgs \"

* Directorio de imágenes

gcPicsPath público

gcPicsPath = gcMainPath "pics\"

* Directorio de tablas<

gcFormsPath público

gcFormsPath = gcMainPath "forms\"

* Directorio de menú

gcMenusPath público

gcMenusPath = gcMainPath " menus \"

* Directorio de etiquetas

gcLabelsPath público

gcLabelsPath = gcMainPath "labels\

* Directorio de informes

Public gcReportsPath

gcReportsPath = gcMainPath "Reports\"

* Paso 4: Inicializar el teclado

Capslock(.F.)

IMEStatus(0)

Insmode(.T.)

Numlock(. p>

* Paso 5 Abra la biblioteca de clases personalizada y procese el archivo

p>

Establecer Classlib en gcMainPath "vcx\MyVCX.vcx"

Establecer procedimiento en gcPrgsPath "Myproc.

* Configurar para no mostrar el cuadro de diálogo de inicio de sesión ODBC

SQLSETPROP(0, "DispLogin", 3) & network

* Paso 6 declarar otras variables globales

* Nombre de la fuente de datos

GcDSN público

gcDSN = ' '

* Nombre de inicio de sesión del usuario

gcUID público

gcUID = ''

* Contraseña de inicio de sesión del usuario

Public gcPWD

gcPWD= ''

* Nombre de usuario actualmente conectado (chino)

PUBLIC gcName

gcName=''

* Nombres de bases de datos front-end y back-end

gcSQLDatabase pública, gcFoxDatabase

gcSQLDatabase = ' Amp de gestión de perfiles; datos SQL de backend

Biblioteca

gcFoxDatabase = 'Administración de perfiles' y base de datos VFP de front-end

* Controlador de conexión

GnHandleMaster público y controlador de conexión de base de datos principal del sistema back-end

gnHandleMaster = 0

Público gnHandleUser amp El identificador de conexión de la base de datos del usuario back-end "gcSQLDatabase"

gnHandleUser = 0

* Paso 7: Verifique la cuenta de inicio de sesión

gt; * Llame al formulario de inicio de sesión "gcSQLDatabase". * Llame al formulario de inicio de sesión "login.scx"

Haga el formulario gcFormsPath "login.scx" para gnHandleUser

El resultado es como se muestra a continuación

* Si el el inicio de sesión fue exitoso, gnHandleUser gt; 0 significa que el inicio de sesión fue exitoso y viceversa. p>Si gnHandleUser lt;= 0 &El inicio de sesión falló

Salir y salir

Endif

* Especifica ejecutar cuando se intenta salir de VFP El programa

AL APAGAR, HAGA gcPrgsPath "FileExit.prg" y el código es el siguiente.

* Paso 8, llama al menú principal del programa

Haz gcMenusPath "mainmenu.mpr"

* Paso 9, muestra la portada y el escritorio del programa

Forme gcFormsPath "title.scx" y portada

Forme gcFormsPath "Desktop.scx" y escritorio, este es el fondo del programa (imagen omitida)

* Paso 10, abra o cree una base de datos local

cFoxDb=gcDataPath gcFoxDatabase ".dbc"

If Not Files(cFoxDb) amp;amp; no existe

Crear base de datos & cFoxDb & Crearla

Endif

* Iniciar procesamiento de eventos

Leer eventos

Leer eventos

* liberará la base de datos local.

p>

* Liberará el comando ON SHUTDOWN actual

ON SHUTDOWN

* Programa: FileExit

* Función: Resolver el problema del programa en ejecución Luego haga clic en el botón de cierre de la ventana principal [X] y no puede salir de VFP

If Messagebox('¿Realmente desea salir de este sistema?', 4 32 256, 'Confirmación de salida')lt ;gt; 6 AND gnHandleUser gt;

Regresar

Endif

*Hacer mientras Txnlevel()gt 0

*Revertir;

*Enddo

Borrar eventos

ON APAGADO

*Restaurar entorno

Establecer el menú del sistema como predeterminado

Con _Screen

.WindowState=2 amp;amp; maximizar

.p>.BackColor=Rgb(255, 255, 255)

.Caption ="Microsoft Visual FoxPro"

.Icon =''.

Fin con

* Cierra la base de datos y la tabla

Si se usa(" cfg ")

Usar en cfg

Endif

Si se usa("dsn")

Usar en dsn

Endif

Si se usa("uid")

Usar In uid

Endif

Cerrar base de datos Todo amp ; Cerrar todas las bases de datos

Cerrar todo & Cierra todos los tipos de archivos, pero no cierra la ventana de comandos, la ventana de depuración, la ventana de ayuda o la ventana de seguimiento.

Borrar menús y libera todas las definiciones de menú de la memoria.

Borrar ventanas emergentes y libera todas las definiciones de menú en la memoria creadas con el comando DEFINE POPUP.

Borrar Windows y libera todas las definiciones de ventanas definidas por el usuario en la memoria y borra las ventanas en la ventana principal de VFP o en la ventana activa definida por el usuario.

Borrar y borrar pantalla

Establecer seguro en

_Screen.Picture=""

=SQLDISCONNECT(0)

Salir

* Programa: manejo de errores proporcionado por Plum, no verificado.

******************

err.prg

*********** ** ********

NERROR DE PARÁMETRO , CMESSAGE , CMESSAGE1 , CPROGRAM , NLINENO

CONFIGURAR DELIMITADORES DE COMBINACIÓN DE TEXTO para

CONFIGURAR COMBINACIÓN DE TEXTO EN

p>

ESTABLECER COMBINACIÓN DE TEXTO EN ErrorLog.txt ADITIVO NOSHOW

------------------------------ -- - ------------------------------------

lt;lt; FECHA( )gt;gt; lt;lt;HORA( )gt;gt; ErrorLog

Título del programa: lt;lt;_Screen.Caption gt;gt; Versión: lt;lt;VERSION(1)gt;gt;

DO CASE

CASE _SCREEN.WINDOWSTATE = 0

\Estado de la ventana:

CASE _SCREEN.WINDOWSTATE = 1

/Estado de la ventana: Minimizada

CASE _SCREEN.WINDOWSTATE = 2

\Estado de la ventana:

Ventana visible: lt;lt;IIF(_Screen.WINDOWSTATE = 2)

Estado de la ventana: Maximizada

ENDCASE lt;lt;JUSTFNAME(SYS(16,1)) gt; gt;

(Directorio del programa ejecutable: lt; lt; JUSTPATH(SYS(16, 1))gt; gt;

(Espacio en disco del directorio del programa ejecutable: lt; lt ;SET("PATH")gt;gt;

(Directorio temporal del sistema):lt;lt;SYS(2023)gt;gt;

(Tamaño del grupo de memoria virtual): lt;lt;SYS(1001)gt;gt;

(Tamaño del grupo de memoria virtual): Espacio en disco predeterminado: lt;lt;DISKSPACE(SYS(5))

\Espacio de trabajo en uso: lt;lt;Alias()gt;gt;

\Campo activo: lt;lt;VARREAD()gt;gt;

IF TYPE('_Screen; .ClassLibrarygt;gt;

Ubicación del formulario: lt;lt;SYS(1271, _Screen.ActiveForm)gt;

ELSE

\No hay formularios activos

ENDIF

IF TYPE('_Screen.ActiveForm.ActiveControl:lt;lt;_Screen.ActiveForm.ActiveControl.Namegt;gt;

IF TYPE

('_Screen.ActiveForm.ActiveControl.Caption') = 'C'

\Control Title:lt;lt;_Screen.ActiveForm.ActiveControl.Namegt;gt;

\No Active Formulario

ENDIF

Clase base de control: lt;lt;_Screen.ActiveForm.ActiveControl.BaseClassgt;gt;

\Control derivado: lt;lt;_Screen .ActiveForm.ActiveControl.BaseClassgt;gt;

()

Biblioteca derivada de controles: lt;lt;_Screen.ActiveForm.ActiveControl.Classgt;gt; Ubicación del control:lt;lt;SYS(1271, _Screen.ActiveControl)gt;gt;

ELSE

Sin control activo

ENDIF

\Código de error: lt;lt;nErrorgt;gt;

\Mensaje de error: lt;lt;cMessagegt;gt.

\ Ubicación del error: lt;lt;cProgramgt; gt;

Número de línea: lt; nLinenogt;

\ Código de error: lt; cMessage1gt; ; MemoryLog.txt

/SALIDA DEL ENTORNO DE TRABAJO A -gt; StatusLog.txt

CONFIGURAR SEGURIDAD DESACTIVADA

MOSTRAR MEMORIA AL Archivo MemoryLog.txt NOCONSOLE

MOSTRAR ESTADO AL Archivo StatusLog.txt NOCONSOLE

------------------------------- --- -------------------------------------

ESTABLECER COMBINACIÓN DE TEXTO EN

SET TEXTMERGE TO

p>

Nvalue = ;

MESSAGEBOX('¡Ocurrió un error en el programa! Los detalles son los siguientes: 'CHR(13) CHR(13) 'Código de error:'

LTRIM(STR(NERROR))

CHR(13)

p>

'Número de línea de error: ' ;

LTRIM(STR(NLINENO))

'Número de línea de error: '

LTRIM( STR(NLINENO) ));

'Número de línea de error: ';

LTRIM(STR(NLINENO));