Se puede utilizar
:lIncrFilter ,etc
desde recursos? Ya que no lo puedo hacer funcionar, y no encuentro en el forum ejemplos.
Gracias
Recursos
Re: Recursos
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
Si creo el dialogo desde código funciona (código que saque de samples)
Alguien sabe porque el error en el primer código
Luis
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
Luis
Re: Recursos
Me parece que el problema es el uso de la clase database algo estoy definiendo mal. Si me pueden orientar
Gracias
Gracias
Re: Recursos
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
Re: Recursos (solucionado mas o menos)
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
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
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
///////////////////////////////////////////////////////////////////////////////
y yo no tengo idea de como reformularlo. Ya que comparando este código con el anterior son iguales
Luis