Compartir a través de


Ejemplos de soluciones

Archivo: ...\Samples\Solution\Solution.app

Los ejemplos de soluciones de Visual FoxPro son una colección de ejemplos independientes diseñados para ilustrar características concretas de Visual FoxPro. Los ejemplos de soluciones también incluyen ejemplos basados en las Foundation Classes de Visual FoxPro.

Para ejecutar la aplicación de ejemplo Solutions

  • Escriba la siguiente línea en la ventana Comandos:

    DO (HOME(2) + 'solution\solution')
    

    –O bien–

  1. En el menú Programa, elija Ejecutar.
  2. Elija la carpeta …\Samples\Solution.
  3. Haga doble clic en Solution.app.

En el formulario principal Ejemplos de soluciones, verá que los ejemplos están clasificados en las siguientes categorías: Controles ActiveX, Controles de Visual FoxPro, Bases de datos, Formularios, Foundation Classes, Menús, Informes, Barras de herramientas y API de Windows. Para ver todos los componentes de esta vista de árbol, elija el botón Expandir todo y desplácese por los componentes.

Cuando haya encontrado un ejemplo o un componente que le interese, resáltelo para seleccionarlo. A continuación puede realizar todas las acciones siguientes o una de ellas:

  • Leer una breve descripción del ejemplo en el área de descripción situada en la parte inferior del formulario principal de Solutions.
  • Ejecutar el ejemplo si elige Ejecutar ejemplo.
  • Ver el código si elige Ver código.
  • Obtener Ayuda sobre el ejemplo que está ejecutando si presiona F1 o hace clic en el botón ?.

Después de cerrar el formulario o el diseñador que está abierto, regresará al formulario principal de Solutions.

Funcionamiento de los ejemplos de soluciones

Cada componente del ejemplo Solutions se muestra en Solution.dbf. Esta tabla almacena:

  • Los identificadores de clave y clave principal necesarios para agregar nodos a un control Treeview.
  • El identificador de imagen del control ImageList de la imagen que se va a mostrar junto al elemento en el control Treeview.
  • El nombre del archivo y la ruta de acceso de los componentes.
  • El método que se debe abrir cuando elija Ver código.
  • La descripción que se va a mostrar en el formulario Solutions de Visual FoxPro.

Hay dos tablas adicionales que se utilizan para proporcionar acceso a una lista filtrada de componentes: Xref.dbf y Reftext.dbf.

El método FillTree de Solution.scx lee la información de Solution.dbf para rellenar el control Treeview.

* FillTree
o = THIS.pgf1.pagTree.oleTree

SCAN
   IF ALLTRIM(parent) = '0'
      oNode = o.nodes.add(,1,ALLTRIM(key),ALLTRIM(text),,)
   ELSE
      oNode = o.nodes.add(ALLTRIM(parent),4,ALLTRIM(key), ALLTRIM(text),,)
   ENDIF
   * add images to the treeview
   IF !empty(image)
      oNode.Image = ALLTRIM(image)
   ENDIF
ENDSCAN

Formularios

La interfaz de Solutions.app es Solution.scx, que ofrece varias características:

  • Dos formas de ver el contenido: como una vista de árbol (esquema), en la que se muestra la jerarquía de los componentes de la aplicación o como una vista de lista filtrada de los componentes de la aplicación, que proporciona una lista por orden alfabético de todos los componentes que van a filtrar la lista según el orden especificado.
  • Un botón expandir o contraer para ver todos los componentes de la vista de árbol.
  • Una breve descripción de un ejemplo seleccionado.
  • La opción de ejecutar y ver el código al abrirlo en el diseñador adecuado.

Puede ver una descripción de cómo se han implementado determinadas características en cualquier formulario con el botón Información técnica.

Cada formulario del ejemplo Solutions contiene un objeto basado en la clase c_solutions de Solution.vcx. Esta clase proporciona un lugar único para realizar configuraciones de localización y entorno. Cuando se destruye el objeto c_solutions, se restauran las antiguas configuraciones y, si existe el formulario Solutions, se muestra de nuevo.

La clase Custom se utiliza en el ejemplo Solutions porque proporciona mayor flexibilidad: puede agregarla a los formularios existentes y, si lo desea, puede eliminarla de los formularios del ejemplo Solutions y personalizarlos para su propio uso. En lugar de utilizar una clase Custom para administrar la configuración del entorno, puede proporcionar esta funcionalidad en una clase Form de la que derivan todos los formularios del ejemplo Solutions.

Los registros de formulario de Solution.dbf tienen un valor "F" almacenado en el campo type. El formulario se ejecuta o modifica en el código asociado a cmdRun y cmdSee.

* extract from cmdRun.Click
   CASE solutions.type = "F" && form
      DO FORM (ALLTRIM(solutions.path) + "\" + ALLTRIM(solutions.file))

Nota   En el entorno de datos de Solution.scx, al cursor para Solution.dbf se le da el alias de "Solutions".

Informes y consultas

Los registros de informe de Solution.dbf tienen un valor "R" almacenado en el campo type y las consultas tienen un valor "Q". Puede ejecutar los informes y las consultas en el código asociado a cmdRun y puede modificarlos en el código asociado a cmdSee.

* extract from cmdRun
   CASE solutions.type = "R" && report
      REPORT FORM (ALLTRIM(solutions.path) + "\" + ALLTRIM(solutions.file)) PREVIEW NOCONSOLE
      THISFORM.Visible = .T.

Al ejecutar una consulta, se abre conjunto de resultados en una ventana Examinar. De forma predeterminada se muestra una ventana Examinar en la ventana activa que, en este ejemplo, estaría en el formulario Solutions. Para mostrar la ventana Examinar en una ventana independiente, este código define y activa otra ventana, ejecuta la consulta y libera la ventana independiente.

   CASE solutions.type = "Q" && query
      #DEFINE TITLE_LOC "Results of query "
      DEFINE WINDOW brow_wind FROM 1,1 TO 30, 100 TITLE TITLE_LOC + UPPER(ALLTRIM(file))+ ".QPR " ;
         FLOAT GROW MINIMIZE ZOOM CLOSE FONT "Arial",10
      ACTIVATE WINDOW brow_wind NOSHOW
      DO (ALLTRIM(solutions.path) + "\" + ALLTRIM(solutions.file) + ".QPR")
      RELEASE WINDOW brow_wind
      THISFORM.Visible = .T.
ENDCASE

Vea también

Agregar y quitar elementos en un control Treeview