xbrowse y detached variables

xbrowse y detached variables

Postby wilsongamboa » Thu Aug 18, 2022 9:20 pm

Buenas tardes
no me funciona este codigo
ya he probado muchas formas si alguien me da una mano muy agradecido

Code: Select all  Expand view  RUN
#include 'fivewin.ch'
#include 'xbrowse.ch'

function main()

    local aKeys   := {'pichincha','internacio'}
    local hBancos := { => }
    local hRow
    local aCols   := {}
    local oWnd
    local oBrw
    local i
    local oCol1
    local cDbf := '.\test1.dbf'
    local aDbf := { { 'codigo'     , 'C', 10, 0 } ,;
                    { 'pichincha'  , 'C', 15, 0 } ,;
                    { 'internacio' , 'C', 15, 0 } }

    hBancos ['pichincha']  = {}
    hRow = { 'numcuenta' => '1234567' }
    aadd( hBancos ['pichincha'], hRow )

    hBancos ['internacio']  = {}
    hRow = { 'numcuenta' => '890123' }
    aadd( hBancos ['internacio'], hRow )

    dbcreate( cDbf, aDbf )

    use ( cDbf ) new alias camello exclusive
    camello->( dbappend() )
    camello->codigo = '1'
    camello->( dbappend() )
    camello->codigo = '2'
    camello->( dbgotop() )


    DEFINE WINDOW oWnd

    @ 0,0 XBROWSE oBrw OF oWnd alias 'camello' fastedit

    oCol1             := oBrw:AddCol()
    oCol1:bEditValue  := { || ( oBrw:cAlias )->codigo }
    oCol1:cHeader     := "codigo"
    oCol1:cEditPicture:= "@!"
    oCol1:nEditType   := 0
    oCol1:nWidth      := 90
    aCols = {}
    for i = 1 to len( aKeys )
        aadd( aCols, oBrw:AddCol() )
        campotexto( oBrw, i+1, @aCols, i, hBancos, aKeys )
    next

    oBrw:CreateFromCode()


    ACTIVATE WINDOW oWnd





return nil


function campotexto( oBrw, i, aCols, n, hBancos, aKeys )

    local xValue
    local uRet
    local c
    local aRow
    local aEditListTxt
    local aEditListBound
    local j
    local hRow


    aRow                = hBancos[ aKeys[n] ]
    aEditListTxt        = {}
    aEditListBound      = {}
    for j = 1 to len( aRow )
        hRow = aRow[j]
        aadd( aEditListTxt  , hRow['numcuenta'] )
        aadd( aEditListBound, hRow['numcuenta'] )
    next

    c    = alltrim( lower( ( oBrw:cAlias )->( fieldname( i ) ) ) )

    do case
        case c $ 'pichincha'
            aCols[ n ]:bEditValue       := { || ( oBrw:cAlias )->pichincha }
            //xbrowser aCols[ n ]:bEditValue
        case c $ 'internacional'
            aCols[ n ]:bEditValue       := { || ( oBrw:cAlias )->internacio }
        case c $ 'produbanco'
            aCols[ n ]:bEditValue       := { || ( oBrw:cAlias )->produbanco }
        case c $ 'guayaquil'
            aCols[ n ]:bEditValue       := { || ( oBrw:cAlias )->guayaquil }
        case c $ 'bolivariano'
            aCols[ n ]:bEditValue       := { || ( oBrw:cAlias )->bolivarian }
        case c $ 'delazuay'
            aCols[ n ]:bEditValue       := { || ( oBrw:cAlias )->delazuay }
        case c $ 'machala'
            aCols[ n ]:bEditValue       := { || ( oBrw:cAlias )->machala }
    end

    aCols[ n ]:cHeader          := c
    aCols[ n ]:cEditPicture     := "@!"
    aCols[ n ]:nEditType        := EDIT_LISTBOX
    aCols[ n ]:nWidth           := 120
    aCols[ n ]:aEditListTxt     := aEditListTxt   //{'deposito','anticipo'}
    aCols[ n ]:aEditListBound   := aEditListBound //{'DP','AN'}

    do case
        case c $ 'pichincha'
            aCols[ n ]:bOnPostEdit      := { |o,v| ( oBrw:cAlias )->pichincha  := v }
        case c $ 'internacional'
            aCols[ n ]:bOnPostEdit      := { |o,v| ( oBrw:cAlias )->internacio := v }
        case c $ 'produbanco'
            aCols[ n ]:bOnPostEdit      := { |o,v| ( oBrw:cAlias )->produbanco := v }
        case c $ 'guayaquil'
            aCols[ n ]:bOnPostEdit      := { |o,v| ( oBrw:cAlias )->guayaquil  := v }
        case c $ 'bolivariano'
            aCols[ n ]:bOnPostEdit      := { |o,v| ( oBrw:cAlias )->bolivarian := v }
        case c $ 'delazuay'
            aCols[ n ]:bOnPostEdit      := { |o,v| ( oBrw:cAlias )->delazuay   := v }
        case c $ 'machala'
            aCols[ n ]:bOnPostEdit      := { |o,v| ( oBrw:cAlias )->machala    := v }
    end

