Manifest support for Windows 7

We’ve just added support for creating the new Windows 7 compatibility sections in the Application Manifest to both the Templates, and the Linker.

appmanifest

With the settings above your manifest is generated with these two new sections:

<compatibility xmlns=”urn:schemas-microsoft-com:compatibility.v1″>
<application>
<!–The ID below indicates application support for Windows Vista –>
<supportedOS Id=”{e2011457-1546-43c5-a5fe-008deee3d3f0}”/>
<!–The ID below indicates application support for Windows 7 –>
<supportedOS Id=”{35138b9a-5d96-4fbd-8e2d-a2440225f93a}”/>
</application>
</compatibility>

The Linker uses the MANIFEST directive and has been extended with the following options:

MANIFEST VISTA WINDOWS7
— The linker adds the default manifest to the executable compatible with records indicating application compatibility with both Windows Vista and Windows7

Note that Windows XP and Windows Vista ignore this manifest compatibility section and it has no impact on them.

Improvements to the PropertyGrid

There has been a lot of talk about the transition from properties presented in modal dialogs (ala C6 and prior versions) and properties presented in the .Net PropertyGrid control.  And a lot of that talk was not too complimentary to the MS PropertyGrid.  There were several different complaints about the control, and perhaps the most frequent complaint was the poor support for keyboard-only navigation and data entry. There were other problems too, like the representation of True/False values, etc.

Clarion 7.1 addresses these issues with a much more keyboard-capable grid control, we are still working on further improvements but here is a very short video (no audio) that gives you a good idea of where its headed.  Just keep an eye on the mouse and you’ll see its not used at all for navigating and editing the grid data.

Clarion 7.1 – New Window Previewer

The C7  Window Designer does a remarkably good job of rendering a window as it will appear at runtime; including rendering controls with manifest styles applied (something the C6 preview could never do).  But Clarion developers have proven to us that for complex windows it just cannot match the runtime presentation.  Enter the new Window Previewer functionality in 7.1 — the new previewer beats the old C6 preview hands down, it does that by compiling the window into a tiny program and executing that program, which means no matter what OS you are running, you’ll see the exact same representation for the window as you would if you had compiled the entire application.  But because this is just a tiny program, it runs instantly (just as fast as in C6)!  It also displays user-defined data within the controls (another bonus over C6).

Here is a quick screen shot of the previewer in action:

windowpreviewer1

Report Writer


This Friday we’re going to demonstrate the new Report Writer on Clarion Live!. Our thanks to John Hickey and Arnold Young for inviting us back!
I thought I’d take a few minutes to point out some of the features and give you a feel for the UI.  Here’s a scaled-down screen shot of the main view.

Report Writer - main view
Report Writer – main view

Everything is done from this main view, in this next shot I had just pressed the “Preview” button.

Preview the Report

As you can see, when you go into Preview mode a new toolbar appears that provides some great functionality, including the ability to search the report, save the report to a number of formats and even email the report in your desired format.

search1

There are some great options for saving the report to disk or for emailing.  The email button invokes the client
machine’s default email program.

export formats

Back into Design mode, one feature I think you’ll love is the support for “Styles”.  Styles let you define background colors, borders, fonts and text alignment which then makes its very easy to quickly set all your fields or static text to a nice uniform look.

styles

Styles can also be applied to Report Bands, for example that’s how I gave this report the the two different shades of blue for the odd and even rows.

styles2

The Group and Sort Pad makes it easy to apply grouping/sorting to any report.  Grouping and Sorting can be done by an end user with just a few mouse clicks.

groupsort

There are 17 controls available to build your report with:

toolbox1

The Report Wizard does a great job of getting you started, it allows you to select both a style (which you can customize), and a layout.

rptstyle2

layout1

And there is builtin support for creating labels:

labels

Hopefully this post gives you a good idea of what’s coming.  We’re working hard now on TXR conversions, which many Clarion developers have told us is very important to them, and we’re fixing bugs found internally, but it won’t be long before we make a beta version available.

Its worth mentioning that the new Report Writer will be shared by both Clarion 7 (win32) and Clarion.Net, and it includes support for doing advanced scripting using Clarion# at design time.  There is much more functionality, and great features to talk about, and as the documentation progresses we’ll post a detailed spec sheet on the web site.

4th of July Weekend

I just wanted to mention that our home office will be closed on Friday, July 3rd in honor of Independence Day. To all of you, have a safe and relaxing Holiday weekend and we will be back in the office on Monday, July 6th. Thank You!

My Success with Clarion 7

When I look at the big picture of my life, I guess I have always been a consistent person, living in the same house since 1985, married to my wife for 22 years this October, and bowling every Friday night in a mixed league. Also important, this November marks my 20 year employment anniversary with the Clarion home office. Sounds boring to some, but all of it seems like a blink of the eye to me.

