Page 1 of 1

GET AND PICTURE ERROR

PostPosted: Sun Jun 28, 2009 7:40 pm
by Silvio
WHY WHEN i INSERT THE PICTURE MAKE ERROR ?

@9.5,30.8 GET oT:oDat[32] VAR oT:aDat[32] OF oDlc SIZE 65,11 PICTURE "99,999,999.99"


Error description: Error BASE/1122 Argument error: TRANSFORM
Stack Calls
===========
Called from: => TRANSFORM(0)
Called from: LIB\TGET.PRG => TGET:NEW(186)
Called from: source\RIV220.prg => NEWPRENOTA(3712)
Called from: source\RIV220.prg => (b)MENU_AZIONI(1003)
Called from: .\source\classes\MENU.PRG => TMENU:ACTIVATE(0)

Re: GET AND PICTURE ERROR

PostPosted: Mon Jun 29, 2009 1:01 pm
by James Bott
Try leaving off the SIZE--maybe SIZE and PICTURE are conflicting.

James

Re: GET AND PICTURE ERROR

PostPosted: Mon Jun 29, 2009 1:06 pm
by nageswaragunupudi
I suspect the value of oT:aDat[32] is nil.

Transform( nil, '999.99' ) generates the same runtime error.

Re: GET AND PICTURE ERROR

PostPosted: Tue Jun 30, 2009 8:38 am
by Silvio
James and Nas

if i use the resource dialog and make it with redefines command all picture on the dialog run ok
when i use the dialog make with @x,y no resource it nou run


oT:aDat[32] is not nil


because when open the dialog I load all the variables

oT:oDat[ 1]:Enable()
oT:oDat[ 1]:Refresh()
oT:lApp:=oT:lEnd:=oT:lFst:=oT:lNew:=.T.
(oDCot)->(DbSetOrder(1))
(oDCot)->(DbGoBottom())
oT:aDat[ 1]:=StrZero(Val((oDCot)->NumDoc)+1,5)
(oDCot)->(DbSetOrder(nInd))
(oDCot)->(DbGoTo(nRec))
oT:aDat[ 2]:=Date()
oT:aDat[ 3]:="Cliente"
oT:aDat[ 4]:=Space( 4)
oT:aDat[ 5]:=Space(50)
oT:aDat[ 6]:=Space(35)
oT:aDat[ 7]:=Space(35)
oT:aDat[ 8]:=0
oT:aDat[ 9]:=15
oT:aDat[10]:=0
oT:aDat[11]:=0
oT:aDat[12]:=Space(45)
oT:aDat[13]:=Space(45)
oT:aDat[14]:="A"
oT:aDat[15]:="[ Nuova ]"
oT:aDat[16]:=2
oT:aDat[17]:=2
oT:aDat[19]:="Euro"
oT:aDat[20]:= 0
oT:aDat[21]:=oBtn:Cargo[2] //NUMERO OMBRELLONE
oT:aDat[22]:=oBtn:Cargo[4] // NUMERO FILA
oT:aDat[23]:=oBtn:Cargo[3] // TIPO OMBRELLONE
oT:aDat[24]:=ctod(" / / ") // DATA INIZIO
oT:aDat[25]:=ctod(" / / ") // DATA FINE
oT:aDat[26]:=.F. // INTERA STAGIONE
oT:aDat[27]:=0
oT:aDat[32]:=0 //ACCONTO
oT:aDat[33]:=.F. //PAGATO
oT:cPic1:= "9999999.99"
oT:cPic2:= "9999999.99"
oT:cPic3:="9999,999.99"
oT:cPic4:="9999,999.99"

Re: GET AND PICTURE ERROR

PostPosted: Tue Jun 30, 2009 8:40 am
by Silvio
>Try leaving off the SIZE--maybe SIZE and PICTURE are conflicting.

I try to erase the size and it not run the error is the same

Re: GET AND PICTURE ERROR

PostPosted: Tue Jun 30, 2009 11:08 am
by James Bott
I suggest looking at the preprocessor output to see if it is not creating the correct syntax.

James

Re: GET AND PICTURE ERROR

PostPosted: Tue Jun 30, 2009 11:20 am
by Silvio
it compile and link exe file
when I open the exe it make error



@ 3,0.5 GET oT:oDat[ 1] VAR oT:aDat[ 1] SIZE 40,12 OF oDlc PICTURE "999999" VALID Val_Doc() WHEN oT:lNew

