Problema con DIALOGS FOLDER y REPORT

Problema con DIALOGS FOLDER y REPORT

Postby JoseGS » Mon Nov 02, 2009 12:53 am

Hola amigos del foro:

Estoy desarrollando un programa el cual esta basado enteramente en el uso de FOLDER generados desde recursos en un dialogo.
Como utilizo TIMER he necesitado crear una WINDOW que iconizo y desde su metodo INIT llamo a mi funcion que despliega el DIALOG con todos los folders...

Todo funciona perfecto, pero cuando intento generar un REPORT, el programa como que intenta generar el PREVIEW pero no lo presenta en pantalla, no queda minimizado ni aparece por ningun lado. Pero al intentar cerrar el programa, se presenta una ventana de error que dice algo asi:

Aplication error
The memory could not be "read" (entre otras cosas)

Es como si el informe continuara en la memoria pero sin presentarse...

Alguien sabe a que se debe este problema ?.

Ya he reemplazado la PREV32.DLL por si estaba corrupta y nada.

Si hago Ctrl + Alt + Del sin haber ejecutado el informe aparece el nombre del programa en la lista de tareas y si ejecuto el informe aparece el nombre del programa junto al nombre del informe que estoy generando...

Alguna idea ?
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Problema con DIALOGS FOLDER y REPORT

Postby joseluisysturiz » Mon Nov 02, 2009 1:37 pm

Coloca algo de codigo para que podamos ayudarte, gracias... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Problema con DIALOGS FOLDER y REPORT

Postby JoseGS » Mon Nov 02, 2009 8:04 pm

...
...
FUNC MAIN()
DEFINE WINDOW oWnd TITLE "Sistema" PIXEL
DEFINE TIMER oTimer OF oWnd INTERVAL aConfig[5] ACTION USBChk()
oTimer:Activate()
ACTIVATE WINDOW oWnd ICONIZED ON INIT START()
RETU NIL


FUNC START()
LOCAL oDlg,oSAY,oLOGO,oWnd,oPANEL,oBtn,oBtnLOGO,oCBX,nEle
LOCAL oCOM1,oCOM2,oCOM3,oCOM4,oCOM5,oTIPOSYS
LOCAL cCOM:=''
cIMG:=''
oGET:=ARRAY(43)
oG3:=ARRAY(20)
aCOOP:={'','10','20','25','30','33','40','50','60','70','75','80','90','100'}
DEFINE DIALOG oDlg RESOURCE "MENU"


REDEFINE FOLDER oFld ID 1003 OF oDlg PROMPT "Pacientes","Agenda","Administracion","Configuracion" DIALOGS "MENU01","MENU02","MENU03","MENU04";
ON CHANGE oFld:aDialogs[oFld:nOption]:UPDATE()
REDEFINE FOLDER oFld2 ID 1003 OF oFld:aDialogs[1] PROMPT "Datos generales","Antecedentes","Nueva consulta","Historia clínica","Laboratorios","Medicamentos" DIALOGS "MENU0101","MENU0102","MENU0103","MENU0104","MENU0105","MENU0106";
...
...
...
REDEFINE SBUTTON oBtn ID 204 OF oFld:aDialogs[3] RESOURCE "B_PRINT" ACTION (REPTRAN()) XP PROMPT "Informes" TEXT 3



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
FUNC REPTRAN()
LOCAL oDlg,oBtn,OP
DEFINE DIALOG oDlg RESOURCE "REPORTES"
REDEFINE BUTTON oBtn ID 101 OF oDlg ACTION DO_REPTRAN(1)
REDEFINE BUTTON oBtn ID 102 OF oDlg ACTION DO_REPTRAN(2)
REDEFINE BUTTON oBtn ID 103 OF oDlg ACTION DO_REPTRAN(3)
REDEFINE BUTTON oBtn ID 104 OF oDlg ACTION DO_REPTRAN(4)
REDEFINE BUTTON oBtn ID 105 OF oDlg ACTION DO_REPTRAN(5)
REDEFINE BUTTON oBtn ID 106 OF oDlg ACTION oDlg:END()
ACTIVATE DIALOG oDlg CENTER
RETU[]


FUNC DO_REPTRAN(N)
LOCAL oFont1,oFont2,oReport,oDlg
LOCAL R:=RECNO()

DEFINE FONT oFont1 NAME "ARIAL" SIZE 0,-10
DEFINE FONT oFont2 NAME "ARIAL" SIZE 0,-8