return uRet
 

gracias por su tiempo
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 600
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: xbrowse y detached variables

Postby wilsongamboa » Fri Aug 19, 2022 2:52 am

otra version mas compacta pero igual no funciona
Code: Select all  Expand view  RUN
#include 'fivewin.ch'
#include 'xbrowse.ch'

function main()

    local aKeys   := {'pichincha','internacio'}
    local hBancos := { => }
    local hRow
    local aCols   := {}
    local oWnd
    local oBrw
    local i
    local oCol1
    local cDbf := '.\test1.dbf'
    local aDbf := { { 'codigo'     , 'C', 10, 0 } ,;
                    { 'pichincha'  , 'C', 15, 0 } ,;
                    { 'internacio' , 'C', 15, 0 } }

    hBancos ['pichincha']  = {}
    hRow = { 'numcuenta' => '1234567' }
    aadd( hBancos ['pichincha'], hRow )

    hBancos ['internacio']  = {}
    hRow = { 'numcuenta' => '890123' }
    aadd( hBancos ['internacio'], hRow )

    dbcreate( cDbf, aDbf )

    use ( cDbf ) new alias camello exclusive
    camello->( dbappend() )
    camello->codigo = '1'
    camello->( dbappend() )
    camello->codigo = '2'
    camello->( dbgotop() )


    DEFINE WINDOW oWnd

    @ 0,0 XBROWSE oBrw OF oWnd alias 'camello' fastedit

    oCol1             := oBrw:AddCol()
    oCol1:bEditValue  := { || ( oBrw:cAlias )->codigo }
    oCol1:cHeader     := "codigo"
    oCol1:cEditPicture:= "@!"
    oCol1:nEditType   := 0
    oCol1:nWidth      := 90
    aCols = {}
    for i = 1 to len( aKeys )
        aadd( aCols, oBrw:AddCol() )
        campotexto( oBrw, i+1, @aCols, i, hBancos, aKeys )
    next

    oBrw:CreateFromCode()


    ACTIVATE WINDOW oWnd





return nil


function campotexto( oBrw, i, aCols, n, hBancos, aKeys )

    local xValue
    local uRet
    local c
    local aRow
    local aEditListTxt
    local aEditListBound
    local j
    local hRow


    aRow                = hBancos[ aKeys[n] ]
    aEditListTxt        = {}
    aEditListBound      = {}
    for j = 1 to len( aRow )
        hRow = aRow[j]
        aadd( aEditListTxt  , hRow['numcuenta'] )
        aadd( aEditListBound, hRow['numcuenta'] )
    next

    c    = alltrim( lower( ( oBrw:cAlias )->( fieldname( i ) ) ) )

    aCols[ n ]:bEditValue       := { || ( oBrw:cAlias )->&( c ) }

    aCols[ n ]:cHeader          := c
    aCols[ n ]:cEditPicture     := "@!"
    aCols[ n ]:nEditType        := EDIT_LISTBOX
    aCols[ n ]:nWidth           := 120
    aCols[ n ]:aEditListTxt     := aEditListTxt   //{'deposito','anticipo'}
    aCols[ n ]:aEditListBound   := aEditListBound //{'DP','AN'}

    aCols[ n ]:bOnPostEdit      := { |o,v| ( oBrw:cAlias )->&( c )  := v }

 

return uRet
 
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 600
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: xbrowse y detached variables

Postby Antonio Linares » Fri Aug 19, 2022 9:13 pm

Estimado Wilson,

El EXE se construye bien y funciona sin dar errores. Que es lo que no funciona como debiera ?

gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: xbrowse y detached variables

Postby wilsongamboa » Fri Aug 19, 2022 10:46 pm

Antonio gracias por responder
Al escogen con el mouse el listbox este no muestra el valor escogido
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 600
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: xbrowse y detached variables

Postby Antonio Linares » Sat Aug 20, 2022 8:29 am

Estimado Wilson,

Se lo he comentado al Sr. Rao y va a revisar tu código. Aguarda un poco y lo tendrás :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: xbrowse y detached variables

Postby wilsongamboa » Sat Aug 20, 2022 12:23 pm

Gracias Master estare a la espera
saludos
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 600
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: xbrowse y detached variables

Postby Antonio Linares » Sun Aug 21, 2022 9:15 am

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: xbrowse y detached variables

Postby wilsongamboa » Sun Aug 21, 2022 7:07 pm

Antonio muchas gracias pero no resuelve el problema
he creado un mejor ejemplo donde SI funciona una columna definida sin detached locals pero sigue sin funcionar como columna calculada
Code: Select all  Expand view  RUN
#include 'fivewin.ch'
#include 'xbrowse.ch'

function main()

    local aKeys   := {'pichincha','internacio'}
    local hBancos := { => }
    local hRow
    local aCols   := {}
    local oWnd
    local oBrw
    local i
    local oCol1
    local oCol4
    local cDbf := '.\test1.dbf'
    local aDbf := { { 'codigo'     , 'C', 10, 0 } ,;
                    { 'pichincha'  , 'C', 15, 0 } ,;
                    { 'internacio' , 'C', 15, 0 } ,;
                    { 'tipo_docu1' , 'C', 02, 0 } }

    hBancos ['pichincha']  = {}
    hRow = { 'numcuenta' => '1234567' }
    aadd( hBancos ['pichincha'], hRow )

    hBancos ['internacio']  = {}
    hRow = { 'numcuenta' => '890123' }
    aadd( hBancos ['internacio'], hRow )

    dbcreate( cDbf, aDbf )

    use ( cDbf ) new alias camello exclusive
    camello->( dbappend() )
    camello->codigo = '1'
    camello->( dbappend() )
    camello->codigo = '2'
    camello->( dbgotop() )


    DEFINE WINDOW oWnd

    @ 0,0 XBROWSE oBrw OF oWnd alias 'camello' fastedit



    oCol1             := oBrw:AddCol()
    oCol1:bEditValue  := { || ( oBrw:cAlias )->codigo }
    oCol1:cHeader     := "codigo"
    oCol1:cEditPicture:= "@!"
    oCol1:nEditType   := 0
    oCol1:nWidth      := 90
    aCols = {}
    for i = 1 to len( aKeys )
        aadd( aCols, oBrw:AddCol() )
        campotexto( oBrw, i+1, @aCols, i, hBancos, aKeys )
    next

    oCol4                   := oBrw:AddCol()
    oCol4:bEditValue        := { || ( oBrw:cAlias )->tipo_docu1 }
    oCol4:cHeader           := "Tipo1"
    oCol4:cEditPicture      := "@!"
    oCol4:nEditType         := EDIT_LISTBOX
    oCol4:nWidth            := 80
    oCol4:aEditListTxt      := {'deposito','anticipo'}
    oCol4:aEditListBound    := {'DP','AN'}
    oCol4:bOnPostEdit       := { |o,v| ( oBrw:cAlias )->tipo_docu1 := v }


    //oBrw:nEditTypes    := EDIT_GET

    oBrw:CreateFromCode()


    ACTIVATE WINDOW oWnd





return nil


function campotexto( oBrw, i, aCols, n, hBancos, aKeys )

    local xValue
    local uRet
    local c
    local aRow
    local aEditListTxt
    local aEditListBound
    local j
    local hRow



    aRow                = hBancos[ aKeys[n] ]
    aEditListTxt        = {}
    aEditListBound      = {}
    for j = 1 to len( aRow )
        hRow = aRow[j]
        aadd( aEditListTxt  , { hRow['numcuenta'], hRow['numcuenta'] } )
        aadd( aEditListBound, { hRow['numcuenta'], hRow['numcuenta'] } )
    next

    c    = alltrim( lower( ( oBrw:cAlias )->( fieldname( i ) ) ) )

    aCols[ n ]:bEditValue       := { || ( oBrw:cAlias )->&( c ) }

    aCols[ n ]:cHeader          := c
    aCols[ n ]:cEditPicture     := "@!"
    aCols[ n ]:nEditType        := EDIT_LISTBOX
    aCols[ n ]:nWidth           := 120
    aCols[ n ]:aEditListTxt     := aEditListTxt

    //aCols[ n ]:bOnPostEdit      := { |o,v| ( oBrw:cAlias )->&( c )  := v }


return uRet

en el ejemplo la columna tipo_docu1 objeto oCol4 funciona perfecto pero las columas pichincha, internatio no lo hacen porque son resultado de calculos dentro de una funcion, en el proyecto donde pretendo usarlo son unas dos o mas columnas calculadas que deben regresar con sus respectivos listbox de seleccion por cada columna y esto solo es conocido en runtime con creacion de la base de datos no tengo problema pero si el tratamiento del browse

A lo mejor es la version de fw si alguien puebe probar con la ultima me avisan por favor para actualizar
gracias por tu tiempo
saludos
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 600
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 90 guests