OT: Otra de Windev

1,774 views
Skip to first unread message

Juan Bonilla

unread,
Apr 3, 2012, 11:39:12 AM4/3/12
to Comunidad de Visual Foxpro en Español
he estado revisando la documentacion de windev, y he mirado algunos
tutos en ingles q he encontrado (ver 12), y hasta ahora me gusta..

Encontre unas instrucciones q hace la función de macrosustitucion, q
es importante para mi.

En mis proyectos (vfp) uso constantemente la creacion de cursores
temporales que uso para traer datos y editarlos con nueva informacion
y nuevos campos de calculos o control, cuando tengo mis datos listos
se envian a grabar.
Esto es muy practico para mi por q si hay un error, puedo detener la
ejecución, hacer un browse, y revisar linea por linea dentro del
cursor, como se van agregando o actualizando los datos.

por q tanta historia...
la pregunta es si existe un metodo similar en windev, donde se pueda
trabajar con cursores temporales editables que no afecte mi base de
datos, que se pueda detener la ejecucion y ver como se mueve la
informacion, y muy importante algo similar a la ventana de comandos de
vfp.

gracias..


Juan.

Thierry Planchais - PC Soft

unread,
Apr 4, 2012, 4:09:03 PM4/4/12
to publice...@googlegroups.com
Hola Juan

Te adjunto la respuesta de Alejandro Díaz nuestro director de Tecnología 


Buen día Juan, hay bastante preocupación con respecto a la utilización de cursores dentro del grupo Fox Pro de parte de los desarrolladores a los que les interesa Windev, pues bien le cuento, la mayor parte de la gestión la hace directamente el lenguaje, sin embargo es común utilizar una asociación de un registro en particular a los controles en una ventana, esto quiere decir que durante el tiempo que usted trabaja con esta información Windev sabe exactamente de qué registro se trata, la utilización de cursores en este tipo de casos la maneja automáticamente Windev, en el caso de tener información de un query que es llevado a una tabla (objeto grafico que ustedes mencionan como Grid) no requiere de más de 4 líneas de código para que Windev sepa de qué registro se trata, que campo va a variar y lo haga.
 
Si lo que desea es hacer un seguimiento paso a paso, Windev cuenta con una serie de opciones de Debug bastante avanzadas, al igual que auditorias que le permiten saber incluso si es posible optimizar el código que está usando en algún punto del proyecto.
 
En definitivas, los cursores algunas instrucciones lo usan pero los maneja y administra de forma automática, si lo que desea es seguir paso a paso los que está sucediendo con la ejecución de su aplicación entonces el Debug es una buena opción, si lo que quiere es tener un examen aun más profundo e incluso antes de ejecutar su código puede ejecutar las auditorias.
 
Espero que hayamos podido contestar a su pregunta, si no es así de todas formas estamos pendientes para tratar de explicar de la mejor manera.
 
Cordialmente,
 
 
cid:wdcid1
Alejandro Díaz G.
Director de Tecnología TAP STUDIO LATINOAMÉRICA
Distribuidor PC SOFT en Colombia y Latinoamérica
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 286 98 89

Mail :   ad...@windev.co
Site :   www.windev.co









Thierry Planchais

Director General TAP STUDIO Latinoamérica
Distribuidor PC SOFT en Colombia y Latinoamérica
 
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 770 99 95
Mail :    tplan...@windev.co
Skype : thierryplanchais
Site :   www.windev.co




Actualidad : 
- Les versions 17 pronto disponibles 

 

Carlos Miguel FARIAS

unread,
Apr 4, 2012, 5:19:49 PM4/4/12
to publice...@googlegroups.com
Me parece que más alla que se puedan manejar cursores o no, si vas a usar esa herramienta, vas a tener que plantearte de nuevo los sistemas, vas a poder reutilizar tu knowleadge del negocio, pero no vas poder migrar tu lógica Fox a Windev. Salvo en los algoritmos de cálculo o proceso de datos, que eso no varia en casi ningún lenguaje, después el resto lo veo distinto. Es más, para usar la herramienta bien, deberías partir desde la parte de diseño que te provee.
En mi analisis (en lento proceso) de migrar a python, no tuve en cuenta si las cosas eran iguales que en vfp, simplemente veo si puedo desarrollar mi negocio sobre esa plataforma. Pero no pretendo que sea igual.
Saludos: Miguel, La Pampa (RA)
pointillets.gif
pcsoft.gif
separateur_actu_grand.gif
lst-87-disponible.jpg
les-versions-17-sont-disponibles.jpg
image001.gif

Victor Espina

unread,
Apr 4, 2012, 5:28:46 PM4/4/12
to publice...@googlegroups.com
Alejandro, el uso de cursores en VFP mas alla de eso.  Como decia Juan, lo que queremos saber es si WinDev:

1. Permite que yo pueda crear una especie de DataSet en memoria con su propio schema, bien sea manualmente o bien sea como resultado de un Query sobre la BD,

2. Permite que yo pueda realizar instrucciones SQL tales como SELECT, INSERT, UPDATE o DELETE sobre se DataSet en memoria (no hablemos ya de JOINS, porque entiendo q realmente es mucho pedir).

3. Permite enlazar directamente los datasources de los objetos visuales a columnas especificas dentro de la fila actual en el dataset.

Saludos

Victor Espina

Juan Bonilla

unread,
Apr 4, 2012, 8:43:38 PM4/4/12
to Comunidad de Visual Foxpro en Español
exactamente lo que quiero saber, pero con otras palabras..

yo lo veo como una forma de trabajo y depuracion sencillas.

es como si manejaramos matrices con los datos de tablas, pero con
todas las caracteristicas del lenguaje sql, despues para grabar los
datos actualizados solo recorremos la tabla con un scan y sqlexec
insert o update
> > [image: cid:wdcid1]**
> > *Alejandro Díaz G.*
> > Director de Tecnología TAP STUDIO LATINOAMÉRICA
> > Distribuidor PC SOFT en Colombia y Latinoamérica**
> > Tel. :   + 57 1 226 95 70
> > Cel :    + 57 318 286 98 89
> > Mail :   ad...@windev.co
> > Site :  www.windev.co
>
> > *
> > Thierry Planchais*
> > Director General TAP STUDIO Latinoamérica
> > Distribuidor PC SOFT en Colombia y Latinoamérica
>
> > Tel. :   + 57 1 226 95 70
> > Cel :    + 57 318 770 99 95
> > Mail :    tplanch...@windev.co
> > Skype : thierryplanchais
> > Site :  www.windev.co
> > Facebook :www.facebook.com/windevdotco
>
> > *Actualidad :*
> > - Les versions 17 pronto *disponibles*
>
> > <http://www.pcsoft.fr/annonce17/index.html?P=WDG_IMG> <http://www.pcsoft.fr/lst/index.html?P=WDG_IMG><http://www.pcsoft.fr/lst/index.html?P=WDG_IMG><http://www.pcsoft.fr/lst/index.html?P=WDG_IMG><http://www.pcsoft.fr/lst/index.html?P=WDG_IMG>
> >  <http://www.pcsoft.fr/lst/index.html?P=WDG_IMG>
> >  <http://www.pcsoft.fr/lst/index.html?P=WDG_IMG>

Daniel Sánchez

unread,
Apr 4, 2012, 11:05:23 PM4/4/12
to publice...@googlegroups.com
Es muy lógica la consulta ya que muchas veces de los cursores obtenidos desde la BD, generamos nuevos cursores producto de esas consultas para unir de una manera específica los datos obtenidos en las diversas consultas como en el caso siguiente, tengo un listado de documentos de ventas y deseo obtener las formas como fue cancelado dicho documento de manera histórica, es decir ha un periodo determinado, pero para esto debo realizar la obtención de las ventas hasta el periodo determinado (1 cursor), obtener los pagos por caja de los documento de venta hasta el periodo (2 cursor), las ventas que han sido canjeadas por letras  (3 cursor), las ventas que han tenido devoluciones o descuentos posteriores a su emisión que son notas de crédito (4 cursor), ventas canceladas por bancos (5 cursor), retenciones realizadas al documento por parte del cliente, en este caso asignando por el ente recaudador (6 cursor), luego con todo estos cursores lo fusiono en un cursor que agrupa y ordena los datos obtenidos de la siguiente manera

