FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour TO EXCEL METHOD ERROR
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM

TO EXCEL METHOD ERROR

Posted: Wed Jan 21, 2009 06:24 PM
I make an grid ( xbrowse ) with many fields

    oApp():oDlg:NewGrid( nSplit )
 *  oApp():oGrid:cAlias := "SOCI"
    *oApp():oGrid:nMarqueeStyle       := MARQSTYLE_HIGHLROW
   oApp():oGrid:nMarqueeStyle       := MARQSTYLE_HIGHLROWMS    // per la multi selezione
   oApp():oGrid:nColDividerStyle    := LINESTYLE_FORECOLOR
   oApp():oGrid:lColDividerComplete := .t.
   oApp():oGrid:lRecordSelector := .F.



    oCol:= oApp():oGrid:AddCol()
    oCol:AddResource("sort1")
    oCol:AddResource("sort2")
    oCol:bStrData := { ||  (oDCli)->NUMCLI}
    oCol:cHeader  := "Codice"
    oCol:nWidth   := 80
    oCol:nHeadBmpNo    := 1
    oCol:nHeadBmpAlign := AL_RIGHT
    oCol:bLClickHeader :={ ||(Sel_Index(1,oDCli), oApp():oTab:nOption:=1,oApp():oTab:refresh())  }


   //PER LA SELEZIONE

    oCol:= oApp():oGrid:AddCol()
    oCol:AddResource("C_Pal")
    oCol:AddResource("STATO3")
    oCol:bBmpData  := { || Ds_Mar(1,2)}
    oCol:cHeader  := ""
    oCol:nWidth   := 25




     oCol:= oApp():oGrid:AddCol()
     oCol:AddResource("sort1")
     oCol:AddResource("sort2")
     oCol:bStrData := { ||  (oDCli)->NOMEINTERO}
     oCol:cHeader  := "Cognome Nome"
     oCol:nWidth   := 250
     oCol:nHeadBmpNo    := 2
     oCol:nHeadBmpAlign := AL_RIGHT
     oCol:bLClickHeader :={ ||(Sel_Index(2,oDCli), oApp():oTab:nOption:=2,oApp():oTab:refresh())  }


     oCol:= oApp():oGrid:AddCol()
                                         oCol:AddResource("sort1")
                                          oCol:AddResource("sort2")
                                          oCol:AddResource("uomo")
                                          oCol:AddResource("donna")
                                       *   oCol:bStrData := { ||   (oDCli)->SESSO}
                                           oCol:bBmpData   := { || IF( ALLTRIM(UPPER("UOMO")) $ ALLTRIM(UPPER((oDCli)->SESSO)),3,4)}
                                          oCol:cHeader  := "Sesso"
                                          oCol:nWidth   :=40
                                          oCol:nHeadBmpNo    := 2
                                          oCol:nHeadBmpAlign := AL_RIGHT
                                          oCol:bLClickHeader :={ ||(Sel_Index(3,oDCli) , oApp():oTab:nOption:=3,oApp():oTab:refresh()) }



      oCol:= oApp():oGrid:AddCol()
                                          oCol:AddResource("fondatore")
                                          oCol:AddResource("ordinario")
                                          oCol:AddResource("sostenitore")
                                          oCol:AddResource("altro")
                                          *oCol:bStrData := { || (oDCli)->TIPO}
                                          oCol:cHeader  := "Adesione"
                                       *   oCol:bEditValue := { || (oDCli)->TIPO }
                                          oCol:nDataStyle := oCol:DefStyle( AL_LEFT, .T.)
                                          oCol:bBmpData := { || (oDCli)->TIPO}
                                           oCol:nWidth   := 30






      oCol:= oApp():oGrid:AddCol()
                                          oCol:AddResource("sort1")
                                          oCol:AddResource("sort2")
                                          oCol:AddResource("ATTIVO")
                                          oCol:AddResource("NOATTIVO")
                                           *oCol:bStrData := { || (oDCli)->STATO}
                                          oCol:cHeader  := "Status"
                                          oCol:nHeadBmpNo    := 2
                                          oCol:nHeadBmpAlign := AL_RIGHT
                                          oCol:bBmpData   := { || iif( (oDCli)->STATO, 3, 4) }
                                          oCol:bLClickHeader :={ ||(Sel_Index(5,oDCli) , oApp():oTab:nOption:=5,oApp():oTab:refresh()) }





                                          oCol:= oApp():oGrid:AddCol()
                                          oCol:AddResource("sort1")
                                          oCol:AddResource("sort2")
                                          oCol:nHeadBmpNo    := if( (oDCli)->( ORDNUMBER() ) == 6, 1, 2)
                                          oCol:nHeadBmpAlign := AL_RIGHT
                                          oCol:bLClickHeader :={ ||(Sel_Index(7,oDCli) , oApp():oTab:nOption:=7,oApp():oTab:refresh()) }
                                          oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\GIOVANE.BMP")
                                          oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\PENSIONATO.BMP")
                                          oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\STUDENTE.BMP")
                                          oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\ESPERTO.BMP")
                                          oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\OBIETTORE.BMP")
                                          oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\REGIONALE.BMP")
                                          oCol:bStrData := { || (oDCli)->ATTIVITA}
                                          oCol:cHeader  := "Tipo"
                                          oCol:bEditValue := { || (oDCli)->ATTIVITA }
                                          oCol:nDataStyle := oCol:DefStyle( AL_LEFT, .T.)

                                          oCol:bBmpData := { || (oDCli)->attivita + 2}
                                          oCol:nWidth   :=40




                                          oCol:= oApp():oGrid:AddCol()
                                          oCol:AddResource("sort1")
                                          oCol:AddResource("sort2")
                                          oCol:cHeader  := "Grado"
                                          oCol:nHeadBmpNo    := if( (oDCli)->( ORDNUMBER() ) == 7, 1, 2)
                                          oCol:nHeadBmpAlign := AL_RIGHT
                                          oCol:bLClickHeader :={ ||(Sel_Index(6,oDCli) , oApp():oTab:nOption:=6,oApp():oTab:refresh()) }
                                          oCol:AddResource("GRADO1")
                                          oCol:AddResource("GRADO2")
                                          oCol:AddResource("GRADO3")
                                          oCol:AddResource("GRADO4")
                                          oCol:AddResource("GRADO5")
                                          oCol:AddResource("GRADO6")
                                          oCol:AddResource("GRADO7")
                                          oCol:AddResource("GRADO8")
                                          oCol:AddResource("GRADO0")
                                          oCol:bStrData := { || (oDCli)->GRADO}
                                          oCol:bBmpData := { || (oDCli)->GRADO + 2}
                                          oCol:nWidth   :=40




                                          oCol:= oApp():oGrid:AddCol()
                                          oCol:bStrData := { ||   CF((oDCli)->NASCITA)}
                                          oCol:cHeader  := "Data di nascita"
                                          oCol:nWidth   := 90


                                          oCol:= oApp():oGrid:AddCol()
                                          oCol:bStrData := { ||   (oDCli)->LUO_NASC }
                                          oCol:cHeader  := "Luogo di Nascita"
                                          oCol:nWidth   := 150


                                          oCol:= oApp():oGrid:AddCol()
                                          oCol:bStrData := { ||  (oDCli)->INDIRIZZO }
                                          oCol:cHeader  := "Indirizzo"
                                          oCol:nWidth   := 200

                                          oCol:= oApp():oGrid:AddCol()
                                          oCol:AddResource("sort1")
                                          oCol:AddResource("sort2")
                                          oCol:bStrData := { ||   (oDCli)->LOCALITA }
                                          oCol:cHeader  := "Località"
                                          oCol:nWidth   := 100
                                          oCol:bLClickHeader :={ ||(Sel_Index(4,oDCli), oApp():oTab:nOption:=4,oApp():oTab:refresh())  }






   oApp():oGrid:nFreeze :=3
   oApp():oGrid:SetRDD()
  * oApp():oGrid:bClrStd := { || Colores(oDCli) }
   oApp():oGrid:SetBackGround( ".\bitmaps\pclogog.BMP" )
   oApp():oGrid:CreateFromCode()
   oApp():oGrid:bChange    :={ || (RefreshCont(oCont,oDCli)) }
   oApp():oGrid:bRClicked := {|nRow,nCol| Disp_Men(oApp():oDlg,nRow,nCol,oDCli) }
   oApp():oGrid:bKeyDown   :={|nKey| Val_nKey(nKey,oApp():oDlg)}


  oApp():oGrid:bSeek      :={|c| DbSeek( Upper( c ) ) }
  oApp():oGrid:nRowHeight  :=40
  oApp():oGrid:nHeaderHeight  := 36
  oApp():oGrid:RestoreState( cState )
       *


