lunes, 2 de octubre de 2017

Programación InformáticaLa programación informática es el proceso por medio del cual se diseña, codifica, limpia y protege el código fuente de programas computacionales. A través de la programación se dictan los pasos a seguir para la creación del código fuente de programas informáticos. De acuerdo con ellos el código se escribe, se prueba y se perfecciona.



El objetivo de la programación es la de crear software, que después será ejecutado de manera directa por el hardware de la computadora, o a través de otro programa.



La programación se guía por una serie de reglas y un conjunto pequeño de órdenes, instrucciones y expresiones que tienden a parecerse a una lengua natural acotada. El lenguaje de programación, son todas aquellas reglas o normas, símbolos y palabras particulares empleadas para la creación de un programa y con él, ofrecerle una solución a un problema determinado.

El lenguaje de programación es el responsable de que la computadora siga paso a paso las órdenes que el programador ha diseñado en el algoritmo. Con esto se entiende que el lenguaje de programación es una especie de intermediario entre el ordenador y el usuario, para que este último pueda darle respuesta a los problemas mediante la computadora y haciendo uso de palabras (funciones), que le interpretan dicho programa al computador para la realización de ese trabajo.

Ahora bien, dependiendo del lenguaje que se elija, se puede hablar del tipo de programación que se va a realizar. Algunos de ellos son:

Programación secuencial: son aquellos programas que se diseñan con directrices que van en secuencia una detrás de la otra. Por ejemplo: Cobol, Basic.

Programación estructurada: se considera así, cuando la programación es diseñada por módulos. Cada módulo realiza una tarea en especial, y cuando se requiera de esa tarea, sencillamente se le hace el llamado a ese módulo. Por ejemplo: Turbo Pascal, Ada, Modula.

Programación orientada a objetos: son aquellos lenguajes que permiten la implementación de objetos dentro del diseño del mismo y el usuario podrá pegar a cada objeto un código de programa. Algunos de estos son: Java, Xml, entre otros.

Programación lógica o de lenguaje natural: son aquellos programas que se diseñan con interfaces, de tal manera que el usuario pueda darle ordenes a la máquina utilizando un lenguaje simple. Por ejemplo: Prolog.

Programación de inteligencia artificial: son aquellos programas que más se acercan a la inteligencia humana, ya que tienen la capacidad de desarrollar conocimiento. Este tipo de lenguaje trabaja de una manera muy semejante a la mente humana.



Conceptos Iniciales de FOXPRO

Variable: Espacio de memoria que permite almacenar información que puede cambiar o variar durante la ejecución de un programa. Las variables pueden ser dos tipos: numéricas y alfanuméricas. El nombre de una variable puede contener hasta 8 caracteres: letras y números. Debe comenzar con una letra.

Constante: Valor que no cambia o varia durante la ejecución de un programa. Ejemplo de una constante es el número Pi que siempre vale 3,1416

Comandos de Edición y Ejecución
Plantilla                              Accion

A
Acepta solamente letras
9
Acepta exclusivamente dígitos y signos
!
Transforma todos los caracteres en mayúsculas
,
En los números indica la representa los miles
.
En los números indica la posición del punto decimal





 Visual FoxPro provee a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web.

Ejemplos:

·         @ 5,25 say “Introduzca una calificación (de 1 a 20) ” get Nota Pict “99” range 1,20
·         @ 7,25 say “Introduzca edad del alumno “ get Edad Pict “99” range 6,18

Valid: El comando Valid permite validar / definir la entrada de datos a una variable character.
Formato: Valid Variable$”items o datos válidos”
Ejemplo:
·  @ 5,5 say “Continua la ejecución del programa (S/N) “get Ru Pict “!” Valid Ru$”SN”
·         Comando Set Color To : Permite cambiar o modificar los atributos de color de pantalla.

Formato :
Set Color To estandar, resaltado 
·         Estandar : Color de visualización de los SAY.
·         Resaltado : Color de la visualización de las variables o campos
editados con GET .


¿Cómo Declarar Variables?
‘Visual FOXPRO nos brinda 3 opciones para declarar las variables:

ü  Variables Publicas
ü  Variables Privadas
ü  Variables Ocultas

A)    Variables públicas

Las variables públicas, también conocido como variables globales son variables que se pueden utilizar y modificadas por cualquier programa de FOXPRO y cualquiera de sus sub-programas para la duración de la sesión de FoxPro o hasta que se borra la variable de la memoria. 

Las variables públicas se declaran en una de estas dos maneras:
  1. Cree una variable en la ventana comando. Automáticamente cualquier variable creada en la ventana de comandos se ha declarado pública. Por ejemplo, desde la ventana comando, escriba 1000 = X. La variable X es ahora pública a todas las aplicaciones.
  2. Dentro de un programa, declare una variable como pública mediante el comando PUBLIC. En todos los programas, debe declarar la variable como público antes de asignarle un valor, como en este ejemplo de código:
3.     PUBLIC var1
   var1=1000

                                                   

B)    Variables privadas


Variables privadas se declaran en programas o los procedimientos y pueden ser utilizadas y manipuladas dentro de ese programa o un procedimiento y cualquiera de sus sub-programs. 


Se declaran variables privadas de tres maneras:
1.       Crear una variable dentro de un programa o procedimiento sin declarar es como público. A continuación, la variable en privado para el programa o procedimiento en el que se declara. Por ejemplo, en el programa MYPRG.PRG, declarar var2 como privado con este comando:

2.       var2=2500       
Ahora var2 se declara como privado para MYPRG.PRG. Está disponible para todos los procedimientos llamados por MYPRG.PRG. 

3.       Incluir la variable en una instrucción PARAMETERS. Esto hace que automáticamente la variable sea privada para ese programa o el procedimiento. 

4.       Utilice el comando PRIVATE en las variables declaradas anteriormente. Esto permite la variable declarada anteriormente y su contenido oculto. Se convierte en la nueva variable privada privada para el programa actual o el procedimiento. El comando PRIVATE no declara inicialmente nada, ya debe existir una variable PRIVATE para poder utilizar en él correctamente. 


