Cerrar Tablas en una Window

Cerrar Tablas en una Window

Postby wilsongamboa » Sat Sep 29, 2007 4: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
User avatar
wilsongamboa
 
Posts: 599
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Postby Armando » Sat Sep 29, 2007 5: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
User avatar
Armando
 
Posts: 3235
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Antonio Linares » Sat Sep 29, 2007 5: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42151
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby wilsongamboa » Sat Sep 29, 2007 5:16 pm

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

Postby wilsongamboa » 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


Code: Select all  Expand view  RUN

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
User avatar
wilsongamboa
 
Posts: 599
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 48 guests