上限

概要

上限は複数の取り引きから一部分を選択するための一つの手段です。 例えば、今月から複数の取り引きだけを表示するために使用することが出来ます。 これらの取り引きのみが口座に上限を与えることに注意して下さい。 それは適切に適用された上限と支出 口座とその副口座 に注目することで今月の出費を解析できることをを意味します。

技術的に言うと、上限は機能が含んでいる Python式であり、 Emma が提供しています。 この一般的なアプローチは貴方が考え得る全ての制限を定義 します。(まるで、"過去 5 年間の 12 月の土曜日の口座からの お金の出し入れを見せて下さい" ;-) と言わんばかりに) 加えて、沢山の複雑な処理に対して簡単なインタフェースを 提供するための関数を自前で作成することも可能です。

貴方がプログラマでないからといって心配しないで下さい。 プログラミング知識が無くても Emma を使うことが可能です。 次のセクションからのサンプルに挑戦して自分自身で確かめてみて下さい。

サンプルで学んでみよう

サンプルを使った学習というアプローチがこの上限を理解するのに一番適していると 私は考えます。以下に述べるサンプルに挑戦して、 メインウィンドウの先頭にある 上限 エントリに上限を入力して、ツールバーのボタン 上限の適用 をクリックして下さい(またはメニューから 上限->適用 を選択して下さい)。

Figure 3-5. 上限の適用

本当に簡単なサンプルから始めてみましょう。

Example 3-1. 上限のサンプル

emma.year() == 2000

21 世紀の前の年からの取り引きのみ。

emma.amount() >= 100.00

最低 $100 の取り引きのみ。

emma.acc_from() == "Cash"

貴方の財布が湿っている取り引きだけ。

比較文の中の二つの等号に注意して下さい。 一個だけ置くことは間違っています。

二つの式を一緒に結合する方法を紹介しましょう。 次のキーワードを使って接続することが可能です。: and or.

Example 3-2. 二つの式の結合

(emma.year() == 2000) and (emma.acc_to() == "Cinema"

2000 年に映画でお金を 使っている取り引きのみ。

(emma.acc_from == "Checking account") or (emma.acc_to == "Checking account")

口座の確認で何かしている(予算と支出の両方で) 取り引きのみ。

(emma.year() == 2001) and (emma.month() == 5)

2001 年の 5 月の取り引きのみ。

((emma.acc_from == "Cash") or (emma.acc_to == "Cash")) and (emma.day() <= 15)

毎月の前半に 現金 口座 で何か発生した取り引きのみ。

単一の式の周りにある括弧に注意して下さい。

それでは リスト に挑戦してみましょう. アイテムをリストの中に グルーピングするにはそのアイテムを鍵かっこで囲みます。 in 演算子はオブジェクトがリストに属すかどうかに  関係なく確認をしていることに留意して下さい。下記のサンプルを見て下さい。

Example 3-3. リストを使った上限

emma.month() in [6,7,8]

夏のシーズンの取り引きのみ。

emma.acc_to() in ["Food", "Bills"]

食費 または 請求書 の口座を作っている取り引きのみ。

関数

このセクションは上限式を使うための関数のリファレンスを記述しています。

組み込み関数.

emma.amount()

取り引きで移動した金額を返します。

emma.acc_from()

収入の取り引き口座の名前を返します。

emma.acc_to()

支出の取り引き口座の名前を返します。

emma.date()

取り引きの日付を紀元(一般的に 1970年1月1日)からの秒で返します。

emma.year()

取り引きの年を返します。

emma.month()

取り引きの月を返します。

emma.day()

取り引きの日を返します。

emma.desc()

取り引きの説明を返します。

emma.parents(acc_name)

与えられた親口座の リスト を返します。 (例えば、 emma.parents("Gas") は ["Gas", "Bills", "Expenses"] を返します)。

emma.date_val(date_string)

与えられた日付の文字列に対する紀元からの秒数を返します。 例えば、 emma.date() >= emma.date_val("05/05/2000") (2000年5月5日以降の取り引きのみ)。

emma.register_func(name, desc)

この関数は一つの関数を登録します。 上限ダイアログの中で desc と一緒に name パラメータを渡すだけです。

Warning

スクリプトの中に一つだけこれを使って下さい。すると起動時に読みます。 この関数は上限式の中で使われることを意味してはいません。

標準的な拡張.

Day()

関数 emma.day() のマクロです。

Month()

関数 emma.month() のマクロです。

Year()

関数 emma.year() のマクロです。

CurDay()

取り引きが今日発生した場合に 真 を返します。

CurWeek()

取り引きが今週発生した場合に 真 を返します。

CurMonth()

取り引きが今月発生したら 真 を返します。

CurYear()

取り引きが今年発生したら 真 を返します。

After(date_string)

取り引きが与えられた日以降に発生したら 真 を返します。

Before(date_string)

取り引きが与えられた日以前に発生したら 真 を返します。

AccFrom(acc_name)

取り引きが与えられた収入口座で発生したら 真 を返します。

AccFromSubOf(acc_name)

取り引きが与えられた収入口座またはその副口座の一つで発生したら 真 を返します。 (または その副口座の副口座... ;-) 等々。)

AccFromIn(acc_list)

取り引き口座がが与えられたリストの中の一つであれば 真 を返します。 例えば: AccFromIn(["Cash", "Checking account"])

AccTo(acc_name)

取り引きが与えられた収支口座にあればの 真 を返します。

AccToSubOf(acc_name)

取り引きが与えられた口座またはその副口座にあれば 真 を返します。

AccToIn(acc_list)

取り引きの口座が与えられたリストの中に一つあれば 真 を返します。

Amount()

emma.amount() のマクロです。

DescMatch(regexp)

取り引きの口座が正規表現 regexp にマッチしたら、 真 を返します。

日時の拡張. FIXME.