documento de venta con todos sus datos, de nrodoc, fecha, razón social, moneda, total, a cuenta, saldo, etc.
  lineas siguientes van los diferentes formas como se fue cancelando el documento, que podría ser por caja, por canje letra, por nota crédito, retenciones o pagos por banco.

Entonces para estos casos si es importante en nuestro caso y por nuestras costumbres resolverlos con cursores, que es la manera más facil de manejar una cantidad importante de datos.

Otro ejemplo podría ser generar un cursor dinámico, es decir que de acuerdo a ciertos parámetros podríamos generar un cursor por decir por años si diera un rango de 5 años atrás a partir de la fecha se tendría que crear un cursor con mínimos 5 campos numéricos para contener la información de los 5 años deseados, y cosas parecidas, por eso usamos intensamente los cursores.

Saludos


--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

Thierry Planchais - PC Soft

unread,
Apr 4, 2012, 11:05:32 PM4/4/12
to publice...@googlegroups.com
Hola

Hacemos una cosa para salir de este tema de cursores. 
Les propongo a Juan y Victor que hagamos una video conferencia conmigo y con Alejandro, para entender bien su manera de trabajar y ver cual es la mejor opción con WinDev

Contacteme y organizemos esto para la próxima semana. 

Creo que saliendo de estas dudas, eso les ayudara mucho a Ustedes y a todos sus compañeros. 

Espero entonces que me contacten por email o por Skype



Thierry Planchais

Director General TAP STUDIO Latinoamérica
Distribuidor PC SOFT en Colombia y Latinoamérica
 
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 770 99 95
Mail :    tplan...@windev.co
Skype : thierryplanchais
Site :   www.windev.co



Actualidad : 
- Les versions 17 pronto disponibles 

 

Thierry Planchais - PC Soft

unread,
Apr 4, 2012, 11:34:35 PM4/4/12
to publice...@googlegroups.com
Hola 

Creo que es solo un problema de vocabulario
Daniel, únete a la conferencia con Juan y Victor y salimos de esto. 

Te parece




Thierry Planchais

Director General TAP STUDIO Latinoamérica
Distribuidor PC SOFT en Colombia y Latinoamérica
 
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 770 99 95
Mail :    tplan...@windev.co
Skype : thierryplanchais
Site :   www.windev.co



Actualidad : 
- Les versions 17 pronto disponibles 

 

Victor Espina

unread,
Apr 5, 2012, 5:39:45 AM4/5/12
to publice...@googlegroups.com
Lamentablemente Juan te puedo adelantar que dudo mucho que encontremos otro lenguaje de programacion que nos ofrezca el manejo de cursores-con-sql-integrado que nosda VFP.  

VFP ofrece esto porque desde su nacimiento se trabajo de un producto "manejador de base de datos". De hecho, al inicio de su vida Fox era mas bien una "base de datos programable", tal como lo era dBase. Fue gracias al increible trabajo de la gente de FoxTeam en MS que la cosa se invirtio y VFP paso a ser un lenguaje de programacion 4G de primer nivel qye, casualmente, tambien cuenta con un manejador de base de datos nativo 100% incorporado.

Lo mas cercano actualmente a esto es .NET con sus DataSets y LinQ... y bueno, ya sabemos lo "intuitivo" q es LinQ.

Saludos

Victor Espina

Carlos Miguel FARIAS

unread,
Apr 5, 2012, 9:31:15 AM4/5/12
to publice...@googlegroups.com
Me parece que complican las cosas de gusto, en realidad, un dataset, es un arreglo en memoria con dos dimensiones, con algunas facilidades para relacionar varios de ellos (lo que se podría hacer en el origen de datos, con un buen SQL).
En PHP, no hay cursores pero puedo transferir los datos a arreglos o a objetos iterables y proceso cualquier cosa.
Es más, transfiero casi toda la lògica a SQL (columnas a partir de selects, tablas que son selects, vistas directas y anidadas).
El SQL es muy potente, a veces, la limitación viene dada por nuestra limitación en saber expresar el problema en terminos de SQL.

Saludos: Miguel, La Pampa (RA)


Thierry Planchais - PC Soft

unread,
Apr 5, 2012, 5:46:50 PM4/5/12
to publice...@googlegroups.com
Buen día Víctor, vamos a revisar estas preguntas una por una, es un poco más fácil de la forma en que usted preguntó ya que es un poco diferente el concepto de cursores de Oracle a los de FoxPro y a pesar de haber trabajado con Visual Basic en mis primeros años como profesional, hay cosas bastante distintas, entonces revisemos.
 
1.       Como les mencionaba en alguna de las respuestas anteriores hay varias formas de hacer las cosas con Windev, pero el resultado de un query puede ser manipulado, revisado o transferido fácilmente con Windev, el resultado de este va a tener una estructura dada por cómo se solicitó sea traída la información en el query o si está trayendo la información solo de una tabla sin ningún filtro tendrá el esquema de la tabla.
 
2.       Windev si permite usar funciones SQL tanto para hacer consultas(SELECT) como modificaciones(UPDATE), borrados (DELETE) o adiciones(INSERT), por lo tanto podrán rescatar casi todas las consulta creadas en sus aplicaciones, y con respecto a los Joins para windev no es mucho pedir, lo puede hacer de forma grafica como lo mostramos en algunos videos que están disponibles en youtube o a través de una sentencia SQL, la información normalmente puede ser utilizada como un data source.
 
3.       Claro que si, usted puede conectar directamente la información de una tabla a un objeto grafico, o puede traer una sección de esto en memoria y mostrarlo o manipularlo desde el objeto grafico, si decide dejar en memoria la información el límite de la mayoría de los objetos gráficos usando esta modalidad es de 100.000 registros, si decide conectarlo directamente sin traerlos a memoria podrá manipular el total de los registros de la tabla. Si la información viene de un query y se encuentra enlazado a varias tablas o incluso a diferentes bases de datos pueden ser visualizados por los objetos sin problema, sin embargo para borrar, actualizar o agregar información  requerirá de unas líneas de código, normalmente de 4 a 6 líneas por acción es decir si por ejemplo esta visualizando un query que trae información de 3 o 4 tablas para poder tratar la información y devolverla a la base de datos le costara unas 12 a 16  líneas de código por columna a la que le quiera permitir todas las acciones.
 
Espero que hayamos podido contestar satisfactoriamente a sus dudas.
 
Cordialmente,
 
 
cid:wdcid1
Alejandro Díaz G.
Director de Tecnología TAP STUDIO LATINOAMÉRICA
Distribuidor PC SOFT en Colombia y Latinoamérica
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 286 98 89

Mail :   ad...@windev.co
Site :   www.windev.co









Thierry Planchais

Director General TAP STUDIO Latinoamérica
Distribuidor PC SOFT en Colombia y Latinoamérica
 
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 770 99 95
Mail :    tplan...@windev.co
Skype : thierryplanchais
Site :   www.windev.co




Actualidad : 
- Les versions 17 pronto disponibles 

 

Thierry Planchais - PC Soft

unread,
Apr 5, 2012, 5:47:27 PM4/5/12
to publice...@googlegroups.com
Buen día Juan, esa es una estrategia perfectamente válida, usted puede recorrer un array o la información de un objeto grafico y uno por uno tratarlo con un bucle, puede hacerlo con SQL o con instrucciones propias de windev, por ejemplo si está entrando los datos:
 
Customer.LastName = "Clark"
Customer.FirstName 
= "Vince"
Customer.Address 
= "Palm Lane"
Customer.City 
= "Philadelphia"
Customer.Zip 
= "19101"
Customer.Country 
= "USA"
HAdd(Customer)
 
