Sunday, 17 December 2017

Where did that file go? (Get to grips with the Android file system)

As you know The Framers Pricing App can use a .csv file of moulding information to price up jobs. When you first install the App there is a file that contains all the Wessex and Frinton mouldings, fine if you are in the UK, not very useful if you are in a different country.
The App provides a means for you to install a new file, and so use the mouldings which are relevant to you as well as keeping the prices upto date. (Tap "Settings", then "Misc. Values" and then "Import Mouldings file".)
Of course you have to have constructed the file in the first place (see blog posts Nov. '16 & May '15). This post is primarily about finding that file to import.

The first problem is to get the new Mouldings.csv file onto your device, and there are a number of ways of doing it.

  • You could go to a supplier's website and download it from there (assuming they have a compatible file).
  • You could send yourself an email with the file attached, and then download the attachment.
  • You could copy it onto your device via a usb or bluetooth link with your pc.
  • You could copy it from you PC onto an microSD card and then move the card to your device.
  • You could construct the file directly on your device.

I'm sure there are other ways as well.

Once the file is on your device the next problem is to find it and for those of us who are used to the Windows file system the Android system seems quite alien.
If you used either of the first two methods then the file will be in "Download" and this is where tapping "Import Moulding file" will take you.

Tap Mouldings.csv to select it, and you're done.
But suppose the file is somewhere different? How do we get to it?
Tap the 2 small dots (above Adobe Reader in the above screenshot) and you will go up a level in the Android file structure (see below).

You can now select "documents" for instance.

If the file is on a microSD card you'll need to move up another level. So, scroll to the top of the list and tap the 2 small dots and you should see a list similar to the one below.

"external_sd" is the one we want. Select that, and the files on that microSD card will be listed.

NB. Get the file onto your device, disconnect any usb or bluetooth connections, then import the file into the App. Frustration will result otherwise!

If you have downloaded over time a number of update files to the same location without deleting the first one, then they will be labelled "Mouldings.csv", "Mouldings(1).csv" and so on. The App only looks for a file named "Mouldings.csv" and it will ignore all others. So you can be in a position of importing an out of date file. Delete the old file(s) before you import the new one.

Wednesday, 8 November 2017

Update Mouldings v's Windows Update

A few weeks ago I had a call from a Wessex Professional user about a problem she was having, trying to update her moulding records from an Excel file. I was quite busy framing at the time (the day job) so I said I'd try to repeat the issue that evening at home, not expecting a problem.
Within a few minutes of running a test the same error message appeared ("unexpected error from external database driver (1)") - problem time!
I put the error message into Google and found that other people had the same problem, and the cause was the latest Windows update.

Now I'm a firm believer in the saying "If it ain't broke - don't fix it". Unfortunately it was broken and I had to fix it!

Very quickly I came up with one solution, but that involved expecting the user to download and install 100mb of new database engine. Ok if nothing else could be done, but not ideal.