C)     Variables ocultas


Variables no se puede declarar ocultas, pero pueden convertirse en ocultos variables que anteriormente se han declarado como Public o Private. Ocultando las variables creadas en programas superiores, puede habilitar las variables del mismo nombre para manipularse en el programa actual sin afectar a los valores de variables ocultas.

Una vez que el programa o procedimiento que contiene las variables privadas finaliza la ejecución, todas las variables de memoria y matrices que estaban ocultas posteriormente nuevo están disponibles.
Las variables están ocultas en una de estas dos maneras:
  1. Si ya se ha declarado una variable, utilice el comando PRIVATE seguido del nombre de variable para ocultar la variable existente y crear una nueva variable PRIVATE.
  2. Utilizar una variable del mismo nombre en una instrucción PARAMETERS. Si una variable declarada recientemente comparte el mismo nombre que declarado una variable anteriormente, se oculta la variable declarada previamente y se crea una nueva variable privada para el programa actual o el procedimiento.

Para comprobar el estado de una variable, utilice el comando Mostrar memoria. Mostrar memoria proporciona información sobre las variables definidas por el usuario--si están pública, privada o oculto, y dónde (qué programa o procedimiento) se hubieran declarado.

Operadores Aritméticos 
Operador
Función
()
Agrupa los valores para incrementar la prioridad de ejecución
^
Exponenciación
¨
Exponenciación
*
Multiplicación
/
División
%
Residuo
+
Suma
-
Resta

Operadores de Relación
perador
Uso
< 
Menor que
                   >
Mayor que
<> 
Desigual
<=
Menor ó Igual que
>=
Mayor ó Igual que
=
Igual
!=
Desigual
#
Desigual
==
Comparación exacta de una cadena

Operadores Lógicos


Operador Logico           Explicación

.And.
Todas las condiciones parciales evaluadas en el If deben cumplirse, para que la condición final sea cierta.
.Or.
Basta que una de las condiciones parciales se cumpla, para que la condición final sea cierta
.Not.
La condición evaluada debe ser falsa para que la condición final sea cierta



Como Resolver Problemas mediante Diagramas de Flujo y 
Algoritmo para llegar a la solucion de un problema







Algoritmo




es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución





Diagrama de Flujo
Es la representacion gráfica de un algoritmo. También se puede decir que es una representación detallada de forma gráfica de como se deben realizarse los pasos en la computadora para producir resultados.






Pasos para la el planteamiento del algoritmo:
     1) Comprender el problema

  •  Leer el problema varias veces. 
  •  Establecer los datos del problema.
  • Aclarar lo que se va a resolver.     ( cualquier pregunta)
  • Precisar el resultado que se desea lograr.
  • Determinar la incógnita del problema. 
  • Organizar la información.
  • Agrupar los datos en categoría.
  • Trazar una figura o diagrama.

     2) Hacer el Plan

  • Escoger y decidir las operaciones a efectuar.
  • Eliminar los datos inútiles.
  • Descomponer el problema en otros mas pequeños.
      3) Ejecutar el Plan    (Resolver)
  • Ejecutar al detalle cada operación.
  • Simplificar antes de calcular.
  • Realizar un dibujo o diagrama.
     4) Analizar la solución ( Revisar)
  • Dar una respuesta completa.
  • Ayar el mismo resultado de otra manera.
  • Verificar por apreciación que la respuesta es adecuada.



Como resolver problemas mediante diagramas de flujo y algoritmo

Ejemplos:

1)Escribir el algoritmo y el diagrama de flujo que calcule el área de un triangulo
Algoritmo:

  1. Inicio
  2. Ingresar la base (b)        b = base
  3. Ingresar la altura (h)       h = altura
  4. área = ( b * h ) / 2            = proceso matemático

D.F  = Diagrama de Flujo

Estructuras de Control
            Son las que permiten a un programa tomar decisiones y entre ellas están:
  1.  Simples
  2.  Dobles
  3. Múltiples

Ejemplo de algoritmo de selección

1)   Diagrama y algoritmo que permita el ingreso de un número y luego determine si el numero es positivo o
       negativo

       Algoritmo:
  1. Inicio
  2. Ingresar un numero (n)               (n) = numero 
  3. si (n>0) entonces

           si: ir a paso 4
         no: ir a paso 5

   4. Mostrar " el numero es positivo" ir a paso 6
   5. Mostrar " el numero es negativo" ir a paso 6
   6. Fin

D.F  = Diagrama de Flujo

Ejemplo de Algoritmo y diagrama de flujo utilizando un ciclo
(" Visualizar si un numero es múltiplo de 3 ")
Algoritmo
  1. inicio
  2. Ingresar un numero de 3 cifras (n)
  3. si n > 99 y n<1000
          SI: ir a paso 5
         NO: ir a paso 4

   4.("error, n no es un numero de 3 cifras")
   5. i = 3
   6. si i < n 

         SI:  ir a paso 7
       NO:  ir a paso 8

   7.   n = n -1
   8.  si n = 0. 
       SI: ir a paso 9
     NO: ir a paso 10


  9. Visualizar " n es múltiplo de 3"             ir a paso 11
  10.Visualizar " n no es múltiplo de 3"        ir a paso 11
  11. Fin

  D.F  = Diagrama de Flujo



Entre sus características se pueden enumerar:

  • Capacidades para el manejo de datos nativos y remotos.
  • Flexibilidad para crear soluciones de bases de datos.
  • Lenguaje de Programación Orientado a objetos.
  • Utilización de Sentencias SQL en forma nativa.
  • Manejo de vistas, cursores y control completo de estructuras relacionales.
  • Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL Server o MySQL.
  • Cuenta con un motor de generación de informes renovado y flexible para soluciones más robustas.
  • Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reportes en formato XML.
