xBrowse - Editar celda por codigo (SOLUCIONADO)

Post Reply
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

xBrowse - Editar celda por codigo (SOLUCIONADO)

Post by MarioG »

Estimados
Tengo un xbrowse con 2 celdas editables. He asignado :nMoveType:= MOVE_RIGHT
Lo que pretendo es que luego de validar lo ingresado en la celda 1, y luego de pasar a la celda 2, inmediatamente a su derecha, la edite sin necesidad de que el operador pusle <Intro/Enter>.
Lo que yo hice es:

Code: Select all

   WITH OBJECT ::oBrwCom:aCols[_Cantidad]
      :nEditType   := EDIT_GET
      :bOnPostEdit := {|o, nCant, nK| if( nK != VK_ESCAPE, ( if( !Empty( ::aArtCompra[::oBrwCom:nArrayAt][_CodArt] ), ;
                                                                 ( ::aArtCompra[::oBrwCom:nArrayAt][_Cantidad]:= nCant, ::Totaliza() ), msgBeep() ), ;
                                                             ::oBrwCom:Refresh(), ;
                                                             Eval( ::oBrwCom:aCols[_PrcCom], VK_RETURN ) ), ) }
   END
   WITH OBJECT ::oBrwCom:aCols[_PrcCom]
      :cHeader:= "Prc.Unit"
      :nEditType   := EDIT_GET
      :bOnPostEdit := {|o, nPrcUVta, nK| if( nK != VK_ESCAPE, ( if( !Empty( ::aArtCompra[::oBrwCom:nArrayAt][_CodArt] ), ;
                                                                    ( ::aArtCompra[::oBrwCom:nArrayAt][_PrcVta]:= nPrcUVta, ::Totaliza() ), msgBeep() ), ;
                                                                ::oBrwCom:Refresh()  ), ) }
   END
 
Evidentemente no es lo que corresponde, ya que ejecuta ::Totaliza y este me da error por tener un campo nil en una multiplicación.
Se puede?, como?
gracias
Last edited by MarioG on Thu Oct 24, 2013 12:57 pm, edited 1 time in total.
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo

Post by MarioG »

:idea: ...
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
TecniSoftware
Posts: 213
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Re: xBrowse - Editar celda por codigo

Post by TecniSoftware »

Mario

En mi opinion no estoy seguro que se pueda hacer que la celda de la derecha entre en edicion sin pulsar enter, calculo que porque lo estas llamando de otra celda y otro bOnPostEdit, intenté hacerlo pero no lo logro, probe agregando un oBrw:KeyChar( VK_RETURN ) al final del bOnPostEdit de la primer celda pero no hace lo que corresponde.

Saludos
Alejandro Cebolido
Buenos Aires, Argentina
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo

Post by MarioG »

Alejandro;
Muchas gracias por ocuparte. A veces los clientes piden demasiado :)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: xBrowse - Editar celda por codigo

Post by FranciscoA »

Lo que pretendo es que luego de validar lo ingresado en la celda 1, y luego de pasar a la celda 2, inmediatamente a su derecha, la edite sin necesidad de que el operador pusle <Intro/Enter>.
Hola Mario, mira si utilizando alguna de estas instrucciones se te coloca en modo edicion
oBrw:aCols[ n ]:Edit()
oBrw:SelectedCol():Edit()

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo

Post by MarioG »

Francisco;
gracias por tu interés. Ninguna de las opciones edita el campo
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
Hector Pedro Lerda
Posts: 46
Joined: Tue May 07, 2013 7:27 pm
Location: Buenos Aires - Argentina

Re: xBrowse - Editar celda por codigo

Post by Hector Pedro Lerda »

Mario

No se si será lo que buscas, pero para entrar en edición un campo sin pulsar enter el xbrowse trae FASTEDIT que hace la edición con solo escribir sobre él como si fuera una celda de excel.

Saludos y espero sea eso lo que buscas
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: xBrowse - Editar celda por codigo

Post by nageswaragunupudi »

Mr MarioG

I am not sure if I understood your requirement. But this sample of Invoice might give some hints on calculations in Xbrowse.

Please compile and run the program as it is

Code: Select all

#include "FiveWin.Ch"
#include "xbrowse.ch"