O si los tiene en pantalla en objetos graficos>
 
ScreenToFile()
HAdd(Customer)
 
Esto en el caso de crear y para modificar es cambiar la instrucción HAdd por HModify.
 
Espero que esto resuelva su inquietud.
 
Cordialmente,
 
 
cid:wdcid1
Alejandro Díaz G.

Director de Tecnología TAP STUDIO LATINOAMÉRICA
Distribuidor PC SOFT en Colombia y Latinoamérica
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 286 98 89
Mail :   
Site :   www.windev.co








Thierry Planchais

Director General TAP STUDIO Latinoamérica
Distribuidor PC SOFT en Colombia y Latinoamérica
 
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 770 99 95
Mail :    tplan...@windev.co
Skype : thierryplanchais
Site :   www.windev.co



Actualidad : 
- Les versions 17 pronto disponibles 

 
Le 4 avr. 2012 à 19:43, Juan Bonilla a écrit :

sip...@gmail.com

unread,
Apr 5, 2012, 6:47:50 PM4/5/12
to publice...@googlegroups.com
Hola
Eso sería válido para bases de datos nativas Hyperfile y de otros motores ?
Saludos
Alexander Barreto
Venezuela
Enviado desde mi BlackBerry de Movistar

From: Thierry Planchais - PC Soft <tplan...@windev.co>
Date: Thu, 5 Apr 2012 16:47:27 -0500
Subject: Re: [vfp] OT: Otra de Windev

Thierry Planchais - PC Soft

unread,
Apr 5, 2012, 8:28:04 PM4/5/12
to publice...@googlegroups.com
Hola 

Para todos los motores utilizando el acceso nativo. 




Thierry Planchais

Director General TAP STUDIO Latinoamérica
Distribuidor PC SOFT en Colombia y Latinoamérica
 
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 770 99 95
Mail :    tplan...@windev.co
Skype : thierryplanchais
Site :   www.windev.co




Actualidad : 
- Les versions 17 pronto disponibles 

 

<image001.gif>
Alejandro Díaz G.
Director de Tecnología TAP STUDIO LATINOAMÉRICA
Distribuidor PC SOFT en Colombia y Latinoamérica
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 286 98 89
Mail :   
ad...@windev.co
Site :   www.windev.co






<pcsoft.gif>


Thierry Planchais

Director General TAP STUDIO Latinoamérica
Distribuidor PC SOFT en Colombia y Latinoamérica
 
Tel. :   + 57 1 226 95 70
Cel :    + 57 318 770 99 95
Mail :    tplan...@windev.co
Skype : thierryplanchais
Site :   www.windev.co

<pointillets.gif>



Actualidad : 
- Les versions 17 pronto disponibles 

<les-versions-17-sont-disponibles.jpg><separateur_actu_grand.gif> <lst-87-disponible.jpg>

Victor Espina

unread,
Apr 6, 2012, 12:22:43 PM4/6/12
to publice...@googlegroups.com
Hagamos algo. Te pongo un ejemplo practico de una tecnica que uso mucho, a ver como seria el equivalente en WinDEv.

Por favor, de entrada, dejemos de lado esto de asociar directamente un campo a una tabla de la BD real, pues por muchas razones en aplicaciones compleja ese no es el caso. Generalmente los datos se almacenan primeramente en forma local y luego es que se envian a la Base de datos.

Digamos que yo estoy creando un dialogo que pide codigo, nombre, telefono y direccion de un contacto, y lo registra en la BD. Una forma muy facil de hacerlo en VFP es esta:

*-- Conectamos con la BD y traemos un cursor vacio de la tabla a actualizar. Este codigo iria en el
*   evento Init de la forma
*
LOCAL nConn
nConn = SQLSTRINGCONNECT("...")
SQLEXEC(nConn, "USE mibd")
SQLEXEC(nConn, "SELECT * FROM contactos WHERE 1=2","QBUFF")
SQLDISCONNECT(nConn)


*-- Configuramos los dataSource de los objetos de entrada. Para facilidad, se asume que en tiempo
*    de diseno se guardo el valor a poner en dataSouce dentro de la propiedad Tag.
*
LOCAL oControl
FOR EACH oControl IN THISFORM.Controls
 IF PEMSTATUS(oControl, "dataSource", 5) 
   oControl.dataSource = oControl.Tag
 ENDIF
ENDFOR

*-- Se anade un registro vacio en QBUFF para servir de contenedor a los valores introducidos
*    por el usuario
*
SELECT QBUFF
APPEND BLANK

*-- Evento Grabar.  Aqui se graban los datos introducidos por el usuario en la BD. Para iniciar
*    se crea un objeto con el contenido del registro en QBUFF
*
PRIVATE oRow
SELECT QBUFF
SCATTER NAME oRow MEMO

*-- Se abre la conexion con la BD y se envia el registro
*
nConn = SQLSTRINGCONNECT("...")
SQLEXEC(nConn, "USE mibd")
SQLEXEC(nConn, "INSERT INTO contactos VALUES (?oRow.codigo, ?oRow.nombre, ?oRow, ?oRow.telefono, ?oRow.direccion)")
SQLDISCONNECT(nConn)

Estoy perfectamente consciente que WinDev probablemente tenga asistentes que automatizan este tipo de operaciones, al igual que los tiene VFP.  Ese tipo de soluciones no me interesa. Lo que yo quiero saber es como se lograria el mismo efecto en WinDev programandolo a mano, porque eso me da una idea de lo versatil que es el lenguaje y de las cosas que me permitiria hacer de ser necesario.

Tambien entiendo que este es un ejemplo muy sencillo y que incluso en VFP hay mejores maneras de hacer lo mismo, usando vistas actualizables, etc. Pero repito: lo que me interesa ver es la versatilidad del lenguaje.

Saludos

Victor Espina

edgar suarez kummers

unread,
Apr 6, 2012, 12:48:42 PM4/6/12
to publice...@googlegroups.com
Voy a esperar a que desarrollen algo así como esto que ya existe en los GPS usados en Madrid:

Obviamente aplicado al diseño de software.

"Quiero llegar desde el Hospital Doce de Octubre hasta la calle Luis XV número 11 en el Polígono Industrial de Vallecas".

Una muy dulce voz femenina me guía ... así:

Empecemos nuestra ruta.
En la siguiente calle tuerza a su izquierda.
En la siguiente calle tuerza a su derecha.
bla
bla
bla
bla
Ha llegado a su destino. Gracias.

Ese trayecto yo lo hice dentro de un vehículo equipado con GPS , es posible que me equivoque en el número de la calle, pero en definitiva se trataba de llegar a mi trabajo en:


Y que ahora están en Alcalá de Henares.

Los recursos tecnológicos están a la orden para hacer algo así ... lo más que se puede esperar al futuro es que reduzcan el tamaño y consumo de los elementos, pero hace ya varios años venden lo que se desee para lograr hacer Robots que sean capaces de ejecutar una labor y esta sea definida por texto y este a su vez por voz.

saludos

edgar

Victor Espina

unread,
Apr 6, 2012, 1:56:44 PM4/6/12
to publice...@googlegroups.com
Edgard, como siempre, podrias ilustrar para el resto de la HUMANIDAD, cual es la relacion entre tu comentario y el tema que se maneja en este foro????

Estoy seguro que hay una conexion, pero es obvia solo para ti :)

Victor Espina

Fox Learner

unread,
Apr 6, 2012, 2:07:30 PM4/6/12
to Comunidad de Visual Foxpro en Español
"Leyendo la mente de Edgar" jeje con la frase:

"Voy a esperar a que desarrollen algo así como esto que ya existe en
los GPS
usados en Madrid: Obviamente aplicado al diseño de software."

Talvez quiere decir que Edgar no utilizará una herramienta que no le
permita hacer cosas tan tecnologicamente buenas como las que manipulan
GPS y otras ondas de ese estilo.

