Masino Sinaga

A Web Developer Who Helps Web Developers

Anda di sini: Beranda / PHPMaker / Membandingkan Nilai di Sebuah Baris dengan Baris Sebelumnya dari PHPMaker
Mudahnya Menghilangkan Tulisan Total di Bawah Tabel Halaman List
Menyembunyikan Kolom di Tabel halaman List tapi Menampilkannya di Extended Search

Membandingkan Nilai di Sebuah Baris dengan Baris Sebelumnya dari PHPMaker

Sel, 19 Agustus 2014 oleh Masino Sinaga 7 Komentar

Tidak bisa dihindari bahwa Anda sebagai Web Developer harus membandingkan nilai di sebuah baris dengan baris sebelumnya atau yang berada di atasnya. Data ini biasanya perlu dibandingkan karena adanya business-logic yang mengharuskan memproses data baris per baris yang ditampilkan melalui sebuah tabel.

Jika kita berbicara mengenai data di baris yang satu dengan baris lainnya, maka kita membahas mengenai data yang ditampilkan pada halaman List. Beruntunglah Anda sebagai Web Developer jika menggunakan PHPMaker, karena dia sudah menyediakan server event yang memungkinkan kita mengeksekusi kode untuk memproses baris per baris. Nama server event itu adalah ListOptions_Rendered.

Katakanlah dalam contoh berikut, kita akan membandingkan nilai tahun pada field yang bernama Tahun. Nilai pada field ini sudah diurutkan mulai dari nilai terkecil sampai terbesar. Selanjutnya kita akan memeriksa dan membandingkan nilai di baris sekarang dengan nilai di baris sebelumnya. Hasil perbandingan itu selanjutnya akan kita tampilkan, sehingga kita bisa mengetahui pada baris keberapa terjadi perbedaan nilai.

Langkah pertama, kita harus mendeklarasikan dua buah variabel yang masing-masing bernama $tahun_sebelumnya dan $tahun_sekarang.

Langkah kedua, kita mengambil terlebih dulu nilai tahun saat ini, lalu menampungnya ke variabel $tahun_sebelumnya. Setelah itu, kita tampilkan hasilnya dengan menggunakan echo.

Langkah ketiga, di bawahnya kita memeriksa kembali, apakah nilai tahun pada baris berikutnya tidak sama dengan nilai Tahun pada baris sebelumnya. Jika ya, maka update nilai Tahun pada baris sekarang dengan nilai pada baris berikutnya.

// ListOptions Rendered event
function ListOptions_Rendered() {
	// Langkah Pertama:
	global $tahun_sebelumnya;
	global $tahun_sekarang;		
	$tahun_sebelumnya = $this->Tahun->CurrentValue;

	// Langkah Kedua:	
	if ($this->RowCnt > 0) {					
		echo $this->RowCnt . ". Tahun Sekarang - Sebelumnya = " . $tahun_sebelumnya;
		echo " - ";
		echo $tahun_sekarang;
		echo "<br>";
	}

	// Langkah Ketiga:
	if ($this->Tahun->CurrentValue <> $tahun_sebelumnya) {
		$tahun_sekarang = $this->Tahun->CurrentValue;
	} else {
		$tahun_sekarang = $tahun_sebelumnya;
	}

}

Jadi, secara garis besar, kode di atas bisa kita bagi menjadi 3 bagian sesuai dengan 3 langkah di atas tadi (lihat pada komentar di kode), yaitu:
1. Siapkan variabel dan tampung nilai sekarang
2. Tampilkan hasilnya (untuk memisahkan proses nomor 1 di atas dan nomor 3 di bawah ini)
3. Bandingkan baris sekarang dengan baris sebelumnya

Demikian seterusnya, ketiga bagian kode ini akan diproses dalam server event ListOptions_Rendered.

Jika misalnya ada 10 record di dalam Tabel pada halaman List yang sedang aktif, dengan urutan nilai sebagai berikut: 1, 1, 1, 1, 1, 2, 2, 3, 3, 3 maka output dari kode di atas menjadi seperti ini:

