InputMask y Format en C# al estilo Visual Foxpro ?

1,022 views
Skip to first unread message

Robert Martínez

unread,
Nov 26, 2012, 12:29:54 PM11/26/12
to publice...@googlegroups.com

Saludos colegas,

Esta pregunta quizás es para un foro de C#, pero aquellos que programan en C# quizás no entiendan la pregunta porque no han usado VFP y no conocen de sus bondades, bueno la pregunta es la siguiente. Existe algún control para C# que imite el comportamiento del texbox de VFP, en cuanto al uso de las propiedades Format e inputMask, que no sea el maskEdit?, pues este deja mucho que desear

Fox Learner

unread,
Nov 27, 2012, 10:05:42 AM11/27/12
to publice...@googlegroups.com
Ya probaste con el MaskedTextbox ? ...   Saludos!

También existen clases mejoradas. Una de las mas famosas es la de Infragistics, pero es de pago.


Fox Learner

unread,
Nov 27, 2012, 10:11:03 AM11/27/12
to publice...@googlegroups.com
Si te interesaría también formatear las celdas de un grird, revisa por favor este enlace:


Saludos!



El martes, 27 de noviembre de 2012 09:05:42 UTC-6, Fox Learner escribió:

Robert Martínez

unread,
Nov 27, 2012, 11:58:06 AM11/27/12
to publice...@googlegroups.com

MaskedTexbox esta lejos de parecerse al textbox de Visual Foxpro, hay que hacerle algunos artificios para aproximarlo.

GeoSys Diseño de Software

unread,
Nov 27, 2012, 12:13:20 PM11/27/12
to publice...@googlegroups.com
Robert, recuerda que C# está orientado a WEB y debes cambiar el paradigma.

Si vez en la mayoría de las páginas web los campos de fecha se pueden incluso digitar letras, lo que se hace es validarlos pero hasta que el usuario sale del campo y no como VFP, BV o los otros programas de escritorio.

También es normal que en VFP pases de un TextBox a otro con presionar enter, en cambio en web se pasa al otro campo con TAB y te devuelves con SHIFT y TAB, para poder pasar así debes programar el evento.

Incluso en RealBasic me encontré con ese inconveniente, se me hace difícil de formatear los campos como en VFP, ya es diferente, por eso tenemos que ir cambiando los paradigmas de programación, no hay otra.


Saludos

Anthony Contreras Peralta

Costa Rica.

--
 
 

Fox Learner

unread,
Nov 27, 2012, 2:53:22 PM11/27/12
to publice...@googlegroups.com
Robert,

No te he entendido bien. Qué es lo que no te sale con el textbox en C# ? ..

Saludos!

Robert Martínez

unread,
Nov 27, 2012, 3:00:11 PM11/27/12
to publice...@googlegroups.com

Que el comportamiento sea similar al texbox de visual foxpro cuando le pones un inputmask = '999,999,999.99', intenté con el maskedtextbox de C# en un WinForm, pero hay que meterle mucho código para aproximarlo al comportamiento que tiene el textbox en Visual foxpro, lo que me gustaría saber antes de tratar de inventar la rueda, es si hay algun control que se pueda usar en VS.NET que tenga un comportamiento similar al textbox de visual foxpro.

Fox Learner

unread,
Nov 27, 2012, 3:12:49 PM11/27/12
to publice...@googlegroups.com
Ok. Entonces, deseas poner una máscara de entrada, no ? ..

Porque recuerdo que los formatos se ponen sin mucho problema.

Deja ver si puedo lograrlo..

Saludos!

leonardo trujillo

unread,
Nov 27, 2012, 3:47:48 PM11/27/12
to grupo google vfp

Fox Learner

unread,
Nov 27, 2012, 4:30:06 PM11/27/12
to publice...@googlegroups.com
Jeje, me dio risa el enlace en portugues. Mucho código para hacer una triste mascara...

Voy a seguir acordándome como era la cosa...

Si no mal recuerdo, se creaba una clase para validar todos los tipos campos.

La clase cambiaba un status y se ponía en un try catch.

