Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Separador de Miles (http://www.forosdelweb.com/f29/separador-miles-305697/)

Georgina73 07/06/2005 13:09

Separador de Miles
 
Nuevamente pidiendo su ayuda :corazon:
Mi usuario... tan quisquilloso el :golpeado: , quiere que el programa sea capaz de colocar el punto separador de miles a una cifra ... el problema es que lo quiere cuando el va tecleando.
¿Existe alguna rutina que me permita emular el maskedit de vb 6.0? :pensando: , estoy trabajando con Vb net.
De antemanos agradezco su ayuda :adios:

phinojosa 07/06/2005 13:23

Eso es sumamente sencillo, debes usar Javascript como máscara de entrada...

Código HTML:

function currencyFormat(fld, milSep, decSep, e,limite) {
if (fld.value.length>limite)
        return false;
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true; // Enter
    key = String.fromCharCode(whichCode); // Get key value from key code
    if (strCheck.indexOf(key) == -1) return false; // Not a valid key
    len = fld.value.length;
    for(i = 0; i < len; i++)
    if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
    aux = '';
    for(; i < len; i++)
    if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) fld.value = '';
    if (len == 1) fld.value = '0'+ decSep + '0' + aux;
    if (len == 2) fld.value = '0'+ decSep + aux;
    if (len >
2) {
    aux2 = '';
    for (j = 0, i = len - 3; i >= 0; i--) {
      if (j == 3) {
      aux2 += milSep;
      j = 0;
      }
      aux2 += aux.charAt(i);
      j++;
    }
    fld.value = '';
    len2 = aux2.length;
    for (i = len2 - 1; i >= 0; i--)
      fld.value += aux2.charAt(i);
    fld.value += decSep + aux.substr(len - 2, len);
    }
    return false;
  }

Luego en la caja de texto que desees ponerle la máscara de entrada escribes lo siguiente:

this.txtVaor.Attributes.Add("onKeyPress","javascri pt:return(currencyFormat(this,',','.',event,8));") ;

Donde:
this: objeto actual
',': separador de miles
'.' separador de decimales
8 la longitud máxima de la caja de texto

Georgina73 07/06/2005 14:07

Disculpa
 
Disculpa parecer tan ignorante pero ¿puedo trabajar con Java ? ¿como hago eso posible?? la verdad nunca se me habia presentado esa opcion, te rogaria me indicaras como trabajarlo, por que la verdad soy una novata en esa materia.

Muchas gracias de antemano :si:

HenrydeSousa 07/06/2005 15:02

En principio... estás trabajando con Windows forms ó Web forms?...se me hace que con Windows forms.
Que si puedes trabajar con Java?
A ver creo que tal vez estás un poco confundida.
phinojosa te ha puesto un ejemplo de como harías lo que quieres con Javascript, lo que te serviría si estuvieses trabajando con una aplicación Web y no Windows.
A ver, Java no es lo mismo que Javascript. De todas formas explícate un poco más, con qué estás trabajando?. En qué estás confundida.

Georgina73 07/06/2005 15:10

Explicacion
 
Pido miles de disculpas, :censura: creo que no me explique bien.. mi programa esta hecho en vb net pero con windows form.
Por eso me extraño que hubiera desde aca una posibilidad de trabajar con Java.

HenrydeSousa 07/06/2005 15:20

Cita:

Pido miles de disculpas, creo que no me explique bien
Tranquila, de todas formas valga aclarar que Javascript no es lo mismo que Java ok?
Bien, pero ya resolviste your problem?

Georgina73 07/06/2005 15:41

aun sigo adelante
 
Cita:

Iniciado por Georgina73
Nuevamente pidiendo su ayuda :corazon:
Mi usuario... tan quisquilloso el :golpeado: , quiere que el programa sea capaz de colocar el punto separador de miles a una cifra ... el problema es que lo quiere cuando el va tecleando.
¿Existe alguna rutina que me permita emular el maskedit de vb 6.0? :pensando: , estoy trabajando con Vb net.
De antemanos agradezco su ayuda :adios:

Sigo sin poder encontrar la forma de solucionar este problema, gracias de todas formas

Georgina73 08/06/2005 07:58

Vuelvo nuevamente a Molestarlos... no hay quien pueda conocer algun metodo

moNTeZIon 08/06/2005 08:26

Siendo Windows Forms y teniendo que ser a medida que el usuario escribe, igual tienes que acabar haciendote una funcion capturando las teclas presionadas y modificando el textbox a medida que se va presionando cada tecla...

Georgina73 08/06/2005 08:58

Gracias Montezion... e trabajado en una rutina, pero al final siempre tengo el mismo problema.. por eso hacia la pregunta...

RootK 08/06/2005 21:00

Si es para windows forms, puedes crear una máscara como control.

Te mando un ejemplo que te podrá servir: :arriba:

http://www.codeproject.com/cs/miscct...omControls.asp

Salu2

Georgina73 10/06/2005 08:01

Gracias
 
muchas gracias por la ayuda :corazon: :aplauso:

HenrydeSousa 16/06/2005 06:36

Sólo por aportar algo acá les dejo este link de un control que encontré. No trae source code pero está cool. Saludos...

http://www.prosoft.cg.yu/?NumericBox.htm


La zona horaria es GMT -6. Ahora son las 22:00.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.