Debe ser porque Edgar está mas enfocado a la programación con fines
industriales.

A ver si le atiné jeje...

Y sí, Edgar, parece tener un estilo muy diferente de expresión, pero
es divertido, no?...

Saludos!

edgar suarez kummers

unread,
Apr 6, 2012, 2:56:05 PM4/6/12
to publice...@googlegroups.com
Pienso que la humanidad no está esperando por más lenguajes de programación sino por soluciones integrales del estilo de PROLOG, de Holanda.

Bajando el PROLOG pueden ver por ejemplo la solución al problema de las Torres de Hanoi.

Pienso que el VFP es un gran lenguaje y ya conocemos que para hacer una aplicación con él debemos armarnos de paciencia.

El siguiente lenguaje de programación debe ser declarativo.

Esa era la idea.

saludos

edgar 
--
edgar suarez kummers

Victor Espina

unread,
Apr 6, 2012, 7:32:27 PM4/6/12
to publice...@googlegroups.com
Ahhhhhhhh, ves?  ahora si te capto perfectamente.  Y si, estoy de acuerdo contigo. Los lenguajes del futuro deben estar mas centrado en "que quiero hacer" y menos en "como lo hago".  De hecho, justamente ahora estoy metido en un proyecto que busca poder generar clases que "generen" formas y dialogos funcionales a partir de una "declaracion" hecha en XML; la declaracion solo contiene QUE COSAS deben aparecer en la forma y algunas guias simples de como debe ser la DISTRIBUCION de esas cosas, y la clase arma el formulario completo a partir de esos datos.

Yo espero que en algun momento, podamos describir a una computadora que cosa es un empleado, que cosa es un salario y que luego podamos decir "aumenta en 20% el salario de todos los empleados ingresados en a partir del 1ro del mes pasado" y la computadora sea capaz de realizar la accion sin tener que explicarselo paso a paso.

Y si, hay dos tipos de personas en el mundo: los que tienen una mente logica-secuencial (que somos la mayoria) y los que tienen una linea de pensamiento "asincronica", como Edgar, que son bien pocos y son capaces de dar grandes saltos de pensamiento sin estar obligados a llevar una logica que explique dicho salto.

Saludos

Victor Espina

edgar suarez kummers

unread,
Apr 6, 2012, 8:39:15 PM4/6/12
to publice...@googlegroups.com
Estimado Victor:

Yo estoy bastante por detrás de los líderes del grupo en conocimientos del VFP9.

Lo que tengo es una paciencia que saca de quicio a cualquiera.

Ya había contado por acá que me tomó 12 años desarrollar un sistema asincrónico a partir de los postulados de Mc Cluskey asumiendo la electrónica como si fuera un lenguaje de programación.

Finalmente hice un "sistema declarativo" para control de maquinaria que pude perfeccionar finalmente en Madrid, porque en un año no hice sino eso, perfeccionar mi software y los fines de semana si había algún trabajo que hacer para la empresa entonces lo hacía en un portatil Toshiba Satellite entre el viernes en la noche y el domingo de madrugada.

Pude probarlo haciendo 5 máquinas (controles de cinco sistemas) que son similares a los que puedes ver en:


y que fueron para huevos, cartones, hielos, quesos y (siempre se me olvida algo).

La de huevos fue en Almendralejo, Badajoz, cerca a Portugal, digamos que fue el primero de los trabajos y el más exitoso por cuanto los de Omron de Madrid llevaban un año en el proyecto y por muchas razones no lo habían optimizado.

Me tocó hacer y reformar un programa de Omron desde un Miércoles a las 11 de la noche hasta el jueves hasta las 5 de la madrugada, corriendo de un lado para otro y con un Tipo gritándome a toda hora, él era de apellido Horcajo.

El viernes regresamos a Madrid y por el camino conocí la cuna de los hermanos Pizarro en Trujillo, que es cerca a una niebla permanente de la cuenca del río Tajo.

Ya el lunes me dijeron ... "Te puedes quedar con nosotros el tiempo que te dé la gana".

Creo que en un año no trabajé más de 5 días para labores de la empresa, pero ellos no se sentían mal por ello, lo importante era cumplir.

Entonces pude perfeccionar el software.

Hago una aplicación de control de maquinaria en un día o sea 23 horas 50 minutos durmiendo para entender lo que hay que hacer y en cinco minutos dicto el texto declarativo y zuass, todo listo gracias a unos 30 programas en Batch.

Pero siendo muy bueno, no hay mucho cliente, porque una aplicación de esas requiere con mucha facilidad hasta un millón de dólares o más en equipos de todo estilo.

Es un tema diferente al que nos ocupa en el foro, pero es muy interesante.

saludos y gracias por su tiempo.

edgar



--
edgar suarez kummers

Daniel Sánchez

unread,
Apr 6, 2012, 9:30:58 PM4/6/12
to publice...@googlegroups.com
Hola Víctor E., tu que estas medio metido con json y js no se podría hacer un compilador para pasar al menos la parte de un formulario a un formato HTML o mejor dicho representar dicho formato en web con solo una especie de compilador, me parece que por ahi va los tiros de estos programas multi plataforma, diseñas sin importar (aunque en realidad si importa por la cuestión de limitaciones en que plataforma va ha correr, web, movil o escritorio) donde correrá y suas le indicas cual es el destino final y tienes un compilado en el entorno o plataforma deseada, debo suponer que windev, servoy y otros deben apuntar en ese sentido, que piensas al respecto Victor E.

Victor Espina

unread,
Apr 7, 2012, 1:17:58 AM4/7/12
to publice...@googlegroups.com
Daniel, justo estoy trabajando en algo como eso pero con Xml. La idea es como tu dices; poder describir un elemento de la interfaz meiante un documento Xml y que sea independiente del dispositivo donde se vaya a mostrar, siempre y cuando haya una version del "interprete" para esa plataforma.

Por ahora solo tengo un interprete para VFP, pero tal como esta quedando estructurado, podria perfectamente crear un interprete para HTML o uno para Windows Mobile, o Windows Phone 7.

Sin embargo, es algo bastante complicado y que llevara harto tiempo.  Por ahora estoy concentrado en VFP, pero el siguiente paso sera HTML con JQuery.

Para ejemplo, este Xml representa un dialogo que pide datos de un contacto:

<?xml version="1.0" encoding="UTF-8"?>
<Form Caption="Prueba" autoSize="true" xsi:noNamespaceSchemaLocation="TMForm.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<!--  S E C T I O N S -->
<Sections>
<Section Id="Default" Caption="Nuevo contacto" >
  <Groups>
    <Group Id="Principal" Width="350px" >
      <Layout>
      <Row Id="nombre" Caption="Nombre" Kind="Text" dataBind="nombre" Required="true" maxLon="25" />
      <Row Id="apellido" Caption="Apellido" Kind="Text" dataBind="apellido" Required="true" maxLon="25" />
      <Row Id="direccion" Caption="Direccion" Kind="Memo" dataBind="direccion" Required="true" Lines="3" Align="Bottom" />
      </Layout>
    </Group>
    <Group Id="Telefonos" Width="350px" flowAlign="Below" >
      <Layout>
      <Row Id="telfcasa" Caption="Telefono hab" Kind="Text" dataBind="telefono1" Required="true" maxLon="25" />
      <Row Id="telfoficina" Caption="Oficina" Kind="Text" dataBind="telefono2"  maxLon="25" />
      <Row Id="telfmovil" Caption="Movil" Kind="Text" dataBind="telefono3"  maxLon="25" />
      </Layout>
    </Group>
    <Group Id="Foto" Width="200px" flowAlign="After" flowRefId="Principal" >
      <Layout>
      <Row Id="foto" Caption="Foto" Kind="Image" dataBind="foto" Required="true" imageSize="128x128" />
      </Layout>
    </Group>
  </Groups>
  </Section>
</Sections>



