2011年3月31日木曜日

IMEは一休み

とりあえず、Widgetの使い方が今ひとつ理解できていないので、
割り勘ソフト(GoDutch)を作ってみることにする。

WebOSアプリは小さい画面で以下に情報を詰めるか。
これが肝になるが、Widgetを上手く使うことで、スマートかつ情報入力を適切に出来るはず。

そして、この画面構成がもっとも気を使うのだろうと思う。


メイン画面:割り勘する支払金額入力、人数入力、リスト[メンバー名(任意)、負担比率、負担金額]

  1. リストは人数入力によって行を作成。
  2. または、リスト最下行+Add...ボタンで追加→人数カウントを増やす。
メンバー入力ダイアログ:デフォルトではmenber-1、負担比率は人数等分となるようにしておく。負担比率をメンバー増やしてもロックしたい場合があるので、ロックボタンもつける。負担金額の入力も出来るようにする。

 
金額入力、負担比率はテンキー方式で表示できると良いかな。

負担比率(デフォルト)(%)=100/メンバー数 

ロックされた比率がある場合の負担比率(%)=(100-(ロックされている比率合計))/ロックしていないメンバー数

負担金額=(支払金額-(ロックされている支払金額合計))×負担比率(%)/100

ということだから、

totalPayment    //整数、まぁ、100万円位までで良いかな?初期値は0
numOfMember  //整数、1~20人ぐらい、初期値は1

memeber[].name  //str、defaultはmember x(xはリスト順)
member[].rate                      //整数、端数切り上げ、1~100(%)
member[].lockedRate   //整数、1~100(%)、FlagOfLockedRateがFalseの場合には、rateを代入。Trueの場合には、lockedRateをrateに代入。初期値は0。

member[].payment              //整数、端数切り上げ
member[].lockedPayment   //整数、1~100(%)、FlagOfLockedPaymentがFalseの場合には、Paymentを代入。Trueの場合には、lockedPaymentをpaymentに代入。初期値は0。

member[].flagOfLockedRate //論理値、true || false
member[].flagOfLockedPayment //論理値、true || false

numOfLockedMember //整数、0~numOfMember, lockedRate== "true" となる数をカウント
member[].rate
// flagOfLockedRate=="false"
=(100-[flagOfLockedRate=="true"となっているlockedRateを合計])/(numOfMember-numOfLockedMember)   
// flagOfLockedRate=="true"
=lockedRate

member[].payment
// flagOfLockedPayment=="false"
=(totalPayment-[flagOfLockedPayment=="true"となっているPaymentを合計])*member[].rate/100
// flagOfLockedPayment=="true"
=lockedPayment

あとはリスト数字が動くイベントの都度、フラグの確認とrate, paymentを算出すれば良いかな?

メイン画面はリスト外:totalPaymentとnumOfMemberが、リスト内:name、rate、payment

0 件のコメント:

コメントを投稿