xBrowse and lMergeVert sporadic error

xBrowse and lMergeVert sporadic error

Postby mtajkov » Tue Jun 24, 2014 8:16 pm

If I use oBrw: lMergeVert =. t. appears sporadically error:

Error BASE/1132 Bound error: array access
Parameter :
[ 1] = A { ... }
[ 2] = N 6

Stack-List
----------
called by TXBRWCOLUMN:MERGEAREA(11782)
called by TXBRWCOLUMN:PAINTCELL(10042)
called by TXBRWCOLUMN:PAINTDATA(9668)
called by TXBROWSE:PAINT(1474)
called by TXBROWSE:DISPLAY(1288)
called by TCONTROL:HANDLEEVENT(1690)
called by TXBROWSE:HANDLEEVENT(11754)
called by _FWH(3177)
called by DIALOGBOX(0)
called by TDIALOG:ACTIVATE(270)
called by USTAZBR(133)
called by (b)MAIN(277)
called by TBTNBMP:CLICK(465)
called by TBTNBMP:LBUTTONUP(656)
called by TCONTROL:HANDLEEVENT(1714)
called by TBTNBMP:HANDLEEVENT(1408)
called by _FWH(3177)
called by WINRUN(0)
called by TMDIFRAME:ACTIVATE(990)
called by MAIN(350)
CPU type: Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz -412317 Mhz
Hardware memory: 3327 MB ( available: 1732 MB )

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Compiler version: xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9382)
FiveWin Version: FWHX 12.08
Windows version: 6.1, Build 7601 Service Pack 1

Does anyone know the cause?

Regards,
Milos
Best regards
Milos

[ FWH 21.11 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20150603) ]
mtajkov
 
Posts: 127
Joined: Sun Mar 08, 2009 4:33 pm

Re: xBrowse and lMergeVert sporadic error

Postby nageswaragunupudi » Tue Jun 24, 2014 8:30 pm

This can happen if any row is added during runtime.
If a row is added or deleted, we should call oCol:WorkMergeData() and oBrw:Refresh().

In case you are browsing DBF it is desirable to SET FILTER TO !DELETED() so that oBrw:keyNo() always returns a correct value.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10308
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xBrowse and lMergeVert sporadic error

Postby mtajkov » Tue Jun 24, 2014 9:01 pm

I do not add row or delete it, if I try use oCol:WorkMergeData() I have a new error:

Error BASE/1004 Class: 'NIL' has no exported method: EVAL
Parameter :
[ 1] = U

Stack-List
----------
called by EVAL(0)
called by TXBRWCOLUMN:WORKMERGEDATA(11714)
called by USTAZBR(62)
called by (b)MAIN(277)
called by TBTNBMP:CLICK(465)
called by TBTNBMP:LBUTTONUP(656)
called by TCONTROL:HANDLEEVENT(1714)
called by TBTNBMP:HANDLEEVENT(1408)
called by _FWH(3177)
called by WINRUN(0)
called by TMDIFRAME:ACTIVATE(990)
called by MAIN(350)

Regards,
Milos
Best regards
Milos

[ FWH 21.11 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20150603) ]
mtajkov
 
Posts: 127
Joined: Sun Mar 08, 2009 4:33 pm

Re: xBrowse and lMergeVert sporadic error

Postby nageswaragunupudi » Tue Jun 24, 2014 10:01 pm

Line 11714 is Eval( ::oBrw:bGoTop ) and this can not be NIL, unless this method is called before setting the browse completely.
I hope when you call oCol:WorkMergeData, the browse is already visible on the screen.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10308
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xBrowse and lMergeVert sporadic error

Postby mtajkov » Wed Jun 25, 2014 6:04 am

This my code:
Code: Select all  Expand view
#include "FiveWin.ch"
#include "dtpicker.ch"
#include "calendar.ch"

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

function TestGrp()

Private mDatum, oBrwZbr

USE RptStaZbr NEW
  DBCREATEINDEX("RptStaZbr","Naziv",{|| Naziv})