La última versión liberada es la 9.0. Esta cuenta con el SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características y especialmente brindan estabilidad al producto.
En la actualidad, a pesar de que Microsoft ha decidido no continuar con Microsoft Visual FoxPro, existe una comunidad de desarrolladores que sigue trabajando en él, PortalFox y Mundo Visual FoxPro son las más importantes entre los desarrolladores de habla hispana. También se encuentra una comunidad muy activa de desarrolladores en los grupos de Google donde existen muchos programadores que siguen desarrollando software para las distintas versiones de Windows.
Lanzamiento inicial 21 de junio de 1995

  Historia
Visual FoxPro proviene de FoxPro, que a su vez deriva de FoxBASE, creado por Fox Software en 1984; inicialmente un clon de dBase, acabó superándolo y, junto a Clipper, convirtiéndose en una de las estrellas de los lenguajes xBase.

Cuando se presentó FoxPro 2.0 se incluyeron varias tecnologías que revolucionaron el mercado de desarrollo de bases de datos las cuales son:

La adición de Tecnología Rushmore hizo posible que tablas tuvieran millones de registros sin la necesidad de pasar a tecnologías más caras. Las instrucciones SQL que reemplazaban procedimientos completos. SQL fue, y todavía es, el lenguaje de los datos
La presentación de medios tipo WYSIWYG (What you see is what you get) que significa: "lo que tu ves es lo que consigues" que abrió el camino a diseñadores de pantallas e informes.

Microsoft compró Fox Software en junio de 1992 por 173 millones de dólares. En el momento de la compra el desarrollo de FoxPro 2.5 estaba casi terminado, añadiéndole la capacidad de generar ejecutables para Windows. Las versiones de FoxPro 2.6 para Windows, Mac y Unix se consideran las últimas versiones de FoxPro.

En junio de 1991​ aparece Visual FoxPro 3.0, conocido durante su desarrollo como Taz, es la primera versión Visual y se considera un punto de ruptura al evolucionar de un lenguaje procedimental a un lenguaje orientado a objetos. Fue lanzado en Standard Edition (versión recortada sin archivos de runtime distribuibles) y Professional Edition, con el runtime licenciado y el juego completo de componentes. Requiere como mínimo de un compatible IBM PC con microprocesador Intel 80386 ejecutando Windows 3.1 / Windows NT 3.5 o superiores, 8 Megabytes de memoria RAM (se recomiendan 12 MB), de 15 a 50 MB de espacio libre en el disco duro, mouse o equivalente y tarjeta gráfica VGA o superior. Tiene las siguientes características:2
El contenedor de base de datos, también conocido como DBC, añadió el soporte para procedimientos almacenados, reglas de datos asociadas a tablas y un conjunto de funciones de datos adicionales.
Las vistas, que son cursores SQL actualizables, añadieron un método completamente nuevo de acceso a datos para su procesamiento.
Una implementación completa de programación orientada a objetos
Soporte de Object Linking and Embedding y ActiveX

Más adelante aparecerá Visual FoxPro 3.0b3​ que aporta soporte a los lenguajes de doble byte (Double Byte Character Set, como el chino o el japonés) y mejoras en el soporte de ODBC. Además el logotipo para de utilizar una fuente serif a una sans-serif bold, que utilizará en adelante.

Visual FoxPro 3.0 for Macintosh, conocido durante su desarrollo como Speedy aparece el mismo año. Será la última versión de Visual FoxPro para Macintosh. Requiere un equipo Power Macintosh con un microprocesador PowerPC PPC 601 o superior, 8 MB de RAM, (16 MB de RAM recomendado), 80 MB espacio en disco disponible (instalación completa) y sistema operativo System 7.1.2 o posterior.
Visual FoxPro 5.0

En octubre de 1996 aparece Visual FoxPro 5.0, conocido durante su desarrollo como RoadRunner. Aunque hubo un desarrollo de Visual FoxPro 4.0 conocido como Renard, Microsoft decidió cuando finalizó su fase beta que todos los componentes principales de Microsoft Visual Studio tuvieran el mismo número de versión, por lo que todo el trabajo se pasó a la versión 5.0 Presenta un cambio en la estructura de los proyectos y otros archivos por lo que debe de realizarse una conversión desde versiones anteriores. Trae como novedades:
Integración con Visual SourceSafe

Creación desde VFP de aplicaciones Web
Un nuevo depurador mejorado
Capacidad de crear y usar servidores COM (Component Object Model que significa Modelo de Objetos Componentes).
Mejora del soporte de ActiveX
Visual FoxPro 6.0

El 18 de mayo de 1998 aparece Visual FoxPro 6.0, conocido durante su desarrollo como Tahoe. Tras FoxPro 2.6 para Windows es la versión con que más aplicaciones FoxPro se han realizado. Se incluye con Microsoft Visual Studio 6. Requiere de un compatible IBM PC con microprocesador Intel 80486-DX a 66 MHz o superior (se recomienda un Intel Pentium) ejecutando Windows 95/Windows 98/Windows NT 4.0 con Service Pack 3 o superior; 16 Megabytes (32 recomendados) de memoria RAM para Windows95/98; 24 MB (32 recomendados) para Windows NT 4.0; Internet Explorer 4.01 con Service Pack 1 (se incluye en el paquete); 85 MB de espacio libre en el disco duro para una instalación típica, 90 MB para una completa; 43 a 59 MB adicionales si debe instalar IE 4.0; de 57 a 493 MD para el MSDN; unidad de CD-ROM, mouse o equivalente y tarjeta gráfica VGA o superior (se recomienda Super VGA). 20

Aporta mejoras para Internet y una nueva galería de componentes y clases.
Visual FoxPro 7.0

El 21 de junio de 2001 aparece Visual FoxPro 7.0, conocido durante su desarrollo como Sedona. Trae como novedades:5
Soporte de la tecnología IntelliSense
Mejoras del control del Entorno de desarrollo integrado (IDE) y un más rápido acceso al código fuente.
Más de 50 comandos, funciones y variables del sistema se han mejorado o añadido a Visual FoxPro 7.0, algunas de las cuales incluyen nuevas capacidades para enlazar eventos a otros componentes COM.
Mejora del soporte de interoperabilidad con componentes Component Object Model como Microsoft BizTalk Server

