Mmm... es realmente extraño que abra el cuadro de dialogo si no se esta invocando. Como tenes el SET DEFAULT para el directorio de tu proyecto?
Mientras me respondes... aquí va una solución que a mi me ha servido muchísimo.
1 - Anda a la pestaña CODE del administrador de proyectos y crea una rutina o programa .prg con el nombre generarreporte, y debe quedar guardado en tu carpeta proyecto (generarreporte. Prg). En esa rutina, coloca un código como este:
**============**
**Vista previa**
**============**
PROCEDURE vistaprevia
**--
SELECT mitabla
**--Crear form vacio de vista previa--**
oPForm = CREATEOBJECT('printpreview')
oPform.visible = .t. && open printpreview form
**--//
**Llamamos el reporte
REPORT FORM "reporte1.frx" PREVIEW WINDOW printpreview IN WINDOW printpreview NOCONSOLE
**--//
ENDPROC
**==//
**--Definimos clase de form vista previa
DEFINE CLASS printpreview AS form
ScaleMode = 3
Top = 0
Left = 0
Height = 454
Width = 641
ShowWindow = 2
Closable = .T.
DoCreate = .T.
Caption = "Reporte de datos | "
Movable = .T.
TitleBar = 0
WindowState = 2
SizeBox = .F.
Name = "printpreview"
Visible = .T.
ENDDEFINE
**--Fin del codigo.
2 - Cambia donde dice "SELECT mi tabla" por el nombre de la tabla o cursor que contiene los datos que se envían al reporte, es decir.. de donde se alimenta el reporte.
Cambia en la línea donde dice: REPORT FORM "reporte1.frx"... escribí en lugar de reporte1 el nombre de tu reporte siempre entre "" comillas dobles. Guarda los cambios.
3 - Anda ahora al form desde donde llamas al reporte y en modo de diseño, agrega la tabla que carga tu reporte (si es un cursor temporal, no es necesario este paso) en el entorno de datos.
4 - Codifica: en el evento INIT de tu FORMULARIO, coloca un código como este
**--Evitamos conflictos de red
CURSORSETPROP("Buffering", 5, "mitabla")
**--//
**--Activamos procedimientos
SET PROCEDURE TO generarreporte ADDITIVE
**--//
Cambiando siempre mitabla por el nombre de tu tabla. La segunda línea es para activar la rutina generarreporte que recién creaste y que se pueda abrir con todas las demás que tengas disponibles en esa sesión de datos.
5 - Anda a la pestaña DATA de las propiedades de tu formulario, y coloca las propiedades siguientes así: Buffermode = 2, Datasession = 2.
6 - Por ultimo, coloca esta línea de código, tal cual, en algún botón desde donde haces click para llamar al reporte. Unicamente esta línea debe ir en el evento click del botón... más nada:
**--Generamos la vista previa del reporte
**--en un form aparte. Se puede dejar en
**--la pantalla principal pero es mas presentable
**--aparte.
**--Se llama al procedimiento VISTAPREVIA que esta
**--en la rutina generarreporte
DO vistaprevia IN generarreporte
**--//
Y listo. Guarda los cambios y ejecuta. Cuando hagas click.. el reporte debe abrirse sin problemas y en una ventana maximizada aparte. Es más cómodo, rápido, practico y sencillo...! Eso debe solucionar el problema y es una buena opción para programar. Si te da problemas o algo... avisame y con mucho gusto te ayudo a resolver. Es importante que te asegures que el directorio de arranque de tu aplicación este correctamente declarado y que VFP al iniciar en un .exe sepa donde ir a buscar tus ficheros.
Estoy a la orden... ! Avisame como va! Espero tus comentarios.
Desde Managua, Nicaragua!
Ravenn!
PD: tengo algunos amigos que viven hasta allá en Argentina... Argentinos todos, personas muy amables! Un abrazo!