FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour conflicto con database
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM

conflicto con database

Posted: Tue Oct 22, 2019 12:59 AM
Buenas noches, anteriormente hice una consulta con el t铆tulo Recursos. Mal titulado. El problema era con la clase database. Les explico estoy utilizando este c贸digo
Ejemplo 1
Code (fw): Select all Collapse
DEFINE DIALOG odlg resource "lisbus_1" ICON surge
odlg:cCaption:= "Clientes"

聽 REDEFINE LISTBOX olbm FIELDS (odbf:calias) ->NAPE ID 101;
聽 聽 聽 聽 聽 聽 聽ON DBLCLICK (lacepto:= .t.,odlg:end()) 聽of odlg
聽 聽 聽 聽 聽 聽 聽olbm:setfocus()
聽 聽 聽 聽 聽 聽 聽olbm:bSkip := { | nRecs | odbf:Skipper( nRecs ) }
聽 聽 聽 聽 聽 聽 聽olbm:bSeek := {|lRet| olbm:DbfSeek(.T.) }
聽 聽 聽 聽 聽 聽 聽oLbm:bkeydown := 聽{|nkey,nflags| iif(nKey = VK_RETURN, nBut:setfocus(),.f.)}
聽 聽 聽 聽 聽 聽 聽olbm:nClrBackFocus := CLR_CYAN
聽 聽 聽 聽 聽 聽 聽olbm:nClrForeFocus := CLR_WHITE


TDATABASE fwh 17.9
este c贸digo no funciona se queda clavado en el primer registro y s铆 funciona el programa que env铆e anteriormente en la consulta titulada "Recursos" que era la b煤squeda incremental y filtrado en la clase xbrowse
TDATABASE fwh 15.5
el ejemplo1 funciona perfectamente pero el de Recursos se queda clavado.

Lo que logr茅 ver es que si compilo con la clase de database 17.9 y en el ejemplo!1 quito la l铆nea
Code (fw): Select all Collapse
 聽 聽 聽 聽 聽 聽 olbm:bSkip := { | nRecs | odbf:Skipper( nRecs ) }

EL listbox navega pero al seleccionarlo no me muestra los datos correspondientes al mismo sino que muestra el primero del listbox,.
Y si funciona el xbrowse del programa la consulta anterior Recursos.

El problema que tengo es que necesito hacer la busqueda en el Txbrowse (ej de Recursos), pero el problema es que el ejemplo 1 lo utiliz贸 en muchas b煤squedas de distintos items (clientes, proveedores, productos, etc)

Alguien tendr铆a una idea de que puedo modificar en el ejemplo 1 para poder usar la clase database 17.9


Muchas Gracias
Posts: 8559
Joined: Tue Dec 20, 2005 07:36 PM
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM

Re: conflicto con database

Posted: Tue Oct 22, 2019 11:10 PM
Gracias karinha, pero no encuentro como hacer para que me lea el dato que necesito.
Quitando la linea, perd贸n por lo reiterativo, de mi c贸digo compilado con la database fw17:

Code (fw): Select all Collapse
 olbm:bSkip := { | nRecs | odbf:Skipper( nRecs ) }


tecleando letra por letra buscando el cliente llega al mismo, pero al querer editarlo lo que hace es editarme el primer cliente, lo que necesito es que aunque sea me lea el dato que busque y con eso hacer un seek a la base de datos con otro c贸digo. No quiero pasar todos los browse a xbrowse.
Mis conocimientos son limitados para tocar c贸digos fuentes de fw y aparte no es mi gusto cambiarlos, por eso sustitu铆 por la clase database del FW15 y para el programa funcionaba todo perfecto, hasta que quise utilizar la busqueda en xbrowse.
Y generalmente me pasa que soluciono las cosas no por mi sapiencia sino por lo del burro que toco la flauta, es decir de casualidad.
Como puedo sacar ese dato que teclee ?

Muchas Gracias
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM

Re: conflicto con database

Posted: Tue Oct 22, 2019 11:17 PM
AH me olvide de comentar que en la clase database del fw17

Code (fw): Select all Collapse
 METHOD Skipper( nRecords ) // for use by xbrowse only. do not use in application


ser谩 por esto que quitandolo el wbrowse funciona la busqueda en el listbox, pero no en la base.
Bueno la pregunta es como hago para que lo que busco en el listbox y encuentro lo haga en la base de datos?

Luis
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM

Re: conflicto con database

Posted: Thu Oct 24, 2019 01:12 AM
Hola bueno logr茅 hacerlo funcionar lo que hice funcionar

DEFINE ICON surge resource "icoprog"

DEFINE DIALOG oDlg resource "lisbus_1" ICON surge
odlg:= "Clientes"

REDEFINE LISTBOX olbm FIELDS (oDbf:calias) ->NAPE ID 101;
ON DBLCLICK (lacepto:= .t.,odlg:end()) of odlg
olbm:setfocus()
olbm:bSkip := { | nRecs | odbf:Skipper( nRecs ) } 1-Quite esta parte
olbm:bSeek := {|lRet| olbm:DbfSeek(.T.) }
oLbm:bkeydown := {|nkey,nflags| iif(nKey = VK_RETURN, nBut:setfocus(),.f.)}
olbm:nClrBackFocus := CLR_CYAN
olbm:nClrForeFocus := CLR_WHITE
REDEFINE BUTTON NBUT ID 102 ACTION (lacepto := .t.,odlg:end())


REDEFINE BUTTON ID 103 ACTION( clientes( olbm, .t.,odbf),olbm:refresh()) 2-AGrego algo



ACTIVATE DIALOG ODLG

1-Quite esta parte Quitando esto con la database de fwh17 navega sobre el wbrowse

2-AGrego algo
Con la databsae fwh15 con solo pasar odbf me mandaba el registro completo de d贸nde me hab铆a posicionado. Lo que hice fue pasar (odbf:calias)->nclia que viene a ser el nro de cliente y antes de abrir el di谩logo que muestro los datos hago un odbf:seek(nclia) y ahora s铆 me muestra los datos que necesito
QUeda as铆

clientes( olbm, .t.,odbf,(odbf:calias)->ncli)

function clientes( olbm, .t.,odbf, nclia)

odbf:seek(nclia)

y ahora puedo ver todos los datos, antes me mostraba el del primer registro de la base de datos


Funciona pero no me gusta. Me parece que voy a pasar todo a xbrowse

Muchas Gracias por su atenci贸n y paciencia

Luis

Continue the discussion