Soporte de servicios web XML, permitiendo la exportación de datos de Visual FoxPro a XML y la importación de datos XML en tablas.
Nuevo Explorador de objetos
Administrador de la lista de tareas
Mejor rendimiento
Visual FoxPro 8.0

El 1 de febrero de 2003 aparece Visual FoxPro 8.0, conocido durante su desarrollo como Toledo. Trae como novedades:
Manejo de errores estructurado, mediante TRY... CATCH... FINALLY, escalado de excepciones usando THROW y gestión del uso de objetos de excepción.
Clase CursorAdapter para el acceso universal a datos en formato Visual FoxPro, XML, Microsoft SQL Server 2000, ODBC y OLE DB
Soporte de incremento automático en tablas Visual FoxPro
Soporte de Themes de Windows XP
Diseño de vistas mediante SELECT SQL conmutando entre consulta / vista y salida de código fuente.
Controles avanzados con capacidad de orientación de pestañas en los marcos de página, cambio automático de ancho de columnas, etc.
Soporte GDI+ mejorado pudiendo usar y rotar imágenes en formularios en formato BMP, JPG, GIF normal y animado, TIFF, WMF y EMF y otros
Bindeo de eventos
Importación y exportación de XML jerárquico con el apoyo de DiffGrams entre cursores de Visual FoxPro y DataSets de ADO.NET
Publicar y usar XML Web services basados en SOAP compatible con .NET via HTTP utilizando Microsoft SOAP Toolkit 3.0 (incluido).
OLE DB proporciona acceso a datos Visual FoxPro como Microsoft Visual Studio .NET y Microsoft Office XP.
Microsoft SQL Server 2000 Desktop Engine (MSDE) para crear soluciones de escritorio y compartidas compatibles con Microsoft SQL Server 2000 y migrar a SQL Server 2000 directamente sin modificar el código.
InstallShield Express para Visual FoxPro, para crear instaladores de programas.
Visual FoxPro 9.0

El 17 de diciembre de 2004 aparece Visual FoxPro 9.0, conocido durante su desarrollo como Europa con un amplio soporte a XML y una mejora notable en los reportes permitiendo detalles en múltiples bandas, la rotación de texto, y el encadenamiento de informe. Los informes de salida soportados incluyen XML, HTML, formatos de imagen, y personalización de la salida de impresión.

En marzo de 2007, Microsoft anunció que no habrá VFP 10,7​ con lo que VFP9 es la última versión comercial de Visual FoxPro. Su soporte está garantizado hasta 2015 y se han publicado dos Service Packs, el 8 de diciembre de 2005 y el 11 de octubre de 2007. Se trata del soporte más largo para un producto de Microsoft.

A finales de marzo de 2007, se origina una campaña grassroots entre la comunidad hispana de usuarios de FoxPro en MasFoxPro​ para firmar una petición a Microsoft para continuar con la actualización de Visual FoxPro o liberarlo a la comunidad como Open Source. El 3 de abril de 2007, el movimiento tuvo eco en la prensa especializada.
También el 3 de abril de 2007 Microsoft respondió a las solicitudes de los peticionarios, con esta declaración de Alan Griver:

"Somos muy conscientes de la comunidad FoxPro y esto jugó un papel importante en el anuncio del 13 de marzo. Nunca es una decisión fácil anunciar que no vamos a sacar otra versión de un producto y es algo que consideramos con mucho cuidado.

"No estamos anunciando el fin de FoxPro. Obviamente, las aplicaciones de FoxPro seguirán funcionando. Por algunas de nuestras estimaciones internas, hay más aplicaciones que se ejecutan en FoxPro 2.6 que en VFP y FoxPro 2.6 no ha recibido soporte en muchos años. Visual FoxPro 9 será soportado por Microsoft hasta el año 2015.

"Para que Microsoft continuara evolucionando la base de FoxPro, tendríamos que comenzar por la creación de un entorno de desarrollo de 64 bits lo que implicaría una reescritura casi completa del producto principal. También hemos invertido en la creación de una base de datos escalable con SQL Server, incluyendo la libremente disponible SQL Server Express Edition. En cuanto a la formación de una asociación con terceras partes, hemos escuchado de una serie de grandes clientes FoxPro que esto haría imposible para ellos seguir utilizando FoxPro, ya que ya no sería de un proveedor aprobado. Nos pareció que poner el entorno en código abierto en CodePlex, equilibra las necesidades de la comunidad y los grandes clientes, y era el mejor camino a seguir."

Información de Versiones
Compatibilidad de Sistemas Operativos



Información de archivos ejecutables  

  FoxPro 2