function Invoice()

   local oDlg, oFont, oBrw
   local aInvoice    := { { 0, 0, 0 } }
   local aPriceTable := { 120, 234, 323, 456, 532, 619, 758, 821, 945 }
   local aBlank      := { 0, 0, 0 }

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   DEFINE DIALOG oDlg SIZE 600,400 PIXEL TITLE "INVOICE" FONT oFont
   @ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
      DATASOURCE aInvoice ;
      COLUMNS 1, 1, 2, 3 ;
      HEADERS "CODE", "ITEM", "QUANTITY", "PRICE" ;
      PICTURES "9", nil, "99999.999", "999.99" ;
      COLSIZES nil, 120 ;
      CELL LINES FOOTERS NOBORDER FASTEDIT

   oBrw:Item:bEditValue       := { || If( oBrw:Code:Value > 0, "Item Num " + StrZero( oBrw:Code:Value, 4 ), "" ) }
   oBrw:AMOUNT                := { || oBrw:Quantity:Value * oBrw:Price:Value }
   oBrw:Amount:cEditPicture   := "999,999,999.99"
   oBrw:nEditTypes            := { EDIT_GET, EDIT_NONE, EDIT_GET, EDIT_GET, EDIT_NONE }

   WITH OBJECT oBrw:Code
      :bEditValid             := { |oGet| oGet:VarGet() > 0 }
      :bOnChange              := { |oCol| oBrw:aRow[ 3 ] := aPriceTable[ oCol:Value ] }
      :bFooter                := { || oBrw:nLen }
   END
   WITH OBJECT oBrw:Quantity
      :bEditWhen        := { || ! Empty( oBrw:Code:Value ) }
      :bOnChange        := { || oBrw:MakeTotals( oBrw:oCol( "Amount" ) ), oBrw:RefreshFooters() }
      :bEditValid       := { |oGet| oGet:VarGet() > 0 }
      :nFooterType      := AGGR_SUM
   END

   WITH OBJECT oBrw:Price
      :bEditWhen        := { || ! Empty( oBrw:Code:Value ) .and. ! Empty( oBrw:Quantity:Value ) }
      :bOnChange        := { || oBrw:MakeTotals( oBrw:oCol( "Amount" ) ), oBrw:RefreshFooters() }
      :bEditValid       := { |oGet| oGet:VarGet() > 0 }
   END

   oBrw:Amount:nFooterType := AGGR_SUM

   WITH OBJECT oBrw
      :nStretchCol      := STRETCHCOL_WIDEST

      :bPastEof         := { || If( Empty( oBrw:Amount:Value ), nil, ;
                                  ( AAdd( oBrw:aArrayData, AClone( aBlank ) ), ;
                                    oBrw:GoDown(), oBrw:GoLeftMost(), oBrw:Refresh() ) ) }

      :bChange          := { || If( oBrw:nArrayAt < Len( oBrw:aArrayData ) .and. ;
                                    ATail( oBrw:aArrayData )[ 2 ] == 0, ;
                                  ( ASize( oBrw:aArrayData, Len( oBrw:aArrayData ) - 1  ), ;
                                    oBrw:Refresh() ), ;
                                  nil ) }
      //
      :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT ( oBrw:SetFocus(), .f. )
   RELEASE FONT oFont

   if ATail( aInvoice )[ 2 ] == 0
      ASize( aInvoice, Len( aInvoice ) - 1 )
   endif

   xbrowser aInvoice title "Edited Invoice" setup ( oBrw:cHeaders := { "Code", "Qty", "Price" } )

return nil
 
Image
Regards

G. N. Rao.
Hyderabad, India
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo (SOLUCIONADO)

Post by MarioG »

Hector Pedro Lerda wrote:Mario

No se si será lo que buscas, pero para entrar en edición un campo sin pulsar enter el xbrowse trae FASTEDIT que hace la edición con solo escribir sobre él como si fuera una celda de excel.

Saludos y espero sea eso lo que buscas
Pedro;
Es lo que estaba buscando!

muchas gracias
Last edited by MarioG on Thu Oct 24, 2013 12:55 pm, edited 1 time in total.
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo

Post by MarioG »

nageswaragunupudi wrote:Mr MarioG
I am not sure if I understood your requirement. But this sample of Invoice might give some hints on calculations in Xbrowse.
Mr. Rao, I'm very pleased with your sample; but is not my problem.
Mr. Lerda, given me the correct solution. I needed FASTEDIT!.
Mr. Rao, many thanks for your time and the sample
(sorry for my english, I use google trans.)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Post Reply