Error al editar columna en xbrowse

Error al editar columna en xbrowse

Postby horacio » Tue Mar 01, 2016 2:51 pm

Colegas, cuando intento modificar el dato de la columna el programa se friza y no obtengo error, este es código

Code: Select all  Expand view

Case 3
    :aCols[ i ] : bStrData        := { || oQry2 : caracter }
    :aCols[ i ] : nDataStrAlign  := 2
    :aCols[ i ] : nEditType      := EDIT_LISTBOX
    :aCols[ i ] : aEditListTxt   := { "Titular", "Suplente", "Contratado", "Prov." }
    :aCols[ i ] : aEditListBound := { "T", "S", "C", "P" }
    :aCols[ i ] : bOnPostEdit    := { | o, x, n | If( n != VK_ESCAPE, UpdateCaracter( x ), ) }
    Exit
 


Y este es el código de la función UpdateCaracter

Code: Select all  Expand view

//----------------------------------------------------------------------------//
Function UpdateCaracter( x )

    Local cUpdate := 'update from legajo set caracter = ' + ClipValue2Sql( x )
   
    oVar : oServer : Execute( cUpdate )
    Return 0

 


Alguna idea ? Muchísimas gracias

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Error al editar columna en xbrowse

Postby cnavarro » Tue Mar 01, 2016 3:04 pm

Horacio, que version de Fwh utilizas?, Harbour o XHarbour?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Error al editar columna en xbrowse

Postby horacio » Tue Mar 01, 2016 3:10 pm

Gracias Cristobal por contestar, Mis herramientas son FWH 14.12, BCC 5.82 y Harbour 3.2.0dev (r1412151448)

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Error al editar columna en xbrowse

Postby cnavarro » Tue Mar 01, 2016 3:13 pm

Has comprobado si la instruccion se ejecuta correctamente ?

Code: Select all  Expand view


//----------------------------------------------------------------------------//
Function UpdateCaracter( x )

    Local cUpdate := 'update from legajo set caracter = ' + ClipValue2Sql( x )
    ?     ClipValue2Sql( x )
    oVar : oServer : Execute( cUpdate )
   ? 1
    Return 0


 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Error al editar columna en xbrowse

Postby horacio » Tue Mar 01, 2016 3:20 pm

Cristobal, la actualización la hace ( arreglé el código de la función ) y se friza al picar sobre la opción del combo.

Saludos
Last edited by horacio on Tue Mar 01, 2016 3:21 pm, edited 1 time in total.
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Error al editar columna en xbrowse

Postby cnavarro » Tue Mar 01, 2016 3:21 pm

O sea, ejecuta la funcion y no vuelve al browse?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Error al editar columna en xbrowse

Postby horacio » Tue Mar 01, 2016 3:22 pm

Exacto, no vuelve al browse, se friza antes

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Error al editar columna en xbrowse

Postby horacio » Tue Mar 01, 2016 3:27 pm

También he notado que si oprimo la tecla ESC. la primera vez cierra el combo pero si lo vuelvo a abrir ya no vuelve a cerrarlo oprimiendo ESC.

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Error al editar columna en xbrowse

Postby horacio » Tue Mar 01, 2016 4:14 pm

Estuve mirando en samples el programa testxbrw.prg y la edición de celdas funciona perfectamente con arrays. Yo estoy utilizando Mysql con TDolphin. Alguien que utilice esta librería y haya implementado la edición de datos con xbrowse me puede contar su experiencia. Muchísimas gracias.

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Error al editar columna en xbrowse

Postby joseluisysturiz » Tue Mar 01, 2016 4:32 pm

horacio wrote:Estuve mirando en samples el programa testxbrw.prg y la edición de celdas funciona perfectamente con arrays. Yo estoy utilizando Mysql con TDolphin. Alguien que utilice esta librería y haya implementado la edición de datos con xbrowse me puede contar su experiencia. Muchísimas gracias.

Saludos

Horacio, si no me equivoco no importa si usas TDolphin ya que si haces edicion de celdas en un xBrowse lo haces es a un array, si pones algo de codigo creo sera mas facil entender tu problema y ayudarte en alguna solucion, gracias, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Error al editar columna en xbrowse

Postby horacio » Tue Mar 01, 2016 4:37 pm

Gracias José Luis, aquí posteo el código

Code: Select all  Expand view

#include 'fivewin.ch'
Static oBrw2
Static oQry2

//----------------------------------------------------------------------------//
Function TablaLegajos( nCodigo, cCliente )

    Local i
    Local oFont1   
    Local oFont2   
    Local oFont3   
    Memvar oVar
   

    nCodigo  := oVar : oQry : id_empleado
    cCliente := oVar : oQry : nombre
    oQry2 := oVar : oServer : Query( 'select a.id_legajo, b.descrip as sub_emp, a.caracter, concat( cast( a.anti_anios as char ), "/", cast( anti_meses as char ) ) as antiguedad, ' +;
                                     'a.cargo, a.estado, a.horas, a.dp, a.dod, a.motivo, a.f_lic, a.f_f_lic, a.goce_sueldo, a.alta, a.suplea, a.desde, a.hasta ' +;
                                                'from legajo a, sub_emp b where id_empleado = ' + Alltrim( Str( nCodigo ) ) +;
                                                ' and a.id_empresa1 = b.empresa1 and b.empresa = ' + Alltrim( Str( oVar : nEmpresa ) ) )
   
    Define Font oFont1 Name "Segoe UI Light" Size 0, -12 Bold
    Define Font oFont2 Name "Segoe UI Light" Size 0, -12
    Define Font oFont3 Name "Segoe UI"       Size 0, -16  

    Define Window oVar : oWndChild2 MDICHILD Of oVar : oWndmain From -10, -10 To -100, -100 Pixel NoSysMenu NoCaption Title 'legajo/s de: ' + Alltrim( cCliente )//Color 0, CLR_BLACK
   
        @ 100, 20 xBrowse oBrw2 DataSource oQry2 Columns 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 Size 1300, 400 Pixel Of oVar : oWndChild2 NoBorder
        With Object oBrw2
            For i := 1 To Len( :aCols )
                Switch i
                    Case 1
                        :aCols[ i ] : nWidth        := 60
                        :aCols[ i ] : cHeader       := 'Nº LEG.'
                        :aCols[ i ] : bStrData       := { || StrZero( oQry2 : id_legajo, 6 ) }
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 2
                        :aCols[ i ] : nWidth  := 260
                        :aCols[ i ] : cHeader := 'SECCIÓN'
                        :aCols[ i ] : nGrpHeight := 2
                        Exit
                    Case 3
                        :aCols[ i ] : bStrData        := { || oQry2 : caracter }
                        :aCols[ i ] : nDataStrAlign  := 2
                        :aCols[ i ] : nEditType      := EDIT_GET
                        :aCols[ i ] : bEditValue     := { || Padr( oQry2 : caracter, 1, ' ' ) }
                        //:aCols[ i ] : aEditListTxt   := { "Titular", "Suplente", "Contratado", "Prov." }
                        //:aCols[ i ] : aEditListBound := { "T", "S", "C", "P" }
                        :aCols[ i ] : bOnPostEdit    := { | o, x, n | UpdateCaracter( x ) }
                        :aCols[ i ] : cEditPicture   := '@!'
                        Exit
                    Case 4
                        :aCols[ i ] : nWidth  := 60
                        :aCols[ i ] : cHeader := 'ANTIG.'
                        Exit
                    Case 7
                        :aCols[ i ] : nWidth  := 50
                        Exit
                    Case 8
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'DESCUENTO' + CRLF + 'PRESENTISMO'
                        :aCols[ i ] : bStrData     := { || If( oQry2 : dp, 'SI', 'NO' ) }
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 9
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'DESC. OBLIG.' + CRLF + 'DÍAS'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 10
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'ARTICULO DE' + CRLF + 'LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 11
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'FECHA INICIO' + CRLF + 'DE LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 12
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'FECHA FIN' + CRLF + 'DE LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 13
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'CON O SIN ' + CRLF + 'GOCE SUELDO'
                        :aCols[ i ] : bStrData     := { || If( Valtype( oQry2 : f_lic ) == 'D' .and. !Empty( oQry2 : f_lic ) , If( oQry2 : goce_sueldo, 'CON', 'SIN'), '' ) }
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 14
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'F. DE INGRESO'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 15
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'REEMPLAZA A'
                        //:aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 16
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'F. INICIO DE' + CRLF + 'LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 17
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'F. FIN DE' + CRLF + 'LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                EndSwitch        
                :aCols[ i ] : cHeader := Upper( :aCols[ i ] : cHeader )
                :aCols[ i ] : oHeaderFont   := oFont1
                :aCols[ i ] : oDataFont     := oFont2
                :aCols[ i ] : nHeadStrAlign := 0
            Next
            :bClrHeader         := { || { 0, CLR_WHITE  } }
            :nRowHeight       := 28
            :nHeaderHeight    := 40
            :nColDividerStyle := 1
            :nRowDividerStyle := 5
            :nColAdvance      := 50
            :nColorPen        := nRgb( 225, 225, 225 )
            :nMarqueeStyle    := 3
            :nFreeze          := 2
            :nRecSelColor     := CLR_WHITE
            :bClrSelFocus     := { || { CLR_WHITE, RGB( 43, 87, 154 ) } }
            :nHeaderLines     := 2
            :lVScroll         := .f.
            :lFlatStyle       := .t.
            :l2007            := .f.
            :lKinetic         := .f.
            :lAllowRowSizing  := .f.
            :lExcelCellWise   := .t.
            :lFreezeLikeExcel := .t.
            :lFastEdit        := .t.
            :lColDividerComplete := .t.
            :bKeyDown         := { | nKey | KeyLegajos( nKey ) }  
        :SetGroupHeader( 'DATOS', 3, 14, oFont1 )
        :SetGroupHeader( 'SOLO PARA SUPLENTES', 15, 17, oFont1 )
            :CreateFromCode()
        End
        oVar : oWndChild2 : SetControl( oBrw2 )
   
    Activate Window oVar : oWndChild2 Maximized Valid ( oFont1 : End(), oFont2 : End(), oFont3 : End(), .t. )
    Return 0
   
//----------------------------------------------------------------------------//
Function UpdateCaracter( x )

    Local cUpdate := 'update legajo set caracter = ' + ClipValue2Sql( x ) + ' where id_legajo = ' + Alltrim( Str( oQry2 : id_legajo ) )
   
    ? 'update legajo set caracter = ' + ClipValue2Sql( x ) + ' where id_legajo = ' + Alltrim( Str( oQry2 : id_legajo ) )
    Memvar -> oVar : oServer : Execute( cUpdate )
    oQry2 : Refresh()
    oBrw2 : Refresh()
    Return 0

//----------------------------------------------------------------------------//
Function KeyLegajos( nKey )

    Memvar oVar
   
    Switch nKey
        Case VK_F7
            oVar : nOpcion := 1
            ElijeOpcion()
            Exit
    EndSwitch
    Return 0   
 


Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Error al editar columna en xbrowse

Postby joseluisysturiz » Tue Mar 01, 2016 7:15 pm

horacio wrote:Gracias José Luis, aquí posteo el código

Code: Select all  Expand view

#include 'fivewin.ch'
Static oBrw2
Static oQry2

//----------------------------------------------------------------------------//
Function TablaLegajos( nCodigo, cCliente )

    Local i
    Local oFont1   
    Local oFont2   
    Local oFont3   
    Memvar oVar
   

    nCodigo  := oVar : oQry : id_empleado
    cCliente := oVar : oQry : nombre
    oQry2 := oVar : oServer : Query( 'select a.id_legajo, b.descrip as sub_emp, a.caracter, concat( cast( a.anti_anios as char ), "/", cast( anti_meses as char ) ) as antiguedad, ' +;
                                     'a.cargo, a.estado, a.horas, a.dp, a.dod, a.motivo, a.f_lic, a.f_f_lic, a.goce_sueldo, a.alta, a.suplea, a.desde, a.hasta ' +;
                                                'from legajo a, sub_emp b where id_empleado = ' + Alltrim( Str( nCodigo ) ) +;
                                                ' and a.id_empresa1 = b.empresa1 and b.empresa = ' + Alltrim( Str( oVar : nEmpresa ) ) )
   
    Define Font oFont1 Name "Segoe UI Light" Size 0, -12 Bold
    Define Font oFont2 Name "Segoe UI Light" Size 0, -12
    Define Font oFont3 Name "Segoe UI"       Size 0, -16  

    Define Window oVar : oWndChild2 MDICHILD Of oVar : oWndmain From -10, -10 To -100, -100 Pixel NoSysMenu NoCaption Title 'legajo/s de: ' + Alltrim( cCliente )//Color 0, CLR_BLACK
   
        @ 100, 20 xBrowse oBrw2 DataSource oQry2 Columns 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 Size 1300, 400 Pixel Of oVar : oWndChild2 NoBorder
        With Object oBrw2
            For i := 1 To Len( :aCols )
                Switch i
                    Case 1
                        :aCols[ i ] : nWidth        := 60
                        :aCols[ i ] : cHeader       := 'Nº LEG.'
                        :aCols[ i ] : bStrData       := { || StrZero( oQry2 : id_legajo, 6 ) }
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 2
                        :aCols[ i ] : nWidth  := 260
                        :aCols[ i ] : cHeader := 'SECCIÓN'
                        :aCols[ i ] : nGrpHeight := 2
                        Exit
                    Case 3
                        :aCols[ i ] : bStrData        := { || oQry2 : caracter }
                        :aCols[ i ] : nDataStrAlign  := 2
                        :aCols[ i ] : nEditType      := EDIT_GET
                        :aCols[ i ] : bEditValue     := { || Padr( oQry2 : caracter, 1, ' ' ) }
                        //:aCols[ i ] : aEditListTxt   := { "Titular", "Suplente", "Contratado", "Prov." }
                        //:aCols[ i ] : aEditListBound := { "T", "S", "C", "P" }
                        :aCols[ i ] : bOnPostEdit    := { | o, x, n | UpdateCaracter( x ) }
                        :aCols[ i ] : cEditPicture   := '@!'
                        Exit
                    Case 4
                        :aCols[ i ] : nWidth  := 60
                        :aCols[ i ] : cHeader := 'ANTIG.'
                        Exit
                    Case 7
                        :aCols[ i ] : nWidth  := 50
                        Exit
                    Case 8
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'DESCUENTO' + CRLF + 'PRESENTISMO'
                        :aCols[ i ] : bStrData     := { || If( oQry2 : dp, 'SI', 'NO' ) }
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 9
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'DESC. OBLIG.' + CRLF + 'DÍAS'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 10
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'ARTICULO DE' + CRLF + 'LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 11
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'FECHA INICIO' + CRLF + 'DE LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 12
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'FECHA FIN' + CRLF + 'DE LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 13
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'CON O SIN ' + CRLF + 'GOCE SUELDO'
                        :aCols[ i ] : bStrData     := { || If( Valtype( oQry2 : f_lic ) == 'D' .and. !Empty( oQry2 : f_lic ) , If( oQry2 : goce_sueldo, 'CON', 'SIN'), '' ) }
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 14
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'F. DE INGRESO'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 15
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'REEMPLAZA A'
                        //:aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 16
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'F. INICIO DE' + CRLF + 'LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 17
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'F. FIN DE' + CRLF + 'LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                EndSwitch        
                :aCols[ i ] : cHeader := Upper( :aCols[ i ] : cHeader )
                :aCols[ i ] : oHeaderFont   := oFont1
                :aCols[ i ] : oDataFont     := oFont2
                :aCols[ i ] : nHeadStrAlign := 0
            Next
            :bClrHeader         := { || { 0, CLR_WHITE  } }
            :nRowHeight       := 28
            :nHeaderHeight    := 40
            :nColDividerStyle := 1
            :nRowDividerStyle := 5
            :nColAdvance      := 50
            :nColorPen        := nRgb( 225, 225, 225 )
            :nMarqueeStyle    := 3
            :nFreeze          := 2
            :nRecSelColor     := CLR_WHITE
            :bClrSelFocus     := { || { CLR_WHITE, RGB( 43, 87, 154 ) } }
            :nHeaderLines     := 2
            :lVScroll         := .f.
            :lFlatStyle       := .t.
            :l2007            := .f.
            :lKinetic         := .f.
            :lAllowRowSizing  := .f.
            :lExcelCellWise   := .t.
            :lFreezeLikeExcel := .t.
            :lFastEdit        := .t.
            :lColDividerComplete := .t.
            :bKeyDown         := { | nKey | KeyLegajos( nKey ) }  
        :SetGroupHeader( 'DATOS', 3, 14, oFont1 )
        :SetGroupHeader( 'SOLO PARA SUPLENTES', 15, 17, oFont1 )
            :CreateFromCode()
        End
        oVar : oWndChild2 : SetControl( oBrw2 )
   
    Activate Window oVar : oWndChild2 Maximized Valid ( oFont1 : End(), oFont2 : End(), oFont3 : End(), .t. )
    Return 0
   
//----------------------------------------------------------------------------//
Function UpdateCaracter( x )

    Local cUpdate := 'update legajo set caracter = ' + ClipValue2Sql( x ) + ' where id_legajo = ' + Alltrim( Str( oQry2 : id_legajo ) )
   
    ? 'update legajo set caracter = ' + ClipValue2Sql( x ) + ' where id_legajo = ' + Alltrim( Str( oQry2 : id_legajo ) )
    Memvar -> oVar : oServer : Execute( cUpdate )
    oQry2 : Refresh()
    oBrw2 : Refresh()
    Return 0

//----------------------------------------------------------------------------//
Function KeyLegajos( nKey )

    Memvar oVar
   
    Switch nKey
        Case VK_F7
            oVar : nOpcion := 1
            ElijeOpcion()
            Exit
    EndSwitch
    Return 0   
 


Saludos


Horacio, lo unico que he visto es que tratas de hacer una edicion de celdas sobre una Consulta(query), a menos que lo hayan cambiado, hasta donde se no se puede hacer edicion en un query dentro de un xbrowse, revisa que valor te esta entregando "x" en la funcion UpdateCaracter( x ) y lo que no entiendo es porque haces esto...

? 'update legajo set caracter = ' + ClipValue2Sql( x ) + ' where id_legajo = ' + Alltrim( Str( oQry2 : id_legajo ) )

cuando ya asignastes la linea a ejecutar a la variable

Local cUpdate := 'update legajo set caracter = ' + ClipValue2Sql( x ) + ' where id_legajo = ' + Alltrim( Str( oQry2 : id_legajo ) )

confirma si cuando llegas a la funcion UpdateCaracter() te trae un valor diferente al que ves en el xbrowse, hago lo que quieres pero o mostrando la data del query en el xbrowse y luego editando los datos en un Dlg o descargo la consulta en un array que llevo al xbrowse y alli si lo puedo editar en el mismo xbrowse, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 100 guests