USE Inf_Firma SHARED VIA "SQLRDD" NEW

    DbSelectArea("Inf_Firma")

        do while ! eof()
     
                cComp=Inf_Firma->Naziv
        cSta=Inf_Firma->Firma_Id+"_STANJE"
        USE &cSta SHARED VIA "SQLRDD" NEW

        DbSelectArea("Inf_Firma")
   
        skip
        enddo

    mDatum    = date()
    mDTPicker = date()


  DEFINE DIALOG oDlg RESOURCE "NADANZBR"
 
  REDEFINE CALENDAR oDTPicker VAR mDTPicker ID 4002;
              ON CHANGE (mDatum:= oDTPicker:GetDate(),oDatum:refresh()) UPDATE

  REDEFINE GET oDatum VAR mDatum ID 101 OF oDlg;
                FONT oFont

   REDEFINE XBROWSE oBrwZbr ID 4003 ALIAS "RptStaZbr" ;
        FONT oFontBrw;
        OF oDlg


       oCol := oBrwZbr:AddCol()
       oCol:bStrData  := { || RptStaZbr->Naziv}
       oCol:cHeader   := "Naziv"
       oCol:nWidth    := 220
       oCol:nHeadStrAlign := AL_CENTER
       oCol:nDataStrAlign := AL_LEFT
       oCol:oDataFont := oFontBrw
       oCol:lMergeVert := .t.
   *        oCol:WorkMergeData()

       oCol := oBrwZbr:AddCol()
       oCol:bStrData  := { || RptStaZbr->Banka}
       oCol:cHeader   := "Banka"
       oCol:nWidth    := 200
       oCol:nHeadStrAlign := AL_CENTER
       oCol:nDataStrAlign := AL_LEFT
       oCol:oDataFont := oFontBrw

       oCol := oBrwZbr:AddCol()
       oCol:bStrData  := { || RptStaZbr->Racun}
       oCol:cHeader   := "Račun"
       oCol:nWidth    := 140
       oCol:nHeadStrAlign := AL_CENTER
       oCol:nDataStrAlign := AL_LEFT
       oCol:oDataFont := oFontBrw

       oCol:= oBrwZbr:AddCol()
       oCol:bEditValue := { || RptStaZbr->Iznos }
       oCol:cEditPicture := '@E 999,999,999.99'
       oCol:cHeader   := "Iznos"
       oCol:bClrHeader    := { || { RGB( 255, 255, 255 ), nRGB( 203, 225, 252 ), nRGB( 255, 255, 220 ) } }
       oCol:bClrFooter    := { || { RGB( 255, 255, 255 ), nRGB( 203, 225, 252 ), nRGB( 255, 255, 220 ) } }
       oCol:bClrGrad :={ || {{ 0.4 , nRGB( 0, 160, 160 ), nRGB( 0, 180, 180 ) },{ 0.6, nRGB( 0, 180, 180 ),nRGB( 0, 160, 160 ) } } }
       oCol:nHeadStrAlign := AL_CENTER
       oCol:nDataStrAlign := AL_RIGHT
       oCol:nFootStrAlign := AL_RIGHT
       oCol:nWidth        := 110
       oCol:lTotal        := .t.
       oCol:nTotal        := 0
       oCol:oDataFont := oFontBrw

       oCol := oBrwZbr:AddCol()
       oCol:AddResource("OFF")
       oCol:AddResource("ON")
       oCol:cHeader   := " "
       oCol:bBmpData  := { || iif( RptStaZbr->Iznos < 0 ,1,2) }
       oCol:oDataFont := oFontBrw


           oBrwZbr:lMergeVert          := .t.
       oBrwZbr:nMarqueeStyle       := 0
       oBrwZbr:nColDividerStyle    := LINESTYLE_BLACK
       oBrwZbr:nHeaderHeight       := 26
       oBrwZbr:lColDividerComplete := .t.
       oBrwZbr:nRowDividerStyle    := LINESTYLE_BLACK
       oBrwZbr:nHeaderLines        := 1
       oBrwZbr:nFooterLines        := 1
       oBrwZbr:nDataLines          := 1
       oBrwZbr:lFooter             := .t.
     

       REDEFINE BTNBMP oBtnDal ID 18 OF oDlg ;
            RESOURCE "Dalje" LEFT 2007 PROMPT " &Primeni ";
            ACTION (TestZbr(),oBrwZbr:MakeTotals(),oBrwZbr:Refresh(),oBrwZbr:SetFocus() )

       REDEFINE BTNBMP oBtnIzl ID 11 OF oDlg ;
            RESOURCE "Izlaz" LEFT 2007 PROMPT "   &Izlaz  ";
            ACTION (DBcloseAll(),oDlg:end())

  ACTIVATE DIALOG oDlg CENTERED ON INIT (TestZbr(),oBrwZbr:MakeTotals(),oBrwZbr:Refresh(),oBrwZbr:SetFocus())


DbCloseAll()

return nil


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

function TestZbr()

   local nErr

    DBSelectArea("RptStaZbr")
     zap

        DbSelectArea("Inf_Firma")
        DbGoTop()

            do while ! eof()

              mFirma_Id=Inf_Firma->Firma_Id
         
                cSta=Inf_Firma->Firma_Id+"_STANJE"

                   nErr := oSql:exec("SELECT Inf_Firma. Naziv, &cSta .Racun_Id, &cSta .Banka, &cSta .Racun, &cSta .Iznos"+;
                        " FROM Inf_Firma, &cSta"+;
                        " WHERE &cSta .Datum='" + dtos(mDatum) + "'"+;
                        " AND Inf_Firma. Firma_Id = '" + mFirma_Id + "'"+;
                        " GROUP BY Inf_Firma. Naziv, &cSta .Racun_Id, &cSta .Racun, &cSta .Iznos, &cSta .Banka",,.t.,,"RptStaZbr.dbf")

            DbSelectArea("Inf_Firma")
       

            skip
            enddo

return nil


What I quickly choose the date and press oBtnDal possibility of a mistake is higher. The error occurs when executing commands oBrwZbr:SetFocus().

Regards,
Milos
Best regards
Milos

[ FWH 21.11 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20150603) ]
mtajkov
 
Posts: 127
Joined: Sun Mar 08, 2009 4:33 pm

Re: xBrowse and lMergeVert sporadic error

Postby nageswaragunupudi » Sat Jun 28, 2014 12:20 am

When you use SQLRDD, OrdKeyNo() does not work. Consequently oBrw:KeyNo always returns 0. The feature of MergeVert does not work for SQLRDD.

If you use SQLRDD you can do basic browsing and many advanced features of xbrowse are not available.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10308
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 45 guests