FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour AÑADIR REGISTROS EN XBROWSE CON LECTOR DE BARRAS
Posts: 230
Joined: Thu Sep 17, 2015 11:40 PM
AÑADIR REGISTROS EN XBROWSE CON LECTOR DE BARRAS
Posted: Sun Oct 04, 2020 04:01 AM
https://drive.google.com/file/d/1cLJNUkgIIOvPjRAQAOElaaRBuGufyTX3/view?usp=sharing

Saludos, una consulta espero pueda darme un ejemplo, agradecido de antemano.

tengo la pantalla en imagen adjunta, es para crear un pedido de venta, necesito que al leer el codigo de barras se añada un registro con el codigo del producto leido.
Carlos Atuncar - CaSoftSystem
Chincha - Perú
+51983478218
carlosalbatun@gmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: AÑADIR REGISTROS EN XBROWSE CON LECTOR DE BARRAS
Posted: Mon Oct 05, 2020 06:48 PM
CARLOS ATUNCAR wrote:https://drive.google.com/file/d/1cLJNUkgIIOvPjRAQAOElaaRBuGufyTX3/view?usp=sharing

Saludos, una consulta espero pueda darme un ejemplo, agradecido de antemano.

tengo la pantalla en imagen adjunta, es para crear un pedido de venta, necesito que al leer el codigo de barras se añada un registro con el codigo del producto leido.


Carlos.
El siguiente es codigo parcial que utilizo en uno de mis sistemas de facturacion.
Espero te sea util como guía.

Code (fw): Select all Collapse
  local bTotales := ;
        {|| oBrw:Total:Value := oBrw:Cantidad:Value * oBrw:Precio:Value ,;  
            if(oBrw:PDesc:Value > 0, oBrw:VDesc:Value := Round( (oBrw:Total:Value * oBrw:PDesc:Value)/100,2 ), ) ,;  
            oBrw:Gravable:Value := oBrw:Total:Value - oBrw:VDesc:Value ,;
            oBrw:IVA:Value := if( oBrw:PagaIVA:Value = "S", Round( (oBrw:Gravable:Value * nImpuesto)/100, 2 ), 0 ) ,;
            if(oBrw:Exone:Value=="S", oBrw:IVA:Value := 0, ) ,;    // if( lCkBxExone, oBrw:IVA:Value := 0, ) ,;
            oBrw:GTot:Value := oBrw:Gravable:Value + oBrw:IVA:Value ,;
            oBrw:Refresh() }

  local bTotFact := ;
        {|| nGrav:=oBrw:Gravable:nTotal, nIva:=oBrw:Iva:nTotal, nTot:=oBrw:Gtot:nTotal ,;
            oGrav:Refresh(), oIva:Refresh(), oTot:Refresh() }

  local bTotalize := ;
         {|| Eval(bTotales),;
             oBrw:MakeTotals( oBrw:oCol( "Total,VDesc,Gravable,Iva,GTot" ) ),;
             oBrw:RefreshFooters(),;
             Eval(bTotFact) }

  local lLectorCB:=.t., bLectorCB

   @ 100,10 XBROWSE oBrw SIZE -10,-50 PIXEL OF oDlg ;
      DATASOURCE aInvoice ;
      COLUMNS 1,2,3,4, 5,6,7,8,9,10,11,12 ; 
      HEADERS "CODIGO", "DESCRIP", "CANTIDAD", "PRECIO", "TOTAL", "PDESC", "VDESC", "GRAVABLE", "PAGAIVA", "IVA", "GTOT","EXONE";
      PICTURES Repli("9", nLenCode) , nil, "999,999.99", "9,999,999.99", "9,999,999,999.99", nil, "9,999,999,999.99", "9,999,999,999.99", nil,"999,999,999.99", "9,999,999,999.99", NIL ; 
      COLSIZES 90, 410, 80, 100, 140, 70, 140, 140, 60, 90, 140, 65  ;
      CELL LINES FOOTERS NOBORDER FASTEDIT

   oBrw:nEditTypes := { EDIT_GET, EDIT_NONE, EDIT_GET, EDIT_GET, EDIT_NONE, EDIT_GET, EDIT_GET, EDIT_NONE, EDIT_NONE, EDIT_NONE, EDIT_NONE, EDIT_NONE }

   bLectorCB := {|| oBrw:Cantidad:Value:=1, Eval(bTotalize), oBrw:GoDown() }

   WITH OBJECT oBrw:Codigo    //es oBrw:aRow[1]
      :bEditValid        := { |oGet| oGet:VarGet() >= 0 }
      :bOnChange         := { |oCol|aProd:=GetProductInfo(oCol:Value,aProdu,nLenCode,nLenFld,oBrw),;
                                    oBrw:Codigo:Value   := aProd[1] ,;
                                    oBrw:Descrip:Value  := aProd[2] ,;
                                    oBrw:Precio:Value   := aProd[3] ,;
                                    oBrw:PagaIva:Value  := aProd[5] ,;
                                    if(lLectorCB, EVal(bLectorCB),) ,;
                                    EVal(bTotalize) }
   END

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: AÑADIR REGISTROS EN XBROWSE CON LECTOR DE BARRAS
Posted: Tue Oct 06, 2020 06:12 PM
FranciscoA wrote:

Carlos.
El siguiente es codigo parcial que utilizo en uno de mis sistemas de facturacion.
Espero te sea util como guía.

Code (fw): Select all Collapse
  local bTotales := ;
        {|| oBrw:Total:Value := oBrw:Cantidad:Value * oBrw:Precio:Value ,;  
            if(oBrw:PDesc:Value > 0, oBrw:VDesc:Value := Round( (oBrw:Total:Value * oBrw:PDesc:Value)/100,2 ), ) ,;  
            oBrw:Gravable:Value := oBrw:Total:Value - oBrw:VDesc:Value ,;
            oBrw:IVA:Value := if( oBrw:PagaIVA:Value = "S", Round( (oBrw:Gravable:Value * nImpuesto)/100, 2 ), 0 ) ,;
            if(oBrw:Exone:Value=="S", oBrw:IVA:Value := 0, ) ,;    // if( lCkBxExone, oBrw:IVA:Value := 0, ) ,;
            oBrw:GTot:Value := oBrw:Gravable:Value + oBrw:IVA:Value ,;
            oBrw:Refresh() }

  local bTotFact := ;
        {|| nGrav:=oBrw:Gravable:nTotal, nIva:=oBrw:Iva:nTotal, nTot:=oBrw:Gtot:nTotal ,;
            oGrav:Refresh(), oIva:Refresh(), oTot:Refresh() }

  local bTotalize := ;
         {|| Eval(bTotales),;
             oBrw:MakeTotals( oBrw:oCol( "Total,VDesc,Gravable,Iva,GTot" ) ),;
             oBrw:RefreshFooters(),;
             Eval(bTotFact) }

  local lLectorCB:=.t., bLectorCB

   @ 100,10 XBROWSE oBrw SIZE -10,-50 PIXEL OF oDlg ;
      DATASOURCE aInvoice ;
      COLUMNS 1,2,3,4, 5,6,7,8,9,10,11,12 ; 
      HEADERS "CODIGO", "DESCRIP", "CANTIDAD", "PRECIO", "TOTAL", "PDESC", "VDESC", "GRAVABLE", "PAGAIVA", "IVA", "GTOT","EXONE";
      PICTURES Repli("9", nLenCode) , nil, "999,999.99", "9,999,999.99", "9,999,999,999.99", nil, "9,999,999,999.99", "9,999,999,999.99", nil,"999,999,999.99", "9,999,999,999.99", NIL ; 
      COLSIZES 90, 410, 80, 100, 140, 70, 140, 140, 60, 90, 140, 65  ;
      CELL LINES FOOTERS NOBORDER FASTEDIT

   oBrw:nEditTypes := { EDIT_GET, EDIT_NONE, EDIT_GET, EDIT_GET, EDIT_NONE, EDIT_GET, EDIT_GET, EDIT_NONE, EDIT_NONE, EDIT_NONE, EDIT_NONE, EDIT_NONE }

   bLectorCB := {|| oBrw:Cantidad:Value:=1, Eval(bTotalize), oBrw:GoDown() }

   WITH OBJECT oBrw:Codigo    //es oBrw:aRow[1]
      :bEditValid        := { |oGet| oGet:VarGet() >= 0 }
      :bOnChange         := { |oCol|aProd:=GetProductInfo(oCol:Value,aProdu,nLenCode,nLenFld,oBrw),;
                                    oBrw:Codigo:Value   := aProd[1] ,;
                                    oBrw:Descrip:Value  := aProd[2] ,;
                                    oBrw:Precio:Value   := aProd[3] ,;
                                    oBrw:PagaIva:Value  := aProd[5] ,;
                                    if(lLectorCB, EVal(bLectorCB),) ,;
                                    EVal(bTotalize) }
   END

Saludos.

Excelente francisco!, no sabia que se podia trabajar directamente con la col del xbrowse, asi como tu lo haces en tu ejemplo:
Code (fw): Select all Collapse
       {|| oBrw:Total:Value := oBrw:Cantidad:Value * oBrw:Precio:Value ,;  
            if(oBrw:PDesc:Value > 0, oBrw:VDesc:Value := Round( (oBrw:Total:Value * oBrw:PDesc:Value)/100,2 ), ) ,;  
            oBrw:Gravable:Value := oBrw:Total:Value - oBrw:VDesc:Value ,;
            oBrw:IVA:Value := if( oBrw:PagaIVA:Value = "S", Round( (oBrw:Gravable:Value * nImpuesto)/100, 2 ), 0 ) ,;
            if(oBrw:Exone:Value=="S", oBrw:IVA:Value := 0, ) ,;    // if( lCkBxExone, oBrw:IVA:Value := 0, ) ,;
            oBrw:GTot:Value := oBrw:Gravable:Value + oBrw:IVA:Value ,;
            oBrw:Refresh() }

Este ejemplo es con arreglos ? y con dbf o recordset se trabaja igual, cierto?
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql

Continue the discussion