<!--  T O O L B A R S  -->
<Toolbars>
<Main>
<Button Id="cmdExit" Caption="Salir" Action="Exit" Align="Left" Mode="Any"/>
<Button Action="Save"/>
</Main>
</Toolbars>


<!--   E V E N T S   -->
<Events>
<onFormClose Target="cerrarForma"/>
</Events>

</Form>


Ese Xml se pasa por el interprete VFP y el resultado el mostrado en la imagen anexa.  Espero, en algun momento de este ano, poder generar un interprete HTML/JS que genere una interfaz muy similar, pero para HTML.

La verdad, ha sido un proyecto bien interesante que me ha servidor para aprender mucho mas sobre la utilidad de Xml.

Saludos


Victor Espina
Screen shot 2012-04-07 at 12.13.54 AM.png

Victor Espina

unread,
Apr 7, 2012, 1:21:52 AM4/7/12
to publice...@googlegroups.com
Daneil, al releer tu pregunta creo que ahora si entendi el verdadero significado. Lo que tu preguntas es si es posible crear un interprete que tome un SCX y genere un equivalente HTML del mismo.

Pues la verdad no es imposible, pero si MUY dificil, principalmente por dos retos importantes:

a) VFP usa un sistema de posicionamiento absoluto, mientras que las paginas HTML usan un sistema de posicionamiento relativo.  Esto podria subsanarse usandos Widgets que permitan el posicionamiento absoluto dentro de su contenido, pero igual no es algo facil.

b) El interprete podria hacer un render a equivalente HTML de todas las clases base de VFP, pero no tendria forma de generar una presentacion HTML de un control personalizado, como por ej un boton basado en container.

Saludos

Victor Espina


On Friday, April 6, 2012 8:30:58 PM UTC-5, Daniel Sánchez wrote:

Douglas Sánchez Guillén

unread,
Apr 7, 2012, 1:26:40 AM4/7/12
to publice...@googlegroups.com
Hola Victor, con esto de que se puede hacer algo de scx to html, toy con dudas, no se si has visto un documentador llamado PDM, que transforma todo el menu los scx base de datos repollos etc. a html, no es lo mismo a lo que se refiere. y hace una Interfaces que parece que fue diseñada en algun diseñador html.

Saludes
--
Ing. Douglas Sánchez Guillén
      Consultor Informatico
Movistar: 505 8759 - 5342
Claro: 505 88495476

Douglas Sánchez Guillén

unread,
Apr 7, 2012, 1:29:34 AM4/7/12
to publice...@googlegroups.com
Hola Victor a esto es a lo que me refiero.


http://www.youtube.com/watch?v=aUCEzNw_oBI

http://gorila.netlab.cz/pdm.html

Saludes

Daniel Sánchez

unread,
Apr 7, 2012, 1:33:14 AM4/7/12
to publice...@googlegroups.com
Obviamente se tendría que dar ciertas consideraciones para poder trasladar un form a una página html, pero aun así creo que facilitaría mucho el poder diseñar algunos formularios y obtener fácilmente el código html (o el que sea necesario) para publicarlo o ejecutarlo en una web, sobre todo para casos específicos para comenzar, como una consulta de estado de cuenta de un cliente, o armar una lista o un clásico cabecera detalle para llenado de pedidos, tratando de ser lo más simple posible pero obteniendo portabilidad de una manera fácil y utilizando una herramienta como vfp como base.
Y viendo como estas de avanzado en el tema, creo que seria muy posible para ti lograrlo, en cuento a la posición pues nos conformaríamos a que nuestro formulario siempre comiencen a en el top y left 1, no creo que a muchos le moleste algo como esto, sobre todo si se logra implementar.

Daniel Sánchez

unread,
Apr 7, 2012, 1:44:17 AM4/7/12
to publice...@googlegroups.com
Douglas S. Lo que muestras en el vídeo de youtube es generar una especie de informe de todo el contenido de un proyecto en html, mas no el pasar un formulario a html.

Douglas Sánchez

unread,
Apr 7, 2012, 1:52:07 AM4/7/12
to publice...@googlegroups.com
Correcto Daniel, el no pasa la interfaces sino a manera de informe, cuando lo puse de ejemplo me imagine que se podria extraer alguna percion de codigo para hacer algo similar a lo que antes mencionan, algo asi me imagino.


Carlos Miguel FARIAS

unread,
Apr 7, 2012, 9:22:34 AM4/7/12
to publice...@googlegroups.com
El problema para pasar un formulario vfp a html es que la estructura de funcionamiento es totalmente diferente.
El tema de la ubicación en la pantalla de los elementos, es tal vez la menos problemática, porque de alguna manera, podes generar html con posicionamiento fijo (más allá que quede como patada abajo de donde la espalda pierde su romantico nombre).
El mayor problema lo tienes en que en vfp, los controles, se cargan con los datos ahi nomás, se asocian a estructura de datos o variables que están en a la mano (relacionados con tablas de la bd, con cursores, con arreglos, con campos de memoria o propiedades del formulario).
En html, los valores están metidos en la corriente de datos que dibujan el formulario en el navegador, y si bien se pueden cambiar mediante javascript (y más fácil con JSON, que es js++), esos nuevos datos de "refresco" deben ser expresamente idos a buscar al servidor, y allì es donde empieza la gran diferencia
En VFP, en los controles de datos por ejemplo tenes controles de eventos (when, gotfocus, valid, keypress, lostfocus, etc.) que en cada caso pueden chequear datos en el servidor, o hacer casi cualquier cosa que se te ocurra. En js, no tenes acceso directo a los datos, tenes que invocar al servidor por ajax, y esperar la respuesta y recien alli seguir, y el servidor, recibe la petición, controla que el origen sea genuino (si no es un tembladeral de seguridad) y eso por cada evento de cada control.
Por supuesto que en JS podes hacer muchas validaciones de forma de los datos, que sean enteros, con decimales, de tantos caracteres, que no este vacio, pero despuès en el servidor, para hacerlo seguro, tenes que volver a chequear todo de vuelta, porque el servidor, no puede asegurar que los datos vienen de tu formulario o de uno que se armo el hacker metiendo fruta podrida.
Por ejemplo, algo tan simple de codificar en vfp como que entras un dato, en función de los valores introducidos, al procesarse contra la bd, habilitas y deshabilitas otros controles, que podes hacer en evento clic de un control, en JS, tenes que tomar los datos, mandarlos al servidor, el servidor recibe la petición, procesa y debe informar en retorno al navegador para que el js sepa con esa respuesta y tocar las propiedades de los controles correspondientes, para que los habilte, dehabilite, y asi con todo.
Salvo que uses algo que ya esté hecho (hay muchas librerias basadas en JSON disponibles), no es tan fácil migrar la forma de pensar un entorno de formularios vfp a un entorno de formularios web, y lo menos problemático es la parte visual, el cambio grande está en la lógica de eventos.

Saludos: Miguel, La Pampa (RA)


Victor Espina

unread,
Apr 7, 2012, 9:28:45 AM4/7/12
to publice...@googlegroups.com
Miguel, cuandp hablaba de pasar un scx a html me referia EXCLUSIVAMENTE a la apariencia, NO a la funcionalidad.

Lo que decis es 100% cierto.

Victor Espina

Carlos Miguel FARIAS

