Problema con DIALOGS FOLDER y REPORT
Problema con DIALOGS FOLDER y REPORT
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 ?
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 ?
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: Problema con DIALOGS FOLDER y REPORT
Coloca algo de codigo para que podamos ayudarte, gracias...
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
Re: Problema con DIALOGS FOLDER y REPORT
...
...
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[]
...
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[]
Re: Problema con DIALOGS FOLDER y REPORT
Code: Select all
#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()
Incluistes RPREVIEW.PRG a tu proyecto?
Saludos.
João Santos - São Paulo - Brasil
Re: Problema con DIALOGS FOLDER y REPORT
Mandale el Objeto del dialogo al cual pertenece
Y la llamada la haces así:
REPTRAN(oDlg)
Code: Select all
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
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[]
REPTRAN(oDlg)
Saludos
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Re: Problema con DIALOGS FOLDER y REPORT
Nada de nada amigos...
Re: Problema con DIALOGS FOLDER y REPORT
Olá JoseGS
Eu acredito que seja uno problema com algum malware.
Tente utilizar lo programa Combofix, procura em lo google.
Salu2
Eu acredito que seja uno problema com algum malware.
Tente utilizar lo programa Combofix, procura em lo google.
Salu2
Re: Problema con DIALOGS FOLDER y REPORT
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
Gracias
Re: Problema con DIALOGS FOLDER y REPORT
No le Sobra la definicion local de oDlg ???
No Se, Prueba a ver que pasa
Code: Select all
FUNC DO_REPTRAN(N)
LOCAL oFont1,oFont2,oReport,oDlg
LOCAL R:=RECNO()
Saludos
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Re: Problema con DIALOGS FOLDER y REPORT
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()
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()
Re: Problema con DIALOGS FOLDER y REPORT
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"
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"
Re: Problema con DIALOGS FOLDER y REPORT
No se en la clase Treport, pero prueba con:
oReport:lprvmodal:=.t.
oReport:lprvmodal:=.t.
Saludos
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Re: Problema con DIALOGS FOLDER y REPORT
Intenta esto:
Code: Select all
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
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Re: Problema con DIALOGS FOLDER y REPORT
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...
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...