Dentro de la clase había una simple bandera que hacía el trabajo sucio y eso era todo.

Saludos!

Fox Learner

unread,
Nov 27, 2012, 4:33:42 PM11/27/12
to publice...@googlegroups.com

Fox Learner *

unread,
Nov 27, 2012, 4:55:52 PM11/27/12
to publice...@googlegroups.com
Según los expertos si sería el control maskedtexbox:

Robert Martínez

unread,
Nov 27, 2012, 5:51:11 PM11/27/12
to publice...@googlegroups.com

Gracias a todos por el gran esfuerzo, creo que de todas formas adaptar cualquiera de los controles de captura de texto de VS.NET, conllevaría un esfuerzo extra, al cual no estamos acostumbrado, porque todo esos detallitos lo teníamos resuelto desde el origen de Fox, es difícil, después de llevar toda una vida acostumbrados a que el ZORRO nos ponga las cosas fáciles, que M$ nos imponga una tecnología, que si bien es poderosa en muchas cosas, carece de los detalles que hacen que viejas tecnologías aun se mantengan vigente y dando la batalla, esto no es una justificación para no cambiar, más bien una expresión de indignación por tener que hacerlo, dejando atrás muchas comedidas que entiendo pudieron ser  integradas a los nuevos productos.

Hablando del tema que nos ocupa, el MaskedTextBox es bastante incomodo para el usuario cuando se trata de valores numéricos con formato “999,999.99”,  recuerda que en VFP cuando estas escribiendo la parte entera , si presiona el punto de forma automática VFP mueve el puntero al próximo digito después del punto y acomoda la parte entera a la mascará, luego puede digitar la parte decimal y todos contento, en cambio con el MaskedTextbox el usuario tiene que hacer malabares para que cada digito presionada quede colocado en la posición indicada por la mascara. En otras palabras la mascara en visual foxpro se ajusta a lo que el usuario digita,  en VS.NET el usuario debe ajustar lo que digita a la mascara.  Detalles como esos son los que te hacen recordar, porque aun no hemos dejado el VFP.


Robert Martínez

unread,
Nov 27, 2012, 6:00:15 PM11/27/12
to publice...@googlegroups.com

A los programadores que iniciaron von VS.NET le funciona el Maskedtextbox a la perfección, a los programadores de VFP no le funciona, porque somos un poco mas exigente en cuanto a controles de captura de datos.

Carlos Miguel FARIAS

unread,
Nov 27, 2012, 7:02:49 PM11/27/12
to publice...@googlegroups.com

Cuando hice un curso en GUFA para migrar de vfp a c#, una cosa que me hizo descartarlo fue justamente lo complejo de meter una mascara. En mi época de profesor de programación, le enseñaba a mis alumnos a codificar esos algoritmos, pero para que practicaran algoritmos de manejos de strings, no porque fuera útil.
Saludos: Miguel, La Pampa (RA)

El 27/11/2012 19:51, "Robert Martínez" <soluci...@gmail.com> escribió:

Gracias a todos por el gran esfuerzo, creo que de todas formas adaptar cualquiera de los controles de captura de texto de VS.NET, conllevaría un esfuerzo extra, al cual no estamos acostumbrado, porque todo esos detallitos lo teníamos resuelto desde el origen de Fox, es difícil, después de llevar toda una vida acostumbrados a que el ZORRO nos ponga las cosas fáciles, que M$ nos imponga una tecnología, que si bien es poderosa en muchas cosas, carece de los detalles que hacen que viejas tecnologías aun se mantengan vigente y dando la batalla, esto no es una justificación para no cambiar, más bien una expresión de indignación por tener que hacerlo, dejando atrás muchas comedidas que entiendo pudieron ser  integradas a los nuevos productos.

