Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Elegir "No" automaticamente en la ventana de Guardar cambios de Excel (https://www.clubdelphi.com/foros/showthread.php?t=12772)

Neftali [Germán.Estévez] 27-07-2004 16:07:12

Cita:

Empezado por roman
Siento mucho haber tenido que editar este mensaje.

El presente hilo contenía mensajes que correspondían a una pregunta distinta de la original por lo que juzgué conveniente moverlos a un nuevo hilo pero la pregunta original había quedado en el nuevo hilo por lo cual decidí editar este mensaje para anexar la pregunta original de modo que no se pierda el contexto.

Disculpen las molestias

Cita:

Empezado por Ryar
Buenas, estoy pasando dantos desde delphi a excel, mediante ole con el siguiente codigo (Es un codigo de prueba):

Código Delphi [-]
uses
...ComObj, OleServer;

procedure TForm1.Button1Click(Sender: TObject);
var
  ExcelApp: OLEVariant;
  fichero: string;
begin
  ExcelApp := CreateOleObject('Excel.Application');
  try
    fichero:=ExtractFilePath(ParamStr(0))+'Plantilla.xls';
    ExcelApp.Workbooks.Open(fichero);
    ExcelApp.cells.item[7,'I']:=strtoint(Edit1.Text);
    ExcelApp.cells.item[8,'I']:=20;
    ExcelApp.Worksheets[1].PrintOut;
  finally
    if not VarIsEmpty(ExcelApp) then
    begin
    ExcelApp.Quit;
    ExcelApp := Unassigned;
    end;
  end;
end;

Me pasa los datos, me recalcula las celdas, me lo imprime y me lo cierra correctamente, pero.. me sale la ventana de "Desear guardar los cambios realizados en Plantilla.xls" del Excel, dandome als opciones de si, no y cancelar. Como hago para que acepte automaticamente la de "No", puesto que mi documento de excel es una plantilla para imprimir, y no quiero que se guarden nunca los datos.

Saludos, y muchas gracias

Prueba poniendo (antes del Quit):
Código Delphi [-]
  ExcelApp.DisplayAlerts := False;

Otra posibilidad es:
Código Delphi [-]
var:
  LCID:Integer;
begin
...
  LCID := GetUserDefaultLCID;
  ExcelApp.DisplayAlerts[LCID] := False;

RyAr 27-07-2004 16:15:56

Perfecto, poniendo el ExcelApp.DisplayAlerts := False; antes del quit me lo imprime, me cierra el fichero y no me lo guarda, así que genial!!!

Muchas gracias

Neftali [Germán.Estévez] 28-07-2004 09:33:55

Puedes probar con algo del estilo a:
Código Delphi [-]
ExcelApp.ActivePrinter[0] := 'Canon Bubble-Jet BJC-4200 on LPT1:';

Otra opción es vía proipiedades:
Código Delphi [-]
ExcelApp.OlePropertySet('ActivePrinter', szPrinterName);

Otra cosa, ¿has probado a pasarle el valor de la impresora en la propia insrucción PrintOut? Uno de los parámetros es ActivePrinter.

expression.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

VRO 12-01-2006 12:52:23

Se puede hacer así también
 
Hola

Esta es otra solución, ya se que el hilo es del 2004 :eek: y nuestro compañero ya tendrá resuelto el problema, para futuros compañeros que tengan el mismo problema ahí va otra solución:

Código:


exc.ActiveWindow.Close(False,emptyParam,EmptyParam);
Exc.Quit;

siendo exc el OleVariant.

Gracias por ofrecernos este foro para poder solucionar e intentar ayudar en los posibles tropiezos que tenemos. :p

crack_neon 21-06-2006 00:35:06

y al reves??
 
En mi caso necesito que si lo guarde, pero sin tener que ver el mensaje, ¿Cuales serian los parámetros?


La franja horaria es GMT +2. Ahora son las 06:45:41.

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