from Menu I call the function ToExecl()
with :
ACTION oApp:Toexcel()



when I run it I have this error

Application
===========
   Path and name: C:\work\VDSWIN\VDSWIN.Exe (32 bits)
   Size: 3,300,864 bytes
   Time from start: 0 hours 0 mins 5 secs 
   Error occurred at: 21/01/2009, 19:24:37
   Error description: Error BASE/2022  Argument error: ALLTRIM
   Args:
     [   1] = N   3

Stack Calls
===========
   Called from:  => ALLTRIM(0)
   Called from: LIB\xbrowse.prg => TXBRWCOLUMN:CLPTEXT(8098)
   Called from: LIB\xbrowse.prg => TXBROWSE:CLPROW(4630)
   Called from: LIB\xbrowse.prg => TXBROWSE:TOEXCEL(4933)
   Called from: source\VDS110.prg => (b)CAW110(363)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(0)
   Called from: VMenu.prg => TVMENU:HANDLEEVENT(905)
   Called from: .\source\classes\WINDOW.PRG => _FWH(0)
   Called from:  => WINRUN(0)
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE(0)
   Called from: source\VDSWIN.prg => TAPPLICATION:ACTIVATE(308)
   Called from: source\VDSWIN.prg => MAIN(59)






WHY ???????
Best Regards, Saludos



Falconi Silvio
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: TO EXCEL METHOD ERROR

Posted: Thu Jan 22, 2009 06:56 PM
Silvio,

Is bStrData returning a string ? It is required, see the code:
METHOD ClpText() CLASS TXBrwColumn

   ...

         RetVal   := AllTrim( Eval( ::bStrData ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM

Re: TO EXCEL METHOD ERROR

Posted: Thu Jan 22, 2009 11:25 PM

Please make sure that bStrData evaluates to a Character value.
If we use bEditValue, this codeblock can evaluate to any data type and xbrowse internally constructs bStrData. It is recommended by FWH documentation ( whatsnew.txt of earlier releases ) not to use bStrData directly in application and instead use bEditValue. If this recommendation is followed, no errors will occur.

Regards



G. N. Rao.

Hyderabad, India
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM

Re: TO EXCEL METHOD ERROR

Posted: Sun Jan 25, 2009 10:37 PM

Antonio,

... RetVal := AllTrim( Eval( ::bStrData ) )

I have allreadty this command on 8126 line

Best Regards, Saludos



Falconi Silvio

Continue the discussion