Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-08-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Problemas al cargar un VirtualStringTree

Buenas. A ver si alguien me puede dar una explicación. Tengo este query:
Código SQL [-]
SELECT Fecha, Tipo, Importe FROM Cajas WHERE EXTRACT(MONTH FROM Fecha) = :Mes 
   AND EXTRACT(YEAR FROM Fecha) = :Anyo ORDER BY Fecha DESC, Tipo
se ejecuta contra un base de datos FB. El resultado (parte) es este:

y para cargar un VST uso este código:
Código:
PTreeDatos Datos;
PVirtualNode Nodo1, Nodo2;
TDateTime dFecha = (int)EncodeDate(1899, 12, 30);

Diarios->NodeDataSize = sizeof(TTreeDatos);
Diarios->BeginUpdate();
Diarios->Clear();
for (; !Query->Eof; Query->Next())
{
     if (Query->FieldByName("Fecha")->AsDateTime != dFecha)
     {
          Nodo1           = Diarios->AddChild(NULL);
          Datos           = (PTreeDatos)Diarios->GetNodeData(Nodo1);
          Datos->Concepto = Query->FieldByName("Fecha")->AsDateTime.FormatString("dd/mm/yyyy");
          dFecha = Query->FieldByName("Fecha")->AsDateTime;
     }

     Nodo2           = Diarios->AddChild(Nodo1);
     Datos           = (PTreeDatos)Diarios->GetNodeData(Nodo2);
     Datos->Concepto = Query->FieldByName("Tipo")->AsString;
     Datos->Importe  = Query->FieldByName("Importe")->AsFloat;
     Datos->Fecha    = Query->FieldByName("Fecha")->AsDateTime;
}
Diarios->EndUpdate();
y la estructura que se carga es esta:
Código:
typedef struct tagTTreeDatos
{
     WideString Concepto;
     double Importe;
     TDateTime Fecha;
}TTreeDatos, *PTreeDatos;
y relleno el VST con esto:
Código:
void __fastcall TfDatos::DiariosGetText(TBaseVirtualTree *Sender,
      PVirtualNode Node, TColumnIndex Column, TVSTTextType TextType,
      WideString &CellText)
{
     switch (Column)
     {
          case 0:
               CellText = ((PTreeDatos)Sender->GetNodeData(Node))->Concepto;
               break;
          case 1:
               CellText = ((PTreeDatos)Sender->GetNodeData(Node))->Importe > 0 ? (WideString)FormatFloat("##,##0.00 €", ((PTreeDatos)Sender->GetNodeData(Node))->Importe) : (WideString)"";
               break;
     }
}
//---------------------------------------------------------------------------
Con todo este código lo que me está saliendo es esto:

y, evidentemente, no es lo que quiero. ¿Qué estoy haciendo mal?

Última edición por Angel.Matilla fecha: 26-08-2020 a las 10:49:55.
Responder Con Cita
  #2  
Antiguo 26-08-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Bueno. Después de muchas pruebas sencillamente he borrado el elemento, lo he vuelto a poner y ahora funciona bien.
Responder Con Cita
  #3  
Antiguo 26-08-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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
VirtualStringTree con CheckBox Angel.Matilla C++ Builder 6 01-08-2019 12:01:51
Realzar VirtualStringTree Angel.Matilla C++ Builder 0 26-07-2019 12:01:14
Cargar datos en un VirtualStringTree Angel.Matilla C++ Builder 2 05-02-2019 11:40:52
virtualstringtree me desaparecen los datos JosepGA OOP 2 08-03-2010 09:22:30
Refrescar un VirtualStringTree progmaq Varios 1 20-09-2005 09:09:50


La franja horaria es GMT +2. Ahora son las 01:17:18.


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