Report detras de Dialog.

Report detras de Dialog.

Postby Garbi » Thu May 24, 2012 10:32 am

Hola tengo un dialogo definido mediante recurso, pero cuando hago un report con preview siempre me lo coloca detrás del dialogo y tengo que cerrarlo para poder utilizar el preview (avanzar pagina, imprimir, etc.....)
Ya he probado cambiando todo lo que se me ha ocurrido en el .rc pero no consigo hacerlo. ¿Alguien podria indicarme como tendría que hacerlo? . Gracias.
Code: Select all  Expand view
DEFINE DIALOG oDlgdatos RESOURCE "RECIBO_2" TITLE "Seleccionar Facturas" of oApp:oWndMain

  REDEFINE BROWSE oBrwdatos ID 101 of oDlgdatos

   obrwdatos:bldblclick   = { | nKey, nFlags | iif((cremesa)->slc="X",;
    ((cremesa)->slc:=" ",vnrecibo:=vnrecibo-1,gvnrecibo:Refresh(),;
     vtimporte:=vtimporte-(cremesa)->total,gvtimporte:Refresh()),;
    ((cremesa)->slc:="X",vnrecibo:=vnrecibo+1,gvnrecibo:Refresh(),;
     vtimporte:=vtimporte+(cremesa)->total,gvtimporte:Refresh())),obrwdatos:refresh()}
  ADD COLUMN to oBrwdatos DATA (cremesa)->slc    HEADER "Slc" size 50
  ADD COLUMN to oBrwdatos DATA (cremesa)->numero HEADER "Numero" size 75 ORDER "NUMERO"
  ADD COLUMN to oBrwdatos DATA (cremesa)->fecha  HEADER "Fecha" size 75
  ADD COLUMN to oBrwdatos DATA alltrim((cremesa)->nombre) HEADER "Nombre" size 400 ORDER "NOMBRE"
  ADD COLUMN to oBrwdatos DATA (cremesa)->total   HEADER "Total" size 100 picture "9,999,999.99" right


  REDEFINE GET gvfcreacion Var vfcreacion  ID 104 OF oDlgdatos
  REDEFINE GET gvfcargo    Var vfcargo     ID 105 OF oDlgdatos VALID IIF(vfcargo>=vfcreacion,.t.,.f.)

  REDEFINE GET gvtimporte Var vtimporte picture "9,999,999.99"  ID 102 OF oDlgdatos when vlsay
  REDEFINE GET gvnrecibo  Var vnrecibo picture "9,999"  ID 103 OF oDlgdatos when vlsay


  REDEFINE BTNBMP aBoton[1] ID 501 PROMPT oemtoansi("A¥ADIR") OF oDlgdatos ;
                  action (anadir(),obrwdatos:gotop(),obrwdatos:refresh());
                  MESSAGE Oemtoansi("A¤adir Facturas")

  REDEFINE BTNBMP aBoton[4] ID 502  PROMPT "BORRAR" OF oDlgdatos;
                  MESSAGE "Borrar Linea";
                  action (borrar(),obrwdatos:gotop(),obrwdatos:refresh())

  REDEFINE BTNBMP aBoton[2] ID 503  PROMPT "IMPRIMIR" OF oDlgdatos;
                  ACTION imprimirremesa(oDlgdatos);
                  MESSAGE "Imprimir Remesa"

  REDEFINE BTNBMP aBoton[3] ID 504  PROMPT "GENERAR" OF oDlgdatos;
                  MESSAGE "Generar Remesa";
                  action (generarremesa())




  ACTIVATE DIALOG oDlgdatos CENTER ON INIT (oBrwdatos:SetOrder(4),oBrwdatos:gotop())


Definicion en el .rc
Code: Select all  Expand view
RECIBO_2 DIALOG 210, 42, 585, 354
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
CAPTION "Selecciona"
FONT 10, "Arial"
{
 LISTBOX 101, 10, 4, 561, 287, LBS_NOTIFY | WS_BORDER | LBS_SORT | LBS_USETABSTOPS | LBS_DISABLENOSCROLL | WS_BORDER | WS_TABSTOP
 CONTROL "", 501, "TbtnBmp", 0 | WS_CHILD | WS_VISIBLE, 55, 299, 50, 14
 CONTROL "", 503, "TbtnBmp", 0 | WS_CHILD | WS_VISIBLE, 115, 299, 50, 14
 CONTROL "", 502, "TbtnBmp", 0 | WS_CHILD | WS_VISIBLE, 56, 318, 50, 14
 CONTROL "", 504, "TbtnBmp", 0 | WS_CHILD | WS_VISIBLE, 116, 317, 50, 14
 LTEXT "Total", -1, 476, 311, 19, 8
 EDITTEXT 102, 497, 309, 69, 12, ES_RIGHT | WS_BORDER | WS_TABSTOP
 LTEXT "N\xBA Recibos", -1, 491, 332, 40, 8
 EDITTEXT 103, 536, 330, 30, 12, ES_RIGHT | WS_BORDER | WS_TABSTOP
 LTEXT "Fecha Creacion", -1, 210, 302, 53, 8
 LTEXT "Fecha Cargo", -1, 213, 323, 44, 8
 EDITTEXT 104, 274, 301, 69, 12, ES_RIGHT | WS_BORDER | WS_TABSTOP
 EDITTEXT 105, 274, 320, 69, 12, ES_RIGHT | WS_BORDER | WS_TABSTOP
}
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 291
Joined: Wed Nov 02, 2005 3:28 pm

