Subject Re: Rowset Navigation
From Mustansir Ghor <mustan31@hotmail.com>
Date Sun, 23 Jun 2019 10:52:25 -0400
Newsgroups dbase.getting-started

Dear All

Problem Solved. I had to requery() the qlabrest.

Thanks
Mustansir

Mustansir Ghor Wrote:

> Dear All
>
> Consider the below syntax
>
>  this.QLABRESG = new QUERY(this)
>    with (this.QLABRESG)
>       left = 150.0
>       database = form.dopd
>       sql = "select l.sno,l.item,r.resulty from labres l join laborat r on l.item=r.code where  l.resultc is null and l.resultm is null and r.machine=:tmachine "
>       params["tmachine"] = ""
>       active = true
>    endwith
>
>    with (this.QLABRESG.rowset)
>       onNavigate = class::ROWSET_ONNAVIGATE
>    endwith
>
>    
>
>    this.QLABREST = new QUERY(this)
>    with (this.QLABREST)
>       left = 150.0
>       database = form.dopd
>       sql = "select * from labres where sno=:sno and item=:item "
>       params["sno"] = ""
>       params["item"] = ""
>       masterSource = form.qlabresg.rowset
>       active = true
>    endwith
>
>    with (this.QLABREST.rowset)
>       indexName = "sno"
>    endwith
>
>
>   function rowset_onNavigate(type, nRows)
>            local mresultc,mresultm
>                gref = this.parent.parent
>                gref.lbtestname.text="R.No"+this.fields["sno"].value
>                 gref.etext.visible=false
>                 gref.cblogical.visible=false
>                 gref.EDmemo.visible=false
>                 gref.etext.enabled=true
>                 gref.cblogical.enabled=true
>                 gref.EDmemo.enabled=true
>                 gref.lbunit.visible=false
>                 mresultc=''
>                    mresultm=''
>
>
>                 mresultc = gref.qlabrest.rowset.fields["resultc"].value
>                 mresultm = gref.qlabrest.rowset.fields["resultm"].value
>                 ?mresultc,mresultm
>                 do case
>                  case        gref.qlabresg.rowset.fields["resulty"].value="M"
>                   gref.EDmemo.visible=true
>                   if empty(mresultm)
>                    gref.edmemo.value=""
>                         gref.edmemo.setfocus()
>                   else
>                   gref.edmemo.value = mresultm
>                  gref.edmemo.enabled=false
>                 endif                        
>                   
>                  case        gref.qlabresg.rowset.fields["resulty"].value="L"
>                   gref.cblogical.visible=TRUE
>                   if empty(mresultc)
>                    gref.cblogical.value=""
>                    gref.cblogical.setfocus()
>                   else
>          gref.cblogical.value = mresultc
>                         gref.cblogical.enabled=false
>         endif                        
>                   
>                  case        gref.qlabresg.rowset.fields["resulty"].value="N"
>                   gref.lbunit.text=this.fields["unit"].value
>                   gref.lbunit.visible=true
>                   gref.etext.visible=true
>                   if empty(mresultc)
>                    gref.etext.value=0.000
>                    gref.etext.setfocus()
>                   else
>          gref.etext.value=ltrim(mresultc)
>          gref.etext.enabled=false                        
>                   endif
>                   
>       endcase                  
>                   
>       return
>
> In the above syntax all works well except one issue. the mresultc,mresultm which takes data from qlabrest (I verified with ? in command window) but when  is is stored in appropiate control, the control  displays data from the previous record.
>
> to reconfirm the content I even displayed qlabrest in the grid.
>
> Can anybody point the error. May I have misconception of mastersource.
>
> Best REgards
> Mustansir