Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2006
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
añadir ,00 a un TQRDBText

tengo un problemilla aver si alguien me puede ayudar...muestro una informacion de una base de datos en un quickreport, usando TQRDBText, el problema es que son valores numericos reales, y me gustaria que si son enteros, me añadiese ,00...

La base de datos es en access y aunque el tipo de dato de la BD, es decimal, cuando el valor que se mete no es real, no guarda ,00...y al mostrarlo no me deja ponerlo....se puede poner en el quickreport...o forzar a access a meter el ,00????

GRACIAS
__________________
Un saludo

Antonio
Responder Con Cita
  #2  
Antiguo 16-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
En la consulta que hagas, al campo en cuestión, añádele el DisplayFormat:= ,0.00

así añade la coma de millares y el punto decimal con 2 decimales.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 18-04-2006
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
Tu respuesta me ha sido muy util, muchas gracias, aunque el problema es que solo me sirve para ACCESS...

Yo estoy intentando mostrar unos datos de access en un dbgrid de builder C++. Es decir hago una consulta con un QUERY, y con un datasource lo conecto al DBgrid....el dato que me muestra es un FLOAT, y el problema es que aunque en access me lo muestra bien (1,34 por ejemplo), en el dbgrid es 1,340000000000...)

Os pongo unas imagenes aclarativas...

http://es.geocities.com/antonio_garcia_web/1.JPG

http://es.geocities.com/antonio_garcia_web/2.JPG

Alguien podria ayudarme en esto...GRACIAS
__________________
Un saludo

Antonio
Responder Con Cita
  #4  
Antiguo 18-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
En delphi, doble clic al query en tiempo de diseño , boton derecho, add all fields, ahora haces clic en el campo en cuestion, y por último en su propiedad DisplayFormat añades el ,0.00 que tambien añade la coma de separación de millares. Si solo quieres el separador decimal... 0.00

Con el dbgrid solo hay un problema, que si editas un campo te deja escribir más de 2 decimales, pero despues al salir del campo te mostrará solo 2 y en la base de datos tambien debe guardar 2.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 18-04-2006 a las 11:25:05.
Responder Con Cita
  #5  
Antiguo 19-04-2006
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
Pues...es que no lo habia entendido bien....pero la cosa es que sigo teniendo problemas....porque no me aparece esa propiedad en el objeto:

http://es.geocities.com/antonio_garcia_web/3.JPG

He probado a tomar el campo desde la tabla, desde un query, desde el dbgrid pero no me aparece esa propiedad, relacionada con ese objeto....

Pongo esto para acceder al campo:

BD->Consulta->FieldByName("Precio")->DisplayFormat... ->ERROR
GRID->Columns->Items[0]->DisplayFormat... ->ERROR


Uso Builder c++ 5

Esa propiedad es de alguna otra version???

Como podria ponerlo??

Si puedes ayudarme, me resultaria muy muy util....Gracias
__________________
Un saludo

Antonio
Responder Con Cita
  #6  
Antiguo 19-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Según Delphi, esa propiedad está disponible para campos numéricos:

TIntegerField,
TLargeintField,
TFloatField,
TBCDField,
TFMTBCDField

Por tanto tu campo en la consulta, o en el TTable tiene que ser de uno de esos 5, si C++ te dice que es de otro tipo.... pues no la tendrás.

Sin embargo decías que estaba como decimal
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 20-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Pues como te venía diciendo hace 2 posts...

Cuando en C++ le das doble clic a un TTable / Tquery, te sale una ventanita, en ella clic con el boton derecho y Add all fields, ahora, verás que se rellena con los campos y de hecho cada uno de esos campos será un TintegerField, TstringField, etc. Haciendo clic en uno de ellos, en el Inspector de objetos debes tener esa propiedad.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 20-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Bueno, no sé que ha pasado pero mi respuesta se ha colado antes que el tuyo, por favor leela.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 20-04-2006
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
Pues en c++ te pongo lo que tengo....

Propiedades del objeto "Tabla"
Código:
In TTable
CanModify
  DataSource
  DefaultIndex
  Exclusive
  Exists
  Handle
  IndexDefs
  IndexFieldCount
  IndexFieldNames
  IndexFields
  IndexFiles
  IndexName
  KeyExclusive
KeyFieldCount
  MasterFields
  MasterSource
  ReadOnly
  StoreDefs
  TableLevel
  TableName
  TableType
El metodo que utilizo para obtener el valor de un campo de una tabla es...

TField* __fastcall FieldByName(const AnsiString FieldName);

lo uso de la siguiente manera:

Tabla->FieldByName("Campo")->Tipo....En tipo pongo como quiero que me capture el dato....

AsString
AsFloat
AsInteger
AsBoolean

Propiedades del campo (Donde deberia estar DisplayFormat...pero nada)

Código:
In TField
Alignment
  AsBoolean
  AsCurrency
  AsDateTime
  AsFloat
  AsInteger
  AsString
  AsVariant
  AttributeSet
  AutoGenerateValue
  Calculated
  CanModify
  ConstraintErrorMessage
  CurValue
  CustomConstraint
DataSet
  DataSize
  DataType
  DefaultExpression
  DisplayLabel
  DisplayName
  DisplayText
  DisplayWidth
  EditMask
  EditMaskPtr
  FieldKind
  FieldName
  FieldNo
  FullName
HasConstraints
  ImportedConstraint
  Index
  IsIndexField
  IsNull
  KeyFields
  Lookup
  LookupCache
  LookupDataSet
  LookupKeyFields
  LookupList
  LookupResultField
  NewValue
Offset
  OldValue
  Origin
  ParentField
  ProviderFlags
  ReadOnly
  Required
  Size
  Text
  ValidChars
  Value
  Visible
Aunque mirando la informacion del tipo TField (es decir) el campo que yo obtengo dice:

Código:
TField is the common ancestor of all the field components in a dataset.
Unit
db
Description
TField encapsulates the fundamental behavior common to all field components. It introduces the properties, events, and methods that are used to:
Change the value of a field in a dataset.
 Convert the value of a field from one data type to another.
 Validate data that the user enters for a field.
 Define how the data in the field appears as it is displayed or edited.
 Calculate the value of a field from code written in the OnCalcFields event of the dataset.
 Look up the field’s value from another dataset.
Do not create instances of TField. TField descendants are created automatically each time a dataset is activated. These descendants can be dynamic (the default) or persistent. Dynamic field components reflect the actual columns of the underlying physical table at the time a dataset is opened. Persistent field components are created at design time using the Fields editor, which specifies the fields in the dataset, their properties, and their ordering.
Creating persistent field components guarantees that each time an application runs, it uses and displays the same columns, in the same order, even if the physical structure of the underlying database changes. If a column on which a persistent field component is based is deleted or changed, C++Builder generates an exception rather than opening the table against a nonexistent column or mismatched data. If this happens, remove the field component for the nonexistent field using the Fields editor.
A field in a dataset is always treated as one of the following TField descendant classes below:
TADTField TDateField TReferenceField
TAggregateField TDateTimeField TSmallIntField
TArrayField TFloatField TStringField
TAutoIncField TGraphicField TTimeField
TBCDField TGuidField TVarBytesField
TBlobField TIDispatchField TVariantField
TBooleanField TIntegerField TWideStringField
TBytesField TLargeintField TWordField
TCurrencyField TMemoField 
In addition to these front-line field classes, there are a number of field classes that serve only as abstract classes. These field classes are not used to instantiate field objects, only to provide functionality for descendant classes. These abstract field classes include TBinaryField, TDataSetField, TInterfaceField, TNumericField, and TObjectField.
Y mirando las propiedades del tipo "TAggregateField"....en las propiedades si esta DisplayFormat.....

...pero no se como poder acceder a esa propiedad...

Alguna idea???
__________________
Un saludo

Antonio
Responder Con Cita
  #10  
Antiguo 20-04-2006
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
Ok...PERFECT!!! MUCHAS GRACIAS!!

El problema es que yo lo hago todo por codigo, acceso a los campos, tablas, consultas...con lo que el objeto Table o Query, solo lo utilizo para conectar con la BD y seleccionar la tabla.

Todo lo demas, acceso a los campos...todo desde codigo...y desde codigo no me salia...pero con tu ultima explicacion ya si me ha salido....y ademas hasta redondea, con lo que me ahorro mi funcion de redondeo...je je je

Gracias y lamento haber sido tan pesado!!!
__________________
Un saludo

Antonio
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
Otra del Quickreport TQRDBtext Mask Carlos Arevalo Impresión 3 11-04-2006 18:59:13
Añadir bd a Sql server comba SQL 1 21-11-2005 19:07:31
Añadir a un Combo Box Acker Varios 1 08-11-2005 13:58:07
fallo : incompatible types : String and TQRDBText chele Impresión 7 27-10-2004 16:10:17
Consulta simple TQRDBText niogon Impresión 1 03-03-2004 18:32:19


La franja horaria es GMT +2. Ahora son las 12:40:29.


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