xBrowse - Editar celda por codigo (SOLUCIONADO)

xBrowse - Editar celda por codigo (SOLUCIONADO)

Postby MarioG » Mon Oct 21, 2013 3:27 pm

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  Expand view
  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: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo

Postby MarioG » Tue Oct 22, 2013 12:19 pm

:idea: ...
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo

Postby TecniSoftware » Tue Oct 22, 2013 12:48 pm

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
TecniSoftware
 
Posts: 235
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Re: xBrowse - Editar celda por codigo

Postby MarioG » Tue Oct 22, 2013 2:29 pm

Alejandro;
Muchas gracias por ocuparte. A veces los clientes piden demasiado :)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo

Postby FranciscoA » Tue Oct 22, 2013 5:55 pm

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.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2114
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: xBrowse - Editar celda por codigo

Postby MarioG » Wed Oct 23, 2013 4:13 am

Francisco;
gracias por tu interés. Ninguna de las opciones edita el campo
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo

Postby Hector Pedro Lerda » Wed Oct 23, 2013 3:42 pm

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
Hector Pedro Lerda
 
Posts: 46
Joined: Tue May 07, 2013 7:27 pm
Location: Buenos Aires - Argentina

Re: xBrowse - Editar celda por codigo

Postby nageswaragunupudi » Wed Oct 23, 2013 3:49 pm

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  Expand view

#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
nageswaragunupudi
 
Posts: 10308
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xBrowse - Editar celda por codigo (SOLUCIONADO)

Postby MarioG » Wed Oct 23, 2013 10:03 pm

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: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Editar celda por codigo

Postby MarioG » Wed Oct 23, 2013 10:05 pm

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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: SantaCroya and 29 guests