Cerrar Tablas en una Window

Post Reply
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Cerrar Tablas en una Window

Post 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
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post 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.)
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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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 = ""
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Post by wilsongamboa »

Armando y Antonio, gracias , lo prueba y les aviso
saludos
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Post 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]
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Post Reply