Page 1 of 1

Recursos

Posted: Sun Oct 13, 2019 3:39 pm
by surGom
Se puede utilizar
:lIncrFilter ,etc

desde recursos? Ya que no lo puedo hacer funcionar, y no encuentro en el forum ejemplos.

Gracias

Re: Recursos

Posted: Mon Oct 14, 2019 12:57 am
by surGom
Les dejo lo que hice y no funciona la busqueda incremental :

Code: Select all

FUNCTION fabricas( lnimp, nNimp1, lcodigo, nCodigo1,lproa, nProa )

   LOCAL oFab, oBrw
   LOCAL oDlg
   LOCAL nBut := Array( 4 )
   LOCAL aNimp := Array( 0 )
   LOCAL aProd := Array( 0 )
   LOCAL aProv := Array(0)
 
   LOCAL nCodigo
   local bproveedor
   LOCAL aSelGrad := { { .5, RGB( 255, 255, 251 ), RGB( 255, 237, 178 ) }, ;
      { .5, RGB( 255, 218, 103 ), RGB( 255, 233, 162 ) } }
   LOCAL aGradBarSel := { { .5,RGB( 255,255,251 ), RGB( 255, 196, 178 ) }, ;
      { .5, RGB( 255, 218, 103 ), RGB( 255, 233, 162 ) } }

   LOCAL bprod :=  {|| iif( Empty( oFab:codigo ), "", ( aProd := BPRODU(oFab:codigo ), aProd[ 2 ] ) ) }
   LOCAL bprove := {|| iif( Empty( oFab:npro ), "", ( aProv := Buspro(oFab:npro ), aProv[ 2 ] ) ) }
   LOCAL bimpor := {|| iif( Empty( oFab:nimp ), "", ( aNimp := BUSIMP(oFab:nimp ), aNimp[ 2 ] ) ) }

   DEFAULT lnimp := .F.
   DEFAULT lcodigo := .F.
   DEFAULT lproa := .f.


   nCodigo := iif( lcodigo, nCodigo1, 0 )
   nProa :=iif( lproa, nProa, 0 )



   IF !pasaje( "fabricas" );RETURN nil; ENDIF
   DATABASE oFab

   IF lnimp
      oFab:setfilter( "nimp  =" + AllTrim( Str( nNimp ) ) )
      oFab:gotop()
   ENDIF

   IF lcodigo
      oFab:setfilter( "codigo  =" + AllTrim( Str( nCodigo ) ) )
      oFab:gotop()
   ENDIF

   if lproa
      oFab:setfilter( "npro  =" + AllTrim( Str( nProa ) ) )
      oFab:gotop()
   endif


   DEFINE DIALOG oDlg resource "Brx_grup1"
   oDlg:cCaption := "Documentos Fábricas"





   REDEFINE XBROWSE oBrw ID 103  of oDlg update;
      columns 1, 2, 3, 4, 5, 6, 7;
      HEADERS "Estado", "Proveedor", "Producto", "Fábrica", "Guardado", "Vto", "Alta" ;
      OBJECT oFab lines cell   ON DBLCLICK  (ShellExecute( , "open",   ( oApp:dirdoc + oFab:buscar ),,, 1 )
   // COLSIZES 85, 90, 290, 80, 95, 65, 80;



   WITH OBJECT oBrw
      :nMarqueeStyle := 4
      :nColDividerStyle := LINESTYLE_BLACK
      :nStretchCol := STRETCHCOL_LAST
      :bClrSelFocus  := {|| { CLR_BLACK, colores1( oBrw,oFab ) } }
      :lColDividerComplete := .F.
      :l2007 := .T.
      :lAllowColHiding := .F.
      :bClrSel := {|| { nRGB(  0,  0,255 ),aGradBarSel } }
      :bClrStd := {|| { rgb( 0,0,0 ),colores( oBrw,oFab ) } }
      :lIncrFilter      := .t.
      :lSeekWild        := .t.
      :cFilterFld       := "oFab:buscar"

   END WITH


   WITH OBJECT oBrw:aCols[ 1 ]
      :bStrData := {|| iif( !oFab:estado, "Activo", "Vencido" )  }
      :nDataStrAlign := AL_LEFT
      :nWidth := 70
   END WITH

   WITH OBJECT oBrw:aCols[ 2 ]
      :bStrData := {|| IIF(!Empty(oFab:nImp), Eval( bimpor), Eval( bprove) )}
      :nDataStrAlign := AL_LEFT
      :nWidth := 200
   END WITH

   WITH OBJECT oBrw:aCols[ 3 ]
      :bStrData := {|| Eval( bprod ) }
      :nDataStrAlign := AL_LEFT
      :nWidth := 150
   END WITH

   WITH OBJECT oBrw:aCols[ 4 ]
      :bStrData := {|| oFab:fabrica }
      :nDataStrAlign := AL_LEFT
      :nWidth := 150
   END WITH

   WITH OBJECT oBrw:aCols[ 5 ]
      :bStrData := {|| convertir(oFab:buscar) }
      :nDataStrAlign := AL_LEFT
   END WITH

   WITH OBJECT oBrw:aCols[ 6 ]
      :bStrData := {|| oFab:vto }
      :cEditPicture := "@d"
      :nDataStrAlign := AL_LEFT
   END WITH



   WITH OBJECT oBrw:aCols[ 7 ]
      :bStrData := {|| oFab:alta }
      :cEditPicture := "@d"
      :nDataStrAlign := AL_LEFT

   END WITH

   REDEFINE BTNBMP  nBut[ 1 ] id 106 OF oDlg resource "BTNNUEVO", "BTNNUEVO1"  ACTION  nuefab(  oFab, oBrw, .T., lnimp )

   REDEFINE BTNBMP  nBut[ 2 ] id 107 OF oDlg resource "BTNCAMBIAR", "BTNCAMBIAR1" ACTION  nuefab(  oFab, oBrw, .F.,lnimp )

   REDEFINE BTNBMP  nBut[ 3 ] id 108 OF oDlg resource "BTNELIMINA", "BTNELIMINA1" ACTION  borro(  oFab, oBrw )
   
  // REDEFINE BTNBMP  nBut[ 4 ] id 104 OF oDlg resource "BTBUSCAR", "BTBUSCAR1" ACTION  FABRICA1(  )   

   oDlg:oClient := oBrw


   ACTIVATE DIALOG oDlg

   oFab:deactivate()

RETURN NIL

Re: Recursos

Posted: Mon Oct 14, 2019 1:02 am
by surGom
Si creo el dialogo desde código funciona (código que saque de samples)

Code: Select all

#INCLUDE  "fivewin.ch"

memvar oapp

function FABRICA1()


   local oDlg, oBrw, oFont

   IF !pasaje("FABRICAS"); return nil; endif

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   DEFINE DIALOG oDlg SIZE 800,300 PIXEL FONT oFont
   @ 30,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg DATASOURCE "FABRICAS" ;
      COLUMNS "FABRICA","BUSCAR"  ;
      CELL LINES AUTOSORT NOBORDER ON DBLCLICK  (ShellExecute( , "open",   ( oapp:dirdoc +buscar ),,, 1 ), HB_GCALL())

   WITH OBJECT oBrw
      :lIncrFilter      := .t.
      :lSeekWild        := .t.
      :cFilterFld       := "BUSCAR"
      //
      :CreateFromCode()
   END


   WITH OBJECT oBrw:aCols[ 2 ]
      :bStrData := {|| convertir(buscar) }
      :nDataStrAlign := AL_LEFT
   END WITH



   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont
   DBCloseArea()



return nil
Alguien sabe porque el error en el primer código

Luis

Re: Recursos

Posted: Mon Oct 14, 2019 1:39 am
by surGom
Me parece que el problema es el uso de la clase database algo estoy definiendo mal. Si me pueden orientar

Gracias

Re: Recursos

Posted: Mon Oct 14, 2019 1:13 pm
by karinha
Intenta asi:

Code: Select all

   OrdListAdd( "FABRICANTE", "NIMP", "CODIGO", "NPRO" )  // indices.

   // OrdDescend( ,,.T. ) // - Crescente
   OrdDescend( ,,.F. )    // - Decrescente

   DATABASE oFab

   oFab:Gotop()
   oFab:Load()
   oFab:SetBuffer( .T. )
 

Re: Recursos (solucionado mas o menos)

Posted: Mon Oct 14, 2019 3:59 pm
by surGom
Si lo solucioné quitando la clase database (por eso lo de mas o menos), porque para mi lo ideal era hacerlo con esta clase, pero indudablemente hay algo que hago mal al declararla, funciona perfecto todo menos la búsqueda incremental. Les agrego el código nuevo por si alguien sabe que esta mal en el código anterior que es el que quería utilizar.
Este funciona perfecto

Code: Select all

#include "Fivewin.ch"



MEMVAR oApp
               //  fabricas( .F.,0 , .T., oData:codigo,.f.,0 )
FUNCTION fabricas( lnimp, nNimp, lcodigo, nCodigo1,lproa, nProa )

   LOCAL  oBrw
   LOCAL oDlg
   LOCAL nBut := Array( 4 )
   LOCAL aNimp := Array( 0 )
   LOCAL aProd := Array( 0 )
   LOCAL aProv := Array(0)
 //  LOCAL nNimp := iif( lnimp, nNimp1, 0 )
   LOCAL nCodigo
   local bproveedor
   LOCAL aSelGrad := { { .5, RGB( 255, 255, 251 ), RGB( 255, 237, 178 ) }, ;
      { .5, RGB( 255, 218, 103 ), RGB( 255, 233, 162 ) } }
   LOCAL aGradBarSel := { { .5,RGB( 255,255,251 ), RGB( 255, 196, 178 ) }, ;
      { .5, RGB( 255, 218, 103 ), RGB( 255, 233, 162 ) } }

   LOCAL bprod
   LOCAL bprove
   LOCAL bimpor, cAlias

   DEFAULT lnimp := .F.
   DEFAULT lcodigo := .F.
   DEFAULT lproa := .f.


   nCodigo := iif( lcodigo, nCodigo1, 0 )
   nProa :=iif( lproa, nProa, 0 )

 /*  if PCount() != 0
      bproveedor := IIF(lnimp,bimpor,bprove)
   endif  */

   IF !pasaje( "fabricas" );RETURN nil; ENDIF
      cAlias := alias(select())
  // DATABASE oFab

  IF lnimp
       set filter to (cAlias)->nimp  = nNimp 
       dbgotop()
   ENDIF

   IF lcodigo
      set filter to (cAlias)->codigo  = nCodigo 
      dbgotop()
   ENDIF

   if lproa
      set filter to (cAlias)->npro  =  nProa 
      dbgotop()
   endif
   bprod :=  {|| iif( Empty(  (cAlias)->codigo ), "", ( aProd := BPRODU((cAlias)->codigo ), aProd[ 2 ] ) ) }
   bprove := {|| iif( Empty(  (cAlias)->npro ), "", ( aProv := Buspro((cAlias)->npro ), aProv[ 2 ] ) ) }
   bimpor := {|| iif( Empty(  (cAlias)->nimp ), "", ( aNimp := BUSIMP((cAlias)->nimp ), aNimp[ 2 ] ) ) }   

   DEFINE DIALOG oDlg resource "Brx_grup1"
   oDlg:cCaption := "Documentos Fábricas"





   REDEFINE XBROWSE oBrw ID 103  of oDlg update;
      columns 1, 2, 3, 4, 5, 6, 7;
      HEADERS "Estado", "Proveedor", "Producto", "Fábrica", "Guardado", "Vto", "Alta" ;
      COLSIZES 60, 90, 120, 80, 200, 65, 65;      
      DATASOURCE "FABRICAS" lines cell   ON DBLCLICK  (ShellExecute( , "open",   ( oApp:dirdoc + (cAlias)->buscar ),,, 1 ), HB_GCALL())




   WITH OBJECT oBrw
      :nMarqueeStyle := 4
      :nColDividerStyle := LINESTYLE_BLACK
      :nStretchCol := STRETCHCOL_LAST
      :bClrSelFocus  := {|| { CLR_BLACK, colores1( oBrw, cAlias ) } }
      :lColDividerComplete := .F.
      :l2007 := .T.
      :lAllowColHiding := .F.
      :bClrSel := {|| { nRGB(  0,  0,255 ),aGradBarSel } }
      :bClrStd := {|| { rgb( 0,0,0 ),colores( oBrw, cAlias ) } } 
      :lIncrFilter      := .t.
      :lSeekWild        := .t.
      :cFilterFld       := "buscar"

   END WITH


   WITH OBJECT oBrw:aCols[ 1 ]
      :bStrData := {|| iif( !(cAlias)->estado, "Activo", "Vencido" )  }
      :nDataStrAlign := AL_LEFT
      :nWidth := 70
   END WITH

   WITH OBJECT oBrw:aCols[ 2 ]
      :bStrData := {|| IIF(!Empty((cAlias)->nImp), Eval( bimpor), Eval( bprove)) }
      :nDataStrAlign := AL_LEFT
      :nWidth := 200
   END WITH

   WITH OBJECT oBrw:aCols[ 3 ]
      :bStrData := {|| Eval( bprod), aProd[ 2 ]   }
      :nDataStrAlign := AL_LEFT
      :nWidth := 150
   END WITH

   WITH OBJECT oBrw:aCols[ 4 ]
      :bStrData := {|| (cAlias)->fabrica }
      :nDataStrAlign := AL_LEFT
      :nWidth := 150
   END WITH

   WITH OBJECT oBrw:aCols[ 5 ]
      :bStrData := {|| convertir((cAlias)->buscar) }
      :nDataStrAlign := AL_LEFT
   END WITH

   WITH OBJECT oBrw:aCols[ 6 ]
      :bStrData := {|| (cAlias)->vto }
      :cEditPicture := "@d"
      :nDataStrAlign := AL_LEFT
   END WITH



   WITH OBJECT oBrw:aCols[ 7 ]
      :bStrData := {|| (cAlias)->alta }
      :cEditPicture := "@d"
      :nDataStrAlign := AL_LEFT

   END WITH

   REDEFINE BTNBMP  nBut[ 1 ] id 106 OF oDlg resource "BTNNUEVO", "BTNNUEVO1"  ACTION  nuefab(  oBrw, .T., lnimp, cAlias )

   REDEFINE BTNBMP  nBut[ 2 ] id 107 OF oDlg resource "BTNCAMBIAR", "BTNCAMBIAR1" ACTION  nuefab(  oBrw, .F.,lnimp, cAlias )

   REDEFINE BTNBMP  nBut[ 3 ] id 108 OF oDlg resource "BTNELIMINA", "BTNELIMINA1" ACTION  borro( oBrw )

  // REDEFINE BTNBMP  nBut[ 4 ] id 104 OF oDlg resource "BTBUSCAR", "BTBUSCAR1" ACTION  FABRICA1(  )

   oDlg:oClient := oBrw


   ACTIVATE DIALOG oDlg

   DBCloseAll()

RETURN NIL

///////////////////////////////////////////////////////////////////////////////
Muchas Gracias Karinha por contestarme creo que el problema esta al utilizar la clase database
y yo no tengo idea de como reformularlo. Ya que comparando este código con el anterior son iguales

Luis