Hablando del tema que nos ocupa, el MaskedTextBox es bastante incomodo para el usuario cuando se trata de valores numéricos con formato “999,999.99”,  recuerda que en VFP cuando estas escribiendo la parte entera , si presiona el punto de forma automática VFP mueve el puntero al próximo digito después del punto y acomoda la parte entera a la mascará, luego puede digitar la parte decimal y todos contento, en cambio con el MaskedTextbox el usuario tiene que hacer malabares para que cada digito presionada quede colocado en la posición indicada por la mascara. En otras palabras la mascara en visual foxpro se ajusta a lo que el usuario digita,  en VS.NET el usuario debe ajustar lo que digita a la mascara.  Detalles como esos son los que te hacen recordar, porque aun no hemos dejado el VFP.


--
 
 

Robert Martínez

unread,
Nov 27, 2012, 9:11:53 PM11/27/12
to publice...@googlegroups.com

¿Cambiar el paradigma?

 En el caso de VS.NET no es solo un cambio de paradigma. Con VS.NET tenemos dos opciones, nos hacemos conformista o nos rompemos la cabeza para lograr hacer lo que en nuestro ZORRO ya está hecho.

Fox Learner

unread,
Nov 28, 2012, 10:08:49 AM11/28/12
to publice...@googlegroups.com
Robert,

No te desesperes.

Crees que desde el 2002 que arrancó el .NET y luego salió el 2003. Luego el 2005, después el 2008. Luego el 2010 y finalmente el 2012.

Sinceramente crees que después de todos esos años, esas herramientas no tengan una solución ? ..

Lo dudo..

Mas bien se trata de un caso mas de "desconocer la herramienta".

Obviamente, sabes mucho mas sobre mascaras que yo, pero trataré de hallar un espacio para intentarlo por mi cuenta.

No trabajo para MS (de otra forma, con mi sueldo talvez estaría en el caribe tomandome una soda junto a una mujer hermosa jaja) pero tengo que reconocer que esas herramientas son muy buenas.

C# no es recomendable para iniciar un proyecto nuevo si no se conoce. Lo que odio del C# son los corchetes que si se te olvida uno, el triste compilador no te dejará en paz. Tambien el CASE sensitive.

Por eso mi recomendación sigue siendo VB.NET para quien venga de VFP, ya que usa palabras y "arrastra" algunas de las tecnologías de VB 6 facilitando su aprendizaje.

Saludos!

Fox Learner

unread,
Nov 28, 2012, 10:12:16 AM11/28/12
to publice...@googlegroups.com
Me volví a equivocar, lo que odio del C# son LAS LLAVES.

Allan Raúl Acuña

unread,
Nov 28, 2012, 10:30:55 AM11/28/12
to publice...@googlegroups.com
Estimados alguno de ustedes tiene algun documento o ejemplo de uso de procedimientos almacenado con MySQL+VFP?

Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



Date: Wed, 28 Nov 2012 07:08:49 -0800
From: thenewin...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: InputMask y Format en C# al estilo Visual Foxpro ?
--
 
 

Douglas Sánchez

unread,
Nov 28, 2012, 10:45:17 AM11/28/12
to publice...@googlegroups.com
Este cambiando el Hilo??? pero si falta para el viernes.

http://www.nosolocodigo.com/procedimientos-almacenados-con-mysql-5

de ahi he tomado mucha inform. de esa pagina.

saludes



--
 
 



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

David Salazar

unread,
Nov 28, 2012, 10:58:44 AM11/28/12
to publice...@googlegroups.com
Busca información en san google. En fox nada mas haces llamadas no hay mucha ciencia, el fuerte es diseñar bien los procedimientos.

Douglas Sánchez

unread,
Nov 28, 2012, 10:59:13 AM11/28/12
to publice...@googlegroups.com
Putas llaves, a mi me  llega la barba a los huevos con esta sintaxis de C#.


El 28 de noviembre de 2012 09:12, Fox Learner <thenewin...@gmail.com> escribió:
Me volví a equivocar, lo que odio del C# son LAS LLAVES.

--
 
 

Fox Learner

unread,
Nov 28, 2012, 11:13:18 AM11/28/12
to publice...@googlegroups.com
Escribir una llave es cómodo.. solo es un golpe de teclado..

Digamos que es mas práctico que "teclear":

if then ... else.. end if

Es más práctico teclear un solo caracter como una llave, que una palabra completa...

