home *** CD-ROM | disk | FTP | other *** search
- DPBank plugins
-
- Because DPBank was intended to be small and fast, it is likely that you
- may not find the feature you may be looking for in this program; but
- still, you prefer DPBank because of it's better interface, small memory
- requirements, or whatever...
-
- To resolve this dilemna, I've added the possibility to add third party
- programs with the form of "plugins". These plugins will integrate
- closely with DPBank and it will look like the new features are built-in.
- Indeed, all that is needed is the press of a hotkey and the plugin will
- be launched dynamically. Once the plugin has terminated, you will be
- prompted back to DPBank. In case you switch back to DPBank before the
- plugin has terminated, DPBank will close the plugin for you
- automatically because it's not possible to share the account files
- between two programs.
-
- All this happens without the user knowing it as long as the plugin
- author has followed some basic instructions that you can find below.
-
- DPBank plugins MUST be placed in an \APP\DPBANK directories in order to
- be found.
-
- TECHNICAL NOTE TO PROGRAMMERS
-
- Since version 1.6, it's now possible to write "plugins" for DPBank. This
- option is provided so people who want to use DPBank with more features
- than the standard included ones can go ahead while the other users who
- liked the original simplicity of the program can still use the "plain
- vanilla" DPBank without having to worry about getting more memory.
-
- This file explains what you need to do as a programmer in order to
- integrate dynamically with DPBank. It also describes the file formats
- you may need and what you should and should not do with the files.
-
- Note: I have no experience with C programming, so if you want to write a
- plugin in C, you'll have to give me some details because I doubt it will
- work with the actual method used in DPBank. All the instructions below
- apply to plugins wirtten in OPL.
-
- First, you need to make a simple Psion Data file (without labels, ie:
- with the OPL CREATE command) having the following fields:
-
- -The name of your plugin, exactly as you called your APP. This name will
- appear in the plugin menu of DPBank and at the same time, it will be the
- shell name of the app when it will be launched.
- -The filename of your plugin (but no need for the path, see below)
- -First line to be displayed in the "info" field for your plugin
- -The second line of info
- -The third line of info
- -The fourth line of info
-
- All fields should be strings. The info lines are limited to 40
- characters per line. ALL fields MUST BE PRESENT! If you don't need all 4
- lines of infos, you must set them to "" be they must be present in the
- data file, or else DPBank will crash.
-
- The info will be displayed in a dialog when the user wants to know more
- about your plugin. You may want to include your name, contact address,
- version number or whatever else you judge interesting...
-
- This Data file must have exactly the same name as your plugin name
- except with an extension of "dpb" and must be located in an \APP\DPBANK
- directory in order for DPBank to locate it and display it in the menu.
-
- If you take for example Nick Dawkin's "Plot" plugin, you'd have the Data
- file "plot.dpb" in the \APP\DPBANK directory and the application file
- "plot.opa" in the \APP\DPBANK directory of any drive.
-
- When the plugin is called from within DPBank, the program will attempt
- to find the plugin application itself in the \APP\DPBANK directoy of all
- drives. If it cannot find the file, it will let the user know of the
- problem.
-
- Once it has located your plugin, DPBank will launch it with the command
- line parameters set to open the current account datafile. Thus, it would
- be equivalent to launching your plugin from the system screen with the
- name of one account (and NOT the group as with DPBank itself for
- example). Your plugin must receive this info with the OPL CMD$(x)
- command. In other words: CMD$(2) will contain for example "accounts.d03"
- and CMD$(3) will contain for example "O" for open.
-
- If you want your plugin to work seperately (ie: launched from the system
- screen), you must make sure you give priority to the command line from
- DPBank and not ask the user which account he wants to use. You can
- differentiate command lines from DPBank and those of the system screen
- because the system will never send a direct account name, but a group
- name ("pre" extension).
-
- Once your plugin is launched, it will have complete control over the
- account data file (as DPBank had previously closed it for himself) and
- you can do whatever manipulations you need with it. In fact, DPBank will
- have no account files open itself.
-
- The transactions datafile database is a plain Psion Data file with no
- headers. You simply cannot open them with the normal Data application
- because all fields are not strings (which is a limitation of the Data
- app).
-
- The data has the following format: (note that this WILL change fairly
- soon, but once I will have changed the format (for version 2.x files), I
- hope it will be more or less definitive)
- -yrmody$: date of transaction in YYYYMMDD format
- -desc$: description of transaction
- -catego$: category of the transaction (short code)
- -locamt: local amount of transaction (in money of account's default)
- -cleared%: reconciled flag is bit 0. Other flags may appear later.
- -foramt: foreign amount (0 if in default money)
- -forcurr$: if this string is empty, then the amount is in the local
- amount of the account, otherwise, the amount is of this currency (new
- databases will have something set here always! If the amount is in
- default money, then it will still have the default money's name)
- -balance: balance associated to this transaction at this position in
- list.
-
- Note: the files are always sorted in chronological order. This is one of
- the reasons you can't exit without saving your data. If your plugin
- modifies anything on the data file (ie: writes to it), then YOU are
- responsible of re-sorting the whole file at ALL times (since you never
- know when your program will terminate).
-
- It is highly recommended to open the database file in read-only mode for
- the above reason.
-
- Your plugin should have an exit option (Psion-x) and when activated,
- DPBank will re-open the database file, move to the foreground and
- re-display the transactions as to reflect any changes.
-
- You do not need to worry about switching back to DPBank. This will be
- taken care of automatically. In the case where the user would switch
- manually back to DPBank, the program would send a close (eXit) process
- signal to the plugin. In the event that the plugin is not responsive to
- this signal, a kill signal would have to be sent! This could be
- catastrophic if the plugin didn't take care to save all changes it made
- to the database file at all times.
-
- Please don't forget this important point!
- *****************************************
- Your plugin MUST be responsive to System EXIT messages AT ALL times!
-
- DPBank needs to close the plugin because the program needs to have
- complete control over the database file and the Psion doesn't allow to
- have complete control over a file if it's already opened by another
- application.
-
- I hope I've answered all your questions with this file. In the case of
- the contrary, don't hesitate to contact me by email. I will be happy to
- answer any other problems you may have.
-
- Thanks for your interest in writing a DPBank plugin. I understand that
- certain people need more than simply a "Quicken frontend" if I may say,
- and I hope you will take this opportunity to enhance DPBank that little
- bit further. I'm sure all DPBank users will appreciate your effort.
-
-