@9.5,30.8 GET oT:oDat[32] VAR oT:aDat[32] OF oDlc SIZE 65,11 PICTURE "99,999,999.99"


THIS IS THE PPO
oT:oDat[ 1] := TGet():New( 3, 0.5, { | u | If( PCount()==0, oT:aDat[ 1], oT:aDat[ 1]:= u ) }, oDlc, 40, 12, "999999", {|| Val_Doc()},,,, .F.,, .F.,, .F., {|| oT:lNew}, .F., .F.,, .F., .F., .F.,, .F.,,,, )

oT:oDat[32] := TGet():New( 9.5, 30.8, { | u | If( PCount()==0, oT:aDat[32], oT:aDat[32]:= u ) }, oDlc, 65, 11, "99,999,999.99",,,,, .F.,, .F.,, .F.,, .F., .F.,, .F., .F., .F.,, .F.,,,, )


INSTEAD OF

ON THE RESOURCE DIALOG

REDEFINE GET oT:oDat[ 1] VAR oT:aDat[ 1] ID 101 OF oDlc PICTURE "@K99999" VALID Val_Doc() WHEN oT:lNew run ok

REDEFINE GET oT:oDat[32] VAR oT:aDat[32] ID 127 OF oDlc PICTURE "99,999,999.99" run ok

Re: GET AND PICTURE ERROR

PostPosted: Tue Jun 30, 2009 11:28 am
by James Bott
Silvio,

As I said, I suspect the preprocessor is not generating the proper syntax. Did you check it?

James

Re: GET AND PICTURE ERROR

PostPosted: Tue Jun 30, 2009 11:44 am
by James Bott
Silvio,

OK, the preprossor seems to be working OK. This code compiles and runs without error.

James

Code: Select all  Expand view
#include "fivewin.ch"

function main()
  local oDlc, oDat, aDat:=0

   define dialog oDlc

   //@9.5,30.8 GET oT:oDat[32] VAR oT:aDat[32] OF oDlc SIZE 65,11 PICTURE "99,999,999.99"

   @1,1 GET oDat VAR aDat OF oDlc SIZE 65,11 PICTURE "99,999,999.99"

   activate dialog oDlc

return nil

Re: GET AND PICTURE ERROR

PostPosted: Tue Jun 30, 2009 1:41 pm
by nageswaragunupudi
I again insist that, for whatever reason, the variable is evaluating to NIL.
TRANSFORM(0) error occurs only when NIL is used as first argument of TRANSFORM with picture clause.

Only part of the error log is published.
Code: Select all  Expand view
Error description: Error BASE/1122 Argument error: TRANSFORM
Stack Calls
===========
Called from: => TRANSFORM(0)
Called from: LIB\TGET.PRG => TGET:NEW(186)
Called from: source\RIV220.prg => NEWPRENOTA(3712)
Called from: source\RIV220.prg => (b)MENU_AZIONI(1003)
Called from: .\source\classes\MENU.PRG => TMENU:ACTIVATE(0)
 

Please see what is above Stack Calls in the error log. The lines above will be something like
Error description: Error BASE/1122 Argument error: TRANSFORM
Args:
[ 1] = U
[ 2] = C 9999


Please publish the error long in full and see

Re: GET AND PICTURE ERROR

PostPosted: Wed Jul 01, 2009 3:51 pm
by Silvio
Nas, If the variable is nil how you instst again why when I use the resource dialog it not make error ?
in first I load a class when I load arrayfor the procedure

oT:=CA_210():New()
Code: Select all  Expand view
CLASS CA_210
   DATA lNew, lAdd, lEnd, lFst, lCap, lApp, lGpo
   DATA oDat, oPar, aPar, oBtn, aTot, aDat, cGpo
   DATA cPic1, cPic2, cPic3, cPic4
   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS CA_210
   ::lNew:=.F.
   ::lAdd:=.F.
   ::lEnd:=.F.
   ::lFst:=.F.
   ::lCap:=.F.
   ::lApp:=.F.
   ::lGpo:=.F.
   ::cGpo:=""
   ::aDat:=Array(33)
   ::oDat:=Array(33)
   ::aPar:=Array(15)
   ::oPar:=Array(15)
   ::oBtn:=Array( 5)
   ::aTot:=Array( 7)
   ::cPic1:= "9999999.99"
   ::cPic2:= "9999999.99"
   ::cPic3:="9999,999.99"
   ::cPic4:="9999,999.99"
