Curl Global Community
円貨と外貨の桁を合わせたい - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: 円貨と外貨の桁を合わせたい (/showthread.php?tid=998)



円貨と外貨の桁を合わせたい - umemura - 10-30-2013

取引明細をグリッドに表示する際、円貨と外貨の両方が混在する可能性があり、
単純に右詰すると、数字の桁がばらばらになり、見づらいです。

グリッドの中で、整数と小数の両方を表示する場合に、
小数点桁の位置を合わせたいのですが、よい方法はありますでしょうか。




RE: 円貨と外貨の桁を合わせたい - umemura - 10-30-2013

エクセルだと、小数点以下を0で埋めるか、整数の場合にも小数点が表示される方法しかなかったのですが、
http://www.relief.jp/itnote/archives/000418.php

Curl であれば、下記のような方法で実現できそうですね。
パディングの処理は、ゼロ埋めなどにも使えそうです。

フォントが等幅フォントである必要がありますが。


Code:
||空白をパディングする
{define-proc public {padding str:String, length:int, padding-char:char = ' '}:String
    let ret:String = str
    def padding-amount = length - ret.size
    {if padding-amount > 0 then
        set ret = ret & {String.repeat-char padding-char, padding-amount}
    }
    {return ret}

}

||少数桁位置を合わせる
{define-proc public {alignment str:String, digit-size:int}:String
    let ret-val:String = ""
    def str-ary:StringArray = {str.split split-chars = '.'}
    {switch str-ary.size
    case 1 do
        set ret-val = str & {padding "", digit-size + 1}
    case 2 do
        set ret-val = str-ary[0] & "." & {padding str-ary[1], digit-size}
    else
        {return str}
    }
    {return ret-val}
}


{let people:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField "amount", domain = String}
        },
        {RecordData amount = "12345.6789"},
        {RecordData amount = "123"},
        {RecordData amount = "1.0000"},
        {RecordData amount = "1.00"},
        {RecordData amount = "1.20"},
        {RecordData amount = "1.2"}
    }
}
{value
    {RecordGrid
        font-family = "MS ゴシック",
        font-size = 10pt,
        record-source = people,
        {RecordGridColumn
            halign = "right",
            "amount"
        },
        {RecordGridColumn
            "amount",
            halign = "right",
            format-spec =
                {proc {data:any, record:Record}:String
                    {return {alignment data asa String,  4}}
                }
        }
    }
}



RE: 円貨と外貨の桁を合わせたい - shahid11 - 11-19-2013

感謝您的好的博客。保持在未來分享這樣的想法。有時候我們忽略這一類的東西,而且還遭受了很多。謝謝你的提示。
這可以是一個不錯的電源網絡資源。因此,他們會更容易找到的材料為電源。感謝您將節省的錢為tips.Proper照顧長期。
你的文章已經幫助我了解這個主題在不同的級別。探索這個問題,我想感謝你們的努力。謝謝您的信息。