unread,
Apr 7, 2012, 9:53:32 AM4/7/12
to publice...@googlegroups.com
El problema que tenes es que los navegadores no son exactamente iguales al dibujar el html (es notoria la diferencia entre Internet Explorer y los otros). Entonces, salvo que al cliente lo "fuerces" a un navegador especifico, la conversión compatible con todos es dificil.
Igualmente, es muy distinta la funcionalidad de los formularios, tal como lo planteamos en vfp, un formulario (modal o no) en vfp, es una ventana mas de windows, con sus botones estandar (que se pueden anular) y se pueden pisar entre si o pasar el foco de una a otra o es muy simple su manejo si queres usar ventanas modales.
En el navegador, si no bloqueas con programas especiales, las ventanas del navegador, cada ventana, tiene los controles del navegador (hasta su menu) y el simple boton de cerrar, no lo podes quitar.
Además, estando en una ventana, no podes ver los datos de otra ventana, o acceder a metodos de otras ventanas, salvo que hagas complejas rutinas de ajax, invocando al servidor, y el cierre de las ventanas del navegador con la "X" no lo podes evitar (no hay un ON SHUTDOWN), es más, el servidor no se entera de que un formulario se cerro con dicho boton (no se dispara un evento) y para ello, debés instrumentar un modelo de "señales de vida" para que el servidor, pasado un lapso "n" si el formulario no hizo ninguna petición, lo declare "desaparecido" y retrotraiga la transacción asociada.
Por eso, me parece que el solo hecho de traducir un formulario vfp a html, no es práctico, al menos para mi, porque la aplicación debes pensarla de otra manera.
Por ejemplo, en mi caso, cada formulario de la aplicación es un contenedor html, flotando por encima de los otros, cada uno con controles y js asociado explicito para manejar la lógica de sus controles, y te puedo aclarar que igual no logras la funcionalidad que te da vfp.

Saludos: Miguel, La Pampa (RA)



Daniel Sánchez

unread,
Apr 7, 2012, 9:57:33 AM4/7/12
to publice...@googlegroups.com
La idea no es pasar tu aplicación a web si no poder crear formularios siguiendo ciertos lineamientos o parámetros para poder generar fácilmente un representación web de dicho formulario, obviamente que se tendría que ver la parte detrás del formulario como adaptarlo el manejo de métodos y eventos, todo es cuestión de enfocarlo en ese camino, no como dije al inicio, migrar toda tu aplicación realizada en VFP a Web que ese es otro tema muy diferente.

Daniel Sánchez

unread,
Apr 7, 2012, 10:08:01 AM4/7/12
to publice...@googlegroups.com
Siguiendo lo que comentas Carlos Miguel, pues programas como Windev, servoy y otros mantiene el enfoque de la programación por eventos como la conocemos y estos generan código web sin mayor problemas, hasta en .net al decirle que quieres una aplicación web igual programas eventos y métodos en tu aplicación, luego eso es compilado a formato web (html, html5, java, js u otro necesario para obtener lo deseado). O acaso en esos aplicativos has visto una manera diferente de programar estos temas de los métodos y eventos, en el caso de Velneo 7 este tiene un núcleo que se instala y corre tanto en web como en desktop el mismo aplicativo. Por eso veo la posibilidad ya que estos programas mantienen el paradigma de la programación por eventos.

Marlon Salomon Cabrera Roque

unread,
Apr 7, 2012, 1:54:25 PM4/7/12
to publice...@googlegroups.com

Hola, siguiendo el tema del sustituto de VFP que al final es de lo que habla este correo,  he estado probando el Ms LightSwitch me parece genial pero aún no veo escenarios de unos mil usuarios, alguien ha probado esta herramienta?

 

Que opinan?


Se certificó que el correo no contiene virus.
Comprobada por AVG - www.avg.es
Versión: 2012.0.1913 / Base de datos de virus: 2409/4920 - Fecha de la versión: 07/04/2012


Se certificó que el correo no contiene virus.
Comprobada por AVG - www.avg.es
Versión: 2012.0.1913 / Base de datos de virus: 2409/4920 - Fecha de la versión: 07/04/2012

Victor Espina

unread,
Apr 7, 2012, 2:45:43 PM4/7/12
to publice...@googlegroups.com
DAniel, fijate que mi enfoque no es "toma este form VFP y conviertelo en HTML".  Lo que yo estoy haciendo es "toma este form XML y general en VFP, HTML, etc.."

Yo no parte del form VFP; parto de una definicion XML que se convierte en un form VFP y, de esa misma forma, se podria convertir en un form HTML, Java o cualquier otra cosa.

Es ahi a donde estoy apuntando. Es un concepto muy parecido al que usa Servoy.

Saludos

Victor Espina

ultraton500

unread,
Apr 7, 2012, 3:24:40 PM4/7/12
to Comunidad de Visual Foxpro en Español
Hola, siguiendo con el tema de las tablas temporales (cursores) pensé
haber entendido en entradas anteriores que es posible trabajar con
ellas en WinDev de la manera en que lo hacemos en vfp.
De todas formas creo que no vienen mal las aclaraciones y por eso me
gustaría plantear un ejemplo bien sencillo para que Thierry o
Alejandro nos comente cómo funciona en WinDev y qué tanto podemos
hacer con ellas lo que hacemos en vfp.
El caso sería mostrar, en una ventana (en vfp: un form), un control
tabla (en fvp: un grid) para listar las compras de un cliente entre
dos fechas.
Una de las dudas que quiero aclarar es si las filas que mostraría
WinDev en el control tabla (las compras en este caso) serían un
duplicado de las del servidor y estarían situadas localmente.
Si es así estaríamos hablando de un cursor.
Lo que hacemos en vfp es hacer un query para obtener esas compras y
establecer el resultado del query (que es una tabla local en memoria)
como el origen de datos del control tabla (en fvp: un grid) para
visualizarlo o editarlo.
Con esa tabla en memoria podemos, entre otras cosas, recorrerla, hacer
querys sobre ella, obtener cálculos y estadísticas, y modificarla,
todo instantáneamente y sin congestionar la red. Una vez modificada
podemos actualizar la tabla original (archivo de datos) en la db del
servidor.
Particularmente me interesa saber si es posible trabajar de esta
manera con HyperFileSQL ya que es la db que pienso implementar si
migro a WinDev. Después de leer el .pdf me convencí de que realmente
vale la pena.
Gracias de antemano,
Javier.

Daniel Sánchez

unread,
Apr 7, 2012, 4:02:49 PM4/7/12
to publice...@googlegroups.com
Serie muy interesante que diagramaras tu enfoque y lo expusieras con un ejemplo simple y práctico del tema, ya que se ve muy interesante y podría darnos ideas muy buenas.

Victor Espina

unread,
Apr 7, 2012, 5:52:30 PM4/7/12
to publice...@googlegroups.com
Daniel si ves en un post anterior en este mismo hilo, puse un ejemplo de la estructura Xml que estoy usando el resultado que se obtiene al pasarlo por el generador VFP.

En todo caso la idea es bien simple: creo un archivo Xml donde "declaro" el contenido del form y pistas para indicar como deseo que se ubiquen los distintos elementos con respecto a los demas; luego, tomo ese XML y se lo paso a una clase hecha en VFP que convierte en algo funcional lo indicado en el XML.

Saludos

Victor Espina

Carlos Miguel FARIAS

unread,
Apr 7, 2012, 7:10:11 PM4/7/12
to publice...@googlegroups.com
wxFormBuilder, te permite crear archivos xml a partir de un diseño de pantalla, (además de codigo C++ y python), pero es interesante, porque ya te genera el codigo html para gran cantidad de controles disponibles.
Es gràtis, asi que, no cuesta nada probarlo, y creo que hasta estan los fuentes, como son en python, no serìa tan engorroso convertilo a vfp.

Saludos: Miguel, La Pampa (RA)

Douglas Sánchez

unread,
Apr 8, 2012, 5:41:11 PM4/8/12
to publice...@googlegroups.com
Hola para mi con solo el hecho de pasar la interfaces aunque no se pasen los eventos es un gran logro ya en html.

saludes

Luis Dalmasso

unread,
Apr 9, 2012, 9:27:07 AM4/9/12
to Comunidad de Visual Foxpro en Español
ya existe es frances y muy bueno y recomendable convierte los scx a
html on fly

http://www.vfp2iis.com/

Saludos

Luis Dalmasso

Walter R. Ojeda Valiente