FoxPro
Información general
Desarrollador(es)Fox SoftwareMicrosoft
Lanzamiento inicial1989
Última versión estable2.6
28 de septiembre de 1994(23 años, 7 meses y 20 días)
GéneroSistemas de gestión de bases de datos
Sistema operativoDOSWindowsUnixMac OS
LicenciaMicrosoft EULA
En español
[editar datos en Wikidata]
FoxPro (acrónimo de FoxBASE Professional) es un lenguaje de programación orientado a procedimientos (procedures), a la vez que un Sistema Gestor de Bases de datos o Database Management System (DBMS), publicado originalmente por Fox Software y posteriormente por Microsoft, para los sistemas operativos MS-DOSMS WindowsMac OS y UNIX.
Aunque FoxPro es un DBMS y como tal soporta relaciones entre las tablas, no se le considera como un Sistema administrador de bases de datos relacionales (o RDBMS), por no soportar las transacciones.
FoxPro es una evolución de FoxBASE, uno de los lenguajes xBase que surgieron como mejoras del dBase de Ashton-Tate, con el que comparten la base sintáctica y la gestión del formato DBF de fichero de base de datos, pero que difieren en la gestión de los campos MEMO y los archivos de índices. Así los ficheros de campo memo de FoxBASE tienen extensión .fpt y presentan una mejor gestión y una mayor resistencia a la corrupción en caso de cuelgue del ordenador. Como la mayoría de dialectos xBASE, FoxBASE es además un compilador que genera ficheros EXE independientes.
Precisamente una de las novedades de FoxPro fueron los archivos de índice múltiple con extensión .cdx. En lugar de tener un archivo por cada índice creado a la tabla de datos DBF, Fox presentaba un fichero único (con la ventaja del ahorro de espacio, algo muy importante en ordenadores basados en disquete donde el disco duro solía estar reservado a empresas), pero además el índice tenía una eficacia notable respecto del resto de competidores, por lo que, gracias a bibliotecas de terceros, devino en estándar de facto de índices para los sistemas xBase.
En aquel entonces la mayoría de equipos se basaban en una interfaz de línea de comandos en modo texto (aunque dispusieran de capacidades gráficas). Un tercer avance de FoxPro es la integración de un sistema de ventanas en su escritorio, que le da un aspecto muy parecido al DESQview (aunque desde luego sin sus capacidades multitarea). Este sistema tenía soporte de mouse, con botones para cerrar las ventanas. Además integra SQL en el lenguaje.

1 Código
1.1"Hola Mundo"
2 Características
3 Historia
3.1Visual FoxPro 3.0
3.2Visual FoxPro 5.0
3.3Visual FoxPro 6.0
3.4Visual FoxPro 7.0
3.5 Visual FoxPro 8.0
3.6 Visual FoxPro 9.0
3.7Visual FoxPro "Sedna"
3.8 Resumen de las fechas de las versiones
3.9 Comunidad y redes sociales
3.10 Sucesión
3.11 Soporte
4 Información de versiones
4.1 Compatibilidad de Sistemas Operativos
4.2 Información de archivos ejecutables

Foxpro no hay distinción.

Godigo

"Hola Mundo"
Ejemplo "Hola Mundo":
* Versión 1:
 ? "Hola Mundo"

* Versión 2:
 @ 1,1 SAY "Hola Mundo"

* Versión 3:
 WAIT WINDOW "Hola Mundo"

* Versión 4:
 MESSAGEBOX("Hola Mundo")

* Version 5:
 loForm = CREATEOBJECT("HolaForm")
 loForm.Show(1)
 DEFINE CLASS HolaForm AS Form
    AutoCenter= .T.
    Caption= "Hola Mundo"
    ADD OBJECT lblHola as Label ;
      WITH Caption = "Hola Mundo"
 ENDDEFINE

Visual FoxPro 3.0

En junio de 1995 aparece Visual FoxPro 3.0, conocido durante su desarrollo como Taz, es la primera versión Visual y se considera un punto de ruptura al evolucionar de un lenguaje procedimental a un lenguaje orientado a objetos. Fue lanzado en Standard Edition (versión recortada sin archivos de runtime distribuibles) y Professional Edition, con el runtime licenciado y el juego completo de componentes. Requiere como mínimo de un compatible IBM PC con microprocesador Intel 80386 ejecutando Windows 3.1 / Windows NT 3.5 o superiores, 8 Megabytes de memoria RAM (se recomiendan 12 MB), de 15 a 50 MB de espacio libre en el disco duro, mouse o equivalente y tarjeta gráficaVGA o superior. Tiene las siguientes características:

El contenedor de base de datos, también conocido como DBC, añadió el soporte para procedimientos almacenados, reglas de datos asociadas a tablas y un conjunto de funciones de datos adicionales.

Las vistas, que son cursores SQL actualizables, añadieron un método completamente nuevo de acceso a datos para su procesamiento.

Una implementación completa de programación orientada a objetos

Más adelante aparecerá Visual FoxPro 3.0b que aporta soporte a los lenguajes de doble byte (Double Byte Character Set, como el chino o el japonés) y mejoras en el soporte de ODBC. Además el logotipo para de utilizar una fuente serif a una sans-serif bold, que utilizará en adelante.

Visual FoxPro 3.0 for Macintosh, conocido durante su desarrollo como Speedy aparece el mismo año. Será la última versión de Visual FoxPro para Macintosh. Requiere un equipo Power Macintosh con un microprocesador PowerPC PPC 601 o superior, 8 MB de RAM, (16 MB de RAM recomendado), 80 MB espacio en disco disponible (instalación completa) y sistema operativo System 7.1.2 o posterior.


Visual FoxPro 5.0

En octubre de 1996 aparece Visual FoxPro 5.0, conocido durante su desarrollo como RoadRunner. Aunque hubo un desarrollo de Visual FoxPro 4.0 conocido como Renard, Microsoft decidió cuando finalizó su fase beta que todos los componentes principales de Microsoft Visual Studio tuvieran el mismo número de versión, por lo que todo el trabajo se pasó a la versión 5.0 Presenta un cambio en la estructura de los proyectos y otros archivos por lo que debe de realizarse una conversión desde versiones anteriores. Trae como novedades:
Integración con Visual SourceSafe
Creación desde VFP de aplicaciones Web
Un nuevo depurador mejorado
Capacidad de crear y usar servidores COM (Component Object Model que significa Modelo de Objetos Componentes).
Mejora del soporte de ActiveX
Visual FoxPro 6.0

El 18 de mayo de 1998 aparece Visual FoxPro 6.0, conocido durante su desarrollo como Tahoe. Tras FoxPro 2.6 para Windows es la versión con que más aplicaciones FoxPro se han realizado. Se incluye con Microsoft Visual Studio 6. Requiere de un compatible IBM PC con microprocesador Intel 80486-DX a 66 MHz o superior (se recomienda un Intel Pentium) ejecutando Windows 95/Windows 98/Windows NT 4.0 con Service Pack 3 o superior; 16 Megabytes (32 recomendados) de memoria RAM para Windows95/98; 24 MB (32 recomendados) para Windows NT 4.0; Internet Explorer 4.01 con Service Pack 1 (se incluye en el paquete); 85 MB de espacio libre en el disco duro para una instalación típica, 90 MB para una completa; 43 a 59 MB adicionales si debe instalar IE 4.0; de 57 a 493 MD para el MSDN; unidad de CD-ROM, mouse o equivalente y tarjeta gráfica VGA o superior (se recomienda Super VGA). 20

