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.
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