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()
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
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
ACTIVATE DIALOG oDlc CENTER ;
ON INIT Carga_Datos(lNew,obtn)
return nil
the function Carga_Datos(lNew,obtn) load the data into variables
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 ?