Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Refrescar Olecontainer (https://www.clubdelphi.com/foros/showthread.php?t=32880)

crack_neon 20-06-2006 01:23:08

Refrescar Olecontainer
 
Hola, tengo un problemita que me esta sacando canas ojala me ayudan a no quedar viejo.


El detalle es que uso un olecontainer para abrir una hoja de excel y modificarla y despues pasar los datos a una tabla. Hasta ahi todo esta bien.

El problema es que cuando quiero enviar datos de mi tabla a la hoja excel, los datos son posicionados correctamente (hasta eso) pero el olecontainer no me muestra el excel actualizado, asi que tengo que abrir la hoja en excel y verificar que mis datos ahi están, cosa que no me sirve pues necesito modificar nuevamente los datos desde mi forma y desde mi olecontainer para luego pinchar un boton y volver a guardar en mi tabla.

Ya he buscado como refrescar, pero no encuentro ninguna propiedad que me lo permita. Estoy seguro que habrá alguna, pero les pido porfavor que me orienten nada mas.

Recapitulando, por si no me explique bien. lo que quisiera es algo similar como si refrescaramos un adotable:

ADOTable1.active:=false;
ADOTable1.active:=true;

Ya saben lo que pasa con eso, ¿Pero en un olecontainer como le hago??

ya probe con: olecontainer1.refresh; y tampoco funciona


De antemano gracias. Y un saludo.

waltergomez 20-06-2006 23:30:30

Probastes con el metodo UpdateObject ?
Saludos,

crack_neon 21-06-2006 00:03:22

Gracias, lo acabo de probar pero tampoco funciona. he aqui el codigo q uso

Código Delphi [-]
<div align="left">procedure TfrmSelecTermoformado.FormShow(Sender: TObject);
var
  i: integer;
begin
  i:=13;
  if frmCrearCocina.modificarFrentes=true then
     begin

      Excel := CreateOleObject('Excel.Application');
      Excel.Workbooks.Open('C:\Maxi Cocinas\CotizacionMarlik.xls');
       application.MessageBox('manda parametro modificar', 'Atención', mb_YesNo+mb_iconinformation);

       frmCrearCocina.ADQAcumFrentes.first;
       while not frmCrearCocina.ADQAcumFrentes.eof do
          begin
//           Excel.Cells[i,4].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('id_frente').AsString; //Copy(ADQModulos.id_modulo,1,2)
            Excel.Cells[i,1].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('c_frente').Asinteger;
            Excel.Cells[i,2].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('descripcion').AsString;
           Excel.Cells[i,3].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('modelo').AsString;
            Excel.Cells[i,5].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('color').AsString;
            Excel.Cells[i,7].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('altura').AsString;
            Excel.Cells[i,8].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('ancho').AsString;
            Excel.Cells[i,10].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('veta').AsString;
            Excel.Cells[i,11].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('ambos_lados').AsString;
            Excel.Cells[i,'W'].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('c_jaladeras').AsString;
            Excel.Cells[i,'AF'].Value:= frmCrearCocina.ADQAcumFrentes.FieldByName('c_precio_total').AsString ;
            frmCrearCocina.ADQAcumFrentes.next;
            i:=i+1;
          end;
        Excel.quit;
 
      //Refresco el olecontainer para que me muestre los nuevos datos
     olecontainer1.UpdateObject;
 

     end;
end;

 div>

crack_neon 21-06-2006 00:27:06

Problema resuelto.
 
Un saludo a todos, como es de costumbre aqui les pongo cual era todo el embrollo del asunto, para poder actualizar los nuevos datos de excel en el olecontainer:


Código Delphi [-]
olecontainer1.DestroyObject;
olecontainer1.CreateObjectFromFile('C:\carpeta\archivo.xls',true);
olecontainer1.Update;






Solo era necesario destruir el objeto y volver a crearlo desde archivo, el update es opcional, pero ahi lo dejo por si las moscas.

Si alguien algun día se pasa 2 dias pensando en el mismo problema, ojala le sirva esta solución.


La franja horaria es GMT +2. Ahora son las 13:32:20.

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