1. Tahun Sekarang - Sebelumnya = 1 -
2. Tahun Sekarang - Sebelumnya = 1 - 1
3. Tahun Sekarang - Sebelumnya = 1 - 1
4. Tahun Sekarang - Sebelumnya = 1 - 1
5. Tahun Sekarang - Sebelumnya = 1 - 1
6. Tahun Sekarang - Sebelumnya = 2 - 1
7. Tahun Sekarang - Sebelumnya = 2 - 2
8. Tahun Sekarang - Sebelumnya = 3 - 2
9. Tahun Sekarang - Sebelumnya = 3 - 3
10. Tahun Sekarang - Sebelumnya = 3 - 3

Perhatikan pada baris nomor urut 6 dan 8, di situlah terjadi perubahan nilai Tahun, masing-masing dari 1 ke 2, dan dari 2 ke 3.

Mudah sekali, bukan? 🙂

Ditempatkan di bawah: PHPMaker Ditag dengan:ListOptions_Rendered, PHPMaker Indonesia, Server Events, Tutorial PHPMaker

Mudahnya Menghilangkan Tulisan Total di Bawah Tabel Halaman List
Menyembunyikan Kolom di Tabel halaman List tapi Menampilkannya di Extended Search

Komentar

  1. angga mengatakan

    Sel, 5 April 2016 pada 12:22 pm

    mirip dengan kasus saya ini pak 🙂 kalo output seperti ini

    ———————————————————————
    | hari | tanggal | nilai | hasil |
    ——————————————————————–
    | | 01/05/2016 | A | |
    ——————————————————————-
    | 1 | 02/05/2016 | B | B-A |
    ——————————————————————-
    | 2 | 03/05/2016 | C | C-B |
    ——————————————————————-

    jadi hasil hari pertama (1) itu pak pengurangan dari value B-A & juga hari kedua (2) C-B
    yg saya tanyakan bagaimana pak ouput table list dibawah hari itu empty & disamping nilai A juga pak

    dan lagi2 terima kasih pak banyak bantu blog ini pak 😀

    Reply
    • Masino Sinaga mengatakan

      Sel, 5 April 2016 pada 12:55 pm

      Untuk melakukan perhitungan, gunakan seperti logik di atas.

      Sedangkan untuk menampilkan output-nya di halaman List, Anda harus menambahkan kolom baru, baca artikel ini: Menambahkan Kolom Baru di Halaman List pada Aplikasi Web dari PHPMaker.

      Reply
      • angga mengatakan

        Sel, 5 April 2016 pada 2:59 pm

        hasilnya belum sama yah pak seperti ini
        [img src=”http://image.prntscr.com/image/0a8873863d3f46eabc0763f68add6d32.jpg” width=400]

        Reply
        • angga mengatakan

          Sel, 5 April 2016 pada 3:00 pm

          haduh ga bisa insert gambar 😀

          Reply
        • Masino Sinaga mengatakan

          Sel, 5 April 2016 pada 3:07 pm

          Apanya yang belum sama?

          Reply
          • angga mengatakan

            Sel, 5 April 2016 pada 3:13 pm

            dari link yg bapak kasih sudah saya coba.jadi dibawah header barisnya ke isi semua sedangkan saya dibawah hari dan hasil itu loncat 1 baris dulu pak baru isi fieldnya gitu pak 🙂

            Reply
            • Masino Sinaga mengatakan

              Sel, 5 April 2016 pada 3:27 pm

              Untuk mengisi baris-baris di bawahnya, gunakan logik kode yang ada di artikel ini.

              Reply

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Alasan 21 Harus Pakai Masino Extensions: Form Wizard dengan jQuery SmartWizard v7
  • Alasan 20 Harus Pakai Masino Extensions: Maximum Record per Page
  • Alasan 19 Harus Pakai Masino Extensions: Custom Breadcrumb Links
  • Alasan 18 Harus Pakai Masino Extensions: Improvement User Level Permissions
  • Alasan 17 Harus Pakai Masino Extensions: Dynamic Permission for Export Data

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Alasan 21 Harus Pakai Masino Extensions: Form Wizard dengan jQuery SmartWizard v7 pada Alasan 10 Harus Pakai Masino Extensions: Form Wizard
  • Masino Sinaga pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Masino Sinaga pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Charly pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Charly pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025

(c) Masino Sinaga 2009 - 2026 | WordPress | Catat masuk | Kembali ke atas