unread,
Apr 9, 2012, 9:37:52 AM4/9/12
to publice...@googlegroups.com
Se lo ve interesante, lastimosamente sólo puede ser utilizado con Internet Explorer, y cada vez menos gente utiliza ese navegador.

"VFP2IIS Version 2.0 is NOT compatible with Netscape, FireFox and Opera."

Saludos.

Walter.




> Date: Mon, 9 Apr 2012 06:27:07 -0700
> Subject: [vfp] Re: OT: Otra de Windev
> From: luisda...@gmail.com
> To: publice...@googlegroups.com

extremo

unread,
Apr 9, 2012, 10:13:48 AM4/9/12
to Comunidad de Visual Foxpro en Español
Genial...

Anunque corra solo con iexplorer, asi como algunos software piden como
requisitos tener instalado office ,outlook, porque no pedir iexplorer
en los requisitos?, ademas esa herramienta viene por default en SO de
windows.... se ve bastante interesante.

Gracias Luis y bendiciones.


On 9 abr, 09:37, "Walter R. Ojeda Valiente" <w...@hotmail.com> wrote:
> Se lo ve interesante, lastimosamente sólo puede ser utilizado con Internet Explorer, y cada vez menos gente utiliza ese navegador.
>
> "VFP2IIS Version 2.0 is NOT compatible with Netscape, FireFox and Opera."
>
> Saludos.
>
> Walter.
>
>
>
>
>
>
>
> > Date: Mon, 9 Apr 2012 06:27:07 -0700
> > Subject: [vfp] Re: OT: Otra de Windev
> > From: luisdalma...@gmail.com

extremo

unread,
Apr 9, 2012, 10:33:46 AM4/9/12
to Comunidad de Visual Foxpro en Español
por alguna razon... no me dejo instalar el demo... me salio el
mensaje One of the System Requeriments for VFP2IIS has not been met,
the installlation will now stop....

ni modo... tendre que esperar a llegar a mi casa para verlo... para
eso me faltan muchas horas :(

Lei que los treeview los conainer los menus y los datapicker (pueden
ser mas) no funcionan por lo que igual hay que hacer modificaciones en
el codigo, el texto original es este:

Limitation:
VFP2IIS only supports VFP native objects. Since some frequently used
parts of your VFP application may be not directly supported, you must
check your VFP code and generate HTML, especially for:
- VFP control class (can be used as container, but is not handled
automatically by VFP2IIS)
- VFP Menu
- ActiveX and embedded objects like tree, date picker


Bendiciones

Victor Espina

unread,
Apr 9, 2012, 11:17:18 AM4/9/12
to publice...@googlegroups.com
Justo por esas limitaciones (que no pueden solventarse por su misma naturaleza) es que esto de tomar un SCX y convertirlo en otra cosa NO funciona.

Lo correcto es definir la forma en un formato "neutro" y luego REPRESENTAR esa forma en una plataforma especifica, como SCX o HTML, usando un generador o interpretador especifico para cada plataforma.

Victor Espina

Douglas Sánchez

unread,
Apr 9, 2012, 2:27:06 PM4/9/12
to publice...@googlegroups.com
Pero, Colegas habra alguna herramienta de html que las pueda pasar a codigo que se pueda ejecutar en otros nevegadores.mmmm

saludes
--
Ing. Douglas Sánchez Guillén
      Consultor Informatico
Claro: 505 88495476

Daniel Sánchez

unread,
Apr 9, 2012, 2:25:28 PM4/9/12
to publice...@googlegroups.com
Lo mismo que comentaste Víctor E. entonces siguiendo tu lineamiento indicado deberíamos tener un entorno (neutro) donde definimos nuestros formularios o formas y luego le indicamos generar para vfp, web u otro.
Pero al menos con dicho migrador un form estándar sin tantos recutecos que ponemos podríamos migrar a un formato web.
Voy a revisar dicho programa.

Victor Espina

unread,
Apr 9, 2012, 3:32:48 PM4/9/12
to publice...@googlegroups.com
Es correcto Daniel, pero definitivamente no es algo facil de hacer.

Victor Espina

extremo

unread,
Apr 9, 2012, 4:16:20 PM4/9/12
to Comunidad de Visual Foxpro en Español
mmmmm, tal vez no sea tan facil pero supongo que debe ser mas facil
que aprender un lenguaje nuevo

Bendiciones

Carlos Miguel FARIAS

unread,
Apr 9, 2012, 8:08:53 PM4/9/12
to publice...@googlegroups.com
Creo que aca no se esta teniendo en cuenta que lo importante es como funciona lo que se ve, y no como realmente se ve.
Si tenes una herramienta que vos diseñas y sin muchas alteraciones se ve y funciona en escritorio o un navegador va fenómeno, pero funcionalmente detras, un programa de escritorio y uno que corra desde un navegador son muy diferentes.
Un ejemplo: Hace un par de años analizamos la herramienta de Delphi para PHP de Embarcadero, y simple control desplegable (popup) había que cargarlo con ¡código escrito a mano!.
Otro caso: Aca hace un tiempo durante varios dias se discutia el tema de instrumentar una mascara en un campo de entrada (y se repetido la consulta y el debate varios dias, hasta alguien pidio perdón por insultar a vfp sin saber).
En VFP, en definitiva, instrumentar una máscara, es simplemente "dibujarla" en una propiedad (y cuenta con gran variedad de alternativas). En html, eso se tiene que manejar con JavaScript (ya hay código público disponible), y si tiene que "calzar" para cada campo de entrada (input), no es dificil, pero en el enfoque es diferente.
Y además, en un navegador, el enfoque de diseño es otro, y hay situaciones que ya indique antes que te alteran toda la logica de funcionamiento.
Entonces solo pensar en traducir scx a html en lo visual y no pensar en el código subyacente, entiendo es un trabajo "no productivo".
Si hay una herramienta que hace ambas tareas (traduce lo visual y el codigo) eso es otro cantar.

Saludos: Miguel, La Pampa (RA)


Daniel Sánchez

unread,
Apr 9, 2012, 10:30:18 PM4/9/12
to publice...@googlegroups.com
Creo con la posibilidad de equivocarme, que el enfoque de form vfp a web quedaría amarrado con ActiveVFP, de una parte tenemos el form en web y mantenemos código vfp corriendo con ActiveVFP, esto me parece que podría ser factible, espero no equivocarme.

Jairo

unread,
Apr 12, 2012, 4:01:59 PM4/12/12
to publice...@googlegroups.com

Como digiste he hecho algunas pruebas con el ActiveVfp y funciona bien, solo falta aplicarle mejoras , como por ejemplo listar a dos o tres columnas, hacer búsquedas etc.

 

Jm

Saúl Piña

unread,
Jan 30, 2020, 4:06:41 PM1/30/20
to Comunidad de Visual Foxpro en Español

*-- Conectamos con la BD y traemos un cursor vacio de la tabla a actualizar. Este codigo iria en el
*   evento Init de la forma
*
LOCAL nConn
nConn = SQLSTRINGCONNECT("...")
SQLEXEC(nConn, "USE mibd")
SQLEXEC(nConn, "SELECT * FROM contactos WHERE 1=2","QBUFF")
SQLDISCONNECT(nConn)


*-- Configuramos los dataSource de los objetos de entrada. Para facilidad, se asume que en tiempo
*    de diseno se guardo el valor a poner en dataSouce dentro de la propiedad Tag.
*
LOCAL oControl
FOR EACH oControl IN THISFORM.Controls
IF PEMSTATUS(oControl, "dataSource", 5)
   oControl.dataSource = oControl.Tag
ENDIF
ENDFOR

*-- Se anade un registro vacio en QBUFF para servir de contenedor a los valores introducidos
*    por el usuario
*
SELECT QBUFF
APPEND BLANK

*-- Evento Grabar.  Aqui se graban los datos introducidos por el usuario en la BD. Para iniciar
*    se crea un objeto con el contenido del registro en QBUFF
*
PRIVATE oRow
SELECT QBUFF
SCATTER NAME oRow MEMO

*-- Se abre la conexion con la BD y se envia el registro
*
nConn = SQLSTRINGCONNECT("...")
SQLEXEC(nConn, "USE mibd")
SQLEXEC(nConn, "INSERT INTO contactos VALUES (?oRow.codigo, ?oRow.nombre, ?oRow, ?oRow.telefono, ?oRow.direccion)")
SQLDISCONNECT(nConn)

En windev:

*No es necesario conectar si damos por hecho que la tabla ya está en el contenedor

HReset(contactos)

*agregar datos a la tabla contactos
contactos
.codigo = sCodigo // edt_codigo (segun sea el caso)
contactos
.nombre = sNombre
contactos
.telefono = sTelefono
contactos
.direccion = sDireccion

*Guardar
HAdd(contactos)

//FIN Windev!




Irwin Rodriguez

unread,
Jan 30, 2020, 5:07:01 PM1/30/20
to Comunidad de Visual Foxpro en Español
Buenas Colega, qué hace usted (y por consiguiente yo) respondiendo a un hilo de hace 8 años? con quién se está peleando por aquí? :)