Peeeroo... mientras te acostumbras a eso y al CASE sensitive, es un vil tormento jeje

Por eso para mí, mejor es usar VB.NET que estar perdiendo el tiempo preocupándome por las tristes llaves.



Introduction to C#


Introduction to Visual Basic .NET


Saludos!


Allan Raúl Acuña

unread,
Nov 28, 2012, 1:12:18 PM11/28/12
to publice...@googlegroups.com
Muchas gracias


Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



From: cho...@hotmail.com
To: publice...@googlegroups.com
Subject: Re: [vfp] Procedimientos Almacenados con VFP
Date: Wed, 28 Nov 2012 09:58:44 -0600
--
 
 

Douglas Sánchez

unread,
Nov 28, 2012, 9:42:37 PM11/28/12
to publice...@googlegroups.com
Proc y parametros en mysql ejemplo.

Forma de hacer un proc almacenados en Mysql es:

DELIMITER $$
DROP PROCEDURE IF EXISTS `procestructura` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `procestructura`(IN ncodmun char(6), IN nanio int)
BEGIN
  SELECT tblestructura.idestru, tblestructura.estructura
       FROM tblestructura inner join tblactividades
       on tblestructura.idestru = tblactividades.idestru
       where tblestructura.codmun= ncodmun and tblestructura.anio = nanio group by idestru, idprogramas Order by idestru;
END $$
DELIMITER ;

Su ejecucion es:

r1 = SQLExec(Thisform.nhandle,'CALL procestructura2(?VARCODMUN, ?VARANIO,?vnuevo)','tmpestructura')












--
 
 

Allan Raúl Acuña

unread,
Nov 29, 2012, 8:32:15 AM11/29/12
to publice...@googlegroups.com
Gracias Douglas, probaré y le comento como me fué

Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



Date: Wed, 28 Nov 2012 20:42:37 -0600

Subject: Re: [vfp] Procedimientos Almacenados con VFP
--
 
 

Carlos Miguel FARIAS

unread,
Dec 2, 2012, 10:17:17 AM12/2/12
to publice...@googlegroups.com

En mi opinión, que se a cómodo de escribir, no es sinónimo de mejor.
Para funciones o métodos cortos puede ser practico, pero cuando tienes varias paginas de código con varios niveles lógicos (a veces no se puede o no conviene crear sub rutinas), seguir la cadena de llaves abiertas y entender o ubicar donde esta la compañera es difícil o imposible.
En cambio, un endif, un endfor u otras equivalentes, documentan mejor el código.
Si omites una llave, el error aparece a 'código luz' de donde realmente esta faltando. En cambio, un endif es el fin de un ir, no de cualquier otra cosa.
El código se lee 5 a 10 veces mas que las que se escribe, entonces, lo que prima es la velocidad de lectura comprensión, no la de escritura.
Java tomo el tema de las llaves de C, lo mismo C++, PHP similar. C# lo tomo de java (JavaScript igual).
Pero Ritchie aplico llaves porque tenia que codificar casi con teletipos y allí tipear código era crítico (hablamos de fines '60, principios '70).
Los lenguajes con desarrollo mas independiente, usan otros delimitadores,.
PHP por ejemplo usar llaves para encerrar bloques o : endalgo. Python solo indentado.
Si quieres ahorrar al tipear, usa un lenguaje que te resuelva tu requerimiento con poco tipeo.
Si hay algo por lo que no queremos visual foxpro, es por lo expresivo del lenguaje. Lo mismo pasa con la generalización de SQL.


Saludos: Miguel, La Pampa (RA)

--
 
 

Fox Learner

unread,
Dec 3, 2012, 11:20:56 AM12/3/12
to publice...@googlegroups.com
Maestro Miguel,

No lo había pensado antes pero comparto la opinión de que una de las cosas que volvió estándar y poderoso al SQL es que su sintaxis es expresiva o "facil de comprender".

Creo que eso mismo es una de las razones que me hacen ver a VB.NET como una excelente alternativa al gran Visual Foxpro!

