Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-10-2006
Caracolg Caracolg is offline
Registrado
 
Registrado: oct 2004
Posts: 9
Poder: 0
Caracolg Va por buen camino
Question DBEdit con formato

Hola, necesio dar formato de miles a un DBEdit, pero no encuentro como hacerlo. ¿Alguien puede ayudarme? De antemano muchas gracias
Responder Con Cita
  #2  
Antiguo 10-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Por que no usar un MaskEdit que te da ese formato y otros ?
Saludos
Responder Con Cita
  #3  
Antiguo 10-10-2006
Caracolg Caracolg is offline
Registrado
 
Registrado: oct 2004
Posts: 9
Poder: 0
Caracolg Va por buen camino
Smile Muchas Gracias Caral

Lo que pasa es que el MaskEdit hasta donde se es una propiedad del Edit ¿No? Y yo necesito usar un DBEdit, pero no le encuentro esa propiedad, nisiquiera una parecida, no es a la hora de capturar, si no de desplegar la información de la tabla. Y en la tabla no viene la información con formato. ¿Como ves?
Responder Con Cita
  #4  
Antiguo 10-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Porque el MaskEdit no es un control db aware. Sin embargo, los campos numéricos tiene la propiedad DisplayFormat para esos efectos, por ejemplo

Código Delphi [-]
Table1Salary.DisplayFormat := ',#.##';

// Saludos
Responder Con Cita
  #5  
Antiguo 10-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Recuerda que cualquier componente de texto adquirira el dato de una tabla por codigo, asi el edit puede contener los datos del dbedit, Prueba:
DBEdit1.Visible:= False;
MaskEdit1.Text:= DBEdit1.Text;
El MaskEdit1 tomara el valor del DBEdit1 y la informacion se dispondra en el maskedit, y esconderas el dbedit1, asi de simple.
Saludos
Responder Con Cita
  #6  
Antiguo 10-10-2006
Caracolg Caracolg is offline
Registrado
 
Registrado: oct 2004
Posts: 9
Poder: 0
Caracolg Va por buen camino
Smile Muchisimas gracias

Muchas gracias, osea que el formato se lo doy desde mi componente Table? y lo despliego con un DBEdit verdad? Te lo agradezco mucho....
Responder Con Cita
  #7  
Antiguo 10-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, y si vamos a esconder el dbedit y copiar a mano los datos, ¿para qué queremos el dbedit? En tal caso los copiamos directo de la tabla:

Código Delphi [-]
MaskEdit1.Text := Table1.FieldByName('Salary').AsString;

Además, ya he mencionado el DisplayFormat.

// Saludos

Última edición por roman fecha: 10-10-2006 a las 21:45:32.
Responder Con Cita
  #8  
Antiguo 10-10-2006
Caracolg Caracolg is offline
Registrado
 
Registrado: oct 2004
Posts: 9
Poder: 0
Caracolg Va por buen camino
Gracias De Nuevo Caral

A ok, ya lo comprendí mejor. Me han ayudado a salir de un gran apuro, deja lo voy a probar. Lo que pasa es que he ido aprendiendo Delphi como Dios me da a entender, y aveces le batallo bastante. Muchisimas gracias!!!
Responder Con Cita
  #9  
Antiguo 10-10-2006
Caracolg Caracolg is offline
Registrado
 
Registrado: oct 2004
Posts: 9
Poder: 0
Caracolg Va por buen camino
Gracias a ti también Roman

Creo que tienes razón, voy a pasarlo a mi sistema para ver como me funciona, y les aviso. De verdad agradezco tanta amabilidad de su parte. Gracias a ambos.
Responder Con Cita
  #10  
Antiguo 10-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Roman
Ya ves es una cuestion de opinion, aqui en este caso a mi me gusta tener el dbedit tanto como el maskedit, en el form, ya que puedo entender mejor el codigo, aveces si se introduce mucho codigo directo a la tabla, a mi particularmente me confunde, con solo tocar el dbedit se de que datasource proviene, que tabla, que campo ect, de lo contrario tengo que ir al codigo y ver que hace el maskedit ect..
La verdad creo que en tal caso prefiero usar esto escrito antes por ti:
Cita:
Table1Salary.DisplayFormat := ',#.##';
Y si voy a tener que ver codigo que sea bueno como el tuyo, crees que el mio es asi Pues ojala lo fuera, pero no. Por eso tengo que ser lo mas simple y entendible que pueda.
Saludos
Responder Con Cita
  #11  
