Una mas de TXBrowse

Una mas de TXBrowse

Postby Armando » Fri Mar 31, 2023 3:12 am

Amigos y colegas:

Sigo liado con mi primer TXBrowse con FASTEDIT, me explico, ojala me puedan ayudar
Tengo el TXBrowse con tres columnas, Cantidad, Unitario e Importe

Code: Select all  Expand view

            WITH OBJECT :Cantidad
               :cEditPicture  := "@ZK 99,999"
            END

            WITH OBJECT :Unitario
               :cEditPicture  := "@Z 999,999.99"
            END

            WITH OBJECT :Importe
               :nFooterType   := AGGR_SUM
            END

            :MakeTotals()
 


La columna importe no es editable, debe ser calculada multiplicando la columna Cantidad por la columna Unitario
y necesito obtener la suma de la columna importe, solo las columnas Cantidad y Unitario son editables

Seguramente para ustedes la solución es sencilla pero yo llevo varias horas y no doy pie con bola.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Una mas de TXBrowse

Postby MarioG » Fri Mar 31, 2023 11:40 am

Hola Armando
Esta es una forma de resolverlo:
Code: Select all  Expand view

WITH OBJECT :Importe
   :cDataType    := "N"
   :cEditPicture := PIC_NUEVECIFED     // picture "@E 999,999.99"
   :nHeadStrAlign:= :nFootStrAlign:= AL_RIGHT
   :nFooterType  := AGGR_SUM
   :nEditType    := EDIT_GET

   :bOnPostEdit  := {|o, nVal, nK| if( nK != VK_ESCAPE, ( o:Value:= nVal, Eval( bCalculaIVA ), ;
                                                        if( ::aMateriales[aO[_oBrwDeta]:nArrayAt][_IDMat] == 0, ;
                                                            ( aO[_oBrwDeta]:nColSel:= _Detalle ), nil ) ), ) }  
END

/* Referencia
   nVal es el valor introducido
   Importe esta contenido en un multiarray
   bCalculaIVA es un bloque de codigo donde hago variados calculos que afectan a resultado final de Importe
   Alli incluyo :MakeTotals(), :RefreshFooters() y :Refresh del browse para luego posicionar en la 2da
   columna, de las siguiente linea, para agregar buscar otro registro
*/

Saludos!
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: Una mas de TXBrowse

Postby Armando » Fri Mar 31, 2023 12:02 pm

Hola Mario:

Te agradezco el código, voy a intentar adaptarlo a mis necesidades aunque de entrada
veo una diferencia, mi columna IMPORTE no es editable, es el resultado de multiplicar
la columna CANTIDAD por la columna UNITARIO, pero lo voy a intentar.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Una mas de TXBrowse

Postby FranciscoA » Fri Mar 31, 2023 2:25 pm

Armando, este trozo de codigo puede servirte:
Code: Select all  Expand view
 WITH OBJECT oBrw:Codigo
      :bEditValid     := { |oGet| oGet:VarGet() > 0 }
      :bOnChange      := { |oCol| oBrw:Descrip:Value := "Codigo " + Str(oBrw:Codigo:Value,4) }
   END

WITH OBJECT oBrw:Cantidad
      :bEditWhen      := { || ! Empty( oBrw:Codigo:Value ) }
      :bOnChange      := { || oBrw:MakeTotals(), oBrw:RefreshFooters() }
      :bEditValid     := { |oGet| oGet:VarGet() > 0 }
   END

   WITH OBJECT oBrw:Unitario
      :bEditWhen      := { || ! Empty( oBrw:Codigo:Value ) .and. ! Empty( oBrw:Cantidad:Value ) }
      :bOnChange      := { || oBrw:MakeTotals(), oBrw:RefreshFooters() }
      :bEditValid     := { |oGet| oGet:VarGet() > 0 }
   END

   WITH OBJECT oBrw:Importe
      :bEditValue     := { || oBrw:Cantidad:Value * oBrw:Unitario:Value }
      :cEditPicture   := "999,999,999.99"
      :nFooterType    := AGGR_SUM
   END
 

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

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

Re: Una mas de TXBrowse

Postby Armando » Sat Apr 01, 2023 1:19 am

Francisco:

Muchas gracias, lo probaré.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Una mas de TXBrowse

Postby Armando » Sat Apr 01, 2023 4:59 pm

Hola Francisco:

Tu solución me funcionó al 100%, abusando de tu amabilidad te cuento...
tengo dos necesidades más, todo con un Browse FASTEDIT

1.- En el siguiente código no logro que aparezca el BMP Bus16, es un EDIT_GET_BUTTON
Leandro me dio una solución pero no logré hacerla funcionar, Saludos Leandro.
Code: Select all  Expand view

WITH OBJECT :Material
     :cOrder          := "A"
     :cEditPicture  := "@!K"
     :AddResource("Bus16")
     :bEditBlock    := { | | BrwMat(oDlg)  }
     :bEditValid    := { | oGet | ValMat(oGet:VarGet()) }
END
 

2.- Después de agregar un registro en blanco (:bPastEof) si el usuario ya no lo quiere
cómo puedo eliminarlo, varios editores utilizan la tecla flecha arriba para eliminarlo
si es que no hay campos con valor. Tal vez si pudiera interceptar el movimiento del
cursor en el Browse?

Debo aclarar que estoy actualizando la tabla directamente a través de su recordset, es decir, no utilizo arreglos.
Code: Select all  Expand view

        REDEFINE XBROWSE oBry ID 401 OF oDlg;
            DATASOURCE oRsWMat;
            COLUMNS "MDE_MAT","MDE_DES","MDE_CTD","MDE_PUN","MDE_IMP";
            HEADERS "Material","Descripción del material","Cantidad","Unitario","Importe";
            COLSIZES 90,250,50,70,80;
            PICTURES Nil,Nil,"@Z 99999","@Z 9,999.99","@Z 999,999.99";
            JUSTIFY {AL_LEFT,AL_LEFT,AL_RIGHT,AL_RIGHT};
            FOOTERS AUTOSORT BACKGROUND oApp:cBrush FASTEDIT
 


Muy agradecido con tu apoyo
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Una mas de TXBrowse

Postby nageswaragunupudi » Wed Apr 05, 2023 2:56 am

En el siguiente código no logro que aparezca el BMP Bus16, es un EDIT_GET_BUTTON


Recommendation:
Code: Select all  Expand view
WITH OBJECT :Material
//     :cOrder          := "A" // XBROWSE uses this internally
     :cEditPicture  := "@!"   // "@!K" "K" is not required in FWH
//     :AddResource("Bus16")
     :nBtnBmp     := "Bus16"  // Insert here
     :bEditBlock    := { | | BrwMat(oDlg)  }
     :bEditValid    := { | oGet | ValMat(oGet:VarGet()) }
END
 


You can also set the button width by
Code: Select all  Expand view

oCol:nBtnWidth := n
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Una mas de TXBrowse

Postby Armando » Wed Apr 05, 2023 3:47 am

Master Mr. Rao:

Thank you so much.

Best regards
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 81 guests