Re: Report detras de Dialog.

Postby karinha » Thu May 24, 2012 11:58 am

Holá, muestra ACTION imprimirremesa(oDlgdatos), porfa.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Report detras de Dialog.

Postby Manuel Aranda » Thu May 24, 2012 12:36 pm

Prueba esto en el report:

oReport:lPrvModal:=.T.
Un saludo,
Manuel

xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: Report detras de Dialog.

Postby Garbi » Thu May 24, 2012 3:00 pm

He puesto oReport:lPrvModal:=.T. y me da error.
Como pide el companero pongo el codigo del report.
Code: Select all  Expand view
static function imprimirremesa(oDlgdatos)

    lcancel:=printersetup()
    if lcancel = 0
       return nil
    endif
    i:=1
     (cremesa)->(DbSetOrder(2))
     (cremesa)->(dbgotop())

    DEFINE FONT oFont1 NAME "Arial" SIZE 0,-10

     REPORT oReport TITLE "Remesa "+dtoc(date());
            PREVIEW FONT ofont1


     COLUMN TITLE "Recibo"   DATA i size 5
     COLUMN TITLE "Factura"  DATA (cremesa)->numero size 5
     COLUMN TITLE "Fecha"    DATA dtoc((cremesa)->fecha)
     COLUMN TITLE "Nombre"   DATA alltrim((cremesa)->nombre) size 40
     COLUMN TITLE "Importe"  DATA val(transform((cremesa)->total,"999999.99")) picture "9,999,999.99" total
     GROUP ON (cremesa)->nombre;
           FOOTER "Total Cliente "+alltrim(oReport:aGroups[1]:cValue)+ ;
                  " ("+ltrim(str(oReport:aGroups[1]:nCounter))+" Recibos)"+CRLF

     END REPORT

     oReport:cGrandTotal := "Total Remesa..."
     oReport:cPageTotal := "Total Pagina..."

      ACTIVATE REPORT oReport for (cremesa)->slc="X";
               ON CHANGE i:=i+1;
               ON STARTGROUP oReport:NewLine()


     (cremesa)->(DbSetOrder(1))
     (cremesa)->(dbgotop())
return nil
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 291
Joined: Wed Nov 02, 2005 3:28 pm

Re: Report detras de Dialog.

Postby Manuel Aranda » Thu May 24, 2012 5:04 pm

Disculpa Garbi:

Para el report sería así:

oReport:oDevice:lPrvModal:=.T.
Un saludo,
Manuel

xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: Report detras de Dialog.

Postby Garbi » Thu May 24, 2012 5:17 pm

Lo he puesto, ya no me da error, y he probado con el valor .t. y .f. y en ambos casos el preview del report se coloca detrás del dialogo.
Ya me tiene un poco desesperado, y es que el dialogo no lo puedo cerrar porque primero hay que ver por impresión que todo es correcto para despues generar la remesa.
Ya no se que probar.
¿Es normal que esto suceda entre un dialog y un report?
Gracias a todos por vuestra ayuda, a ver si alguien me puede dar la solucón.
Uso el prev32.dll, por si tiene algo que ver.
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 291
Joined: Wed Nov 02, 2005 3:28 pm

Re: Report detras de Dialog.

Postby jll-fwh » Thu May 24, 2012 6:36 pm

Hola garbi:

Como te comentan ejecuta el listado en modo MODAL.

Yo para los listado uso TPrinter que aunque requiere mucho mas tiempo para crear los informes, me parece mucho mejor porque puedes hacer listado muy profesionales. La uso solo en programas GPL o Freeware, en los demas uso Crystal Report, que se pueden generar informes muy complejos muy rápidamente.

Uso la siguiente técnica desde hace muchos años que va de maravilla para controlar los programas sobre todo en entorno MDI:

1.- Ejecuto el administrador de informes. ( donde el usuario selecciona, rangos, impresoras, color en impresión, etc )
2.- Una vez seleccionado los parametros, llamo a la función que crea el listado usando WaitRun y a su vez OCULTO la ventana principal ( oWnd:Hide() ) hasta que el usuario cierra la ventana del listado, una vez cerrada la ventana, vuelvo a activar la ventana ( oWnd:Show() ), de este modo, controlas al 100% el programa en entornos MDI.

Esta técnica a mi siempre me ha ido genial y nunca he tenido problemas con los programas ni con los usuarios, QUIZAS A OTROS NO LE SIRVA ESTA FORMA, PORQUE VA EN FUNCIÓN DE LA NECESIDAD DEL PROGRAMA.

Volviendo a TPrinter, con esta clase puedes hacer algo como esto, sin gráficos:

Image

Para gustos los colores...

Y sobre tu problema, que versión usas? porque a mi nunca me ha pasado eso que comentas.

Un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 86 guests