SiMoney
Details
SiMoney is under GNU GENERAL PUBLIC
LICENSE. It is written by Simone Pernice from scratch.
Version 2.1.6, 21st January 2007 Turin, Italy. Build 143.
SiMoney needs a MIDP 2.0 phone. The synchronize function was tested
on Motorola phones only. See synchronization paragraph below for
further details.
I began SiMoney as a basic account manager for my own needs.
Currently hundreds of people download it every day and a lot of
them send me emails about bugs to fix and features to add. It takes
longer and longer time to debug and improve SiMoney. So if you like
SiMoney and you want I continue to develop it please send me a
donation/postcard. To ask questions, suggest improvements or
changes, fix bugs contact Simone.
Greetings to: Stefania Giaconia for improvement suggestions, Billy
Boyle for spelling and grammar corrections.
Help
SiMoney is given AS IT IS, WITHOUT ANY warranty. In order to shrink
SiMoney code there is ONLY one way to do one thing, so be patient
and read the help. At first execution SiMoney creates a basic
standard set of lists of elements: accounts, categories (and main
categories), payees and currencies. Every account has its own
currency. For each account it is possible to add transaction with
date, amount, category and payee. Transaction can have an alarm and
be recurrent. Lists share some basic commands: ADD to add elements,
CLONE is to add but the screen values are pre filled with current
element data, DEL to delete elements, select an element to show it
or modify it, REPORT to get graphical or textual report on the
list, SEARCH to search for an element name forward PREVIOUS or
backward NEXT, HELP (if available) to get specific list help. The
elements of some list are linked to elements of other lists, to
link write a string in the text field to go to the element with
closer name in the required list where it is possible to: ADD if
the element does not exists, select the element to link, UNLINK to
remove the existing link. DEFAULT (if available) to set an element
as default choice for linked elements. Other functions are:
Synchronize to backup/restore/manage lists with an USB cable,
infrared and a terminal program in Unicode format (readable for
spreadsheet) or backup/restore on phone file system (if JSR75 is
supported); Calculator to evaluate expressions; Password to set a
password. It is possible to pause SiMoney without data lost to
short SiMoney begin and end time.
Some more detailed help follows:
Main Category List
List of the main categories. Main Categories should be a small set
of elements to collect all the categories in order to get simpler
reports.
Main Category Form
It is the form to fill for Main Categories. For every main category
write its name and chose if it and all its categories are expenses
or incomes.
Category List
List of categories where transactions are charged. Every category
can be linked to a main category and sharing its type (expense or
income). Use MCAT to show main category list. Use RESETAMOUNT to
set every category previewed amount to the current monthly amount.
Category Form
It is the form to fill in for categories. Set category name and its
previewed monthly amount. It is possible to specify different
frequency for the previewed amount; it will be converted
automatically in monthly. The previewed amount is compared with
actual expenses in some report. Subcategories are linked to a set
(preferably small to get simpler report) of main category. Main
categories previewed amount are the sum of their subcategories. The
residual previewed amount (income - debit) is showed in this form.
Payee List
List of payees where transactions are charged.
Payee Form
It is the form to fill in for payee. Here you can set the payee
name, address, and telephone number.
Accounts List
List of the accounts. The total account amounts is showed in the
screen title. Use SETUP to modify accounts initial settings and
CLEAR to delete transactions older than a given date in order to
save memory.
Clear Form
This is to delete the transactions older then the given date from
all the accounts to save memory. There are two gauges showing the
percentage of volatile and permanent memory used. Use this feature
if one of them is full for more than half. Note all the
transactions balances will be preserved updating the initial
amount.
Accounts Form
Account form. Set account name, initial balance, currency and
optionally a reference person and its phone number. If currency is
different from default every amount will be showed in both that
currency and default.
Transaction List
List of transactions for the selected account. Every transaction is
shown with its date, amount and payee. The amount is Void,
Reco(nciled), Alar(med) for those type of transactions. Use
RECONCILIE command to reconcile a void, alarmed or recurrent
transaction. For recurrent ones a new one will be built as
specified in the recurrent period.
Transaction Form
Transaction property form. Set transaction date, amount (withdrawal
for negative, deposit for positive), option and status. The amount
is charged on transaction account. Status can be reconciled, void,
alarmed and recurrent (with a period). While reconciled transaction
has a standard amount; void, alarmed and recurrent behaves as a
zero amount. Alarmed and recurrent transactions are automatically
showed when they expire in the expiration screen. Recurrent
transaction are automatically duplicated when reconciled from their
transaction list with RECONCILIE command. There are three options
for transaction: NONE is charged on a category and a payee; SPLIT
is charged on a payee and on a set of categories, TRANSFER makes
transactions between two accounts with equal but opposite amounts,
they are charged on a CATEGORY. Changes to a transfer are
automatically reflected on the other. If the currency of the
account is not the default one it is possible to link its exchange
rate to the currency list or to fix it. Selecting a payee in an
empty transaction will fill other fields as first transaction with
same payee, if found.
Setting Form
Input amount setting form. Amount input format is: 0,01=$0,01;
1=$1,00. It is possible to set the character used as decimal point
and thousands separator in Currency Menu. SETUP.
Currency List
List of currencies used by the accounts. Every entered amount will
be converted to default currency. If the account is not in default
currency, transaction amount will be shown twice: its currency and
default currency. Use SETUP to set SiMoney number format options.
Currency Form
It is the form to fill in for currencies. The exchange ratio means
how many unit of entered currency are required for 1 unit of
DEFAULT currency. Note if the DEFAULT currency is changed all the
other currency are changed to keep same ratio, while default became
1. If a currency is changed all the transactions of the accounts
with that currency will be updated unless they are fixed.
Graphical Report
Graphical representation of the selected report. Use Keys 2/8 or
up/down arrows to scroll up/down, 6/4 or left/right arrows to
zoom/un-zoom or rotate a pie graph, 5 to set default zoom, 0 to
view data in standard/increasing order, # to change graph type and
to set up/down step to row or page, * to view a complete pie, 1/3
to scroll labels.
Textual Report
Report list. Here you can chose one of the possible report. Select
it to see a graphical report and use LIST command to see a textual
report. Use RANGE to set the range of elements to analyze.
Calculator
Calculator form to make simple computations. Note the following
functions are available in ALL the numeric fields (like the
amounts). Press * several time quickly to insert decimal point and
the currency available, # to insert the operators available, move
the focus from input field to result field to see the computation.
Right arrow at the end of a text and left arrow at its begin will
delete the char closer to the cursor. It is possible to use
expressions with numbers and - + * / () operators. A currency
symbol after an amount will convert it into current currency. There
are 10 numeric memories slots available used with operators rMx
(store result r in memory x (0..9)), rAx (add result r in memory x
(0..9)), rSx (subtract result r in memory x (0..9)) and # to start
a new computation.
Split List
List of categories in which is split the current transaction. Add
here all the transaction categories with their amounts. When
everything is added UNASSIGNED amount should be zero.
Split Form
It is the form to fill in for Splits. Set the category and the
amount of this part of the split. Use ALLMONEY to set automatically
all unassigned money on the current category.
Synchronization Form
Synchronization form. The first time this form is opened SiMoney
looks for serial, USB, infrared, Bluetooth connections and file
system. All connections found are showed, to look again select
CONNECT. Select the required one and push OK, you will be asked to
connect the phone to the PC after a saving session, then start a
terminal program on PC using standard settings.
Synchronization Procedure
I usually receive a lot of questions about the synchronization. It
is based upon J2ME Serial Connection interface, which let the phone
links to the PC thru USB/Serial/IrDA protocol. On the PC a simple
terminal emulator will receive the data in text format and save it.
Unfortunately the link procedure is not standardized by J2ME,
therefore every manufacturer needs its own steps and phone
settings. Here I will describe the procedure for Motorola
phones.
In order to save SiMoney databases on your PC select synchronize
option and then choose the first serial port of the list (I see
COM0 on Motorola). The phone will ask you if SiMoney is allowed to
use your phone com port. Answer yes and (only then) plug an USB
cable from your PC to your phone. Then start HyperTerminal (you can
find it in start -> programs -> accessories ->
communication). It will ask for a connection name (write whatever
you want) and then a port: select the same com port of the phone
(which you can find in device manager after your phone is linked to
the pc). At this point in Hyper Terminal select transfer ->
capture text and chose a file name. Optionally push the key h
(lower case) to see the help on the available options. Push the key
b (lower case) in Hyper Terminal to get all your database in text
format. Eventually push transfer -> capture text -> stop. In
your text file will be stored all your databases. The backup files
are simple text which you can easily manipulate in order to add,
delete or modify records.
The restore procedure is exactly the opposite of backup: in SiMoney
select synchronize option and then choose the first serial port of
the list (I see COM0 on Motorola). The phone will ask you if
SiMoney is allowed to use your phone com port. Answer yes and (only
then) plug an USB cable from your PC to your phone. Then start
HyperTerminal (you can find it in start -> programs ->
accessories -> communication). It will ask for a connection name
(write whatever you want) and then a port: select the same com port
of the phone (which you can find in device manager after your phone
is linked to the pc) and set the lowest baud rate available.
Optionally push the key h (lower case) to see the help on the
available options. Push the key r (lower case) in Hyper Terminal to
send a backup of all your database. Eventually in Hyper Terminal
select transfer -> send text and choose an old backup file that
you want to restore on your phone.
Screen shot

Download SiMoney with standard money field
Executable Code
Source Code
Download SiMoney with custom money field
Although this is a new standard feature of MIDP 2.0, it does not
work well on all mobile phones. I tested it only on Motorola
phones. Try it, if it works on your phone, it is a great improvement for amount input.
Executable Code
Source Code