Format Angka Finansial

Beberapa waktu lalau ada yang nyasar ke blog ini dengan sebuah pertanyaan: “listing delphi untuk angka dibelakang koma….”

Nah, saya tulis saja :)

Untuk memformat angka pecahan, terutama dalam aplikasi akuntansi, kita dapat menggunakan fungsi format float:

FormatFloat(const AFormat:String; const AValue: Extended): String;

Di mana,

 AFormat = 'FORMAT_ANGKA_POSITIF;FORMAT_ANGKA_NEGATIF;FORMAT_0';
 

Saya telah membuat potongan kode untuk mempermudah:

function FinaceFloat(const AValue: Double): String;
var
simpan: array[1..2] of char;
begin
simpan[1]:=ThousandSeparator;
simpan[2]:=DecimalSeparator;
ThousandSeparator:='.';
DecimalSeparator:=',';
Result:=FormatFloat('#,#0.00   ;(#,#0.00)  ;-    ', AValue);
 ThousandSeparator:=simpan[1];
DecimalSeparator:=simpan[2];
end;
 

Berikut contoh penggunaanya:

Edit2.Text:=FinaceFloat(StrToFloat(Edit1.Text));
Edit4.Text:=FinaceFloat(StrToFloat(Edit3.Text));
Edit6.Text:=FinaceFloat(StrToFloat(Edit5.Text));

Hasilnya:

Format Angka Finansial

About these ads

11 thoughts on “Format Angka Finansial

  1. mas,, kalo nilai yang sudah diformat itu dimasukkan ke dalam database masalah gak..
    misal nilai (2.674,00) dimasukkan ke fields bertipe number…..

    • Untuk menyimpan pecahan, gunakan saja field yang sesuai. Misalnya di MySQL, gunakan field bertipe Float atau Real.
      Di MySQL dan database pada umumnya, pemisah ribuan adalah “koma” sedang pemisah desimal adalah “titik”. Angka hasil format di atas mengikuti konvensi Indonesia, jadi tidak sesuai dengan field-field yang ada di database.
      Solusinya, angka aslinya yang sebelum diformat yang disimpan dalam database.

      ATau kalau mau sedikti repot, bisa coba cara ini:

      procedure TForm1.Button1Click(Sender: TObject);
      var
        AngkaTerformat: String;
        Ubah:String;
        f: Double;
      begin
        Ubah:='';
        //contoh angka hasil format yang akan
        //disimpan dalam database
        //(field bertipe float/real/decimal/currency)
        AngkaTerformat:='(2.674,00)';
        //Cek Angka negatif dengan memeriksa tanda kurung...
        if Pos('(', AngkaTerformat) > 0 then
        begin
          Ubah:='-';
          //Buang tanda kurung depan
          Delete(AngkaTerformat,1,1);
          //Buang tanda kurung belakang
          Delete(AngkaTerformat,length(AngkaTerformat),1);
        end;
        //Buang pemisah ribuan
        AngkaTerformat:=StringReplace(AngkaTerformat, '.','',[]);
        //ganti pemisah desimal dari "koma" ke "titik"
        AngkaTerformat:=StringReplace(AngkaTerformat, ',','.',[]);
        //gabungkan tanda minus "-" (jika ada) ke angka sebenarnya
        Ubah:=Ubah+ AngkaTerformat;
        //hasil akhir sudah valid
        f:=StrToFloat(Ubah);
      end;
      
  2. Mas sy mo nanya soal Windows neh (Windows XP Sp3)

    Sy Mo install ulang D2007, tapi gagal terus pertama masalah “invalid serial number”
    tapi itu ahamdulillah solved.
    tapi tetap sj gagal, dengan pesan error sbb:
    RAD Studio installation failed: “The Windows Installer Service could not accessed. this occur if you are running Windows in safe mode, or if Windows Installer is not correctly installed. Contact your support personnel for assistance”. Please check your settings and try again.

    gitu mas mohon bantuan solusinya, sy tidak terlalu paham dengan Windows.

  3. mas mau nanya neh saya masih nubie, klo mau ngambil data int yang disimpan dalam label misal label1 dari form lain ke dalam form utama gmn y mas ?, trus pas dah diambil data int ntu mau ditaruh di label juga misal label2 codingnya pa y mas? thx…….

    • Saya sarankan FastReport.
      Fitur utamanya adalah Pascal Scripting sehingga kita dapat membuat fungsi-fungsi dalam report tanpa harus membuatnya di Delphi.

      Silahkan di cek http://www.fast-report.com/en/

      Di bagian download juga tersedia link untuk FreeReport yang gratis dipakai.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s