FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ayuda con un xbrowse
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM

ayuda con un xbrowse

Posted: Wed Jan 27, 2016 08:30 PM

Necesito me ayudeis con un xbrowse ... es una cosa muy concreta y voy a intentar resumirla a ver si me explico bien ...
En xbrowse de varias columnas con alias de una dbf ... en su primera columna se colocan unos bitmpas y nos valores que son calculados en una funci贸n muy compleja ...

obrW:aCols[1]:bBmpData := { || ncondicion( cAlias ) } // devuelve un valor numerico del 1 al 5
obrW:aCols[1]:bEditVale := { || ponCaracter( ncondicion( calias ) ) } // devuelve un car谩cter que depende del valor de nCondicion

El tema es que la fusi贸n nCondicion es una funci贸n compleja que lleva su tiempo y al ejecutarse por duplicado hace el xbrowse bastante lento . como podr铆a codificarlo para que solo se ejecutase una vez.
Seguro que es sencillo pero no se realmente como hacerlo .
Saludos.

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

Re: ayuda con un xbrowse

Posted: Wed Jan 27, 2016 08:56 PM
mastintin wrote:Necesito me ayudeis con un xbrowse ... es una cosa muy concreta y voy a intentar resumirla a ver si me explico bien ...
En xbrowse de varias columnas con alias de una dbf ... en su primera columna se colocan unos bitmpas y nos valores que son calculados en una funci贸n muy compleja ...

obrW:aCols[1]:bBmpData := { || ncondicion( cAlias ) } // devuelve un valor numerico del 1 al 5
obrW:aCols[1]:bEditVale := { || ponCaracter( ncondicion( calias ) ) } // devuelve un car谩cter que depende del valor de nCondicion

El tema es que la fusi贸n nCondicion es una funci贸n compleja que lleva su tiempo y al ejecutarse por duplicado hace el xbrowse bastante lento . como podr铆a codificarlo para que solo se ejecutase una vez.
Seguro que es sencillo pero no se realmente como hacerlo .
Saludos.


Manuel, lo hago "al vuelo", pero se me ocurre algo asi

Yo modificaria la function nCondicion( cAlias ) para que devolviera un array con los dos valores { valor numerico 1-5, caracter }

Code (fw): Select all Collapse
 obrW:aCols[1]:bBmpData := {  ||  MyCondicion( cAlias, oBrw, ) } // devuelve un valor numerico  del 1 al 5 
 obrW:aCols[1]:bEditVale := {  ||   ponCaracter( oBrw:cargo[ 2 ] )  }  // devuelve un car谩cter que depende del valor de nCondicion

.../...

Function MyCondicion( cAlias, oBrw, nPos )

   DEFAULT nPos := 0
   if Empty( nPos )
      oBrw:Cargo  := nCondicion( cAlias )
      nPos             := 1
   endif

Return oBrw:Cargo[ nPos ]   //1
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM

Re: ayuda con un xbrowse

Posted: Wed Jan 27, 2016 09:42 PM

Cristobal , muy buena idea usar oBrw:cargo para guardar el valor .
Con esto estar铆a solucionado siempre que bBmpData se ejecute antes que bEditValue y as铆 obrW:cargo tenga el valor correcto .

podr铆a quedar as铆 :

obrW:aCols[1]:bBmpData := { || obrW:Cargo:=ncondicion( cAlias ), obrW:cargo } // devuelve un valor numerico del 1 al 5
obrW:aCols[1]:bEditVale := { || ponCaracter( obrW:cargo ) } // devuelve un car谩cter que depende del valor de nCondicion

Ma帽ana lo miro y cometo ...

Posts: 1516
Joined: Thu May 27, 2010 02:06 PM

Re: ayuda con un xbrowse

Posted: Thu Jan 28, 2016 11:23 AM

solucionado usando Cargo . Gracias. :D

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

Re: ayuda con un xbrowse

Posted: Thu Jan 28, 2016 11:25 AM

Me alegro mucho, se帽or

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces

Continue the discussion