Recursos

Recursos

Postby surGom » Sun Oct 13, 2019 3:39 pm

Se puede utilizar
:lIncrFilter ,etc

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

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

Re: Recursos

Postby surGom » Mon Oct 14, 2019 12:57 am

Les dejo lo que hice y no funciona la busqueda incremental :

Code: Select all  Expand view
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: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: Recursos

Postby surGom » Mon Oct 14, 2019 1:02 am

Si creo el dialogo desde código funciona (código que saque de samples)

Code: Select all  Expand view
#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: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: Recursos

Postby surGom » Mon Oct 14, 2019 1:39 am

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

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

Re: Recursos

Postby karinha » Mon Oct 14, 2019 1:13 pm

Intenta asi:

Code: Select all  Expand view

   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 - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Recursos (solucionado mas o menos)

Postby surGom » Mon Oct 14, 2019 3:59 pm

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  Expand view
#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
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 72 guests