Subject Re: Form to Form
From Mustansir Ghor <mustan31@hotmail.com>
Date Thu, 11 May 2023 08:29:54 -0400
Newsgroups dbase.getting-started

Dear Peter

Many of my teachers here commented that there many ways of doing a task. I would suggest to the scenario a simpler way in my opinion would be to use Tab object.

Best Regards
Mustansir

Peter Wrote:

> I am having trouble linking the data file from one for to a second form.  In form1 there is a grid from which the user can choose a name (First name and Second Name) or ID# (a numeric field with length of 5).
> Once a name has been highlighted, a pushbutton will take the user to a second form, form2, to edit all fields.  Same data file in each.  But I am having trouble using the ID# either as a parameter or a memory variable from form1 to add to sql statement so form2 can show all fields.
> I had this problem solved a few weeks ago, but after messing around the sql won't work.
> I am copying some code for your benefit.
> Entryfield1 allows user to enter either ID# or part of Last Name.  I use isalpha() to change index depending on whether entryfield1 starts with a letter or a number.  That works to show ID# or name in selected order.
>
> I look forward to your help.
> Peter
>
>
> FROM FORM1 -- has GRID  
> function PBGOTO_onClick()
>                 if isalpha(form.ENTRYFIELD1.value)
>                    form.entryfield1.value = form.patient1.rowset.fields["pat_no"].value+" -- "+;
>                                         TRIM(form.patient1.rowset.fields["lname"].value)+", " + ;
>                                         form.patient1.rowset.fields["fname"].value
>                 else
>                         form.entryfield1.value = form.patient1.rowset.fields["pat_no"].value
>                 endif
>                 form.entryfield1.value = form.patient1.rowset.fields["pat_no"].value
>                 mgoto = form.patient1.rowset.fields["pat_no"].value
>                 DO editpattest.wfm with true,mgoto
>                 form.close()
>                 return
>
> BOOTSTRAP OF FORM2
>         parameter bModal, mgoto
>         local f
>         f = new EditPatTestForm()
>         if (bModal)
>            f.mdi = false // ensure not MDI
>            f.readModal()
>         else
>            f.open()
>         endif
>
> QUERY OF FORM2
>    this.DATABASE1 = new DATABASE(this)
>    with (this.DATABASE1)
>       left = 728.0
>       top = 11.0
>       width = 53.0
>       height = 37.0
>       databaseName = "MYTEST"
>       active = true
>    endwith
>
>    this.QUERY1 = new QUERY(this)
>    with (this.QUERY1)
>       left = 812.0
>       top = 11.0
>       width = 39.0
>       height = 37.0
>       database = form.database1
>       databaseName = "MYTEST"
>       sql = "select * from patienttest"  // where pat_no = mgoto"  I tried this; does not work
>         indexName = "pat_no"
>         active = true
>         //this.rowset.fields["pat_no"].value = mgoto        //I tried this; does not work
>    endwith
>
>
> TEST OF Form_onOpen
>
>         function form_onOpen()
> /*            d = new database()
>                 d.databasename := "MyData"
>                 d.active := true
>                 patient1 = new query()
>                 database := d
>                 sql := "select * from patienttest"
>                 active := true
>                 rowset.indexname := "pat_no"                
>                 rowset.fields["pat_no"]=100  //a test of random "pat_no" does not work
> */
>                 msgbox("Param: "+mgoto)                //This works: shows mgoto value        
>                 //form.query1.rowset.fields["pat_no"].value = mgoto        //BUT this does not work
>       return
>