Antiguo 10-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Sinceramente no entiendo por qué había de ser poco claro algo como:

Código Delphi [-]
EditEmpleadoSalario.Text := TablaEmpleados.FieldByName('Salario').AsString;

¿No proviene del campo Salario de la tabla de empleados?

Pero, más allá de eso, cada edit, maskedit, dbedit, etc. que uses gasta recursos del sistema. No veo necesidad de mantener uno tan sólo como transporte de datos. Los controles db aware están hechos para enlazarlos con la tabla y que de manera autmática se muestren y actualicen los datos. Si no se usan con esta finalidad, no creo que sirvan de algo, y menos aún para clarificar el código.

No obstante sería interesante que describieras con un poco más de detalle una situación en la que sientes que el código queda más claro.

// Saludos
Responder Con Cita
  #12  
Antiguo 10-10-2006
Caracolg Caracolg is offline
Registrado
 
Registrado: oct 2004
Posts: 9
Poder: 0
Caracolg Va por buen camino
Perdon, ya lo trte de hacer, y no se donde poner el DisplayFormat, ya que en la tabla no me lo acepta, y en los DBedit tampoco me da mucha pena....¿pero donde lo agrego?

Mi sistema ya esta hecho, y tengo muchisimos DBedit como los que siguen:

Dbedit1.DataField:='D50';
Dbedit2.DataField:='D51';
Dbedit3.DataField:='D52';

¿El MaskEdit es un componente? Por que tampoco lo encuentro como propiedad de algo. Disculpen la lata....necesito un curso de Delphi
Responder Con Cita
  #13  
Antiguo 10-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Huyy Roman
Es como esperar que Alexis7788 te de el atributo del combobox.
Para que te des una idea:
Recuerda que tal vez en alguna ocasion comente que contrate varios programadores que no funcionaron, entre ellos uno de delphi, el que me heredo el codigo con el que empece a trabajar.
Es Tan enrredada su sintaxis para llamar a las tablas, con sentencias provenientes del lado oscuro, que cuando decidi aprender esto, me dije a mi mismo, hey quien lo va a revisar si hay algun error, por supuesto el que viste y calza, y con que esperiencia, nula, entonces a hacer las cosas para tontos porque sino, no entiendo nada, Ya se que historia mas triste... pero es asi, cuando uno empieza y por supuesto no tiene ni idea de nada, hay que agarrarse de donde se puede. por eso digo cuestion de opinion.
Veo tu codigo constantemente, es mas soy un fiel admirador del mismo, veo simpleza, limpieza y efectividad, pero no te llego ni a los talones, necesito ir aprendiendo y perfeccionando mi codigo lo tengo claro, no crees que para aprender empiricamente es bueno tambien lo facil y comodo que ya habra tiempo de perfecionar lo que hicimos, te aseguro, as de haber modificado programas tuyos tantan veces como los ves, ya que el tiempo no pasa el valde.
Saludos Maestro
Responder Con Cita
  #14  
Antiguo 10-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cada DBEdit está asociado a un objeto TField que es quien maneja la información del campo correspondiente. Dependiendo del tipo de datos del campo, el objeto TField puede ser alguno de sus derivados: TStringField, TFloatField, TIntegerField, etc. pero el DBEdit sólo lo expone en su forma genérica TField. La propiedad DisplayFormat sólo está disponible a partir de TNumericField. Para poder asignar la propiedad debes entonces hacer un moldeo de datos:

Código Delphi [-]
TNumericField(DBEdit1.Field).DisplayFormat := ',#.##';