SELE CUENTAS
DBGOTOP()
IF N=1
REPORT oReport TITLE 'Reporte de cuentas por cobrar al '+DTOC(DATE()) PREVIEW FONT oFont1,oFont2 HEADER "Pagina No. "+STR(oReport:nPage,3) RIGHT CAPTION "Cuentas por pagar"
COLUMN TITLE "NOMBRE DE LA CUENTA" DATA FIELD->NOMBRE FONT 2
COLUMN TITLE "SALDO" DATA FIELD->SALDO FONT 2
END REPORT
ACTIVATE REPORT oReport FOR 'CXC'$FIELD->CUENTA
ELSE
ENDIF
RETU[]
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Problema con DIALOGS FOLDER y REPORT

Postby karinha » Tue Nov 03, 2009 3:06 pm

Code: Select all  Expand view

#Include "Report.Ch"


STATIC FUNCTION IMPRIMECON( oLbx )

   LOCAL oPen1, oPen2          
   LOCAL oFont1, oFont2, oFont3
   LOCAL oReport                
   LOCAL nRegistro := RecNo()  

   SndPlaySound( "Init.Wav" )

   EXTERNAL ISPRINTER            
   IF .NOT. ISPRINTER()          
      SndPlaySound( "Erro.Wav" )
      CHECA_IMP() // Checar Se a Impressora Est  Ativa...
      RETURN NIL                  
   ENDIF                          

   DEFINE PEN oPen1 WIDTH 2    
   DEFINE PEN oPen2 WIDTH 1    

   DEFINE FONT oFont1 NAME "Arial"       SIZE 0, -11
   DEFINE FONT oFont2 NAME "Arial"       SIZE 0, -11
   DEFINE FONT oFont3 NAME "Courier New" SIZE 0,  10 // Para Imprimir MEMOS

   DbSelectArea( "CON" ) //-> Carrega o Banco: CONVENIO.DBF
   DbGoTop()

   REPORT oReport TITLE "Listagem de CONVENIOS" ;
      CAPTION "Catálogo: CONVENIOS"             ;
      HEADER "CONVENIOS",                       ;
      "Data:   " + DTOC( DATE() ),              ;
      "Página: " + STR( oReport:nPage, 3 )      ;
      FOOTER "- CONVENIOS -" CENTER             ;
      FONT oFont1, oFont2, oFont3               ;
      PEN oPen1, oPen2 ;
      PREVIEW
      //TO FILE \RELATO.TXT    

      //-> Para o Preview Maximizar e Nao Ficar no Rodape do Windows
      oReport:oDevice:lPrvModal := .T.
      oReport:oDevice:SetPage(9) //-> Formato A4

      //-> Este e somente um modelo, veja no ReadMe.Txt, exemplo
      COLUMN TITLE "CODIGO     " DATA CON->CODIGO,             ;
                 + "NOME:      "    + CON->NOME,               ;
                 + "APELIDO:   "    + CON->APELIDO,            ;
                 + "VALOR DEV: "    + STR(CON->VALOR_DEV),     ;
                 + "% PERDA:   "    + STR(CON->VALOR_PERD),    ;
                 + "PERDA ACE: "    + STR(CON->VLPERDAACE),    ;
                 + "MELHOR DIA:"    + CON->MELHOR_DIA,         ;
                 + "EMAIL:     "    + CON->EMAIL,              ;
                 + "WEB:       "    + CON->WEB,                ;
                 + "OBS:       "    + CON->OBS,                ;
                 + "OBS2:      "    + CON->OBS2,               ;
                 + "OBS3:      "    + CON->OBS3,               ;
                 + "DATA CADASTRO:" + DTOC( CON->DATA_CADAS ) FONT 2

      COLUMN TITLE "ENDERECO   " DATA CON->END,                ;
                 + "BAIRRO:    "    + CON->BAI,                ;
                 + "CIDADE:    "    + CON->CID,                ;
                 + "UF:        "    + CON->UF,                 ;
                 + "CEP:       "    + CON->CEP,                ;
                 + "FONE:      "    + CON->TEL,                ;
                 + "FONE:      "    + CON->TEL2,               ;
                 + "FONE:      "    + CON->TEL3,               ;
                 + "CNPJ:      "    + CON->CGC,                ;
                 + "IE:        "    + CON->IE,                 ;
                 + "CONTATO:   "    + CON->CONTATO,            ;
                 + "RAMAL 1:   "    + CON->RAMAL_1,            ;
                 + "RAMAL 2:   "    + CON->RAMAL_2            FONT 2

   END REPORT

   IF !oReport:lCreated
      RETURN NIL
   ENDIF

   oReport:CellView()

   ACTIVATE REPORT oReport ON INIT oReport:oTitle:aFont[1] := { || 3 }

   oPen1:End()  
   oPen2:End()  
   oFont1:End()
   oFont2:End()
   oFont3:End()
 