Aporta mejoras para Internet y una nueva galería de componentes y clases.
Visual FoxPro 7.0

El 21 de junio de 2001 aparece Visual FoxPro 7.0, conocido durante su desarrollo como Sedona. Trae como novedades:
Soporte de la tecnología IntelliSense
Mejoras del control del Entorno de desarrollo integrado (IDE) y un más rápido acceso al código fuente.
Más de 50 comandos, funciones y variables del sistema se han mejorado o añadido a Visual FoxPro 7.0, algunas de las cuales incluyen nuevas capacidades para enlazar eventos a otros componentes COM.
Mejora del soporte de interoperabilidad con componentes Component Object Model como Microsoft BizTalk Server
Soporte de servicios web XML, permitiendo la exportación de datos de Visual FoxPro a XML y la importación de datos XML en tablas.
Nuevo Explorador de objetos
Administrador de la lista de tareas
Mejor rendimiento

Visual FoxPro 8.0

El 1 de febrero de 2003 aparece Visual FoxPro 8.0, conocido durante su desarrollo como Toledo. Trae como novedades:
Manejo de errores estructurado, mediante TRY... CATCH... FINALLY, escalado de excepciones usando THROW y gestión del uso de objetos de excepción.
Clase CursorAdapter para el acceso universal a datos en formato Visual FoxPro, XML, Microsoft SQL Server 2000, ODBC y OLE DB
Soporte de incremento automático en tablas Visual FoxPro
Soporte de Themes de Windows XP
Diseño de vistas mediante SELECT SQL conmutando entre consulta / vista y salida de código fuente.
Controles avanzados con capacidad de orientación de pestañas en los marcos de página, cambio automático de ancho de columnas, etc.
Soporte GDI+ mejorado pudiendo usar y rotar imágenes en formularios en formato BMP, JPG, GIF normal y animado, TIFF, WMF y EMF y otros
Bindeo de eventos
Importación y exportación de XML jerárquico con el apoyo de DiffGrams entre cursores de Visual FoxPro y DataSets de ADO.NET
Publicar y usar XML Web services basados en SOAP compatible con .NET via HTTP utilizando Microsoft SOAP Toolkit 3.0 (incluido).
OLE DB proporciona acceso a datos Visual FoxPro como Microsoft Visual Studio .NET y Microsoft Office XP.
Microsoft SQL Server 2000 Desktop Engine (MSDE) para crear soluciones de escritorio y compartidas compatibles con Microsoft SQL Server 2000 y migrar a SQL Server 2000 directamente sin modificar el código.
InstallShield Express para Visual FoxPro, para crear instaladores de programas.
Visual FoxPro 9.0[editar]

El 17 de diciembre de 2004 aparece Visual FoxPro 9.0, conocido durante su desarrollo como Europa con un amplio soporte a XML y una mejora notable en los reportes permitiendo detalles en múltiples bandas, la rotación de texto, y el encadenamiento de informe. Los informes de salida soportados incluyen XML, HTML, formatos de imagen, y personalización de la salida de impresión.

En marzo de 2007, Microsoft anunció que no habrá VFP 10,9​ con lo que VFP9 es la última versión comercial de Visual FoxPro. Su soporte está garantizado hasta 2015 y se han publicado dos Service Packs, el 8 de diciembre de 2005 y el 11 de octubre de 2007. Se trata del soporte más largo para un producto de Microsoft.

A finales de marzo de 2007, se origina una campaña grassroots entre la comunidad hispana de usuarios de FoxPro en MasFoxPro 10​ para firmar una petición a Microsoft para continuar con la actualización de Visual FoxPro o liberarlo a la comunidad como Open Source. El 3 de abril de 2007, el movimiento tuvo eco en la prensa especializada11

También el 3 de abril de 2007 Microsoft respondió a las solicitudes de los peticionarios, con esta declaración de Alan Griver:

Somos muy conscientes de la comunidad FoxPro y esto jugó un papel importante en el anuncio del 13 de marzo. Nunca es una decisión fácil anunciar que no vamos a sacar otra versión de un producto y es algo que consideramos con mucho cuidado.

No estamos anunciando el fin de FoxPro. Obviamente, las aplicaciones de FoxPro seguirán funcionando. Por algunas de nuestras estimaciones internas, hay más aplicaciones que se ejecutan en FoxPro 2.6 que en VFP y FoxPro 2.6 no ha recibido soporte en muchos años. Visual FoxPro 9 será soportado por Microsoft hasta el año 2015.

Para que Microsoft continuara evolucionando la base de FoxPro, tendríamos que comenzar por la creación de un entorno de desarrollo de 64 bits lo que implicaría una reescritura casi completa del producto principal. También hemos invertido en la creación de una base de datos escalable con SQL Server, incluyendo la libremente disponible SQL Server Express Edition. En cuanto a la formación de una asociación con terceras partes, hemos escuchado de una serie de grandes clientes FoxPro que esto haría imposible para ellos seguir utilizando FoxPro, ya que ya no sería de un proveedor aprobado. Nos pareció que poner el entorno en código abierto en CodePlex, equilibra las necesidades de la comunidad y los grandes clientes, y era el mejor camino a seguir.

Visual FoxPro 9.0

El 17 de diciembre de 2004 aparece Visual FoxPro 9.0, conocido durante su desarrollo como Europa con un amplio soporte a XML y una mejora notable en los reportes permitiendo detalles en múltiples bandas, la rotación de texto, y el encadenamiento de informe. Los informes de salida soportados incluyen XML, HTML, formatos de imagen, y personalización de la salida de impresión.

