FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cerrar Tablas en una Window
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Cerrar Tablas en una Window
Posted: Sat Sep 29, 2007 04:29 PM

buenoas dias compañeros, pues eso

tengo algo como esto

Use tabla1 new alias tabla1 shared

Use tabla2 new alias tabla2 shared

define window oWnd From ...
@ 000,255 LISTBOX oLbx FIELDS ... alias 'Tabla1'
@ 255,0 LISTBOX oLbx1 FIELDS ... alias 'Tabla2'

activate window oWnd Valid( If(Msgyesno('sales'), (CierraTablas(),.t.),.F.) )

function cierraTablas
select tabla1
dbclosearea()
select tabla2
dbclosearea()
Return Nil

pero me da error al salir de la ventana, la pregunta es en QUE EVENTO de la ventana debo cerrar las tablas ??

gracias x todo
saludos

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Cerrar Tablas en una Window
Posted: Sat Sep 29, 2007 05:03 PM

Wilson:

Yo lo haría así:

....
.....
ACTIVATE WINDOWS oWnd Valid((CierraTablas())

FUNCTION cierraTablas()
IF MsgYesNo(Seguro desea salir ?)
select tabla1
dbclosearea()
select tabla2
dbclosearea()
ELSE
RETURN(.F.)
ENDIF
Return(.T.)

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Cerrar Tablas en una Window
Posted: Sat Sep 29, 2007 05:11 PM

Wilson,

El problema es que se genera un último pintado y los browses ya no tienen acceso a los datos pues se han cerrado las DBFs.

La solución es asignar "" a cAlias antes de cerrar las DBFs:

oLbx1:cAlias = ""
oLbx2:cAlias = ""

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Cerrar Tablas en una Window
Posted: Sat Sep 29, 2007 05:16 PM

Armando y Antonio, gracias , lo prueba y les aviso
saludos

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Cerrar Tablas en una Window
Posted: Sat Sep 29, 2007 11:50 PM
gracias Antonio, funciono perfecto, y con la idea de Armando, si a alguien le sirve, lo hice asi


Activate Window oWnd Valir( CierraTablas( oWnd, aAlias  ) )


...


Function CierraTablas( oWnd, aAlias  ) 

    Local i := 0
    Local oCtrl
    Local lRet := .F.

    if MsgYesno( 'Sales' ) 

        lRet := .T.

        while ++i <= len( oWnd:aControls )
            oCtrl := oWnd:aControls[ i ]
            if oCtrl:ClassName() == 'TWBROWSE'
                oCtrl:cAlias := ''
            end
        end

        i:= 0

        while ++i <= len( aAlias )
            select ( aAlias[ i ] )
            dbclosearea()
        end

     end

Return lRet




gracias x todo saludos
[/code]
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com

Continue the discussion