Gracias aladelta y Lepe por su ayuda les cuento:
Antes de probar la idea de aladelta de utilizar la función para comprabar primero si ya existe un preview creado quiero seguir las sugerencias de Lepe pero tengo un inquietud con el previewmodal, pues este cuando lo utilizo con formularios creados mediante la opción de delphi File-New-Report me aparece inabilitados los botones de impresión y configuración de impresora, pero cuando utilizo reportes seleccionados y puesto sobre un formulario estas opciones si aparecen habilitados asi utilice el previewmodal que es lo que necesito el unico inconveniente es que tengo cerca de 60 reportes y la gran mayoria los tengo creados mediante la primera opción y el paso de todos estos a la segunda forma seria volver a construir todo, si lepe me puede sugerir como puedo crear esto formularios con previewmodal y me aparesca habilitado la opcion de imprimir. Para mayor compresión voy a mostrar las dos forma en que llamo a los preview;
Código Delphi
[-]
procedure TPrincipal.ConsultarInventario1Click(Sender: TObject);
Var
Ri : TRinventarios3;
begin
Ri := TRinventarios3.Create(Nil);
with Ri do
Begin
try
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text := 'SELECT * FROM CONSULTAINVENTARIO (' + Inttostr(DataM.Recepcionista['N_Turno']) + ')';
Query1.Active := True;
previewModal;
Query1.Close;
finally
FreeAndNil(Ri);
end
End
end;
Esta es la primera forma en que creo los formularios y me aparece desabilitados los botones de impresión.
Código Delphi
[-]
procedure TItemFactura.LMDButton8Click(Sender: TObject);
begin
Application.CreateForm(TVistaRecibo, VistaRecibo);
with VistaRecibo do
Begin
try
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT O.Habitacion, O.N_Orden, C.Nombres, C.Cedula, C.Telefono, C.Apellidos, O.Fecha_Llegada, ');
Query1.SQL.Add('I.Fecha, I.Cantidad, I.Valor, I.IVA, S.Nombre, S.Valor, S.Iva FROM Orden_Servicio O, Cliente C, ItemServicio I, Servicio S');
Query1.SQL.Add('WHERE O.N_Orden = ''' + inttostr(ConOrden['N_Orden']) + ''' AND ''' + inttostr(ConOrden['N_Orden']) + '''= I.Orden AND I.Servicio = S.Codigo AND O.Cliente = C.IdCliente ORDER BY I.Fecha ASC');
Query1.Active := True;
QuickRep1.PreviewModal;
finally
Free;
end
end
end;
Cuando los formulacios los llamo de esta forma si me aparece habilitadas las opciones de impresión.
Muchas gracias por la atención prestada.