FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Edici贸n de una celda en xBrowse
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Edici贸n de una celda en xBrowse
Posted: Fri Jun 01, 2018 04:14 PM
Hola buenas tardes a todos, tengo un xBrowse que edito la columna 4 (Cantidad) y por defecto le asigno 1 y cando quiero modificar no me permite mas de un d铆gito
Les adjunto parte del codigo que utilizo, cualquier ayuda es de gran valor.
Code (fw): Select all Collapse
 聽 聽 聽 聽 聽 聽 聽 聽 oBrw := TXBrowse():New( oPanelCue )
聽 聽 聽 聽 聽 聽 聽 聽 聽*-----------------------------------------------
聽 聽 聽 聽 聽 聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[1]:cHeader 聽 聽 聽 := "Item"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[1]:nWidth 聽 聽 聽 聽:= 100
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[1]:cDataType 聽 聽 := "N"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[1]:nDataStrAlign := AL_CENTER
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[1]:oDataFont 聽 聽 := hFnt["BrwFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[1]:oHeaderFont 聽 := hFnt["CabFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[1]:nHeadStrAlign := 2
聽 聽 聽 聽 聽 聽 聽 聽 聽*-----------------------------------------------
聽 聽 聽 聽 聽 聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[2]:cHeader 聽 聽 聽 := "C贸digo"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[2]:nWidth 聽 聽 聽 聽:= 150
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[2]:cDataType 聽 聽 := "N"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[2]:nDataStrAlign := AL_CENTER
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[2]:oDataFont 聽 聽 := hFnt["BrwFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[2]:oHeaderFont 聽 := hFnt["CabFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[2]:nHeadStrAlign := 2
聽 聽 聽 聽 聽 聽 聽 聽 聽*-----------------------------------------------
聽 聽 聽 聽 聽 聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[3]:cHeader 聽 聽 聽 := "Producto"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[3]:nWidth 聽 聽 聽 聽:= 300
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[3]:cDataType 聽 聽 := "C"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[3]:nDataStrAlign := AL_LEFT
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[3]:oDataFont 聽 聽 := hFnt["BrwFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[3]:oHeaderFont 聽 := hFnt["CabFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[3]:nHeadStrAlign := 0 聽 聽 聽 聽 // 0=Izquierda 聽 1=Derecha 聽 2=Centrado
聽 聽 聽 聽 聽 聽 聽 聽 聽*-----------------------------------------------
聽 聽 聽 聽 聽 聽 聽 聽 聽oCol:=oBrw:AddCol()
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:cHeader 聽 聽 聽 := "Cantidad"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:nWidth 聽 聽 聽 聽:= 150
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:cDataType 聽 聽 := "N"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:cEditPicture 聽:= "@Z 9,999.999"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:nDataStrAlign := AL_RIGHT
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:oDataFont 聽 聽 := hFnt["BrwFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:oHeaderFont 聽 := hFnt["CabFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:nHeadStrAlign := 2 聽 聽 聽 聽 // 0=Izquierda 聽 1=Derecha 聽 2=Centrado
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:nEdittype 聽 聽 := EDIT_GET
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:bOnPostEdit 聽 := {|o,x,n|If(n=VK_RETURN,( oBrw:aArrayData[oBrw:nArrayAt,4]:=x,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 oBrw:aArrayData[oBrw:nArrayAt,7]:=x/oBrw:aArrayData[oBrw:nArrayAt,6] ),)}
聽 聽 聽 聽 聽 聽 聽 聽 聽*-----------------------------------------------
聽 聽 聽 聽 聽 聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[5]:cHeader 聽 聽 聽 := "Uni.de Med."
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[5]:nWidth 聽 聽 聽 聽:= 150
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[5]:cDataType 聽 聽 := "N"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[5]:nDataStrAlign := AL_LEFT
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[5]:oDataFont 聽 聽 := hFnt["BrwFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[5]:oHeaderFont 聽 := hFnt["CabFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[5]:nHeadStrAlign := 2
聽 聽 聽 聽 聽 聽 聽 聽 聽*-----------------------------------------------
聽 聽 聽 聽 聽 聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[6]:cHeader 聽 聽 聽 := "Kg Bolsa"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[6]:nWidth 聽 聽 聽 聽:= 150
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[6]:cDataType 聽 聽 := "N"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[6]:nDataStrAlign := AL_CENTER
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[6]:oDataFont 聽 聽 := hFnt["BrwFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[6]:oHeaderFont 聽 := hFnt["CabFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[6]:nHeadStrAlign := 2
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[6]:cEditPicture 聽:= "@Z 9,999.999"
聽 聽 聽 聽 聽 聽 聽 聽 聽*-----------------------------------------------
聽 聽 聽 聽 聽 聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[7]:cHeader 聽 聽 聽 := "Bolsas"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[7]:nWidth 聽 聽 聽 聽:= 150
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[7]:cDataType 聽 聽 := "N"
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[7]:nDataStrAlign := AL_CENTER
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[7]:oDataFont 聽 聽 := hFnt["BrwFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[7]:oHeaderFont 聽 := hFnt["CabFC"]
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[7]:nHeadStrAlign := 2
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[7]:cEditPicture 聽:= "@Z 9,999.99"
聽 聽 聽 聽 聽 聽 聽 聽 聽*-----------------------------------------------
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[1]:nHeaderType := 2 // Comienza el primer grupo
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[2]:nHeaderType := 1
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[3]:nHeaderType := 1
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[4]:nHeaderType := 1
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[5]:nHeaderType := 1
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[6]:nHeaderType := 1
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:aCols[7]:nHeaderType := 1

聽 聽 聽 聽 聽 聽 聽 聽 聽with object oBrw
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nHeaderLines 聽 聽 聽 聽:= 1 聽 聽 聽// n煤mero de l铆neas de la cabecera
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nHeaderHeight 聽 聽 聽 := 100 聽 聽// Altura cabeceras de columna
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nRowHeight 聽 聽 聽 聽 聽:= 50
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nHeader 聽 聽 聽 聽 聽 聽 := 1
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aHeaderTop 聽 聽 聽 聽 聽:= {"I T E M 聽 D E L 聽 C O M P R O B A N T E"}

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nMarqueeStyle 聽 聽 聽 := 3//MARQSTYLE_HIGHLROW // Estilo marquesina (fila seleccionada) 0 No 1 Marquesina punteada celular 2 Solid celular 3 Resalte la celda 4 fila resaltada y Levante tel茅fono 5
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nRowDividerStyle 聽 聽:= LINESTYLE_LIGHTGRAY
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nColDividerStyle 聽 聽:= LINESTYLE_LIGHTGRAY
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :bClrSel 聽 聽 聽 聽 聽 聽 := {||{nRGB(255,255,255),nRGB(000,128,255)}}// para barra de linea selecc cuando el control no tiene el foco

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :bClrHeader 聽 聽 聽 聽 聽:= {|| { nRGB(255,255,255), nRGB( 000, 000, 000 ), } }
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nStretchCol 聽 聽 聽 聽 := STRETCHCOL_WIDEST // ajusta la ultima columna al limite derecho del browse

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :l2007 聽 聽 聽 聽 聽 聽 聽 := (.F.)
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :lAllowColHiding 聽 聽 := .F. 聽 聽 聽 聽 聽 聽 // Anulo el menu contextual al hacer click sobre el Header del browse
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :lRecordSelector 聽 聽 := .F. 聽//poner o no, COL de la flechita de la izq
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :bClrStd 聽 聽 聽 聽 聽 聽 := { || { CLR_BLACK, If(oBrw:KeyNo % 2 == 0, RGB(193,221,255), RGB(221,245,255) ) } } // colores para lineas normales

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :lHScroll 聽 聽 聽 聽 聽 聽:= .F.
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :lVScroll 聽 聽 聽 聽 聽 聽:= .F.
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :lColDividerComplete := .T. //completa pintado hasta el footer cuando lineas no llenan todo el browse
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :lFastEdit 聽 聽 聽 聽 聽 := .T.

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :SetColor( CLR_BLACK, RGB(221,245,255) )

聽 聽 聽 聽 聽 聽 聽 聽 聽END WITH

聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:SetArray( aTblItem )
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:CreateFromCode()
聽 聽 聽 聽 聽 聽 聽 聽 聽oPanelCue:oClient := oBrw

聽 聽 聽 聽 聽 聽 聽 聽 聽WITH OBJECT oBrw
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :bChange 聽 聽:= { || oBrw:Refresh() }
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nTop 聽 聽 聽 := 0
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nLeft 聽 聽 聽:= 0
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nWidth 聽 聽 := nAnchoPan
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :nHeight 聽 聽:= nAltoPan-320

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[1]:bStrData 聽 聽 聽:= {||If( Len( oBrw:aArrayData ) > 0, oBrw:aArrayData[ oBrw:nArrayAt, 1 ], "" )}
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[2]:bStrData 聽 聽 聽:= {||If( Len( oBrw:aArrayData ) > 0, oBrw:aArrayData[ oBrw:nArrayAt, 2 ], "" )}
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[3]:bStrData 聽 聽 聽:= {||If( Len( oBrw:aArrayData ) > 0, oBrw:aArrayData[ oBrw:nArrayAt, 3 ], "" )}

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[4]:bStrData 聽 聽 聽:= {||If( Len( oBrw:aArrayData ) > 0, oBrw:aArrayData[ oBrw:nArrayAt, 4 ], "" )}

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[5]:bStrData 聽 聽 聽:= {||If( Len( oBrw:aArrayData ) > 0, aUnidadMedida[oBrw:aArrayData[ oBrw:nArrayAt, 5 ]], 0 )}
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[6]:bStrData 聽 聽 聽:= {||If( oBrw:aArrayData[ oBrw:nArrayAt, 6 ] <> 0, oBrw:aArrayData[ oBrw:nArrayAt, 6 ], 0 )}

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[7]:bStrData 聽 聽 聽:= {||If( oBrw:aArrayData[ oBrw:nArrayAt, 6 ] <> 0, oBrw:aArrayData[ oBrw:nArrayAt, 4 ]/oBrw:aArrayData[ oBrw:nArrayAt, 6 ], 0 )}

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :bKeyDown 聽 := { |nKey| ( IF(nKey==VK_INSERT,(InsertaItems(oWndChild,oBrw,@aTblItem,lCpteNew),oBrw:SetArray(aTblItem)),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 IF(nKey==VK_DELETE,EliminaItems(oBrw,lCpteNew),)),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 oBrw:SetFocus() ) }
聽 聽 聽 聽 聽 聽 聽 聽 聽END

聽 聽 聽 聽 聽 聽 聽 聽 聽*----------------------------------------------------------

聽 聽 聽 聽 聽 聽 聽 聽 hLays["H4"]:aVLayout[1]:oClient := oPanelCue


****************************************************************************
*
FUNCTION InsertaItems(oWndChild,oBrw,aTblItem,lCpteNew)
聽 聽 聽 聽 聽LOCAL hArt := Hash()

聽 聽 聽 聽 聽IF !lCpteNew
聽 聽 聽 聽 聽 聽 RETURN NIL
聽 聽 聽 聽 聽ENDIF

聽 聽 聽 聽 聽BuscarArticulos(oWndChild,@hArt)

聽 聽 聽 聽 聽IF EMPTY(hArt["cNomArt"])
聽 聽 聽 聽 聽 聽 RETURN NIL
聽 聽 聽 聽 聽ENDIF

聽 聽 聽 聽 聽AAdd( aTblItem, { LEN(aTblItem)+1,; 聽 聽 聽// 1-
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽hArt["cCodigo"],; 聽 聽 聽// 2-
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽hArt["cNomArt"],; 聽 聽 聽// 3-Nombre del Articulo
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽1,; 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽// 4-Cantidad
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽hArt["nUniMed"],; 聽 聽 聽// 5-
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽hArt["KgBolsa"],; 聽 聽 聽// 6-
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽1/hArt["KgBolsa"],; 聽 聽// 7-
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽"COMUN",; 聽 聽 聽 聽 聽 聽 聽// 8-Tipo de Remito
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽hArt["IdArticulo"],; 聽 // 9-Id_Articulo
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽hArt["IdRubro"],; 聽 聽 聽// 10-IdRubro
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽hArt["IdSubRubro"],; 聽 // 11-IdSubRubro
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽"" } )

聽 聽 聽 聽 聽oBrw:Refresh()

RETURN NIL
*
****************************************************************************

Saludos
Marcelo
FWH - Harbour - BCC7 - PellesC
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Edici贸n de una celda en xBrowse
Posted: Sat Jun 02, 2018 04:23 PM

Intenta modificando asi:
:aCols[4]:bStrData := {||If( Len( oBrw:aArrayData ) > 0, oBrw:aArrayData[ oBrw:nArrayAt, 4 ], 0 )}

Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Edici贸n de una celda en xBrowse
Posted: Sun Jun 03, 2018 03:45 PM
Hola Armando ya probe asi pero no funciono, no se porque pero bueno decidi hacerlo con @ .....
Code (fw): Select all Collapse
 聽 聽 聽 聽 聽 聽 聽 聽@ 0,0 XBROWSE oBrw SIZE -20,200 PIXEL OF oPanelCue;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 COLUMNS 1,2,3,4,5,6,7;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 HEADERS "Item","C贸digo","Producto","Cantidad", "Uni.de Med.","Kg Bolsa","Bolsas";
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 COLSIZES 100,150,300,150,150,150,150;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 picture 聽,,,"@Z 99,999.999";
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 JUSTIFY 聽AL_CENTER,AL_CENTER,AL_LEFT,AL_LEFT,AL_LEFT,AL_LEFT,AL_RIGHT;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ARRAY aTblItem CELL LINES NOBORDER FASTEDIT;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 FONT hFnt["BrwFC"]

聽 聽 聽 聽 聽 聽 聽 聽 WITH OBJECT oBrw:Cantidad
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽:nEditType := EDIT_GET
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽:bOnPostEdit 聽 := {|o,x,n|If(n=VK_RETURN,( o:value:=x,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 oBrw:aArrayData[oBrw:nArrayAt,7]:=x/oBrw:aArrayData[oBrw:nArrayAt,6] ),)}
聽 聽 聽 聽 聽 聽 聽 聽 END


De esta manera funcion贸
Te agradezco que te hallas tomado el tiempo para ayudarme
Saludos
FWH - Harbour - BCC7 - PellesC
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Edici贸n de una celda en xBrowse
Posted: Mon Jun 04, 2018 01:43 PM
Good.

Instead of
Code (fw): Select all Collapse
WITH OBJECT oBrw:Cantidad
  :nEditType := EDIT_GET
  :bOnPostEdit   := {|o,x,n|If(n=VK_RETURN,( o:value:=x,;
                                                oBrw:aArrayData[oBrw:nArrayAt,7]:=x/oBrw:aArrayData[oBrw:nArrayAt,6] ),)}
END


You can also try
(1)
Code (fw): Select all Collapse
WITH OBJECT oBrw:Cantidad
   :nEditType  := EDIT_GET
   :bOnChange  := { | oCol, uOldVal| oBrw:Bolsas:VarPut( oCol:Value / oBrw:KgBolsa:Value ) }
END


or
(2)
Make "Bolsas" as a calculated column
Code (fw): Select all Collapse
WITH OBJECT oBrw
   :Bolsas:bEditValue := { || oBrw:aRow[ 7 ] := oBrw:aRow[ 4 ] / oBrw:aRow[ 6 ] }
   :Cantidad:nEditType := EDIT_GET
END
Regards



G. N. Rao.

Hyderabad, India
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Edici贸n de una celda en xBrowse
Posted: Mon Jun 04, 2018 01:58 PM

ahhhh buenisimo muchas gracias Rao.

Otra cosa tuve que anular esta linea porque me segu铆a dando el mismo problema al editar la celda y no me permit铆a tipear mas de un numero

                 :bKeyDown   := { |nKey| ( IF(nKey==VK_INSERT,(InsertaItems(oWndChild,oBrw,@aTblItem,lCpteNew),oBrw:SetArray(aTblItem)),;
                                           IF(nKey==VK_DELETE,EliminaItems(oBrw,lCpteNew),)),;
                                           oBrw:SetFocus() ) }

as铆 que lo solucione con un bot贸n de agregar y bot贸n derecho para eliminar un item, no me gusto pero no supe porque me daba ese error

Saludos
Marcelo

FWH - Harbour - BCC7 - PellesC
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Edici贸n de una celda en xBrowse
Posted: Tue Jun 05, 2018 02:01 AM
Please build and test this sample.
Then you can adapt this to your requirements.
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

聽 聽local oWnd, oBrw
聽 聽local aData 聽 聽:= {}

聽 聽DEFINE WINDOW oWnd

聽 聽@ 20,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oWnd ;
聽 聽 聽 DATASOURCE aData ;
聽 聽 聽 COLUMNS 1,2,3,4,5 ;
聽 聽 聽 HEADERS "SlNo", "Item", "Quantity", "Rate", "Amount" ;
聽 聽 聽 PICTURES "999", nil, "@Z 999,999", "99.99", "@Z 999,999,999.99" ;
聽 聽 聽 JUSTIFY AL_RIGHT, AL_LEFT, AL_RIGHT, AL_RIGHT, AL_RIGHT ;
聽 聽 聽 COLSIZES 60, 100, 100, 60, 100 ;
聽 聽 聽 CELL LINES FOOTERS FASTEDIT NOBORDER

聽 聽WITH OBJECT oBrw
聽 聽 聽 :cDataTypes 聽 聽:= { "N", "C", "N", "N", "N" }
聽 聽 聽 :Item:nEditType 聽 := EDIT_GET
聽 聽 聽 WITH OBJECT :Quantity
聽 聽 聽 聽 聽:nEditType 聽 聽 := EDIT_GET
聽 聽 聽 聽 聽:nFooterType 聽 := AGGR_SUM
聽 聽 聽 聽 聽:bEditValid 聽 聽:= { |oGet| oGet:VarGet() > 0 }
聽 聽 聽 END
聽 聽 聽 WITH OBJECT :Rate
聽 聽 聽 聽 聽:nEditType 聽 聽 := EDIT_GET
聽 聽 聽 聽 聽:bEditValid 聽 聽:= { |oGet| oGet:VarGet() > 0 }
聽 聽 聽 END
聽 聽 聽 WITH OBJECT :Amount
聽 聽 聽 聽 聽:bEditValue 聽 := { || oBrw:aRow[ 5 ] := oBrw:aRow[ 3 ] * oBrw:aRow[ 4 ] }
聽 聽 聽 聽 聽:nFooterType 聽:= AGGR_SUM
聽 聽 聽 END

聽 聽 聽 :bKeyDown 聽 := { |k| If( k == VK_INSERT, ( BrwAddRow( oBrw ), 0 ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽If( k == VK_DELETE, ( oBrw:Delete(), 0 ), nil ) ) }

聽 聽 聽 // This is optional. Provides auto-append
聽 聽 聽 :bPastEof 聽 := { || If( oBrw:nLen == 0 .or. oBrw:Amount:Value != 0, BrwAddRow( oBrw ), nil ) }

聽 聽 聽 :MakeTotals()

聽聽 聽 聽 :CreateFromCode()
聽 聽END

聽 聽ACTIVATE WINDOW oWnd CENTERED

return nil

function BrwAddRow( oBrw )

聽 聽local aNewRow
聽 聽local nSlNo 聽 聽:= 1

聽 聽if oBrw:nLen > 0
聽 聽 聽 nSlNo := ATail( oBrw:aArrayData )[ 1 ] + 1
聽 聽endif
聽 聽aNewRow 聽:= { nSlNo, SPACE( 10 ), 0, 1.0, 0 }

聽 聽AAdd( oBrw:aArrayData, aNewRow )
聽 聽oBrw:GoBottom()
聽 聽oBrw:MakeTotals()
聽 聽oBrw:nColSel 聽 := 2
聽 聽oBrw:Refresh()

return nil
Regards



G. N. Rao.

Hyderabad, India
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Edici贸n de una celda en xBrowse
Posted: Tue Jun 05, 2018 11:40 AM

Muy buen ejemplo Rao muchas gracias, ya estoy probando estos ajustes, buen detalle.
Saludos
Marcelo

FWH - Harbour - BCC7 - PellesC
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Edici贸n de una celda en xBrowse
Posted: Tue Jun 05, 2018 12:14 PM
Bueno finalmente encontr茅 el error que comet铆

Code (fw): Select all Collapse
 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :bKeyDown 聽 := { |nKey| ( IF(nKey==VK_INSERT,(InsertaItems(oWndChild,oBrw,@aTblItem,lCpteNew),oBrw:SetArray(aTblItem)),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽IF(nKey==VK_DELETE,EliminaItems(oBrw,lCpteNew),)),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrw:SetFocus() ) }


Despu茅s de varios d铆as, hoy me di cuenta que el SetFocus era el que me producia la falla.
Al sacarlo de ah铆 la edici贸n funcion贸.

Muchas gracias a todos los que me ayudaron
Saludos
Marcelo
FWH - Harbour - BCC7 - PellesC
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Edici贸n de una celda en xBrowse
Posted: Tue Jun 05, 2018 01:28 PM

1) Please do not use "SetArray()" again in Insert or anywhere in the program,
2) Use oBrw:Delete() instead of your own function.

For this reason, I provided the template.

Regards



G. N. Rao.

Hyderabad, India
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Edici贸n de una celda en xBrowse
Posted: Wed Jun 06, 2018 12:06 AM

ok tendr茅 en cuenta lo que dices
Muchas gracias

FWH - Harbour - BCC7 - PellesC

Continue the discussion