I am trying out a new approach to the use of my browses. Instead of using normal windows for browses and normal form update windows (mdichildren), I am trying out implementing a sheet/tabcontrol on the toolbar of the midframe.
On each tab I have a browsebox (dropcount=10) with normal entry localator connected, form updatebuttons connected to the browsebox etc. From there I would like to open the forms, instead of the normal browse solution.
The solution works fine as long as I use non-mdi child for the form update, but it doesnt seem to support mdichild forms. Then I get the error message - error on thread etc etc.
Do somebody have a workaround on this ?
Also I would like to have the toolbar with the sheetcontrol look more like a ‘ribbon’. Any suggestions on how to do this?
MDI windows need to be on a START’d thread. You’d also need to manage the stuff that a form expects (such as GlobalRequest). Sometimes I find it easiest to create a SOURCE procedure, which sets up the state of things then calls the form.
That way, if you ever have a normal browse, you can still call your form normally.
That said, I’m not sure you’ll be satisfied with having input controls on a TOOLBAR. Some types of controls cannot receive focus when on a toolbar, making it a PITB if you want to support keyboard-only use of your app.
I actually like the idea of using a browse on the toolbar. In my case the user could find a vessel (ship) by browsing the dropdown. Alternatively use the locator. By doubleclicking the browsebox the form with vessel details would open.Alternatively using normal button. On other tabs I would use the same principle for voyages, contacts etc.
Do you have some codeexamples of the code to put in the source before opening a form?
CallMyUpdateForm PROCEDURE(STRING pGlobalRequest,STRING pWhatever)
GlobalRequest = pGlobalRequest
!Prime your record here
MyWhatever = pWhatever
MyUpdateForm !Call the form