| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
paz Ens

Registrado: 22 Feb 2007Mensajes: 28
|
Publicado: Jue 29 Mar, 2007 9:04 am Asunto: TstringGrid |
|
|
Hola,
no me gusta hacer este tipo de preguntas tan basicas en el foro pero estoy un poco "quemada". Mi aplicacion realiza una serie de consultas a una base de datos, esa consulta la muestro en un DBGrid y la exporto a excel si el usuario lo desea. Mi probla es que al exportar a excel es muy lento y he leido en el foro que podemos exportar en rangos en lugar de fila a fila lo cual agiliza mucho la exportacion de los datos. Para ello en lugar de un DBGrid debo utilizar un TStringGrid. Pues bien, este es mi problema, utilizo borlan 2006 y no encuentro ese componente por ningun sitio!!!! alguien puede indicarme como puedo incluir ese componente??
gracias |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Jue 29 Mar, 2007 9:42 am Asunto: |
|
|
Dentro del BDS2006 y en la paleta Additional - existe el componente TStringGrid _________________
 |
|
| Volver arriba |
|
 |
paz Ens

Registrado: 22 Feb 2007Mensajes: 28
|
Publicado: Jue 29 Mar, 2007 9:50 am Asunto: |
|
|
Muchas gracias... tendre que ponerme gafas.....
Mi problema ahora es que no puedo linkarlo con una consulta. sabes como puedo mostrar los datso de uan consulta en este componente o la otra solucion... como puedo de un DBGrid acelerar la exportacion de sus datos a excel?
gracias. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Jue 29 Mar, 2007 5:26 pm Asunto: |
|
|
puedes mostrarme parte del codigo, para que pueda ver si tienes alguna complicación en el mismo. es decir, la manera de exportar tus registros puede que tenga algun fallo _________________

Ultima edición por Cesar C. Salazar Gonzalez el Sab 31 Mar, 2007 4:35 am, editado 1 vez |
|
| Volver arriba |
|
 |
paz Ens

Registrado: 22 Feb 2007Mensajes: 28
|
Publicado: Vie 30 Mar, 2007 8:59 am Asunto: |
|
|
Gracias, aqui va mi codigo, te comento donde esta el problema;
1º al exportar a excel no me saca el titulo de la columna, por eso he intentado insertar los titulos del DBGrid mientras que los datos los saco directamente de la consulta para que sea mas rapido
2º la razon por la que escribi en el foro, mi base de datos va ha ser muy grande y las consultas ahora son "pequeñas" pero cuando la base de datos tenga un año las consultas van ha tardar horas.. pro eso queria agilizar al maximo el exportar a excel.
muchisimas gracias.
void __fastcall TForm3::BexcelClick(TObject *Sender)
{
int titulo=0;
if (Form3->DBGrid1->Columns->Count == 0) {
ShowMessage("La consulta realizada no tiene datos");
}
else
{
//Creamos un objeto de tipo aplicacion 'Excel'
Variant Excel = Variant::CreateObject("Excel.Application");
//accedo a sus propiedades y metodos con 'OlePropertySet'
Excel.OlePropertySet("Visible", true);
//Crean una hoja nueva
Variant Libro = Excel.OlePropertyGet("WorkBooks").OleFunction("Add");
Variant Hoja = Libro.OlePropertyGet("ActiveSheet");
Query2->First();
int Ligne = 1;
Variant Cell, Valeur;
//Aqui intento poner titulo a las columnas pero me da un error de tipos qeu todaviai no he solucionado
/*for (int columna=0; columna <Form3>DBGrid1->Columns->Count ; columna++) {
Cell = Hoja.OlePropertyGet("Cells", Ligne, columna+1);
Valeur =(Variant)(Form3->DBGrid1->Columns->Items[columna]->Title->Caption);
ShowMessage(Valeur);
Cell.OlePropertySet("Value",Valeur);
} */
Ligne ++;
while (!(Query2->Eof))
{
for (int Colonne = 0; Colonne <Query2>FieldCount; Colonne++)
{
Cell = Hoja.OlePropertyGet("Cells", Ligne, Colonne+1);
Valeur = Query2->Fields->Fields[Colonne]->AsVariant;
Cell.OlePropertySet("Value", Valeur);
}
Ligne++;
Query2->Next();
}
Excel = Unassigned;
}
} |
|
| Volver arriba |
|
 |
|