La PREV32.DLL está en tu directório de trabajo??

Incluistes RPREVIEW.PRG a tu proyecto?

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema con DIALOGS FOLDER y REPORT

Postby ADBLANCO » Tue Nov 03, 2009 4:16 pm

Mandale el Objeto del dialogo al cual pertenece

Code: Select all  Expand view

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
FUNC REPTRAN(oDlgAnt)
LOCAL oDlg,oBtn,OP
DEFINE DIALOG oDlg RESOURCE "REPORTES" OF oDlgAnt
REDEFINE BUTTON oBtn ID 101 OF oDlg ACTION DO_REPTRAN(1)
REDEFINE BUTTON oBtn ID 102 OF oDlg ACTION DO_REPTRAN(2)
REDEFINE BUTTON oBtn ID 103 OF oDlg ACTION DO_REPTRAN(3)
REDEFINE BUTTON oBtn ID 104 OF oDlg ACTION DO_REPTRAN(4)
REDEFINE BUTTON oBtn ID 105 OF oDlg ACTION DO_REPTRAN(5)
REDEFINE BUTTON oBtn ID 106 OF oDlg ACTION oDlg:END()
ACTIVATE DIALOG oDlg CENTER
RETU[]

 


Y la llamada la haces así:

REPTRAN(oDlg)
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: Problema con DIALOGS FOLDER y REPORT

Postby JoseGS » Tue Nov 03, 2009 10:30 pm