Otra forma de hacer esto, es agregar los campos durante el diseño usando el editor de campos del Table asociado (menú contextual del componente). De esta manera, en el formulario se incluyen los objetos TFiled (derivados) correctos, con nombres como TablaEmpleadosSalario. Haciéndolo así, puedes ver y asignar la propiedad DisplayFormat en el inspector de objetos.

// Saludos
Responder Con Cita
  #15  
Antiguo 10-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Perdona Roman
Despues de ponerme los lentes me costo entenderte, crees que una persona que empieza te entiende? . Hay que tener por lo menos conceptos vasicos, mira la pregunta:
Cita:
no se donde poner el DisplayFormat
Definitivamente la clase es magistral, pero avanzada, creo a mi forma de ver que esto:
Código Delphi [-]
TNumericField(DBEdit1.Field).DisplayFormat := ',#.##';
Se puede poner en el evento onEnter del DBEdit, asi cuando este se muestre tendra el formato adecuado, estoy equivocado ?
Saludos.
Responder Con Cita
  #16  
Antiguo 10-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Caral
Se puede poner en el evento onEnter del DBEdit
Esto es cuándo y no dónde Y aunque puedes ponerlo en ese evento, yo lo pondría, quizá, en el evento OnShow del formulario, o, mejor incluso, en el AfterOpen de la tabla.

Ahora bien, de hecho, insisto, yo no asociaría dicha propiedad através del DBEdit, sino directamente con el objeto Field correspondiente, bien sea usando Tabel.FieldByName o el objeto construido como dije anteriormente con el editor de campos.

// Saludos
Responder Con Cita
  #17  
Antiguo 10-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Para que ponerle el formato cada vez que entre al control?

Con que se ponga en el evento Create de la forma donde está el control es más que suficiente...



Saludos...
Responder Con Cita
  #18  
Antiguo 10-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Es un poco de lo mismo. Comodidad
Y esto no es lo mismo para cada quien, coincido que el evento oncreate o OnShow del from es comodo si tienes un par de dbedit y es un programa pequeño, recordad que pienso como autodiacta y principiante, comodidad es la clave, si necesito saber que hace el dbedit, porque irme al evento del from, de ser asi no necesitaria ese evento el dbedit, para que si lo programo en el from ?., todo se puede programar, pero porque no usar los recursos de los componentes si estan.
No se digo yo ademas me encanta debatir con los maestros, asi aprendo.
Saludos
Responder Con Cita
  #19  
Antiguo 10-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Caral
si necesito saber que hace el dbedit
Este es el meollo del asunto. No es lo que hace el DBEdit, sino el objeto Field asociado. Al modificar la propiedad DisplayFormat, no sólo afectas a ese DBEdit, sino a todo control que muestre los datos de ese campo. Si otro DBEdit o un DBGrid por ejemplo, están enlazados al mismo campo (o se enlazan en un futuro), será mucho más difícil entender por qué está mostrando los datos en tal o cual formato.

// Saludos
Responder Con Cita
  #20  
Antiguo 10-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Casualmente meollo del asunto, acabo de aprender que afecta a todos los componentes ya que atacas directamente al objeto Field asociado, perfecto en el caso de que te interese hacer eso pero si es uno o dos dbedit y no el dbgrid ect. no funcionaria, estas de acuerdo.?, para este efecto tendrias que ponerlo en el evento del componente que se vea afectado.
Muy interesante y funcional tu explicacion, la estoy grabando para el futuro, no si siempre lo digo, aqui quien mas aprende soy yo y eso que no pregunto.
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DBEdit con SQL Juanito-Kun SQL 6 24-04-2005 15:19:01
Como cambiar el formato de un QRSysData en formato fecha Bitbanner Tablas planas 1 13-02-2005 12:33:26
como puedo mantener el formato de un campo DBEdit?? Bitbanner Tablas planas 9 07-02-2005 21:41:46
Como Obviar el formato de Fecha del Servidor para Salvar sólo en formato "dd/mm/yyyy" R_Richards Varios 4 07-02-2005 15:57:19
Componente DBEdit con formato k2k2k2 Varios 2 16-05-2004 22:03:16


La franja horaria es GMT +2. Ahora son las 23:51:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi