FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour error + mdi + xbrowse (Solucionado)
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
error + mdi + xbrowse (Solucionado)
Posted: Sat May 23, 2015 03:40 PM
Buenos d铆as...

Lo que pasa es que estoy tratando de usar ventanas mdi con un xbrowse, pero me esta arrojando un error que no he podido corregir, les adjunto el codigo para ver si alguien me puede dar una luz.

La ventana se dibuja bien, pero cuando hago clic sobre el xbrowse, lanza el error.

El codigo de tengo es el siguiente:
Code (fw): Select all Collapse
FUNCTION vHija()

聽LOCAL aCol:={0,0,0},nWidth:=0
聽Local cVar := "SELECT * FROM lyma_cobro_serv WHERE ss_manzan=100"
聽Private oRsCte, oRsCta, oRsCpto,oWChild

聽 聽 oRsCte := FW_OPENRECORDSET(oLamcla:oCon,cVar,adLockOptimistic,adOpenKeyset)

聽 聽 DEFINE FONT oFontCli NAME "TAHOMA" SIZE 0, -13

聽 聽 DEFINE WINDOW oWChild MDICHILD NOSYSMENU;
聽 聽 聽 聽 聽 聽 聽 TITLE "Ordenes de Corte" OF oWnd

聽 聽 聽 聽 聽 聽 聽 SET FONT OF oWChild TO oFontCli
聽 聽 聽 聽 聽 聽 聽 SET MESSAGE OF oWChild TO "ordenes de corte "

聽 聽 DEFINE BUTTONBAR oBar1 OF oWChild SIZE 80, 60 2007

聽 聽 DEFINE BUTTON OF oBar1 ACTION oWChild:End() ;
聽 聽 聽 聽 聽 聽 聽 RESOURCE "Salir" PROMPT "Salir" TOOLTIP "Salir de esta pantalla"


聽 聽oBrw := TXBrowse():New( oWChild )
聽 聽oBrw:nMarqueeStyle 聽 聽 聽 := MARQSTYLE_HIGHLROW
聽 聽oBrw:nColDividerStyle 聽 聽:= LINESTYLE_LIGHTGRAY
聽 聽oBrw:nHeaderLines 聽 聽 聽 聽:= 1
聽 聽oBrw:lColDividerComplete := .t.
聽 聽oBrw:lRecordSelector 聽 聽 := .t.
聽 聽oBrw:bClrSel 聽 聽 聽 聽 聽 聽:= {|| { CLR_BLACK,oLamcla:cClr7 } }
聽 聽oBrw:bClrStd 聽 聽 聽 聽 聽 聽:= {|| IF( (oRsCte:AbsolutePosition()%2)==0,{pReColLet(oRsCte:Fields( "ss_contro" ):Value),oLamcla:cClr2},{pReColLet(oRsCte:Fields( "ss_contro" ):Value),oLamcla:cClr1} ) }
聽 聽oBrw:bClrSelFocus 聽 聽 聽 聽:= {|| { CLR_WHITE,oLamcla:cClr8 } }
聽 聽oBrw:l2007聽 聽 聽 聽 聽 := .T.
聽 聽oBrw:nStretchCol 聽 聽 聽 聽 := STRETCHCOL_LAST


聽 聽aCol[ 1] 聽 聽 聽 聽 聽 聽 聽 聽 聽 := oBrw:AddCol()
聽 聽aCol[ 1]:bStrData 聽 聽 聽 聽 聽:= { || If( oRsCte:Eof, Space( nWidth ), cValtoChar( oRsCte:Fields( "ss_docume" ):Value ) ) }
聽 聽aCol[ 1]:cHeader 聽 聽 聽 聽 聽 聽:= "Consec"
聽 聽aCol[ 1]:nHeadStrAlign 聽 聽 := AL_LEFT
聽 聽aCol[ 1]:nDataStrAlign 聽 聽 := AL_LEFT
聽 聽aCol[ 1]:nWidth 聽 聽 聽 聽 聽 聽:= 50

聽 聽aCol[ 2] 聽 聽 聽 聽 聽 聽 聽 聽 聽 := oBrw:AddCol()
聽 聽aCol[ 2]:bStrData 聽 聽 聽 聽 聽:= { || If( oRsCte:Eof, Space( nWidth ), cValtoChar( oRsCte:Fields( "ss_period" ):Value ) ) }
聽 聽aCol[ 2]:cHeader 聽 聽 聽 聽 聽 聽:= "Periodo"
聽 聽aCol[ 2]:nHeadStrAlign 聽 聽 := AL_LEFT
聽 聽aCol[ 2]:nDataStrAlign 聽 聽 := AL_LEFT
聽 聽aCol[ 2]:nWidth 聽 聽 聽 聽 聽 聽:= 50


聽 聽oBrw:SetADO( oRsCte )
聽 聽oBrw:CreateFromCode( )

聽 聽oWChild:oClient := oBrw


聽 聽 ACTIVATE WINDOW oWChild MAXIMIZED VALID(oRsCte:close(),.t. )
聽 聽 SysRefresh()
聽 聽 RELEASE FONT oFontCli
return( nil )


El error
Code (fw): Select all Collapse
Application
===========
聽 聽Path and name: C:\Cartera\Cartera.Exe (32 bits)
聽 聽Size: 1,566,208 bytes
聽 聽Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20140725)
聽 聽FiveWin 聽Version: FWHX 15.01
聽 聽Windows version: 6.2, Build 9200

聽 聽Time from start: 0 hours 0 mins 13 secs
聽 聽Error occurred at: 05/23/15, 10:36:33
聽 聽Error description: Error ADODB.RecordSet/6 聽DISP_E_UNKNOWNNAME: RECORDCOUNT
聽 聽Args:

Stack Calls
===========
聽 聽Called from: 聽=> TOLEAUTO:RECORDCOUNT( 0 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => (b)TXBROWSE:SETADO( 4560 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => (b)TXBROWSE:TXBROWSE( 436 )
聽 聽Called from: 聽=> TXBROWSE:KEYCOUNT( 0 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:REFRESH( 1274 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:MOUSELEAVE( 3557 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 12605 )
聽 聽Called from: .\source\classes\WINDOW.PRG => _FWH( 3450 )
聽 聽Called from: 聽=> DIALOGBOXINDIRECT( 0 )
聽 聽Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 286 )
聽 聽Called from: .\source\function\ERRSYSW.PRG => ERRORDIALOG( 420 )
聽 聽Called from: .\source\function\ERRSYSW.PRG => (b)ERRORSYS( 23 )
聽 聽Called from: 聽=> TOLEAUTO:RECORDCOUNT( 0 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => ADOSKIP( 8422 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => (b)TXBROWSE:SETADO( 4560 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => (b)TXBROWSE:TXBROWSE( 442 )
聽 聽Called from: 聽=> TXBROWSE:SKIP( 0 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:PAINT( 1516 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:DISPLAY( 1368 )
聽 聽Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1699 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 12607 )
聽 聽Called from: .\source\classes\WINDOW.PRG => _FWH( 3450 )
聽 聽Called from: 聽=> DIALOGBOXINDIRECT( 0 )
聽 聽Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 286 )
聽 聽Called from: .\source\function\ERRSYSW.PRG => ERRORDIALOG( 420 )
聽 聽Called from: .\source\function\ERRSYSW.PRG => (b)ERRORSYS( 23 )
聽 聽Called from: C:\Cartera\Prg\r32_rin4.prg => (b)VHIJA( 468 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTCELL( 10376 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTDATA( 10283 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:DRAWLINE( 1852 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:LBUTTONDOWN( 3406 )
聽 聽Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1720 )
聽 聽Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 12607 )
聽 聽Called from: .\source\classes\WINDOW.PRG => _FWH( 3450 )
聽 聽Called from: 聽=> WINRUN( 0 )
聽 聽Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 1152 )
聽 聽Called from: C:\Cartera\Prg\r32_menu.prg => MAIN( 227 )
Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM
Re: error + mdi + xbrowse
Posted: Sat May 23, 2015 04:07 PM

Hola,
proba de incluir #include "ado.ch"
es como que no encuentra la funcion reccount()
Salu2, Ariel.

Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: error + mdi + xbrowse
Posted: Sat May 23, 2015 06:46 PM
Buenas tardes....

Les comento que detecte que el error sale cuando maximizo la ventana y la cierro... o cuando la ventana esta maximizada y cierro la aplicaci贸n... sin cerrar primero la ventana mdi.

Como Cierro las ventanas mdi... antes de cerrar la aplicaci贸n?

Debo hacer algo antes de cerrar mi aplicaci贸n?

Saludos

Code (fw): Select all Collapse
Application
===========
   Path and name: C:\Cartera\Cartera.Exe (32 bits)
   Size: 1,576,448 bytes
   Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20140725)
   FiveWin  Version: FWHX 15.01
   Windows version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 12 secs 
   Error occurred at: 05/23/15, 13:50:47
   Error description: Error ADODB.RecordSet/6  DISP_E_UNKNOWNNAME: CLOSE
   Args:

Stack Calls
===========
   Called from:  => TOLEAUTO:CLOSE( 0 )
   Called from: C:\Cartera\Prg\r32_rin4.prg => (b)VHIJA( 520 )
   Called from: .\source\classes\MDICHILD.PRG => TMDICHILD:END( 276 )
   Called from: .\source\classes\MDICLIEN.PRG => TMDICLIENT:LCLOSEALL( 204 )
   Called from: .\source\classes\MDIFRAME.PRG => TMDIFRAME:END( 270 )
   Called from: C:\Cartera\Prg\r32_menu.prg => (b)MAIN( 198 )
   Called from: .\source\classes\TRBTN.PRG => TRBTN:CLICK( 715 )
   Called from: .\source\classes\TRBTN.PRG => TRBTN:LBUTTONUP( 924 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1723 )
   Called from: .\source\classes\TRBTN.PRG => TRBTN:HANDLEEVENT( 1597 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3450 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 1152 )
   Called from: C:\Cartera\Prg\r32_menu.prg => MAIN( 227 )
Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: error + mdi + xbrowse
Posted: Sat May 23, 2015 10:42 PM

Leandro, yo uso ventanas MDI y no necesitas cerrar las ventanas hijas para salir de la aplicaci贸n. Para cerrar todas las ventanas hijas "oWndMain : CloseAll()".

Saludos

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: error + mdi + xbrowse
Posted: Sun May 24, 2015 07:46 AM

Leandro,

Prueba a cambiar:

Private oRsCte

por static oRsCte

Como la ventana mdichild no detiene la ejecuci贸n de la aplicaci贸n, esa funci贸n contin煤a y al salir entiendo
que destruye el valor de la variable private

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: error + mdi + xbrowse
Posted: Sun May 24, 2015 02:08 PM
Buenos dias a todos....

Antonio, ya lo habia intentado de esa manera pero no me funciono.

Lo solucione cerrando las ventanas hijas antes de cerrar la aplicaci贸n.

Code (fw): Select all Collapse
 聽 聽 @ 15, 10 ADD BUTTON oBtn1 GROUP oGr5 BITMAP "#8013" ;
聽 聽 聽 聽 聽 聽SIZE 54,52 PROMPT "Salir" action( oWnd:closeall(),oWnd:End())


El error sale debido a que creo la conexi贸n con la base de datos al inicio de la aplicaci贸n y la cierro al momento de finalizar la ventana principal.


Horacio muchas gracias.
Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: error + mdi + xbrowse
Posted: Sun May 24, 2015 02:44 PM
Buenos d铆as que pena seguir molestando...

Lo que pasa es que cuando tengo abiertas varias ventanas hijas, y cierro una de ellas me esta arrojando el siguiente error.

Code (fw): Select all Collapse
Application
===========
   Path and name: C:\Cartera\Cartera.Exe (32 bits)
   Size: 1,580,032 bytes
   Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20140725)
   FiveWin  Version: FWHX 15.01
   Windows version: 6.2, Build 9200

   Time from start: 0 hours 0 mins 14 secs
   Error occurred at: 24/05/2015, 09:38:59
   Error description: Error ADODB.RecordSet/6  DISP_E_UNKNOWNNAME: RECORDCOUNT
   Args:


Me di cuenta es que por que en el valid de la ventana cierro lo recorset de la siguiente manera:
Code (fw): Select all Collapse
   ACTIVATE WINDOW oWHiCt  MAXIMIZED ON RESIZE( oExpBCtra:AdjLeft(), oSplitV:AdjClient(), oSplitV:AdjRight() ) VALID(oRsDocfac:close(),oBtn16:enable(),.t. )


Solo con quitarlo dejaron d salir lo errores al finalizar la ventana hija.

Las preguntas son? Esos recorset quedan en memoria? Fw se encarga de ellos y los cierra autom谩ticamente? o al finalizar la aplicaci贸n se cierran? o en donde los puedo cerrar para q no me arroje el error?

Saludos
Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: error + mdi + xbrowse
Posted: Sun May 24, 2015 10:16 PM

Leandro,

Prueba asi:

ACTIVATE WINDOW oWHiCt MAXIMIZED ON RESIZE( oExpBCtra:AdjLeft(), oSplitV:AdjClient(), oSplitV:AdjRight() ) ;
VALID( oBrw:End(), oRsDocfac:close(),oBtn16:enable(),.t. )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: error + mdi + xbrowse
Posted: Sun May 24, 2015 11:47 PM
When using MDI ChildWindow, closing data, release of fonts/resources, etc should be done in oWndChild:bPostEnd, but NOT in VALID clause or after activate command

Please replace
Code (fw): Select all Collapse
   oWChild:oClient := oBrw


    ACTIVATE WINDOW oWChild MAXIMIZED VALID(oRsCte:close(),.t. )
    SysRefresh()
    RELEASE FONT oFontCli


with this code
Code (fw): Select all Collapse
    oWChild:oClient := oBrw
    oWChild:bPostEnd := { || oRsCte:Close(), oFontCli:End() }

    ACTIVATE WINDOW oWChild MAXIMIZED
Regards



G. N. Rao.

Hyderabad, India
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: error + mdi + xbrowse
Posted: Wed May 27, 2015 04:23 PM

Ok voy a hacer las pruebas

Luego comento los resultados.

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: error + mdi + xbrowse
Posted: Tue Jun 16, 2015 06:16 PM

Mr Rao.

Muchas Gracias.... Era la solucion. :D

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]

Continue the discussion