RETURN (Self)


then I open the dbf and open the dialog with

Code: Select all  Expand view
oDCot:=Apri_Dbf("Cotiza",.T.,.T.,aIdx)
   oT:=CA_210():New()
   cVar:=aIdx[1]
   (oDCot)->(OrdSetFocus(1))

 DEFINE DIALOG oDlc TITLE "Gestione Prenotazioni" ;
      FROM  10,  30 TO  59, 134



then I insert the gets
@ 3,0.5 GET oT:oDat[ 1] VAR oT:aDat[ 1] SIZE 40,12 OF oDlc VALID Val_Doc() WHEN oT:lNew

here the others get

then I activate the dialog
Code: Select all  Expand view
ACTIVATE DIALOG  oDlc  CENTER  ;
     ON INIT Carga_Datos(lNew,obtn)
return nil
 


the function Carga_Datos(lNew,obtn) load the data into variables
Code: Select all  Expand view
STAT FUNC Carga_Datos(lNew,oBtn)
   LOCAL nI, nImp, nInd:=(oDCot)->(IndexOrd())
   LOCAL nRec:=(oDCot)->(Recno())
   AFill(oT:aTot,0)
   IF lNew
      oT:oDat[ 1]:Enable()
      oT:oDat[ 1]:Refresh()
      oT:lApp:=oT:lEnd:=oT:lFst:=oT:lNew:=.T.
      (oDCot)->(DbSetOrder(1))
      (oDCot)->(DbGoBottom())
      oT:aDat[ 1]:=StrZero(Val((oDCot)->NumDoc)+1,5)
      (oDCot)->(DbSetOrder(nInd))
      (oDCot)->(DbGoTo(nRec))
      oT:aDat[ 2]:=Date()
      oT:aDat[ 3]:="Cliente"
      oT:aDat[ 4]:=Space( 4)
      oT:aDat[ 5]:=Space(50)
      oT:aDat[ 6]:=Space(35)
      oT:aDat[ 7]:=Space(35)
      oT:aDat[ 8]:=0
      oT:aDat[ 9]:=15
      oT:aDat[10]:=0
      oT:aDat[11]:=0
      oT:aDat[12]:=Space(45)
      oT:aDat[13]:=Space(45)
      oT:aDat[14]:="A"
      oT:aDat[15]:="[ Nuova ]"
      oT:aDat[16]:=2
      oT:aDat[17]:=2
      oT:aDat[19]:="Euro"
      oT:aDat[20]:= 0
      oT:aDat[21]:=oBtn:Cargo[2]  //NUMERO OMBRELLONE
      oT:aDat[22]:=oBtn:Cargo[4]  // NUMERO FILA
      oT:aDat[23]:=oBtn:Cargo[3]  // TIPO OMBRELLONE
     * oT:aDat[24]:=ctod("  /  /  ")  // DATA INIZIO
     * oT:aDat[25]:=ctod("  /  /  ") // DATA FINE
       oT:aDat[24]:=date()  // DATA INIZIO
      oT:aDat[25]:=date() // DATA FINE



      oT:aDat[26]:=.F.               // INTERA STAGIONE
      oT:aDat[27]:=0

      oT:aDat[32]:=0        //ACCONTO
      oT:aDat[33]:=.F.     //PAGATO

      oT:cPic1:= "9999999.99"
      oT:cPic2:= "9999999.99"
      oT:cPic3:="9999,999.99"
      oT:cPic4:="9999,999.99"



      AFill(oT:aPar,"")
      oBPar:GoTop()
      oBPar:Refresh()
      oBPar:Disable()
   ELSE
      oT:lApp:=.F.
      oT:aDat[ 1]:=(oDCot)->NumDoc
      oT:aDat[ 2]:=(oDCot)->FecDoc
      oT:aDat[ 3]:=(oDCot)->TipSol
      oT:aDat[ 4]:=(oDCot)->NumCli
      oT:aDat[ 5]:=(oDCot)->RazSoc
      oT:aDat[ 6]:=(oDCot)->NomSol
      oT:aDat[ 7]:=(oDCot)->NomVen
      oT:aDat[ 8]:=(oDCot)->PorDes
      oT:aDat[ 9]:=(oDCot)->VigCot
      oT:aDat[10]:=(oDCot)->Credit
      oT:aDat[11]:=(oDCot)->ConEnt
      oT:aDat[12]:=(oDCot)->Nota1
      oT:aDat[13]:=(oDCot)->Nota2
      oT:aDat[14]:=(oDCot)->TipCli
      oT:aDat[15]:=IF((oDCot)->Status="C","[ Cancelata ]","[ Consulta ]")
      oT:aDat[16]:=(oDCot)->nDC
      oT:aDat[17]:=(oDCot)->nDP
      oT:aDat[19]:=(oDCot)->TipMon
      oT:aDat[20]:=(oDCot)->TipCam


      oT:aDat[21]:=(oDPre)->Camera      //NUMERO OMBRELLONE
      oT:aDat[22]:=(oDPre)->Fila         // NUMERO FILA
      oT:aDat[23]:=(oDPre)->Tipoattrez  // TIPO OMBRELLONE
      oT:aDat[24]:=(oDPre)->Dal        // DATA INIZIO
      oT:aDat[25]:=(oDPre)->Al         // DATA FINE
      oT:aDat[26]:=(oDPre)->Intera
      oT:aDat[27]:=0

      oT:aDat[32]:=(oDPre)->impacc
      oT:aDat[33]:=(oDPre)->PAGATO

      oT:cPic1:=Get_Pict((oDCot)->nDC,1)
      oT:cPic2:=Get_Pict((oDCot)->nDP,1)
      oT:cPic3:=Get_Pict((oDCot)->nDC,2)
      oT:cPic4:=Get_Pict((oDCot)->nDP,2)

   ENDIF

   oT:aDat[18]:=Control->TasIva
   oT:aTot[7]:=oT:aDat[ 10]



   (oDPar)->(DbSeek(oT:aDat[ 1]))

   DO WHILE (oDPar)->NumDoc==oT:aDat[ 1] .AND. !(oDPar)->(EoF())
      nImp:=(oDPar)->ImpPar
      oT:aTot[1]++
      oT:aTot[2]+=nImp
      oT:aTot[3]+=nImp*((oDPar)->PorDes/100)
      oT:aTot[5]+=(nImp-((oDPar)->PorDes/100))*((oDPar)->TasIva/100)
      (oDPar)->(DbSkip())
   ENDDO
   (oDPar)->(DbSeek(oT:aDat[ 1]))
   Refr_Tot()
   FOR nI=1 TO 4
     oT:oBtn[nI]:Disable()
     oT:oBtn[nI]:Refresh()
   NEXT nI
   FOR nI=1 TO 7
    oT:oPar[nI]:Disable()
    oT:oPar[nI]:Refresh()
   NEXT nI
      oT:oPar[14]:Disable()
       oT:oPar[15]:Disable()
       oT:oPar[14]:Refresh()
       oT:oPar[15]:Refresh()
   FOR nI=1 TO 13
      oT:oDat[nI]:Refresh()
   NEXT nI
   oT:oDat[20]:Refresh()

   oT:oDat[21]:Refresh()
   oT:oDat[22]:Refresh()
   oT:oDat[23]:Refresh()
   oT:oDat[24]:Refresh()
   oT:oDat[25]:Refresh()
   oT:oDat[26]:Refresh()
   oT:oDat[27]:Refresh()
   oT:oDat[28]:Refresh()
   oT:oDat[29]:Refresh()
   oT:oDat[30]:Refresh()
 

   oBPar:Refresh()
RETURN (NIL)

 



How you can see

oT:aDat[32] is 0 ( zero) can I use the clause picture ( picture "99,999,999.99") for it ?


while

oT:aDat[ 1]:=StrZero(Val((oDCot)->NumDoc)+1,5)
this is a caracter sample 00046 can I use the clause picture ( picture "99999") for it ?



the same code is for the resource dialog
oDCot:=Apri_Dbf("Cotiza",.T.,.T.,aIdx)
oT:=CA_210():New()
cVar:=aIdx[1]
(oDCot)->(OrdSetFocus(1))

....

DEFINE DIALOG oDlc RESOURCE "CAW210" FONT oApp:oFont

REDEFINE GET oT:oDat[ 1] VAR oT:aDat[ 1] ID 101 OF oDlc PICTURE "@K99999" VALID Val_Doc() WHEN oT:lNew


...
REDEFINE GET oT:oDat[32] VAR oT:aDat[32] ID 127 OF oDlc PICTURE "99,999,999.99" //ACCONTO

ACTIVATE DIALOG oDlc ;
ON INIT Carga_Datos(lNew,obtn)



why on resource dialog run ok instead of the dialog made with no resource ?