Para complementar tu respuesta, así sería el enlace de una tabla (.FIC) a un DataSource para aquellos que no usamos Análisis:



dsContactos is Data Source = "contactos"
HDeclareExternal("c:\ruta\de\mi\fichero.fic", "contactos")

Colocar ese código en un procedure llamado VFP_USE() quedaría más cómodo para trabajar.

Saludos!

Antonio Meza

unread,
Jan 30, 2020, 8:35:07 PM1/30/20
to Comunidad de Visual Foxpro en Español
Creo que en 8 años ya les quedo claro no usar Windev!!!!! jajajajajaja

El contenedor de Windev es lo mismo que si usas un contenedor en VFP y añades una vista remota, entonces el código se simplifica de igual forma!!!

El ejemplo si realmente quieres comparar es poner el mismo código que usaste en VFP pero usando funciones de Windev, es decir conectarte al servidor de base de datos etc, etc!!! y no dudo que sea algo parecido, la diferencia va a radicar en que VFP obtienes cursores que no vas a tener en Windev.

Por eso siempre digo que WIndev es una copia barata pero MUY CARA de VFP!!! jajajajaja 

saludos
Antonio Meza

Irwin Rodriguez

unread,
Jan 31, 2020, 7:13:56 AM1/31/20
to Comunidad de Visual Foxpro en Español
Pregunta: Si WINDEV es una copia barata de Fox, no se sentirían cómodos los Foxeros al pasarse allí?

Saúl Piña

unread,
Jan 31, 2020, 7:20:09 AM1/31/20
to Comunidad de Visual Foxpro en Español
Lo dice solo porque no tiene cursores windev, pero posee otras cualidades, por ejemplo que no solo produce exe

Irwin Rodriguez

unread,
Jan 31, 2020, 8:42:05 AM1/31/20
to publice...@googlegroups.com
Ok pero puedes mitigar el problema de los cursores con Data Sources apuntando bien sea a .FIC o a Vistas (Materializadas / Remotas).

Saludos!

El vie., 31 ene. 2020 a las 13:20, Saúl Piña (<saulpi...@gmail.com>) escribió:
Lo dice solo porque no tiene cursores windev, pero posee otras cualidades, por ejemplo que no solo produce exe

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate en la Web, visita https://groups.google.com/d/msgid/publicesvfoxpro/940c5706-00ae-4e8d-aef6-6be7ff3494cf%40googlegroups.com.


--
Irwin Rodríguez
Programmer Analyst
"A team is only pieces that you exchange until you finish the work, it is efficient, it works."

Antonio Meza

unread,
Jan 31, 2020, 11:11:48 AM1/31/20
to Comunidad de Visual Foxpro en Español
Comente: Copia Barata pero MUY CARA!!!! jajajajajajajaja 

saludos!!!

Antonio Meza

unread,
Jan 31, 2020, 11:22:11 AM1/31/20
to Comunidad de Visual Foxpro en Español
Lo digo porque WIndev tiene un contenedor de datos parecido al de VFP, pero el problema de Windev es que si te desconectas del servidor todas las funciones que empiezan con la letra "H" que son las que le dan poder al lenguaje dejan de funcionar.

En el caso de VFP no importa si estas conectado o no al servidor siguen funcionando todas sus funciones!!! por eso para mi Windev es una copia Barata pero muy Cara de VFP!!!!! jajajajajaj

saludos

GeoSys Diseño de Software

unread,
Jan 31, 2020, 11:37:12 AM1/31/20
to Comunidad de Visual Foxpro en Español
Antonio Meza, que buena explicación, yo me interesé por Windev, pero cuando vi los precios ni siquiera intenté ver más allá de sus características.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Irwin Rodriguez

unread,
Jan 31, 2020, 12:05:16 PM1/31/20
to publice...@googlegroups.com
Esto es cierto y ciertamente se queda corto comparado con VFP que puede trabajar los cursores in memory. Sin embargo apenas tuve esa problemática la pude resolver y ahora me da igual si trabajo conectado o no. Por todo lo demás estoy de acuerdo.

Saludos!

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/4d6acaa2-6687-4704-afa0-ef8c9bea6cdb%40googlegroups.com.

Saúl Piña

unread,
Jan 31, 2020, 2:12:14 PM1/31/20
to Comunidad de Visual Foxpro en Español
Ese es un mensaje erróneo y 100% refutable

Saúl Piña

unread,
Jan 31, 2020, 2:13:28 PM1/31/20
to Comunidad de Visual Foxpro en Español
Coincido contigo guacho

Antonio Meza

unread,
Jan 31, 2020, 2:16:40 PM1/31/20
to Comunidad de Visual Foxpro en Español
Cual mensaje ??? porque borraste el historial del mensaje!!! por que será??? jajajajajajajajaja

P.D. Que locura es defender un lenguaje llamado "Windev" en un grupo de un super lenguaje llamado VFP" jajajajajajajajajaa

Irwin Rodriguez

unread,
Jan 31, 2020, 2:56:11 PM1/31/20
to publice...@googlegroups.com
No se defiende, ningún lenguaje es mejor que otro, solo que unos se adaptan mejor a una necesidad que otros!

Saludos!

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Antonio Meza

unread,
Jan 31, 2020, 3:30:12 PM1/31/20
to Comunidad de Visual Foxpro en Español
No lo digo por ti, es por Saul que es fanboy de WIndev jajajajajajajajaja


El viernes, 31 de enero de 2020, 13:56:11 (UTC-6), Irwin Rodriguez escribió:
No se defiende, ningún lenguaje es mejor que otro, solo que unos se adaptan mejor a una necesidad que otros!

Saludos!

El vie., 31 ene. 2020 a las 20:16, Antonio Meza (<solv...@gmail.com>) escribió:
Cual mensaje ??? porque borraste el historial del mensaje!!! por que será??? jajajajajajajajaja

P.D. Que locura es defender un lenguaje llamado "Windev" en un grupo de un super lenguaje llamado VFP" jajajajajajajajajaa

El viernes, 31 de enero de 2020, 13:12:14 (UTC-6), Saúl Piña escribió:
Ese es un mensaje erróneo y 100% refutable

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publice...@googlegroups.com.

Irwin Rodriguez

unread,
Jan 31, 2020, 4:16:42 PM1/31/20
to publice...@googlegroups.com
Ah bueno! En ese caso...

imagen.png


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/dd054b2f-b89e-4a67-b070-f96225855100%40googlegroups.com.

Luis suescún

unread,
Jan 31, 2020, 5:04:21 PM1/31/20
to publice...@googlegroups.com

Saúl Piña

unread,
Jan 31, 2020, 8:10:54 PM1/31/20
to Comunidad de Visual Foxpro en Español
Nomas la mia le gustó a Antonio... jejeje
Reply all
Reply to author
Forward
0 new messages