So why am I mentioning all of this? Clarion 7 is a major upgrade, and now I had a requirement to upgrade one of my favorite real world applications, my Bowling League Manager.

There has been a lot of chatter on the newsgroups regarding problems upgrading applications from C6. I can tell you that “my” producation application is critical to me, because bad bowling statistics can cause discrepancies in standings and individual awards which can cause incorrect league money to be awarded. Many times the bowling center has made mistakes that my audit trail was able to correct, so this program is very important to me.

I had a situation last weekend where my bowling league management application needed a major change for a summer league I am running, and I am very happy to report to you that the conversion of my application from Clarion 6 to Clarion 7, dictionary changes, table conversion, appplication window changes, and finally changes in important hand coded processes was smooth and quick and very gratifying. This blog summarizes what I needed to do and how I did it.

To torture myself this summer, I accepted an opportunity to manage and run a Sport Bowling League called the PBA Experience (the “torture” is the tough sport bowling patterns). As an incentive to recruit new bowlers, the bowling center had given us four games for the price of three.

Now in my 20 plus years of bowling I have always bowled a 3-game series, so it was time to make a change to the league management software.

My first step was to convert the Clarion 6 application and dictionary to Clarion 7. No issues to report here, the conversion was smooth and easy.

11 table dictionary, but nearly all tables related. There are Bowlers and Bowler Master and Bowler Weekly tables, and the same thing for Teams. Add the Schedule and Weeks and Divisions and that’s the core of the database.

Step 1: Add a Game 4 to the Bowler and Team weekly tables. I used the Dictionary Copy and Paste, copied Game 3, and then renamed the result to Game 4.

dctstep1

Step 2: Convert the existing tables to their new format. I took the easy route and let the dictionary auto-convert my bowler and team weekly tables, creating a backup of my test data. I was very happy with the results:

dctstep2b

dctstep2c

That’s all I needed to do in the dictionary. The next stop was the Application Editor. Again, it’s a typical application with roughly 50 procedures. Lots of reports and 3 key processes.

Step 3: In the Application Generator, I needed to add the new Game 4 fields to two forms, the bowlers and teams weekly updates:

appdesigner1

I quickly got the hang of the alignment toolbar, and decide to use the Populate option in the Menu instead of the Data/Tables Pad. Again, just a creature of habit!

..and finally, my process logic in several embed points now needed to account for the additional game:

appdesignerembeds

I really like the new embed editor, with code completion, quick class browser and all of the other features. In most cases I simply needed to add the Game 4 logic where needed. A lot of it was copy and paste. I won’t bore you with all of the places I changed. I will say that in this case the Data/Tables Pad came in VERY handy, as I was able to easily drag and drop the field names that I needed into the embeds.

I wanted to test this quickly since the league was starting in a few days. Looking back, I will add conditional logic to the league configuration file to set it for 3 or 4 games, and then wrap my logic around that condition.

The rest of the story was non-eventful…Generate, Build, and Run. The program works perfectly, and in the next couple of days I will add the Game 4 column to a few end of season reports.

Here are the procedures that I modified, all in total about 1 hour’s work.

summary

In summary, working with Clarion 7 was extremely satifying. I know that there will be other projects that will be more challenging in the months to come.  As the project progresses I know there is more work ahead, but I am looking forward to it.

Easing into Clarion 7 – Part 9 of 9 – Application Options

In Clarion 6, your options for different sections of the IDE are located in an IDE Setup Menu:

c6setup

In Clarion 7, all of the important Application, Dictionary and other important IDE options are all accessible from the IDE Tools Menu:

toolsmenu1 

There are three new Application Options of note:

On the Application tab:

Check the Auto-Make Applications before compile box to trigger the Application Generator to generate source prior to the Build action if needed.

Check the Auto start designer on pressing the Window or Report button box to auto-load the target Designer when pressing the Window or Report button located on the Procedure Properties window. You can still view the Window or Report text by pressing the tabs in the Procedure Properties window.

On the Generation tab:

Check the Use long file names for generated files to generate application source files using the full application name followed by a three digit module number.  If you would like to use the older 8.2 naming format, clear this box.

blueline

The Dictionary Editor also has some great new options to help you fine tune your development environment.

Set the Initial Version Text to display the text to display when the version is set. When you first create a dictionary it has an initial version with a name equal to what you set in that field.

During the lifetime of the dictionary you can create new versions.
Each version is a marker that is used in the Audit details of an object. If you go to the Audit tab of any object in the dictionary you will see a Version against the Created and Modified details. This indicates which version of the dictionary the object was created in and in with version it was last changed.

