Recursos

Post Reply
surGom
Posts: 624
Joined: Wed Oct 19, 2005 12:03 pm
Contact:

Recursos

Post by surGom »

Se puede utilizar
:lIncrFilter ,etc

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

Gracias
surGom
Posts: 624
Joined: Wed Oct 19, 2005 12:03 pm
Contact:

Re: Recursos

Post 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
surGom
Posts: 624
Joined: Wed Oct 19, 2005 12:03 pm
Contact:

Re: Recursos

Post 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
surGom
Posts: 624
Joined: Wed Oct 19, 2005 12:03 pm
Contact:

Re: Recursos

Post by surGom »

Me parece que el problema es el uso de la clase database algo estoy definiendo mal. Si me pueden orientar

Gracias
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Recursos

Post 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. )
 
João Santos - São Paulo - Brasil
surGom
Posts: 624
Joined: Wed Oct 19, 2005 12:03 pm
Contact:

Re: Recursos (solucionado mas o menos)

Post 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
Post Reply