En marzo de 2007, Microsoft anunció que no habrá VFP 10,9​ con lo que VFP9 es la última versión comercial de Visual FoxPro. Su soporte está garantizado hasta 2015 y se han publicado dos Service Packs, el 8 de diciembre de 2005 y el 11 de octubre de 2007. Se trata del soporte más largo para un producto de Microsoft.

A finales de marzo de 2007, se origina una campaña grassroots entre la comunidad hispana de usuarios de FoxPro en MasFoxPro 10​ para firmar una petición a Microsoft para continuar con la actualización de Visual FoxPro o liberarlo a la comunidad como Open Source. El 3 de abril de 2007, el movimiento tuvo eco en la prensa especializada.
También el 3 de abril de 2007 Microsoft respondió a las solicitudes de los peticionarios, con esta declaración de Alan Griver:

Somos muy conscientes de la comunidad FoxPro y esto jugó un papel importante en el anuncio del 13 de marzo. Nunca es una decisión fácil anunciar que no vamos a sacar otra versión de un producto y es algo que consideramos con mucho cuidado.

No estamos anunciando el fin de FoxPro. Obviamente, las aplicaciones de FoxPro seguirán funcionando. Por algunas de nuestras estimaciones internas, hay más aplicaciones que se ejecutan en FoxPro 2.6 que en VFP y FoxPro 2.6 no ha recibido soporte en muchos años. Visual FoxPro 9 será soportado por Microsoft hasta el año 2015.

Para que Microsoft continuara evolucionando la base de FoxPro, tendríamos que comenzar por la creación de un entorno de desarrollo de 64 bits lo que implicaría una reescritura casi completa del producto principal. También hemos invertido en la creación de una base de datos escalable con SQL Server, incluyendo la libremente disponible SQL Server Express Edition. En cuanto a la formación de una asociación con terceras partes, hemos escuchado de una serie de grandes clientes FoxPro que esto haría imposible para ellos seguir utilizando FoxPro, ya que ya no sería de un proveedor aprobado. Nos pareció que poner el entorno en código abierto en CodePlex, equilibra las necesidades de la comunidad y los grandes clientes, y era el mejor camino a seguir.


Visual FoxPro "Sedna"

En el momento del anuncio del fin de la vida de FoxPro, el trabajo en la próxima versión con nombre en código Sedna que había comenzado sobre la parte superior de la base de código VFP9 ya había comenzado. "Sedna" es un conjunto de ampliaciones para VFP 9.0 de los componentes xBase para soportar una serie de escenarios de interoperabilidad con varias tecnologías de Microsoft, incluyendo SQL Server 2005, .NET Framework, Windows Vista, Microsoft Office 2007, Windows Search y Team Foundation Server (TFS). Microsoft liberó Sedna bajo licencia Shared Source en CodePlex. Microsoft ha aclarado que el núcleo de VFP seguirá siendo de código cerrado. Sedna fue lanzado el 25 de enero de 2008. A partir de marzo de 2008, todos los componentes xBase de VFP 9 SP2 (incluyendo Sedna) están disponibles para el desarrollo comunitario en CodePlex.

Sedna contiene seis componentes: VistaDialogs4COM, Upsizing Wizard, Data Explorer, NET4COM, MY para VFP y VS 2005 Extension para VFP.

Comunidad y redes sociales
A pesar de que Microsoft ha decidido no continuar con Microsoft Visual FoxPro desde el año 2015, existe una comunidad de desarrolladores que sigue trabajando en él, ya no solo en portales de páginas web o foros, sino también en redes sociales.

Sucesión

La última versión liberada es la 9.0. Esta cuenta con el SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características que especialmente brindan estabilidad al producto.
Pero hay esfuerzos e intentos de lograr un Visual FoxPro 10, entre ellos:
  • Xbase ++ : es la reciente (2011) decisión de Alaska Software de volcarse a apoyar al público de Visual FoxPro.13
  • PolarFox: nombre código dado a la siguiente generación de Visual Foxpro.
  • VFP Advanced: un VFP10 no oficial ejecutando a 64 bits actualizado a enero 2018.
  • ActiveVFP: es un proyecto para crear aplicaciones de Foxpro en la Web.15
  • Lianja Visual Foxpro 2018: hace que sea fácil crear rápidamente aplicaciones empresariales para el Escritorio, la Nube y los dispositivos Móviles en Windows, Linux y OS X con Foxpro. Su última versión data Abril del 2018. 16
  • Chilkat: es una librería de pago que amplia las posibilidades con VFP. Aunque también tiene módulos gratis.
  • VFPX: un conjunto de librerias / mejoras para VFP.

SoporteAcerca de la suspensión del soporte de Visual FoxPro 9 por parte de Microsoft que fué hasta el año 2015, estás son las declaraciones de Alan Griver (escritor de la serie de libros FoxPro CodeBook) a la petición MasFoxPro:
Hay más aplicaciones que se ejecutan en FoxPro 2.6 que en VFP y FoxPro 2.6 no ha recibido soporte en muchos años.

Resumen de las fechas de las versiones

Versiones listadas para Windows
VersiónFecha de Versión
Visual FoxPro 3.0Junio de 1995
Visual FoxPro 5.0Octubre de 1996
Visual FoxPro 5.0aOctubre de 1997
Visual FoxPro 6.018 de mayo de 1998
Visual FoxPro 7.027 de junio de 2001
Visual FoxPro 8.01 de febrero de 2003
Visual FoxPro 8.0 Service Pack 17 de octubre de 2003
Visual FoxPro 920 de diciembre de 2004
Visual FoxPro 9 Service Pack 18 de diciembre de 2005
Visual FoxPro 9 Service Pack 216 de octubre de 2007
Versiones por fecha
VersiónVERSIÓN() retornaTamaño del EXEFecha del EXE
FPW 2.6aFoxPro 2.6a for Windows2.444 KB28 de septiembre de 1994
FPM 2.6aFoxPro 2.6a for Macintosh? kbAgosto de 1994
FPD 2.6aFoxPro 2.6a for DOS1.788 KBAgosto de 1994
FPW 2.6FoxPro 2.6 for Windows? KBMarzo de 1994
FPM 2.6FoxPro 2.6 for Macintosh? KB1993
FPD 2.6FoxPro 2.6 for DOS? KBMarzo de 1994
FPU 2.6FoxPro 2.6 for UNIX2,3 Mb1993
FPW 2.5FoxPro 2.5 for Windows1,63 MbEnero de 1993
FPD 2.0FoxPro 2.0 for DOS465,86 KB1991

