FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour errores de xbrowse ??? NO SOLUCIONADO ??? AYUDA
Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
errores de xbrowse ??? NO SOLUCIONADO ??? AYUDA
Posted: Fri Jan 02, 2015 09:35 PM

Buenas tardes ... solicito ayuda al foro

Se est谩n presentando espor谩dicamente estos errores

Error # 1

Application

Path and name: C:\RusSoft\ZERUS\ZERUSWIN.EXE (32 bits)
Size: *** bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20141202)
FiveWin Version: FWHX 14.12
Windows version: 6.2, Build 9200

Time from start: 0 hours 6 mins 54 secs
Error occurred at: 01/02/2015, 16:11:10
Error description: Error BASE/1133 Bound error: array assign
Args:
[ 1] = N 15

Stack Calls

Called from: source\classes\xbrowse.prg => TXBROWSE:GODOWN( 2975 )
Called from: source\classes\xbrowse.prg => TXBROWSE:MOUSEWHEEL( 3953 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: Source\Classes\control.prg => TCONTROL:HANDLEEVENT( 1733 )
Called from: source\classes\xbrowse.prg => TXBROWSE:HANDLEEVENT( 12612 )
Called from: Source\Classes\window.prg => _FWH( 3345 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: Source\Classes\dialog.prg => TDIALOG:ACTIVATE( 286 )
Called from: C:\Desarro\ZerusGes\VersionActual\FUENTES\COMUNES\FW_FUNCSST1.PRG => BROWSEMY( 3014 )

Error # 2

-------------------- Internal Error Handling Information ---------------------

Subsystem Call ....: BASE
System Code .......: 1133
Default Status ....: .F.
Description .......: Bound error
Operation .........: array assign
Arguments .........: [ 1] = Type: N Val: 1
Involved File .....:
Dos Error Code ....: 0

Trace Through:

TXBROWSE:GOUP : 2,887 in Module: source\classes\xbrowse.prg
TXBROWSE:KEYDOWN : 2,310 in Module: source\classes\xbrowse.prg
TWINDOW:HANDLEEVENT : 0 in Module:
TCONTROL:HANDLEEVENT : 1,733 in Module: Source\Classes\control.prg
TXBROWSE:HANDLEEVENT : 12,612 in Module: source\classes\xbrowse.prg
_FWH : 3,341 in Module: Source\Classes\window.prg
DIALOGBOXINDIRECT : 0 in Module:
TDIALOG:ACTIVATE : 286 in Module: Source\Classes\dialog.prg
BUSCAREGISTRO : 764 in Module: C:\Desarro\ZerusGes\VersionActual\FUENTES\COMUNES\FW_FUNCSST3.PRG

//*********
c贸digo de construcci贸n con txbrowse

//*********

FUNCTION BrowseLibre( oDlgSel ,vConBrw, oPanBrw, cAliTab,cFunEsp, vFunBrw,cManOrd,cActbus,fFunDCl,cTipCol,nFonBro )

 LOCAL oCajDia, cCol, aItem , oBrwFW2 , K := 1 , oCol

 LOCAL nColPos := 1

 local aRowGrad, aSelGrad, aStdGrad

 local n := RGB( 157, 248, 255 )

 LOCAL aFont := Array( 5 )
 LOCAL oFonBro

 DEFINE FONT aFont[ 1 ] NAME "Arial" SIZE 8, 10
 DEFINE FONT aFont[ 2 ] NAME "Times New Roman" SIZE 10, 16
 DEFINE FONT aFont[ 3 ] NAME "Arial Black" SIZE 12, 10
 DEFINE FONT aFont[ 4 ] NAME "Courier New" SIZE 14, 10 BOLD
 DEFINE FONT aFont[ 5 ] NAME "Tahoma" SIZE 0, -12

 IF nFonBro == NIL
    oFonBro :=  M->oFonAc11
 ELSEIF nFonBro == 1
    oFonBro := aFont[ 1 ]
 ELSEIF nFonBro == 2
    oFonBro := aFont[ 2 ]
 ELSEIF nFonBro == 3
    oFonBro := aFont[ 3 ]
 ELSEIF nFonBro == 4
    oFonBro := aFont[ 4 ]
 ELSEIF nFonBro == 5
    oFonBro := aFont[ 5 ]
 ELSE
    oFonBro :=  M->oFonAc11
 ENDIF


 XbrNumFormat( 'E', .t. )

 aRowGrad := { { .5, RGB( 232, 241, 252 ), RGB(  232, 241, 252 ) }, ;
               { .5, RGB( 210, 225, 244 ), RGB(  235, 243, 253 ) } }


 aSelGrad := { { .5, RGB( 255, 255, 251 ), RGB( 255, 237, 178 ) }, ;
               { .5, RGB( 255, 218, 103 ), RGB( 255, 233, 162 ) } }


 SELECT &cAliTab

 IF cManOrd == NIL
    (cAliTab)->( DBGOTOP() )
 ENDIF



 WITH OBJECT ( oBrwFW2 := TXBrowse():New( oPanBrw ) )

     //:lKinetic            := .F.
     :nMarqueeStyle       := MARQSTYLE_HIGHLCELL
     :nColDividerStyle    := LINESTYLE_BLACK
     :nRowDividerStyle    := LINESTYLE_BLACK
     :lColDividerComplete := .T.
     :nHeaderLines        := 1
     :nFooterLines        := 1
     :nDataLines          := 1
     :lFooter             := .T.
     :lFastEdit           := .T.
     :nFreeze             := 1
     :cAlias              := cAliTab

     :nStretchCol   := 1
     :nMarqueeStyle := 4
     :bClrSelFocus  := { || { CLR_GREEN, aSelGrad } }
     :bClrRowFocus  := { || { CLR_GREEN, aRowGrad } }


     IF fFunDCl <> NIL
        :bLDblClick := { ||  IF(fFunDCl=="FIN",oDlgSel:End() , &(fFunDCl) ) }
     ENDIF

     IF cActBus <> NIL // ALIAS(cAliTab) <> "LEC" .OR.
        :bSeek := {|c| DBSEEK(UPPER(C) ) }
     ENDIF

     :bKeyDown  := { | nKey | EvaluaMyTecla(oDlgSel  ,cAliTab,oBrwFW2,@nKey,cFunEsp,vFunBrw )  }

     FOR EACH aItem IN vConBrw

        WITH OBJECT (oCol := oBrwFW2:AddCol())


             <!-- s:o --><img src="{SMILIES_PATH}/icon_surprised.gif" alt=":o" title="Surprised" /><!-- s:o -->DataFont :=  {|| oFonBro  }
             :bStrData := &amp;( &quot;{||&quot; + aItem[ 1 ] + &quot;}&quot; )
             SELECT &amp;cAliTab  // ASEGURAR SEGUIR EN EL ALIAS INICIAL
             :cHeader  := aItem[ 2 ]
             :nHeadStrAlign := AL_CENTER
             IF aItem[ 3 ] &lt;&gt; NIL
                :cEditPicture  := aItem[ 3 ]
             ENDIF
             IF aItem[ 5 ] &lt;&gt; NIL
                :nWidth := aItem[ 5 ] * 8
             ENDIF
             IF aItem [ 4 ]          // SI ES VERDADERO HABILITA CAPTURA CON GET
                :nEditType   = EDIT_GET
                :lAutoSave := .F.

                :bOnPostEdit := {|o, v, n| IIF ( n != VK_ESCAPE, ModificaColumna(oBrwFW2,cAliTab,SUBS(ALLTRIM(aItem[1]),ATNUM('&gt;',aItem[1],1)+1),v,;
                                &quot;VALID LOCAL&quot;,IF( LEN(aItem)&gt;5,aItem[6],NIL),IF(LEN(aItem)&gt;6,aItem[7],NIL),IF(LEN(aItem)&gt;7,aItem[8],NIL) ), NIL ) }

             ENDIF
        END
        :aCols[ :nFreeze ]:bClrStd  := {|| { RGB(191,51,4) ,RGB(234,234,234)  } } // CLR_WHITE, CLR_BLUE
     NEXT nFor

    IF cTipCol &lt;&gt; NIL

       IF ALLTRIM( buscaDriverTabla(cAliTab) ) == &quot;SQLRDD&quot; .OR. ALLTRIM( buscaDriverTabla(cAliTab)) == &quot;SQLEX&quot;
           :bClrStd    := { || If( (cAliTab)-&gt;( recno() )  % 2 == 0,  { CLR_WHITE, RGB( 234,234,234 ) },   { RGB(0,0,0), RGB( 255,255,242 ) } ) }
       ELSE
           :bClrStd    := { || If( oBrwFW2:KeyNo() % 2 == 0, {  CLR_WHITE, RGB( 234,234,234 ) },  {  RGB(0,0,0), RGB( 255,255,242 ) } ) }
       ENDIF


     ELSE
       //:bClrStd := {|| {RGB(0,0,0), IIF( MOD( (cAliTab)-&gt;( ORDKEYNO() ) , 2 ) == 0, RGB(234,234,234), RGB(255,255,242) ) } }
       IF ALLTRIM( buscaDriverTabla(cAliTab) ) == &quot;SQLRDD&quot; .OR. ALLTRIM( buscaDriverTabla(cAliTab)) == &quot;SQLEX&quot;
           :bClrStd    := { || If( (cAliTab)-&gt;( recno() )  % 2 == 0,  { RGB(0,0,0), RGB( 234,234,234 ) },   { RGB(0,0,0), RGB( 255,255,242 ) } ) }
       ELSE
           :bClrStd    := { || If( oBrwFW2:KeyNo() % 2 == 0, {  RGB(0,0,0), RGB( 234,234,234 ) },  {  RGB(0,0,0), RGB( 255,255,242 ) } ) }
       ENDIF

     ENDIF


     IF cAliTab == &quot;TRA&quot;
        IF (cAliTab)-&gt;cEstadoTra == &quot;I&quot;
           :bClrStd    := { || If( oBrwFW2:KeyNo() % 2 == 0, ;
                          {  RGB(0,0,0), IF((cAliTab)-&gt;cEstadoTra == &quot;I&quot;, RGB(190,224,156),RGB( 234,234,234 )) },;
                          {  RGB(0,0,0), IF((cAliTab)-&gt;cEstadoTra == &quot;I&quot;, RGB(190,224,156),RGB( 255,255,242 )) } ) }

        ENDIF
     ENDIF

     //:aCols[ 10 ]:bClrStd := {|| { iif( Field-&gt;Salary &gt; 100000, CLR_HRED, CLR_HBLUE), CLR_GRAY } }
     //:aCols[ 10 ]:nDataStrAlign := AL_RIGHT

     :cAlias              := cAliTab
     :CreateFromCode()
     :SetRDD()
     :SetFocus()
     <!-- s:o --><img src="{SMILIES_PATH}/icon_surprised.gif" alt=":o" title="Surprised" /><!-- s:o -->Client             := oBrwFW2
     :AdjClient()
     :SelectCol(nColPos)
   //  :nMoveType = MOVE_NONE

    // oDlgSel:oClient := oBrwFW2

 END

 //oBrwFW2:nMoveType = MOVE_NONE

RETURN BrowseLibre := oBrwFW2

Saludos

JOHNSON RUSSI
COLOMBIA

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: errores de xbrowse ???
Posted: Sat Jan 03, 2015 01:06 PM

The error is not with xbrowse.

Error is here:
:bStrData := &( "{||" + aItem[ 1 ] + "}" )

With xbrowse or anywhere we should not create a codeblock using Loop Variable. Thiis is a well known principle since 16-bit Clipper days. Ignoring this fundamental principle results in error like this.

Example:
WRONG METHOD:

for n := 1 to 5
bCodeBlock := { || aArray[ n ] }
next

We should create codeblock in a different function using the principle of detatched variables.

CORRECT METHOD:
//------------
for n := 1 to 5
bCodeBlock := MakeCodeBlock( aArray, n )
next n

function MakeCodeBlock( aArray, n )
return { || aArray[ n ] }
//------------------

In your above example the correct way is :
//----------------
FOR EACH aItem IN vConBrw
<...........>
:bEditValue := MakeEditValueBlock( aItem[ 1 ] )
<...........>
NEXT
<.......>

static function MakeEditValueBlock( cField )
return &( "{ || " + cField + " }" )

Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: errores de xbrowse ???
Posted: Sat Jan 03, 2015 02:26 PM
I see that you are creating columns in a loop because you wanted to use a common function to create browse from parameters.

XBROWSE command syntax provides a very simple and robust way of creating browse from parameters.

Create a multi-dim array like this:

aColInfo := { ;
{ cExpression1, [ cHeader1 ], [ cPicture1 ], [ nColWidth1 ], [lnAlign1], [cSortOrder1] }, ;
........
{ cExpressionN, [ cHeaderN ], [ cPictureN ], [ nColWidthN ], [lnAlignN], [cSortOrderN] } }

In each row, first column is compulsory. Columns 2 to 6 are optional. Each row can contain different number of elements. You can use NIL to skip a column. The row can also have more than 6 columns.

Now create xbrowse like this:

@ r, c XBROWSE OF oWnd DATASOURCE <cAlias> COLUMNS aColInfo <other clauses>

I am giving a simple example of creating xbrowse with paramters. You can improve upon it for your own requirements.
Code (fw): Select all Collapse
#include "fivewin.ch"

REQUEST DBFCDX

function Main()

聽 聽local oRs, oCn
聽 聽local aColInfo

聽 聽aColInfo := { ;
聽 聽{ "TRIM(FIRST)+', '+TRIM(LAST)", "CustName", nil, 150 }, ;
聽 聽{ "Age", nil, "999", nil, nil, nil, .t. }, ;
聽 聽{ "HireDate", nil, "dd-mmm-yyyy", nil, nil, nil, .t. }, ;
聽 聽{ "Salary/10000", "Sal Thou", "9999.9999" } }

聽 聽USE C:\FWH\SAMPLES\CUSTOMER NEW ALIAS CUST SHARED VIA "DBFCDX"
聽 聽SET ORDER TO TAG FIRST

聽 聽ParamXBrowse( "CUST", aColInfo, .t., .t. )

聽 聽CLOSE CUST

聽 聽oCn 聽 := FW_OpenAdoConnection( "c:\fwh\samples\xbrtest.mdb" )
聽 聽oRs 聽 := FW_OpenRecordSet( oCn, "CUSTOMER" )
聽 聽ParamXBrowse( oRs, aColInfo, .t., .t. )
聽 聽oRs:Close()
聽 聽oCn:Close()

return nil

//----------------------------------------------------------------------------//

static function ParamXBrowse( cDataSource, aColInfo, lAutosort, lFastEdit )

聽 聽local oDlg, oBrw, oFont

聽 聽DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
聽 聽DEFINE DIALOG oDlg SIZE 500,500 PIXEL FONT oFont
聽 聽@ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
聽 聽 聽 DATASOURCE cDataSource COLUMNS aColInfo ;
聽 聽 聽 CELL LINES NOBORDER

聽 聽AEval( aColInfo, { |a,i| If( Len( a ) > 6 .and. a[ 7 ] == .t., oBrw:aCols[ i ]:nEditType := EDIT_GET, nil ) } )

聽 聽WITH OBJECT oBrw
聽 聽 聽 :nStretchCol 聽 := STRETCHCOL_WIDEST
聽 聽 聽 :lAutoSort 聽 聽 := ( lAutoSort == .t. )
聽 聽 聽 :lFastEdit 聽 聽 := ( lFastEdit == .t. )
聽 聽 聽 :CreateFromCode()
聽 聽END

聽 聽ACTIVATE DIALOG oDlg CENTERED
聽 聽RELEASE FONT oFont

return nil

//----------------------------------------------------------------------------//


Regards



G. N. Rao.

Hyderabad, India
Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: errores de xbrowse ???
Posted: Mon Jan 05, 2015 02:35 PM

nageswaragunupudi ..

Thanks for your reply, and implement it according to your instructions, I'll put in evidence with my clients and hope for results
regards

Gracias por su respuesta, ya lo implemente seg煤n sus indicaciones, lo pondr茅 en pruebas con mis clientes y esperare los resultados
Saludos

Johnson Russi

Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: errores de xbrowse ???
Posted: Wed Jan 14, 2015 11:14 PM

Antonio.

El error persiste aunque es espor谩dico, ya realice el cambio de:

:bStrData := &( "{||" + aItem[ 1 ] + "}" )

por esta forma:

:bStrData := MakeEditValueBlock( aItem[ 1 ] )

Este error se esta presentando desde la actualizaci贸n de mi versi贸n de fwh 10.04 por 14.12

Anexo error.log

Saludos

Johnson Russi

Application

Path and name: D:\RUSSOFT\zerus\zeruswin.exe (32 bits)
Size: *** bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20141202)
FiveWin Version: FWHX 14.12
Windows version: 6.2, Build 9200

Time from start: 7 hours 55 mins 45 secs
Error occurred at: 01/14/2015, 16:04:49
Error description: Error BASE/1133 Bound error: array assign
Args:
[ 1] = N 14

Stack Calls

Called from: source\classes\xbrowse.prg => TXBROWSE:GODOWN( 2975 )
Called from: source\classes\xbrowse.prg => TXBROWSE:MOUSEWHEEL( 3953 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: Source\Classes\control.prg => TCONTROL:HANDLEEVENT( 1733 )
Called from: source\classes\xbrowse.prg => TXBROWSE:HANDLEEVENT( 12612 )
Called from: Source\Classes\window.prg => _FWH( 3345 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: Source\Classes\dialog.prg => TDIALOG:ACTIVATE( 286 )
Called from: C:\Desarro\ZerusGes\VersionActual\FUENTES\COMUNES\FW_FUNCSST1.PRG => BROWSEMY( 3018 )

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: errores de xbrowse ??? Persiste
Posted: Wed Jan 14, 2015 11:28 PM
Not correct:
Code (fw): Select all Collapse
:bStrData := MakeEditValueBlock( aItem[ 1 ] )


This is correct:
Code (fw): Select all Collapse
for n := 1 to Len( aItem )
:bEditValue := MakeEditValueBlock( aItem, n )
...
...
next n
...
...

//--------------
function MakeEditValueBlock( aArray, n )
return &( "{ || " 聽+ aArray[ n ] + " }" )
//---------------
Regards



G. N. Rao.

Hyderabad, India
Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: errores de xbrowse ??? Persiste
Posted: Thu Jan 15, 2015 12:24 AM

Ok.

Hare la correcci贸n y lo pondr茅 en prueba

Gracias

Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: errores de xbrowse ??? No se corrigi贸
Posted: Thu Jan 22, 2015 01:05 AM

Realice los cambios , pero aun se presenta el error espor谩dicamente

Application

Path and name: D:\ZERUS\ZERUSWIN.EXE (32 bits)
Size: *** bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20141202)
FiveWin Version: FWHX 14.12
Windows version: 6.2, Build 9200

Time from start: 0 hours 0 mins 37 secs
Error occurred at: 01/21/2015, 19:39:58
Error description: Error BASE/1133 Bound error: array assign
Args:
[ 1] = N 15

Stack Calls

Called from: source\classes\xbrowse.prg => TXBROWSE:GODOWN( 2975 )
Called from: source\classes\xbrowse.prg => TXBROWSE:VSCROLL( 2800 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: Source\Classes\control.prg => TCONTROL:HANDLEEVENT( 1733 )
Called from: source\classes\xbrowse.prg => TXBROWSE:HANDLEEVENT( 12612 )
Called from: Source\Classes\window.prg => _FWH( 3345 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: Source\Classes\dialog.prg => TDIALOG:ACTIVATE( 286 )
Called from: C:\Desarro\ZerusGes\VersionActual\FUENTES\COMUNES\FW_FUNCSST1.PRG => BROWSEMY( 2979 )

//*******
FUNCTION BROWSEMY()

 ....

 ACTIVATE DIALOG oDlgSelX  CENTER  ;
          ON INIT ( oDlgSelX  :SetFocus(),;

->FILA 2979 oBrwCon := BrowseLibre(oDlgSelX , vConBrw, oPanBrw, cAliTab,cFunEsp,vFunBrw, cManOrd,cActbus,fFunDCl) , .F. )
RETURN
//****

FUNCTION BrowseLibre( oDlgSel ,vConBrw, oPanBrw, cAliTab,cFunEsp, vFunBrw,cManOrd,cActbus,fFunDCl,cTipCol,nFonBro )

 LOCAL oCajDia, cCol, aItem , oBrwFW2 , K := 1 , oCol

 LOCAL nColPos := 1

 local aRowGrad, aSelGrad, aStdGrad

 local n := RGB( 157, 248, 255 )


 LOCAL aFont := Array( 5 )
 LOCAL oFonBro

 DEFINE FONT aFont[ 1 ] NAME &quot;Arial&quot; SIZE 8, 10
 DEFINE FONT aFont[ 2 ] NAME &quot;Times New Roman&quot; SIZE 10, 16
 DEFINE FONT aFont[ 3 ] NAME &quot;Arial Black&quot; SIZE 12, 10
 DEFINE FONT aFont[ 4 ] NAME &quot;Courier New&quot; SIZE 14, 10 BOLD
 DEFINE FONT aFont[ 5 ] NAME &quot;Tahoma&quot; SIZE 0, -12

 IF nFonBro == NIL
    oFonBro :=  M-&gt;oFonAc11
 ELSEIF nFonBro == 1
    oFonBro := aFont[ 1 ]
 ELSEIF nFonBro == 2
    oFonBro := aFont[ 2 ]
 ELSEIF nFonBro == 3
    oFonBro := aFont[ 3 ]
 ELSEIF nFonBro == 4
    oFonBro := aFont[ 4 ]
 ELSEIF nFonBro == 5
    oFonBro := aFont[ 5 ]
 ELSE
    oFonBro :=  M-&gt;oFonAc11
 ENDIF

 XbrNumFormat( 'E', .t. )

 aRowGrad := { { .5, RGB( 232, 241, 252 ), RGB(  232, 241, 252 ) }, ;
               { .5, RGB( 210, 225, 244 ), RGB(  235, 243, 253 ) } }


 aSelGrad := { { .5, RGB( 255, 255, 251 ), RGB( 255, 237, 178 ) }, ;
               { .5, RGB( 255, 218, 103 ), RGB( 255, 233, 162 ) } }


 SELECT &amp;cAliTab

 IF cManOrd == NIL
    (cAliTab)-&gt;( DBGOTOP() )
 ENDIF



 WITH OBJECT ( oBrwFW2 := TXBrowse():New( oPanBrw ) )

     //:lKinetic            := .F.
     :nMarqueeStyle       := MARQSTYLE_HIGHLCELL
     :nColDividerStyle    := LINESTYLE_BLACK
     :nRowDividerStyle    := LINESTYLE_BLACK
     :lColDividerComplete := .T.
     :nHeaderLines        := 1
     :nFooterLines        := 1
     :nDataLines          := 1
     :lFooter             := .T.
     :lFastEdit           := .T.
     :nFreeze             := 1
     :cAlias              := cAliTab

     :nStretchCol   := 1
     :nMarqueeStyle := 4
     :bClrSelFocus  := { || { CLR_GREEN, aSelGrad } }
     :bClrRowFocus  := { || { CLR_GREEN, aRowGrad } }


     IF fFunDCl &lt;&gt; NIL
        :bLDblClick := { ||  IF(fFunDCl==&quot;FIN&quot;,oDlgSel:End() , &amp;(fFunDCl) ) }
     ENDIF

     IF cActBus &lt;&gt; NIL // ALIAS(cAliTab) &lt;&gt; &quot;LEC&quot; .OR.
        :bSeek := {|c| DBSEEK(UPPER(C) ) }
     ENDIF

     :bKeyDown  := { | nKey | EvaluaMyTecla(oDlgSel  ,cAliTab,oBrwFW2,@nKey,cFunEsp,vFunBrw )  }

     FOR EACH aItem IN vConBrw

        WITH OBJECT (oCol := oBrwFW2:AddCol())

             <!-- s:o --><img src="{SMILIES_PATH}/icon_surprised.gif" alt=":o" title="Surprised" /><!-- s:o -->DataFont :=  {|| oFonBro  }

             :bStrData := MakeEditValueBlock(aItem, 1 )  // cambio seg煤n recomendaci贸n

             :cHeader  := aItem[ 2 ]
             //:Cargo    := aItem[ 1 ]
             :nHeadStrAlign := AL_CENTER

             IF aItem[ 3 ] &lt;&gt; NIL
                :cEditPicture  := aItem[ 3 ]
             ENDIF
             //
             IF aItem[ 5 ] &lt;&gt; NIL
                :nWidth := aItem[ 5 ] * 8
             ENDIF
             //
             IF aItem [ 4 ]          // SI ES VERDADERO HABILITA CAPTURA CON GET

                :nEditType   = EDIT_GET
                :lAutoSave := .F.

                :bOnPostEdit := {|o, v, n| IIF ( n != VK_ESCAPE, ModificaColumna(oBrwFW2,cAliTab,SUBS(ALLTRIM(aItem[1]),ATNUM('&gt;',aItem[1],1)+1),v,;
                                &quot;VALID LOCAL&quot;,IF( LEN(aItem)&gt;5,aItem[6],NIL),IF(LEN(aItem)&gt;6,aItem[7],NIL),IF(LEN(aItem)&gt;7,aItem[8],NIL) ), NIL ) }


             ENDIF
        END

        :aCols[ :nFreeze ]:bClrStd  := {|| { RGB(191,51,4) ,RGB(234,234,234)  } } // CLR_WHITE, CLR_BLUE



     NEXT nFor




    IF cTipCol &lt;&gt; NIL
       // :bClrStd := {|| { CLR_WHITE, IIF( MOD( (cAliTab)-&gt;( ORDKEYNO() ) , 2 ) == 0, RGB(234,234,234), RGB(255,255,242) ) } }

       IF ALLTRIM(M-&gt;cTipSer) == &quot;SQLRDD&quot; .OR. ALLTRIM(M-&gt;cTipSer) == &quot;SQLEX&quot;
           :bClrStd    := { || If( (cAliTab)-&gt;( recno() )  % 2 == 0,  { CLR_WHITE, RGB( 234,234,234 ) },   { RGB(0,0,0), RGB( 255,255,242 ) } ) }
       ELSE
           :bClrStd    := { || If( oBrwFW2:KeyNo() % 2 == 0, {  CLR_WHITE, RGB( 234,234,234 ) },  {  RGB(0,0,0), RGB( 255,255,242 ) } ) }
       ENDIF


     ELSE
       //:bClrStd := {|| {RGB(0,0,0), IIF( MOD( (cAliTab)-&gt;( ORDKEYNO() ) , 2 ) == 0, RGB(234,234,234), RGB(255,255,242) ) } }
       IF ALLTRIM(M-&gt;cTipSer) == &quot;SQLRDD&quot; .OR. ALLTRIM(M-&gt;cTipSer) == &quot;SQLEX&quot;
           :bClrStd    := { || If( (cAliTab)-&gt;( recno() )  % 2 == 0,  { RGB(0,0,0), RGB( 234,234,234 ) },   { RGB(0,0,0), RGB( 255,255,242 ) } ) }
       ELSE
           :bClrStd    := { || If( oBrwFW2:KeyNo() % 2 == 0, {  RGB(0,0,0), RGB( 234,234,234 ) },  {  RGB(0,0,0), RGB( 255,255,242 ) } ) }
       ENDIF

     ENDIF



     IF cAliTab == &quot;TRA&quot;
        IF (cAliTab)-&gt;cEstadoTra == &quot;I&quot;
           :bClrStd    := { || If( oBrwFW2:KeyNo() % 2 == 0, ;
                          {  RGB(0,0,0), IF((cAliTab)-&gt;cEstadoTra == &quot;I&quot;, RGB(190,224,156),RGB( 234,234,234 )) },;
                          {  RGB(0,0,0), IF((cAliTab)-&gt;cEstadoTra == &quot;I&quot;, RGB(190,224,156),RGB( 255,255,242 )) } ) }

        ENDIF
     ENDIF




     //:aCols[ 10 ]:bClrStd := {|| { iif( Field-&gt;Salary &gt; 100000, CLR_HRED, CLR_HBLUE), CLR_GRAY } }
     //:aCols[ 10 ]:nDataStrAlign := AL_RIGHT



     :cAlias              := cAliTab
     :CreateFromCode()
     :SetRDD()
     :SetFocus()
     <!-- s:o --><img src="{SMILIES_PATH}/icon_surprised.gif" alt=":o" title="Surprised" /><!-- s:o -->Client             := oBrwFW2
     :AdjClient()
     :SelectCol(nColPos)

    // oDlgSel:oClient := oBrwFW2




 END

RETURN BrowseLibre := oBrwFW2

//***************

STATIC FUNCTION MakeEditValueBlock(vVecIte,nNroIte)
RETURN &("{||" + vVecIte[nNroIte] + "}")

Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: errores de xbrowse ??? NO SOLUCIONADO ??? AYUDA
Posted: Thu Feb 12, 2015 05:40 PM

Antonio ... buenas tardes

Anexo mas errores de xbrowse.. (tres)

he modificado mi funci贸n para armar el browse seg煤n indicaciones ,,, y el error persiste

1 ...******
Application
===========
Path and name: Z:\ZERUS\zeruswin.exe (32 bits)
Size: *** bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20141202)
FiveWin Version: FWHX 14.12
Windows version: 6.1, Build 7600

Time from start: 0 hours 0 mins 32 secs
Error occurred at: 02/12/2015, 11:35:53
Error description: Error BASE/1133 Bound error: array assign
Args:
[ 1] = N 1

Stack Calls

Called from: source\classes\xbrowse.prg => TXBROWSE:GOUP( 2887 )
Called from: source\classes\xbrowse.prg => TXBROWSE:KEYDOWN( 2310 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: Source\Classes\control.prg => TCONTROL:HANDLEEVENT( 1733 )
Called from: source\classes\xbrowse.prg => TXBROWSE:HANDLEEVENT( 12612 )
Called from: Source\Classes\window.prg => _FWH( 3345 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: Source\Classes\dialog.prg => TDIALOG:ACTIVATE( 286 )

2...******

Application

Path and name: Y:\RUSSOFT\ZERUS\zeruswin.exe (32 bits)
Size: *** bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20141202)
FiveWin Version: FWHX 14.12
Windows version: 6.1, Build 7601 Service Pack 1

Time from start: 1 hours 43 mins 30 secs
Error occurred at: 02/12/2015, 10:28:33
Error description: Error BASE/1111 Argument error: LEN
Args:
[ 1] = U

Stack Calls

Called from: => LEN( 0 )
Called from: source\classes\xbrowse.prg => (b)TXBROWSE:TXBROWSE( 566 )
Called from: => TXBROWSE:COLATPOS( 0 )
Called from: source\classes\xbrowse.prg => (b)TXBROWSE:TXBROWSE( 568 )
Called from: => TXBROWSE:SELECTEDCOL( 0 )
Called from: source\classes\xbrowse.prg => TXBROWSE:PAINT( 1390 )
Called from: source\classes\xbrowse.prg => TXBROWSE:DISPLAY( 1368 )
Called from: Source\Classes\control.prg => TCONTROL:HANDLEEVENT( 1699 )
Called from: source\classes\xbrowse.prg => TXBROWSE:HANDLEEVENT( 12612 )
Called from: Source\Classes\window.prg => _FWH( 3345 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: Source\Classes\dialog.prg => TDIALOG:ACTIVATE( 286 )

3... ****
Application
===========
Path and name: Z:\RUSSOFT\ZERUS\zeruswin.exe (32 bits)
Size:
** bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20141202)
FiveWin Version: FWHX 14.12
Windows version: 6.2, Build 9200

Time from start: 0 hours 6 mins 50 secs
Error occurred at: 02/11/2015, 17:53:12
Error description: Error BASE/1084 Argument error: /
Args:
[ 1] = N 371
[ 2] = U

Stack Calls

Called from: source\classes\xbrowse.prg => TXBROWSE:MOUSEROWPOS( 3182 )
Called from: source\classes\xbrowse.prg => TXBROWSE:MOUSEMOVE( 3567 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: Source\Classes\control.prg => TCONTROL:HANDLEEVENT( 1733 )
Called from: source\classes\xbrowse.prg => TXBROWSE:HANDLEEVENT( 12612 )
Called from: Source\Classes\window.prg => _FWH( 3345 )
Called from: => SYSREFRESH( 0 )
Called from: Source\Classes\dialog.prg => TDIALOG:END( 526 )

Continue the discussion