Reporte en visual foxpro!

Espero no quitarle mucho de su valioso tiempo. He creado un prg para generar un form "hijo" que me permita visualizar reportes. Esto lo logre, siguiendo el consejo que usted, en mi primera consulta que le hice, me dio (muchas gracias de por si) sobre crear mejor un prg que pueda ser llamado desde cualquier form "padre" y evitar la escritura de exceso de código. El pgr funciona bien cuando lo invoco desde mi form "padre". Mi duda es que: como hacer para que el reporte se abra en una ventana aparte del form, es decir, ¿en una ventana individual? ¿Es posible esto? En el form padre, tengo el botón "ver reporte"... Cuando lo acciono, se abre el form "hijo" ("ambos, padre e hijo tienen showwindow=2 top level form) y cuando en el "hijo" doy click en "previsualizar", el reporte se abre, pero dentro de la misma ventana del form... Es decir, se pone "encima" del form. El form es pequeño (250x300) y por tanto, el reporte no se ve bien. Tengo que maximizar la ventana para verlo completo. Y cuando lo cierro, el form me queda en toda la pantalla. Esto desluce un poco!!! Cuando programe en el .PRG el botón "previsualizar reporte", al dar click puse esto: ZOOM WINDOW frmreporte MAX y al ejecutar, se maximiza la ventana del reporte, pero al cerrarlo, el form permanece maximizado. Como puedo hacer?
1

1 Respuesta

38.925 pts. Por el momento no estoy disponible
No sé qué comando estás utilizando para visualizar el reporte.
Deberías probar hacerlo con la siguiente sintaxis:
REPORT FORM mireporte NOCONSOLE PREVIEW IN SCREEN TO PRINTER PROMPT
Eso te abrirá una ventana independiente.
Pruébalo y me cuentas.
Hola Unysoft! Pues fíjate que si utilice antes esa sintaxis! No obstante, no podía resolver mi problema. SIn embargo, logre crear una opción bastante buena con algunos códigos que fui uniendo, tomados de algunos portales fox! Consiste en generar el reporte en un form de nivel superior.
Estimado Unysoft, espero no te moleste que ponga aquí el .prg que utilice para generar el reporte (dentro de un form nivel superior 2) desde o llamándolo con un "click" desde un form de nivel 1! Quiero compartir esto con la comunidad porque he leído en todo expertos y otros sitios que este problema es muy común, y las soluciones pues son un poco complicadas! No soy experto, pero si de algo le funciona a alguien, pues la causa de ayudar a otros es muy buena, puesto que a mi me han ayudado mucho! Saludos y gracias!
**Crear un Reporte dentro de un form de nivel superior, desde un click en otro formulario de nivel ******
* Start of code example
   *
   public oMain
   oMain = CREATEOBJECT('main')  && open main form
   oMain.visible = .t.
   **************************************************
   *-- Class:        main
   *-- ParentClass:  form
   *-- BaseClass:    form
   *
   DEFINE CLASS main AS form
     Top = 0
     Left = 0
     Height = 165
     Width = 220
     DoCreate = .T.
     Caption = "Main"
     Name = "main"
     opform = .F.
     ADD OBJECT command1 AS commandbutton WITH ;
       Top = 24, ;
       Left = 24, ;
       Height = 37, ;
       Width = 157, ;
       Caption = "Show Print Preview", ;
       Name = "Command1"
     ADD OBJECT command2 AS commandbutton WITH ;
       Top = 84, ;
       Left = 24, ;
       Height = 37, ;
       Width = 157, ;
       Caption = "Close", ;
       Name = "Command2"
     PROCEDURE command1.Click
       oPForm = CREATEOBJECT('printpreview')
       oPform.visible = .t.    && open printpreview form
   *******
   * This is the report form command that uses the IN WINDOW Clause.
   * Notice that it uses both WINDOW and IN WINDOW clauses. The WINDOW
   * clause tells the Print Preview window to take on the characteristics
   * of the window, while IN WINDOW tells in what window to display the
   * Print Preview window.
   *******
    REPORT FORM "clientes.frx" PREVIEW WINDOW printpreview IN WINDOW printpreview
    ENDPROC
    PROCEDURE command2.Click
      thisform.release
    ENDPROC
   ENDDEFINE
   *
   *-- EndDefine: main
   **************************************************
   DEFINE CLASS printpreview AS form
     ScaleMode = 3
       Top = 0
       Left = 0
       Height = 454
       Width = 641
       ShowWindow = 2
       DoCreate = .T.
       Caption = "Print Preview Window"
       Movable = .T.
       TitleBar = 0
       WindowState = 2
       SizeBox = .F.
       Name = "printpreview"
   ENDDEFINE
   *End of Sample code

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas