xBrowse duplica el renglon al editar

xBrowse duplica el renglon al editar

Postby devtuxtla » Tue Oct 20, 2015 8:57 am

Hola FiveWinners

Cuando estoy editando en xBrowse una columna tipo combobox, me duplica el renglon y la edicion se realiza en el siguiente renglon duplicado, ya verifique la información y el registro en la tabla no esta duplicado.
utilizo la version FW 14.09

Gracias por su ayuda

Este es el codigo que utilizo

Code: Select all  Expand view

REDEFINE XBROWSE oBrw ID 2001  OF oDlg LINES  ALIAS Alias()  //;
ADD COLUMN  TO oBrw DATA  N02_DIA_ASISTENCIA((cNAlias)->EM_FECHA) ;
HEADER "Día de " + CRLF + "Asistencia" ;
SIZE 80

ADD COLUMN  TO oBrw DATA  (cNAlias)->EM_FECHA ;
HEADER "FECHA " + CRLF + "Asistencia" ;
SIZE 80

ADD COLUMN  TO oBrw DATA  (cNAlias)->NA_HORA01 ;
HEADER "Hora de " + CRLF + "Entrada" ;
SIZE 60

ADD COLUMN  TO oBrw DATA  (cNAlias)->NA_HORA02 ;
HEADER "Hora de " + CRLF + "Salida" ;
SIZE 60
   
ADD COLUMN  TO oBrw DATA  (cNAlias)->NA_HORA03 ;
HEADER "Hora de " + CRLF + "Entrada" ;
SIZE 60

ADD COLUMN  TO oBrw DATA  (cNAlias)->NA_HORA04 ;
HEADER "Hora de " + CRLF + "Salida" ;
SIZE 60

ADD COLUMN  TO oBrw DATA  (cNAlias)->NA_HORAST ;
HEADER "Horas " + CRLF + "Trabajadas" ;
SIZE 60

ADD COLUMN oCCHK TO oBrw DATA (cNAlias)->NA_ASISTE  ;
TITLE "Asistio" COLOR ncolor5, nColor4  ;
ALIGN LEFT  ;
SIZE 80

ADD COLUMN oCALIF TO oBrw DATA (cNAlias)->EM_CALIFIC ;
HEADER "Asistencia" ; //+ CRLF + "Calificada" ;
SIZE 200

ADD COLUMN oActual TO oBrw DATA  (cNAlias)->NA_TIPMOV ;
HEADER "SeCalificó" ;
SIZE 120          

ADD COLUMN oComb TO oBrw DATA  (cNAlias)->NA_TIPMOV ;
HEADER "Movimiento" ;
SIZE 120 EDITABLE   ;
WHEN N20_CAMBIAR_MOVTO(cNAlias, @aMOVTOS, @oBrw)  

 
WITH OBJECT oBrw:Movimiento
      :nEditType        := EDIT_LISTBOX
      // :aEditListTxt    := ArrTranspose( aMOVTOS ) [ 1 ]
      :aEditListBound  := ArrTranspose( aMOVTOS ) [ 1 ]
      :aEditListTxt := aMOVTOS
END

ADD COLUMN oPERMI TO oBrw DATA (cNAlias)->NA_TPERMIS ;
HEADER "Tipo Permiso" ;
SIZE 200

oComb:bOnPostEdit := {|o, v, n| iif( n != VK_ESCAPE, ( NW_REPLACE("NA_TIPMOV", v, .F., cNAlias ), N20_CAMBIAR_DIA(@cNAlias, @oBrw, oDlg), oBrw:REFRESH()  ), ) }

oBrw:bClrStd        = { || { If( (oBrw:cAlias)->NA_TIPMOV="Retardo:", RGB( 255,255,200 ), CLR_BLACK), RGB( 232, 255, 232 ) } }
oBrw:Asistencia:bClrStd = { || { If( AT("Retardo:",(oBrw:cAlias)->EM_CALIFIC)>0, CLR_HRED, CLR_BLACK), RGB( 232, 255, 232 ) } }

oBrw:bClrSel = { || { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_WHITE ), RGB( 0x33, 0x66, 0xCC ) } }

 


y esta es la imangen

Image
Visite Chiapas, el paraiso de México.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: xBrowse duplica el renglon al editar

Postby Antonio Linares » Tue Oct 20, 2015 1:54 pm

Puedes probar este ejemplo con tu versión de FWH y comprobar si se produce el error ?

Aqui funciona bien con FWH 15.09

Code: Select all  Expand view
#INCLUDE "FiveWin.ch"
#INCLUDE "XBrowse.ch"

function Main()

   local oWnd, aLin := {}, i, oBrw, oBtn

   for i := 1 TO 6
      AAdd( aLin, { i, "Description " + Str( i ), Replicate( Chr( 64 + i ), 2 ) } )
   next

   SetGetColorFocus()
   DEFINE WINDOW oWnd

   @ 10,10 XBROWSE oBrw OF oWnd ;
      AUTOCOLS ;
      HEADERS 'Cod', 'Description', 'Cd' ;
      ARRAY aLin ;
      CELL LINES

   WITH OBJECT oBrw
      // pajama colors code
      // KeyNo() can be used for Arrays, RDD, ADO and all datasources
      :bClrStd    := { || If( oBrw:KeyNo() % 2 == 0, ;
                         { CLR_BLACK, RGB( 224, 236, 255 ) }, ;
                         { CLR_BLACK, RGB( 189, 211, 253 ) } ) }
      :bPopUp     := { || PopMenu( oBrw ) }
   END

   WITH OBJECT oBrw:Cod
      :nEditType     := EDIT_GET
      :bEditValid    := { | oGet, oCol | Valida( oGet, oCol ) }
   END

   oBrw:Description:nEditType := EDIT_GET

   WITH OBJECT oBrw:Cd
      :nEditType        := EDIT_LISTBOX
      :aEditListBound   := ;
      :aEditListTxt     := { "AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH" }
   END

   // Note: bOnPostEdit codeblocks are automatically constructed by SetArray() method

   oBrw:CreateFromCode()
   oWnd:oClient   := oBrw

   ACTIVATE WINDOW oWnd

RETURN NIL

STATIC FUNCTION Valida( oGet, oCol )

   local nVal := 0

   if oGet:Value() > 6
      MsgAlert( "Must be lower than 7" )
      if MsgGet( "New value", "Enter number between 1 and 6", @nVal )
         if nVal > 0 .and. nVal < 7
            oGet:VarPut( nVal )
            oCol:PostEdit()
            return .T.
          endif
      endif
      return .F.
    endif

return .T.

function PopMenu( oBrw )

   local oMenu

   MENU oMenu POPUP 2007
      MENUITEM "Add" ACTION ( AAdd( oBrw:aArrayData, ;
         { Len( oBrw:aArrayData ) + 1 , "New item    " + Str( Len( oBrw:aArrayData ) + 1 ), ;
         Replicate( Chr( 64  + Len( oBrw:aArrayData ) + 1 ), 2 ) } ), oBrw:Refresh() )
      MENUITEM "Delete" ACTION ( ADel( oBrw:aArrayData, oBrw:nArrayAt ), ASize( oBrw:aArrayData, Len( oBrw:aArrayData ) - 1 ), oBrw:Refresh() )
      MENUITEM "Select 3rd Row" ACTION ( oBrw:GoTop(), oBrw:nArrayAt := 3, oBrw:nRowSel := 3, oBrw:Refresh() )
      MENUITEM "Delete All" ACTION ( ASize( oBrw:aArrayData, 0 ), oBrw:Refresh() )
      MENUITEM "Report" ACTION oBrw:Report()
      MENUITEM "Excel"  ACTION oBrw:ToExcel()
   ENDMENU

return oMenu

//------------------------------------------------------------------//

 
regards, saludos

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

Re: xBrowse duplica el renglon al editar

Postby devtuxtla » Tue Oct 20, 2015 6:06 pm

Hola Antonio.

Gracias por responder.

Ya hice la prueba con el codigo, y no, no lo duplica.

Te comento que que estoy utilizando tablas con indices CDX.

Alguna idea adicional ?

Saludos
Visite Chiapas, el paraiso de México.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: xBrowse duplica el renglon al editar

Postby Antonio Linares » Tue Oct 20, 2015 7:34 pm

Puedes construir FWH\samples\FiveDBU.prg y ver si tambien falla ? gracias
regards, saludos

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

Re: xBrowse duplica el renglon al editar (RESUELTO)

Postby devtuxtla » Wed Oct 21, 2015 8:47 pm

Hola Antonio.

Muchas gracias por la sugerencia.

El problema radicaba en el indice compuesto, al corregir el error de crear un indice donde se combina una dato numerico mas una fecha en formato DTOC, ocurre el error.
Cambie el indice a la composicion de dato numerico mas fecha en formato DTOS y todo bien.

Saludos
Visite Chiapas, el paraiso de México.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: xBrowse duplica el renglon al editar

Postby Antonio Linares » Wed Oct 21, 2015 8:48 pm

muy bien! :-)
regards, saludos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 49 guests