Sin embargo, habrá desarrolladores que se sientan cómodos con tantos "garabatos" como las llaves y esas cosas en vez de las palabras. Tal vez sea porque son más inteligentes que nosotros jeje

Saludos!

Hugo C.

unread,
Dec 5, 2012, 8:13:31 PM12/5/12
to publice...@googlegroups.com
Fox Learner,
sera que SQL viene de  SEQUEL (Structured English Query Language).


Por otra parte Yo prefiero C# pero se puede hacer
lo mismo en VB.NET. (El IDE de VS.NET esta hecho con C#).

Saludos.

Fox Learner

unread,
Dec 6, 2012, 11:06:09 AM12/6/12
to publice...@googlegroups.com
No tengo nada contra C#. Solo que en los 2 proyectos escolares que tuvimos en el curso de titulación de la uni, terminó por "artarme" con sus mendigas llavesitas que te quitan mucho tiempo para localizar los errores.

Pero habrá quien venga de C/C++ y pueda lidiar con eso.. Adelante.

Yo prefiero las palabras que me facilitan la comprensividad del código, tal como también lo hace SQL.

Saludos!

Víctor Hugo Espínola Domínguez

unread,
Dec 6, 2012, 12:06:19 PM12/6/12
to publicesvfoxpro
Hola Fox Learner


>con sus mendigas llavesitas que te quitan mucho tiempo para localizar los errores

Si te sucede lo que mencionas, probablemente estás violando algunas reglas de codificación básicas. Una de ellas es la indentación del código y otra que tus módulos deben ser tan cortos que puedan visualizarse en una pantalla.

Adjunto dos documentos sobre normas de codificación, no las debes tomar literalmente porque cada organización tiene las suyas. Tú como desarrollador independiente debes elegir la tuya  y respetarla siempre.

Saludos.
Víctor.




--
 
 

DES_MAN_EstandaresCodificacion_v1.0.doc
02 - Coding Conventions C# (Alumnos).pdf

Fox Learner *

unread,
Dec 6, 2012, 12:21:13 PM12/6/12
to publice...@googlegroups.com
Si amigo,

Pero simplemente no va conmigo el C#. Las llaves te confunden y te hacen perder tiempo valioso aunque el mismo compilador te da el indentado automático.

El intellisense es otra cosa, ese sí te ayuda porque convierte el código en algo bastante predictivo.

Con C# incluso puedes usar el :

#Region

// Código del procedimiento

#EndRegion

Para agrupar datos en pantalla y tengas mejor visualización, pero simplemente prefiero VB.NET a C#.



Ya usé C# y simplemente no me gusta, eso es todo..

Saludos!




Carlos Miguel FARIAS

unread,
Dec 6, 2012, 12:45:39 PM12/6/12
to publice...@googlegroups.com

Si no te gustan las llaves, y queres escribir poco, python! Sin llaves, con pilas, al escribir documentas. La documentación se puede leer desde dentro del programa. La indentacion en todos los lenguajes se hace forzada para entender el código, en python  naturalmente usada para definir los bloques lógicos, parámetros posiciona les, por nombre, con valores por omisión.
Que res aprovechar .net usar ironpython
Quieres usar la potencia del entorno java, usar jython.
Fácil de aprender, infinito para aprender.


Saludos: Miguel, La Pampa (RA)

--
 
 

Fox Learner

unread,
Dec 6, 2012, 12:54:52 PM12/6/12
to publice...@googlegroups.com
Maestro Miguel, 

Me late eso de hacer una encuesta estadística para ver como van las alternativas.

Abro un nuevo hilo..

Saludos!

Hugo C.

unread,
Dec 6, 2012, 1:29:13 PM12/6/12
to publice...@googlegroups.com
Major aun que #Region,

Fox Learner *

unread,
Dec 6, 2012, 1:45:36 PM12/6/12
to publice...@googlegroups.com
Hugo C.

Está muy bien eso de los snippets!


Lo que entendí es que se puede insertar un fragmento de estructura como una especie de plantilla.

Y como dices, sí funcionan esos snippets en VB.NET


Saludos!
Reply all
Reply to author
Forward
0 new messages