Sobre XBrowse y Filtro

Sobre XBrowse y Filtro

Postby VitalJavier » Sat Nov 14, 2015 5:40 pm

Que tal, Buen dia a Todos

Alguien tendrá alguna idea por que me sucede esto :
Como explicarles

n_Precio := Aquí ago un calculo del precio

Tengo un xBrowse de la tabla TABPESOS y en una de las columnas tengo esto :

oBrowPso:aCols[05]:bStrData := {|| n_Precio * TABPESOS->PESO }


Cuando entro de inicio se ejecuta el filtro y si el filtro no tiene datos, me pone vacio
el xbrowse (hasta ahi todo bien), pero cuando quiero cambiar ese filtro (con la tecla F10 cambio el filtro)
me sigue poniendo cero en la columna [5], auque tenga datos.


Alguien que ya le haya pasado ???


Pongo un poco del fuente para que lo vean :

Code: Select all  Expand view

FUNCTION BuscaPesadasVenta(oDlg,oGet)
    LOCAL aField := Array(5)
    PRIVATE oBrowPso, oTimerPso, lMedias := .F., oMT
    IF !RETORNA_SYSP("BUSCA_PESADA")
        RETURN .T.
    ENDIF
    IF Empty((cFile)->ARTICULO) .OR. !Empty((cFile)->NCAJA)
        RETURN .T.
    ENDIF
    SELECT TABPESOS
    OrdSetFocus("NUMERO")
    DbGoTop()
    ADSClearAOF()
    cCad := "TABPESOS->ARTICULO='"+AllTrim((cFile)->ARTICULO)+"' .AND. TABPESOS->PESO>=17"
    IF !ADSSetAOF(cCad)
        ?"No se realizo el filtro...",cCad
    ENDIF
    DbGoBottom()
        QuitaTeclas()
        lMedias := .F.
        SETKEY( VK_F10, { || Actual_Peso_F10() } )
        SELECT ARTICULOS
        OrdSetFocus("ARTICULO")
        DbGoTop()
        DbSeek(TABPESOS->ARTICULO)
        n_Precio := RetornaPrecioArti1()
        aField[01] := "OPCION"
        aField[02] := "NUMERO"
        aField[03] := "PESO"
        aField[04] := "ARTNOMBRE"
        aField[05] := "IMPORTE"
        DEFINE DIALOG oDlgPso RESOURCE "UTILERIAS_009" TITLE "Selecciona Pesada del Producto" OF oDlg ICON "AASESORES" TRANSPARENT
            oDlgPso:lHelpIcon := .F.
            oDlgPso:bKeyDown  := {|nKey| IIF(nKey=27,oDlgPso:End(),.F.)}
            DEFINE TIMER oTimerPso INTERVAL 1000 ACTION oBrowPso:Refresh() OF oDlgPso
            oBrowPso := TxBrowse():New(oDlgPso)
                PoneFormasBrowse(oBrowPso)
                oBrowPso:oFont                          := aLetras[07]             
                oBrowPso:cAlias                             := "TABPESOS"
                oBrowPso:SetRDD(,,aField)              
                oBrowPso:aCols[05]:bStrData         := {|| n_Precio * TABPESOS->PESO }
                oBrowPso:aCols[01]:cHeader          := "Selec"
                oBrowPso:aCols[02]:cHeader          := "Numero"
                oBrowPso:aCols[03]:cHeader          := "Peso"
                oBrowPso:aCols[04]:cHeader          := "Nombre"
                oBrowPso:aCols[05]:cHeader          := "Importe"
                oBrowPso:aCols[03]:nWidth               := 80
                oBrowPso:aCols[04]:nWidth               := 180
                oBrowPso:aCols[05]:nWidth               := 90
                oBrowPso:aCols[05]:cEditPicture         := "999.9999"              
                oBrowPso:bKeyDown                       := {|nKey| ValidaKeySelPeso(nKey)}
                oBrowPso:CreateFromResource( 101 )
        ACTIVATE DIALOG oDlgPso CENTER ON INIT (oTimerPso:Activate(),oMT := PoneTitulo1(oDlgPso,"Cajas Enteras","",.F.,.F.),oBrowPso:Refresh())
        oTimerPso:End()
        SETKEY( VK_F10, { || .T. } )
    ADSClearAOF()
    SELECT (cFile)
    PoneTeclas(oDlg,oGet)
    oBrow:SetFocus()
RETURN .T.

FUNCTION Actual_Peso_F10()
    IF lMedias
        oMT:aText[1,3] := "Cajas Enteras"
        oMT:Refresh()      
        lMedias := .F.
        SELECT TABPESOS
        OrdSetFocus("NUMERO")
        DbGoTop()
        ADSClearAOF()
        cCad := "TABPESOS->ARTICULO='"+AllTrim((cFile)->ARTICULO)+"' .AND. TABPESOS->PESO>=17"
        IF !ADSSetAOF(cCad)
            ?"No se realizo el filtro...",cCad
        ENDIF
        DbGoBottom()
    ELSE
        oMT:aText[1,3] := "Medias Cajas"
        oMT:Refresh()      
        lMedias := .T.
        SELECT TABPESOS
        OrdSetFocus("NUMERO")
        DbGoTop()
        ADSClearAOF()
        cCad := "TABPESOS->ARTICULO='"+AllTrim((cFile)->ARTICULO)+"' .AND. TABPESOS->PESO>=0 .AND. TABPESOS->PESO<=15"
        IF !ADSSetAOF(cCad)
            ?"No se realizo el filtro...",cCad
        ENDIF
        DbGoBottom()
    ENDIF
    oBrowPso:GoBottom() 
    oBrowPso:SetFocus()    
    oBrowPso:Refresh()
RETURN .T.


 
VitalJavier
 
Posts: 228
Joined: Mon Jun 10, 2013 6:40 pm

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 76 guests