Page 1 of 1

Cerrar Tablas en una Window

Posted: Sat Sep 29, 2007 4:29 pm
by wilsongamboa
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

Posted: Sat Sep 29, 2007 5:03 pm
by Armando
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.)

Posted: Sat Sep 29, 2007 5:11 pm
by Antonio Linares
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 = ""

Posted: Sat Sep 29, 2007 5:16 pm
by wilsongamboa
Armando y Antonio, gracias , lo prueba y les aviso
saludos

Posted: Sat Sep 29, 2007 11:50 pm
by wilsongamboa
gracias Antonio, funciono perfecto, y con la idea de Armando, si a alguien le sirve, lo hice asi

Code: Select all


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]