The breakthrough came when I found a DLL that returned data from an Excel file (DLL's are small files that add functionality to a program). The slight fly in the ointment was that the data came in a slightly different form which meant that a section of code had to be rewritten. Overwriting code that had worked perfectly well upto the Windows Update was rather galling, particularly as it is quite complex (loops within loops). However, after much head-scratching and testing a new program version came into being.
So, download ver. 4.4.4 from the Wessex website and all will be well.

Friday, 25 August 2017

Disaster(s) averted

"Not another update!" I can hear the cries now.
The main update for the year (version 4.4.2) was put on the Wessex website for download in March. This made the way the program works out the price much more flexible. Also, the way the program reads the xml User file was rewritten (you didn't really need to know that).

This upgrade (version 4.4.3) will hopefully prevent an overwritten database being completely irretrievable.
Up to now, if you imported a database (or User) file it was simply copied over the previous one. This didn't have to be a problem, because before you did anything as drastic as that you backed up all your data - you did, didn't you?

Of course that ignores the human factor - we're in a hurry, we didn't think things through, all sorts of reasons.
The solution must be easy, surely if a new database is being imported, simply copy the old one to somewhere on the computer?
Well, yes that could work, but it would also leave us with some potential problems. If it was copied to "My Documents" it could be quite easy to loose or delete. Copied to somewhere more obscure would mean that it was difficult to find.
The other potential problem is that copying the same file to the same place would mean overwriting the previous file. Potentially good data could be overwritten with bad data.

The solution - use the "Recycle Bin". Every PC has one, it's easy to access and will also take multiple copies of a file with the same title.
However, we could then be faced with a bin filled with files of the same name, not insurmountable (right-click and choose "Properties" to find out size, last modified, etc.) but a bit of a faff to sort out. Also, if the file was "restored" it would immediately overwrite the current database, even if the program was not running!

With a bit of nifty footwork we can get around all of these problems.
When you click "File" > "Import Database" the program checks the new database is compatible, then it warns you to check the dates of the old file and the new one to be imported.
When you tell it to continue it used to simply overwrite the old database.
Now, the old database file is copied to the "Desktop" with the date and time appended to its title. Straightaway it is then moved to the "Recycle Bin". So, if the file is restored, it is restored to the "Desktop" and can be dealt with from there. Clever eh?

If you peer at the above image of my Recycle Bin you will see that the database file is now labelled "V3_01052017_120726". To decipher that - "V3" is the database file, "01052017" is the date (01/05/2017) and "120726" is the time (12:07:26).
Then, it was easy to use virtually the same code to do the same thing with the "User" file (this contains the user's labels and values, which together with the database file made the program specific to a particular framer).
So, now the user will have to work a lot harder to lose their data!

NB. The above only works with the program's own internal database, so if you are using a networked database, you will need to make your own arrangements to copy and backup file.

Monday, 29 May 2017


As with many things to do with computers the Wessex Pricing Program has a few things that are not immediately obvious. Our transatlantic cousins call these "Gotchas". I thought I'd list the most frequent together with the solutions.

  1. Trying to update the moulding records by clicking "Import Database" - Be careful! "Import Database" will (if you ignore the warnings) overwrite the whole of your existing database. Make sure you click "Update Mouldings" instead.
  2. Running a moulding update correctly, but the records have stayed the same. - When you download the update file from Wessex it is saved in Downloads as "WessexMouldings" (or "FrintonMouldings"), If you download a new update file it is saved as "WessexMouldings(1)", "WessexMouldings(2)" and so on. However the moulding update process will only allow you to import "WessexMouldings" ie. the original one. The answer - delete all but the most recent update file and Rename that to "WessexMouldings" (or "FrintonMouldings").
  3. An error message "......You don't have permission to access this file......." when the program tries to read the database. - The easy solution is to run the program as administrator. Right-click the shortcut and choose "Run as administrator". Note the program does not normally need administrator rights to run, the problem seems to occur when the User Account Type is changed.
  4. An error message on startup ".....Root element is missing ......" - Make sure you have upgraded the program to version 4.4.2 or higher.

Easy really?

Saturday, 25 March 2017

On The Road Again

Well, the band is back together again,
It's got some brilliant new members.
There are some great new numbers.
Old favorites have been given an extra polish.
The tour dates are set, the venues booked.
The hotels warned.

I'm really looking forward to meeting and talking with all the visitors.
See you there!

Wednesday, 1 March 2017

Even better?

We've just posted the latest version (4.4.2) of Wessex Professional for people to download.
I thought it would be a good idea to go through the main changes.

NB. As with all Wessex Professional upgrades, if you don't want to engage with the new features you can just go on using it exactly as before.

The Wessex Pricing Program in all its many guises (from WPP1) has always used the same algorithm to work out a price, - a variable cost added to a base cost. It helps if you think of the base cost as a cutting charge and the variable cost as the material (charged to the customer).
With me so far?
Now while this is a very straightforward and flexible way to work out a price, the very observant amongst you will have noticed that it doesn't quite reflect the reality of some types of framing.
For instance, an expensive moulding may not need the same markup as a cheap one, but will need a higher base cost to reflect the extra time to cut and join it. Waterwhite glass is another obvious item. On the other hand a cheap moulding probably needs a higher markup to make a worthwhile profit.

Enter the new upgraded program that will make your pricing even more flexible.
Now you can give items their own base cost, rather than having to use one that covers all the glass/mount options.
You can also give each individual moulding record its own base cost and markup (or just accept the default).
The database and labels files are automatically upgraded (as would be any that were imported at a later date). Note, these upgraded file cannot be used in previous versions of WPP4.

Below are 2 screenshots of the changes that should be self-explanatory.

Note, in the moulding record if the default Base price and Markup are being used, the text in those boxes is blue, if you have put a non-default value then it is black.
There have also been some changes in the background that should make the program easier to use and more reliable.