Subject Re: Subforms
From Duncan <finance@iacsa.co.za; jdstark@telkomsa.net> <Duncan <finance@iacsa.co.za; jdstark@telkomsa.net>>
Date Mon, 18 Aug 2014 14:05:44 -0400
Newsgroups dbase.getting-started


Hi Mervyn

Thanks for the advice. I am still trying to get it to work.

I followed your examples and created the test_subedit.wfm & subedit.wfm files. I downloaded your conversion program to convert subedit.wfm to subedit.sfm. I selected subedit.wfm as input and subedit.sfm for output and clicked on the create button, but nothing happened. I then ran the test_subedit.wfm to see if maybe the "sfm" file was not displaying in the dbase directories.  I got the error -

Error:  Class does not exist:  TEST_SUBEDITFORM::TEST_SUBEDITFORM

Duncan




Mervyn Bick Wrote:

> On Wed, 13 Aug 2014 10:24:53 +0200, Duncan <finance@iacsa.co.za> wrote:
>
> > I have created a three page form with a datalink for displaying /  
> > updating the rowset information. I am trying to create a subform  
> > containing the rowset's memo field (for making notes) that can be  
> > invoked through a popup menu on any of the three pages. I used the form  
> > designer to create the subform and followed the manual's instructions to  
> > change:-
> >
> > class TestFormForm of FORM
> >
> > to
> >
> > class TestFormform( Testpopup, "Mypopup") of SUBFORM( Testpopup,  
> > "Mypopup")
> >
> > i.e. Testpopup is the 3 page parent form
> >
> > but i continually get syntax errors on the above statement which I have  
> > amended to exclude the parent name without any success.
> > I would welcome any advice to work around the problem.
>
>
> I found subforms a PITA as the form designer can't handle them.  To get  
> round this I wrote a little program to convert forms to sub forms.  This  
> way I keep the form available for tweaking in the designer and the subform  
> available for use.  If I change the form all I need to do is recreate the  
> subform again.  I name all forms to be converted to subforms as  
> subxxxxx.wfm and the converted  files are saved as subxxxxx.sfm.
>
> Coordinates for .wfm are relative to the screen coordinates but subform  
> coordinates are relative to the parent form's coordinates.  Remember to  
> move the .wfm form that is to be converted to a .sfm form to the top left  
> corner of the designer before saving it.
>
> The parent object and title for the subform are passed as arguments when  
> the subform is instantiated so these values should not be hard coded in  
> the subform source code.
>
> class TestFormform( oParent, cTitle) of SUBFORM( oParent, cTitle)
>
> In practice I've found that the value in cTitle does NOT get passed to the  
> subform so one needs to set the subform text property manually once the  
> subform has been instantiated.
>
> Mervyn.
>
>
>
> ********* Start of sub1.sfm ********
> class sub1Form( oParent, cTitle ) of SUBFORM( oParent, cTitle )
>     with (this)
>        height = 16.0
>        left = 21.5714
>        top = 1.1364
>        width = 40.0
>        text = ""
>     endwith
>
>     this.PUSHBUTTON1 = new PUSHBUTTON(this)
>     with (this.PUSHBUTTON1)
>        onClick = class::PUSHBUTTON1_ONCLICK
>        height = 1.0909
>        left = 8.2857
>        top = 8.7273
>        width = 15.2857
>        text = "Pushbutton1"
>     endwith
>
>
>     function PUSHBUTTON1_onClick
>        this.parent.close()
>        return
>
> endclass
> ********* End of sub1.sfm *********
>
> ****** Start of subformtest.wfm *******
> ** END HEADER class SubFormTestForm of FORM
>     with (this)
>        onOpen = class::FORM_ONOPEN
>        onClose = class::FORM_ONCLOSE
>        height = 19.6818
>        left = 71.5714
>        top = 4.8182
>        width = 70.2857
>        text = "Parent Form"
>     endwith
>
>     this.TEXT1 = new TEXT(this)
>     with (this.TEXT1)
>        height = 1.7727
>        left = 1.8571
>        top = 1.0
>        width = 37.4286
>        text = "Form with a subform."
>     endwith
>
>     this.PUSHBUTTON1 = new PUSHBUTTON(this)
>     with (this.PUSHBUTTON1)
>        onClick = class::PUSHBUTTON1_ONCLICK
>        height = 1.0909
>        left = 3.2857
>        top = 11.2727
>        width = 15.2857
>        text = "Open SubForm"
>     endwith
>
>     this.PUSHBUTTON2 = new PUSHBUTTON(this)
>     with (this.PUSHBUTTON2)
>        onClick = class::PUSHBUTTON2_ONCLICK
>        height = 1.0909
>        left = 3.2857
>        top = 13.6818
>        width = 15.2857
>        text = "Close SubForm"
>     endwith
>
>
>     function form_onClose
>        close procedure sub1.sfm
>        return
>
>     function form_onOpen
>        // instantiate subform
>        set procedure to sub1.sfm
>        form.subform = new sub1Form( this, " My Subform" )
>        //title passed above is ignored. so set it specifically
>        form.subform.text = "My subform"
>
>     return
>
>     function PUSHBUTTON1_onClick
>         form.subform.open()
>        return
>
>     function PUSHBUTTON2_onClick
>         form.subform.close()
>        return
>
> endclass
> ********* End of subformtest.wfm *********


Warning: Unknown: write failed: No space left on device (28) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0