The Initial Freeze State defines the initial “Freeze State” of the dictionary components as they are first imported.

After a conversion program is generated the Load Conversion Project option sets how you can load the project. You can set this to always load the project, never load the project or ask each time a conversion program is generated. The default is to ask.

When Enforce Clarion# name restrictions is checked, the dictionary editor will not allow you to create labels that are not valid in Clarion#. For example. AS is an illegal label, but legal in Clarion for Windows. If you do not want to worry about Clarion# restrictions you can uncheck this box.

If Clarion# restrictions are enabled and you load a dictionary into the editor that has a label that violates the Clarion# naming restrictions the editor will automatically rename the object to ObjectType_OldLabel, where ObjectType is a Table, Alias, Global, Pool, Key or Column. If the object is a Key or a Column with no external name, the external name is set to the old label.

For example, “AS STRING(10)” will be converted to:

“Column_AS STRING(10),NAME(‘AS’)

Any such change will appear in the Dictionary Changes pad.

 

Easing into Clarion 7 – Part 8 of 9 – Where’s my Property Editor?

In the Clarion 6 Window and Report Formatters, there is a special Property Editor (F12 Key) utility where properties of multiple controls could be viewed and modified:

c6propeditor 

In Clarion 7, the Property Editor is no longer needed, and has been replaced by the new Properties Pad:

 propertypad

Open this pad in the IDE at any time by pressing the F4 Key. The properties that you will view are based on what IDE element is currently selected. Usually this is a WINDOW, REPORT, or a control, but it could also be one of many project elements.

The new Property Pad is easier to use, displays more information in one view, and is more flexible. You can sort alphabetically or by category. To update properties common to multiple controls, simply lasso or select the target controls in the Designer and change all properties as needed.

proppad2 

 

Many property values are comprised of a finite set of choices (i.e., colors), or sometimes just a “TRUE” or “FALSE” value. Use your mouse or cursor keys to navigate to a target property value, and then click or press the space bar to cycle through valid choices.

 

Easing into Clarion 7 – Part 7 of 9 – Lazy Loaded Applications

With the ability to maintain multiple applications within a single solution, there are common shared elements of the applications that can be pre-processed prior to editing and source generation. This pre-processing of a
selected application is called lazy loading.

In the Clarion 7 IDE, a fully opened application is one that is loaded in the Application Editor.  However, applications can also be “lazy loaded”, meaning that the application may not be loaded in the Application Editor yet,  but the application template registry and any parsing of source libraries required by the templates has been performed. This allows for faster loading of applications into the Application Editor, and allows the project system to more efficiently build applications that are not currently opened in the Application Editor.

“Lazy opened” applications in the Applications Pad are marked with a special icon (highlighted in yellow below):

 

apppad

 

 

Applications not opened or “lazy loaded” are marked with a different icon (shown above not highlighted).

The Applications Pad is a powerful tool in the Clarion 7 IDE. For solutions with multiple applications, you can easily select and generate the application that you need.

If you select an application to generate, and the application is not already opened, the Generate action will “lazy load” the application as described above.

 

Easing into Clarion 7 – Part 6 of 9 – Maintaining a Multi-Application Development Solution

One of the fantastic new features of the Clarion 7 IDE is its ability to manage multiple applications in a single solution. I mentioned this in my very first blog in this series. (See Part One in this series if you haven’t already done so). 

Every development project is contained within a solution. Of course, you can have a single project associated with a single solution, and for most of the time, this will be the case.

However, a solution can also contain multiple projects. As always in Clarion, projects can be hand coded (source only) or, they can be associated with an application file, where templates and embeds are responsible for generating the project source.

Since multiple projects can be contained in a single solution, it is also true that multiple applications can also be contained in a single solution.

And yes, for your projects where multiple applications were needed (some produced DLLs and one produced the executable), they can now be managed and maintained in a single solution, and you may edit them all at the same time!

For example:

 multiappdisplay

How cool is that?

And this brings me to the main point of this particular blog. An application is always a part of a solution, but since solutions can contain multiple applications, you must be aware that closing an application does not automatically close a solution.

So, the Save and Close button shown here:

saveandcloseapp1

…will only close the active application (e.g., “Allfiles.APP”)

To close an entire solution, first close each application opened for editing, and then use the Close Solution button in the main IDE toolbar (shown here).

closesolution 

As shown above, you can also use the CTRL + SHIFT + F4 hot key combination (or use the File > Close > Solution IDE Menu item).

And rest easy fellow developer, you can only have one solution active at any time in the IDE, but with the ability to launch multiple sessions of the C7 IDE, well, that’s a topic for another time! <g>