Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2004
RyAr RyAr is offline
Miembro
 
Registrado: oct 2003
Posts: 74
Poder: 21
RyAr Va por buen camino
Seleccionar impresora en Excel

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
Responder Con Cita
  #2  
Antiguo 28-07-2004
RyAr RyAr is offline
Miembro
 
Registrado: oct 2003
Posts: 74
Poder: 21
RyAr Va por buen camino
Buenas, otra duda que em ha surgido es como puedo seleccionar la impresora por la que imprima, ya que así imprime en la que esta configurada por defecto, así que si alguien em puede decir si hay alguna opcion para seleccionar la impresora antes de la linea ExcelApp.Worksheets[1].PrintOut;

Saludos
Responder Con Cita
  #3  
Antiguo 28-07-2004
RyAr RyAr is offline
Miembro
 
Registrado: oct 2003
Posts: 74
Poder: 21
RyAr Va por buen camino
Buenas, gracias por tu explicacion, pero lo que me preguntaba era si se podia mostrar el dialogo de seleccionar impresora, puesto que el usuario puede elegir cada vez una.

Saludos, y mcuhas gracias por tus respuestas :-)
Responder Con Cita
  #4  
Antiguo 28-07-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Puedes probar ésto:
Código Delphi [-]
var
  DlgPrint: OleVariant;
begin
  DlgPrint:= ExcelApp.Dialogs.Item[xlDialogPrint];
  DlgPrint.Show(,,,4);
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 28-07-2004
RyAr RyAr is offline
Miembro
 
Registrado: oct 2003
Posts: 74
Poder: 21
RyAr Va por buen camino
Buenas, he metido lo que me has dicho y y un PrintDialog por si acaso, y em da error en al linea DlgPrint:= ExcelApp.Dialogs.Item[xlDialogPrint];

He cambiar algun nombre o meter algo mas?

Saludos
Responder Con Cita
  #6  
Antiguo 28-07-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por RyAr
em da error en al linea
Código Delphi [-]
DlgPrint:= ExcelApp.Dialogs.Item[xlDialogPrint];
He cambiar algun nombre o meter algo mas?
xlDialogPrinttiene pinta de ser un índice, así que prueba con valores 0, 1,...
Por lo demás no se me ocurre qué puede ser.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 28-07-2004
RyAr RyAr is offline
Miembro
 
Registrado: oct 2003
Posts: 74
Poder: 21
RyAr Va por buen camino
Buenas, como bien dices era un indice, y probando lso valores 0, 1, 2, y 3 con el 1 s eme ha abierto el cuadro de dialogo de abrir archivo de excel, y con lso otros me ha dado error, así que será cuestión de probar.

Saludos, y gracias
Responder Con Cita
  #8  
Antiguo 28-07-2004
RyAr RyAr is offline
Miembro
 
Registrado: oct 2003
Posts: 74
Poder: 21
RyAr Va por buen camino
Bueno, al final he dado con el número, era el 8 paraq ue muestre el cuadro de dialogo de la impresora. Por si alguine quiere el codigo, sería el siguiente para pasar valores a excel e imprimirlos.

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

procedure TForm1.Button2Click(Sender: TObject);
var
  ExcelApp: OLEVariant;
  fichero: string;
  DlgPrint: OleVariant;
begin
  ExcelApp := CreateOleObject('Excel.Application');
  try
    fichero:=ExtractFilePath(ParamStr(0))+'Plantilla.xls';
    ExcelApp.Workbooks.Open(fichero);
    ExcelApp.cells.item[5,'D']:=Edit1.Text;
    ExcelApp.cells.item[7,'I']:=12;
    ExcelApp.cells.item[8,'I']:=20;
    DlgPrint := ExcelApp.Dialogs.Item[8];
    DlgPrint.Show;
  finally
    if not VarIsEmpty(ExcelApp) then
    begin
    ExcelApp.DisplayAlerts := False;
    ExcelApp.Quit;
    ExcelApp := Unassigned;
    end;
  end;
end;

Gracias por haberme ayudado a sacar este codigo

Saludos

Última edición por RyAr fecha: 28-07-2004 a las 16:07:59.
Responder Con Cita
  #9  
Antiguo 28-07-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por RyAr
Buenas, como bien dices era un indice, y probando lso valores 0, 1, 2, y 3 con el 1 s eme ha abierto el cuadro de dialogo de abrir archivo de excel, y con lso otros me ha dado error, así que será cuestión de probar.
Segun la doc. de microsoft:
xlDialogPrint = 8
xlDialogPrinterSetup = 9
xlDialogPrintPreview = 222
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 28-07-2004
RyAr RyAr is offline
Miembro
 
Registrado: oct 2003
Posts: 74
Poder: 21
RyAr Va por buen camino
Gracias, parece que conseguimos los numeritos a la vez Pero todo el mérito de esto es tuyo.

Muchas gracias, y saludos
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


La franja horaria es GMT +2. Ahora son las 19:39:47.


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