Subject Re: VARIABLE DECLARATION
From Ken Mayer <dbase@nospam.goldenstag.net>
Date Mon, 16 Apr 2018 13:53:40 -0700
Newsgroups dbase.getting-started
Attachment(s) MustansirExample.wfm

On 4/16/2018 12:48 PM, MUSTANSIR GHOR wrote:
> Sorry for the 2nd OR here refers to radio button event handler. Also the last line I forgot to write word end , after the vanish


If I understand what you're trying, copy the attacked out to a .wfm
file, save it, run it. It will create five tables that are identical in
format with the name of the table in a field. There is a datalinked
entryfield that shows the value of "TableName" ... when you change
radiobuttons, the query's SQL property is changed and the value in the
entryfield updates for the current record. Examine the code, it should
be pretty easy to read.

Ken

--
*Ken Mayer*
Ken's dBASE Page: http://www.goldenstag.net/dbase
The dUFLP: http://www.goldenstag.net/dbase/index.htm#duflp
dBASE Books: http://www.goldenstag.net/dbase/Books/dBASEBooks.htm
dBASE Tutorial: http://www.goldenstag.net/dbase/Tutorial/00_Preface.htm



// setup -- drop existing tables:
close database
if _app.databases[1].tableExists( "Table 1" )
   _app.databases[1].dropTable( "Table 1" )
endif
if _app.databases[1].tableExists( "Table 2" )
   _app.databases[1].dropTable( "Table 2" )
endif
if _app.databases[1].tableExists( "Table 3" )
   _app.databases[1].dropTable( "Table 3" )
endif
if _app.databases[1].tableExists( "Table 4" )
   _app.databases[1].dropTable( "Table 4" )
endif
if _app.databases[1].tableExists( "Table 5" )
   _app.databases[1].dropTable( "Table 5" )
endif

// create tables:
create table "table 1" ( TableName char(10), TestData char(10) )
create table "table 2" ( TableName char(10), TestData char(10) )
create table "table 3" ( TableName char(10), TestData char(10) )
create table "table 4" ( TableName char(10), TestData char(10) )
create table "table 5" ( TableName char(10), TestData char(10) )

// quickly add a single row to each table and set the data:
use "table 1"
append blank
replace TableName with "Table 1", TestData with "Test Data"
use "table 2"
append blank
replace TableName with "Table 2", TestData with "More Data"
use "table 3"
append blank
replace TableName with "Table 3", TestData with "Data data"
use "table 4"
append blank
replace TableName with "Table 4", TestData with "More more"
use "table 5"
append blank
replace TableName with "Table 5", TestData with "Data 5555"
// close tables:
use

clear // output pane of command window


** END HEADER -- do not remove this line
//
// Generated on 04/16/2018
//
parameter bModal
local f
f = new MustansirExampleForm()
if (bModal)
   f.mdi = false // ensure not MDI
   f.readModal()
else
   f.open()
endif

class MustansirExampleForm of FORM
   with (this)
      metric = 6        // Pixels
      height = 218.0
      left = 386.0
      top = 257.0
      width = 327.0
      text = "Mustansir Example"
   endwith

   this.TABLE11 = new QUERY(this)
   with (this.TABLE11)
      left = 231.0
      top = 158.0
      width = 38.0
      height = 37.0
      sql = 'select * from "Table 1.dbf"'
      active = true
   endwith

   this.RECTANGLE1 = new RECTANGLE(this)
   with (this.RECTANGLE1)
      left = 10.0
      top = 48.0
      width = 89.0
      height = 139.0
      text = ""
   endwith

   this.TEXT1 = new TEXT(this)
   with (this.TEXT1)
      height = 24.0
      left = 0.0
      top = 0.0
      width = 325.0
      anchor = 2        // Top
      alignVertical = 1        // Middle
      alignHorizontal = 1        // Center
      fontBold = true
      text = "Mustansir Example"
   endwith

   this.TABLE1RB = new RADIOBUTTON(this)
   with (this.TABLE1RB)
      onChange = class::TABLE1RB_ONCHANGE
      height = 24.0
      left = 22.0
      top = 59.0
      width = 68.0
      text = "Table 1"
      group = true
      value = true
   endwith

   this.TABLE2RB = new RADIOBUTTON(this)
   with (this.TABLE2RB)
      onChange = class::TABLE1RB_ONCHANGE
      height = 24.0
      left = 22.0
      top = 81.0
      width = 68.0
      text = "Table 2"
   endwith

   this.TABLE3RB = new RADIOBUTTON(this)
   with (this.TABLE3RB)
      onChange = class::TABLE1RB_ONCHANGE
      height = 24.0
      left = 22.0
      top = 107.0
      width = 68.0
      text = "Table 3"
   endwith

   this.TABLE4RB = new RADIOBUTTON(this)
   with (this.TABLE4RB)
      onChange = class::TABLE1RB_ONCHANGE
      height = 24.0
      left = 22.0
      top = 132.0
      width = 68.0
      text = "Table 4"
   endwith

   this.TABLE5RB = new RADIOBUTTON(this)
   with (this.TABLE5RB)
      onChange = class::TABLE1RB_ONCHANGE
      height = 24.0
      left = 22.0
      top = 158.0
      width = 68.0
      text = "Table 5"
   endwith

   this.ENTRYFIELD1 = new ENTRYFIELD(this)
   with (this.ENTRYFIELD1)
      when = {; return false}
      dataLink = form.table11.rowset.fields["tablename"]
      height = 22.0
      left = 125.0
      top = 120.0
      width = 135.0
   endwith

   this.TEXT2 = new TEXT(this)
   with (this.TEXT2)
      height = 66.0
      left = 129.0
      top = 50.0
      width = 153.0
      text = "DataLinked to Field TableName in one of tables referenced by radiobuttons:"
   endwith

   this.rowset = this.table11.rowset

   function TABLE1RB_onChange()
      if( this.value ) // as more than one RB will fire for each change,
                       // only execute code for the one that is now "true"
         cTable = this.text
         form.Table11.sql := "select * from '"+cTable+"'"
      endif
   return

endclass