Nada de nada :-( amigos...
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Problema con DIALOGS FOLDER y REPORT

Postby Wanderson » Tue Nov 03, 2009 10:55 pm

Olá JoseGS
Eu acredito que seja uno problema com algum malware.
Tente utilizar lo programa Combofix, procura em lo google.

Salu2
Wanderson
 
Posts: 332
Joined: Thu Nov 17, 2005 9:11 pm

Re: Problema con DIALOGS FOLDER y REPORT

Postby JoseGS » Wed Nov 04, 2009 3:35 am

No, es un problema con la forma en la que estoy haciendo la aplicacion... ya que con otros programas hechos de la forma convencional funciona bien...

Gracias
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Problema con DIALOGS FOLDER y REPORT

Postby ADBLANCO » Wed Nov 04, 2009 1:13 pm

No le Sobra la definicion local de oDlg ???



Code: Select all  Expand view

FUNC DO_REPTRAN(N)
LOCAL oFont1,oFont2,oReport,oDlg
LOCAL R:=RECNO()

 


No Se, Prueba a ver que pasa :oops:
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: Problema con DIALOGS FOLDER y REPORT

Postby JoseGS » Wed Nov 04, 2009 9:16 pm

Ok amigos:

Creo que el asunto se debe a lo siguiente:

- La pantalla principal del sistema es un dialogo que contiene multiples folder. Ese dialogo lo llamo mediante la funcion START() desde el ON INIT de un WINDOW que creo y activo iconizado... como se muestra en la primera linea del codigo. Si quito la instruccion ICONIZED, y genero el informe, veo que el mismo se crea pero queda atras de la ventana que contiene el DIALOG y no tengo control de los botones presentes en el PREVIEW.

No me gusta quitar ICONIZED ya que si lo hago se muestra una ventana gris sin contenido al momento de abrir el programa.
Me hara falta algun setcontrol, o algo ?

//ACTIVATE WINDOW oWnd ICONIZED ON INIT START() <-
ACTIVATE WINDOW oWnd ON INIT START()
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Problema con DIALOGS FOLDER y REPORT

Postby JoseGS » Wed Nov 04, 2009 9:45 pm

Por lo pronto he hecho lo siguiente:

ACTIVATE REPORT oReport ON INIT (oDlg:MINIMIZE(),oWnd:MAXIMIZE())


Solo tengo 2 problemas:
1. Como hago para que al cerrar el dialogo que contiene el PREVIEW se vuelva a maximizar el oDlg (ya prove con ON END y ON POSTEND pero ambos se ejecutan al finalizar el report, no cuando la entana de preview se cierra...
2. Al salir del programa me envia un error

CXC.exe - Application Error
The instruction at "0x00459b06@ referenced memoty at "0x00176e48". The memory could not be "read"
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Problema con DIALOGS FOLDER y REPORT

Postby ADBLANCO » Mon Nov 09, 2009 2:07 pm

No se en la clase Treport, pero prueba con:

oReport:lprvmodal:=.t.

:oops:
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: Problema con DIALOGS FOLDER y REPORT

Postby ADBLANCO » Mon Nov 09, 2009 2:49 pm

Intenta esto:

[code]
FUNC MAIN()
DEFINE WINDOW oWnd TITLE "Sistema" PIXEL
DEFINE TIMER oTimer OF oWnd INTERVAL aConfig[5] ACTION USBChk()
oTimer:Activate()
ACTIVATE WINDOW oWnd ICONIZED ON INIT START(oWnd)
RETU NIL


FUNC START(oWnd)
LOCAL oDlg,oSAY,oLOGO,oPANEL,oBtn,oBtnLOGO,oCBX,nEle
LOCAL oCOM1,oCOM2,oCOM3,oCOM4,oCOM5,oTIPOSYS
LOCAL cCOM:=''
cIMG:=''
oGET:=ARRAY(43)
oG3:=ARRAY(20)
aCOOP:={'','10','20','25','30','33','40','50','60','70','75','80','90','100'}
DEFINE DIALOG oDlg RESOURCE "MENU" of oWnd

REDEFINE FOLDER oFld ID 1003 OF oDlg PROMPT "Pacientes","Agenda","Administracion","Configuracion" DIALOGS "MENU01","MENU02","MENU03","MENU04";
ON CHANGE oFld:aDialogs[oFld:nOption]:UPDATE()
REDEFINE FOLDER oFld2 ID 1003 OF oFld:aDialogs[1] PROMPT "Datos generales","Antecedentes","Nueva consulta","Historia clínica","Laboratorios","Medicamentos" DIALOGS "MENU0101","MENU0102","MENU0103","MENU0104","MENU0105","MENU0106";
...
...
...
REDEFINE SBUTTON oBtn ID 204 OF oFld:aDialogs[3] RESOURCE "B_PRINT" ACTION (REPTRAN(oDlg)) XP PROMPT "Informes" TEXT 3



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
FUNC REPTRAN(oDlgAnt)
LOCAL oDlg,oBtn,OP
DEFINE DIALOG oDlg RESOURCE "REPORTES" of oDlgAnt
REDEFINE BUTTON oBtn ID 101 OF oDlg ACTION DO_REPTRAN(1)
REDEFINE BUTTON oBtn ID 102 OF oDlg ACTION DO_REPTRAN(2)
REDEFINE BUTTON oBtn ID 103 OF oDlg ACTION DO_REPTRAN(3)
REDEFINE BUTTON oBtn ID 104 OF oDlg ACTION DO_REPTRAN(4)
REDEFINE BUTTON oBtn ID 105 OF oDlg ACTION DO_REPTRAN(5)
REDEFINE BUTTON oBtn ID 106 OF oDlg ACTION oDlg:END()
ACTIVATE DIALOG oDlg CENTER
RETU[]


FUNC DO_REPTRAN(N)
LOCAL oFont1,oFont2,oReport,oDlg
LOCAL R:=RECNO()

DEFINE FONT oFont1 NAME "ARIAL" SIZE 0,-10
DEFINE FONT oFont2 NAME "ARIAL" SIZE 0,-8

SELE CUENTAS
DBGOTOP()
IF N=1
REPORT oReport TITLE 'Reporte de cuentas por cobrar al '+DTOC(DATE()) PREVIEW FONT oFont1,oFont2 HEADER "Pagina No. "+STR(oReport:nPage,3) RIGHT CAPTION "Cuentas por pagar"
COLUMN TITLE "NOMBRE DE LA CUENTA" DATA FIELD->NOMBRE FONT 2
COLUMN TITLE "SALDO" DATA FIELD->SALDO FONT 2
END REPORT
ACTIVATE REPORT oReport FOR 'CXC'$FIELD->CUENTA
ELSE
ENDIF
RETU[]
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: Problema con DIALOGS FOLDER y REPORT

Postby JoseGS » Wed Nov 11, 2009 3:42 am

Al final lo resolvi a la pedrada !!!

Hice otro programa ejecutable que contiene la parte de los informes y lo llamo con WINEXEC desde mi programa principal... caso resuelto.... :-) y no se nota que es otro ejecutable...


Gracias a todos...
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Julio Cepeda and 51 guests