Link: Progrmación Orientatada a objecto

Ejemplos con Ejercicios
Preparar un formulario de Facturación

  • En la parte inferior se muestra el producto final  para llegar a ello, Ud. Debe realizar ciertos pasos previos que se detallan después del grafico


1. Para simular una Entidad vamos a crear  las siguientes tablas en la Base de Datos Ventas, a las tablas Artículos y Clientes ingresar algunos registros.

2. Creamos  Nuevo formulario luego insertamos los objetos que se muestran en el grafico inferior.


3.  Para el Entorno de Datos asignamos las cinco tablas creadas anteriormente


4.  En tiempo de Diseño:

Modificamos las propiedades de los objetos según la tabla siguiente:


Antes de continuar con mas cambios, vamos a insertar objetos Combo y Spinner en la columna1 y columna2 del Grid respectivamente, para ello prepare el control de Formularios luego:
  1. Seleccione el objeto: Grid
  2. Presione sobre ella : Botón Derecho 
  3. Seleccione : Modificar 
  4. Hacemos Click en : Combo 
  5. Luego Click sobre ab debajo de: Header1 de la primera columna del grid 
  6. Hacemos Click en : Spinner 
  7. Luego Click sobre ab debajo de: Header1 de la Segunda columna del grid 
  8. Salimos de edición haciendo Click fuera del Grid
  9. Presionamos Botón derecho sobre el Grid
  10. Propiedades
  11. Hacemos Clic en: grdDetalle
  12. Seleccionamos : Column1
  13. Current Control
  14. Clic en Text1
  15. seleccionamos Combo1
  16. Similar debe hacerlo para Spinner de la Segunda Columna
Continuamos cambiando el valor de las propiedades de los siguientes objetos:



Mas propiedades


Nota: Caption de Labels ver el Grafico


   Digitaremos los siguientes códigos, según como se indican a continuación


Objeto:  Formulario Principal (Form1)

 

Evento Init

Public srec
set multilock on
set talk off
set safety off
set exclusive on



SELECT GUIAENC
=cursorsetprop("buffering",3)
set order to tag Nguia
go bottom
thisform.txtnguia.value=right("00000"+alltrim(str(val(nguia)+1)),6)
append blank
replace nguia with thisform.txtnguia.value

Select temporal
dele all
set dele on
append blank
replace nguia with thisform.txtnguia.value
srec=recno()
thisform.grdDetalle.refresh
thisform.txttotal.value=0

Evento Destroy

SELECT GUIAENC
=Tablerevert(.t.)
SELECT TEMPORAL




Objeto:  Cmbdescripcion

Evento: Click
if len(allt(thisform.grddetalle.coldescripcion.cmbdescripcion.value))>0
                               thisform.grddetalle.colcantidad.spncantidad.setfocus
else
                               thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
endif
thisform.refresh
Evento: Interactivechange
SELECT temporal
go srec
replace artcod with articulo.artcod
replace preuni with articulo.artpre
replace subtotal with thisform.grddetalle.colcantidad.spncantidad.value*preuni
sum subtotal to ntotal
go srec
thisform.txttotal.value=ntotal
thisform.grddetalle.colcantidad.spncantidad.value=1
thisform.refresh
Evento: LostFocus
if len(allt(thisform.grddetalle.coldescripcion.cmbdescripcion.value))>0
                               thisform.grddetalle.colcantidad.spncantidad.setfocus
else
                               thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
endif
thisform.refresh
Objeto:  spnCantidad

Evento: InteractiveChange

select temporal
replace subtot with thisform.grddetalle.colcantidad.spncantidad.value*preuni
nrec=recno()
sum subtotal to ntotal
go nrec
thisform.txttotal.value=ntotal
thisform.refresh
Evento: LostFocus
thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus

Objeto: cmbCliente
Evento: Click
SELECT GUIAENC
replace cliecod with cliente.cliecod
thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
THISFORM.REFRESH


Objeto: cmdAgregar
Evento: Click
public srec
SELECT TEMPORAL
if len(allt(artdet))>0
               append blank
                               srec=recno()
                               thisform.grddetalle.colcantidad.spncantidad.value=1
endif
replace nguia with thisform.txtnguia.value
thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
thisform.refresh
Objeto: cmdNuevo

Evento: Click
Public srec
select temporal
dele all
set dele on
append blank
replace nguia with thisform.txtnguia.value
srec=recno()
thisform.grddetalle.refresh
thisform.txttotal.value=0
thisform.refresh
Objeto: cmdGuardar
Evento: Click
SELECT GUIAENC
replace igv with thisform.txttotal.value*0.18
replace total with thisform.txttotal.value
=tableupdate(.t.)

SELECT TEMPORAL
 Scan
                                               insert into guiadet(nguia,artcod,artdet,preuni,cant,subtotal);
values(temporal.nguia,temporal.artcod,temporal.artdet,;
                                               temporal.preuni,temporal.cant,temporal.subtotal)
 EndScan

SELECT GUIAENC
set order to tag Nguia
go bottom
thisform.txtnguia.value=right("00000"+alltrim(str(val(nguia)+1)),6)
Objeto: cmdSalir
Evento: Click
SELECT GUIAENC
=tablerevert(.t.)
SELECT TEMPORAL
release thisform



Guardar y  Probar la Ejecución.

Realizar los cambios respectivos, hasta presentar similar al presente modelo.


Queda para el usuario hacer los últimos toques, para que resulte un buen diseño.


link : Factura

link de Pagina: Hola mundo