Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Mengubah Link Edit di Halaman Master/Detail View Aplikasi Web dari PHPMaker
Mudahnya Mengolah Nilai Balikan Stored Procedure di Aplikasi Web dari PHPMaker
Mudahnya Mengubah Link Hapus di Halaman View Aplikasi Web dari PHPMaker

Mudahnya Mengubah Link Edit di Halaman Master/Detail View Aplikasi Web dari PHPMaker

Sen, 16 Maret 2015 oleh Masino Sinaga 16 Komentar

PHPMaker ternyata cukup cerdik dalam memanfaatkan sebuah halaman yang dibangkitkan olehnya. Contoh, halaman View yang awalnya dibuat untuk menampilkan sebuah Record dalam satu halaman, bisa digunakan juga untuk menampilkan data Master dan Detail sekaligus, atau lebih dikenal dengan istilah Master/Detail View. Di bagian atas data Master dalam layout View, dan di bagian bawah data Detail dalam layout tabel.

Di halaman Master/Detail View ini juga bisa terdapat beberapa link atau tombol yang berfungsi untuk membuka halaman Add, Edit, dan Delete. Di sinilah timbul tantangan yang cukup mengasyikkan bagi Web Developer yang menggunakan PHPMaker. Tantangan itu adalah, bagaimana caranya kita dapat membuat dua kondisi yang berbeda dalam satu halaman View tersebut, tanpa harus melakukan usaha yang terlalu banyak. Masih bingung?

Contoh kasusnya seperti ini. Sering kali kita sebagai Web Developer harus menyesuaikan link Edit di halaman Master/Detail View (menampilkan Record Master di atas dan Detail di bawahnya), sedangkan di halaman View (menampilkan satu Record Master), link Edit tetap menggunakan yang aslinya. Masih bingung juga?

Mari kita ambil contoh kasus sederhana menggunakan project demo. Katakanlah di halaman Master/Detail View yang menampilkan data orders di bagian atas dan data orderdetails di bagian bawah, kita ingin mengubah link Edit, sedangkan jika halaman View yang hanya menampilkan data orders saja, maka link Edit menggunakan link aslinya (tidak diubah). Sudah mulai ada gambaran?

Nah, mengimplementasikan hal tersebut, maka kita cukup menaruh kode PHP berikut ke dalam server event Page_Render yang terdapat di bawah lokasi Server Events -> Table-Specific -> View Page, sehingga kode selengkapnya menjadi seperti ini:

// Page Render event
function Page_Render() {
	//echo "Page Render";
	if ($this->getCurrentDetailTable() <> "") {
		$options = &$this->OtherOptions;
		$option = &$options["action"];
		$item = &$option->Add("edit");
		$item->Body = '<a class="btn btn-default ewAction ewEdit" title="'.Language()->Phrase("Edit").'" data-caption="'.Language()->Phrase("Edit").'" href="yourpage.php"><span data-phrase="ViewPageEditLink" class="icon-edit ewIcon" data-caption="'.Language()->Phrase("Edit").'"></span></a>'; // sesuaikan yourpage.php
	}
}

Mari simak kode barusan. Untuk memastikan halaman View tersebut adalah Master/Detail View, maka kita cukup menggunakan method getCurrentDetailTable milik object Table atau Page dari halaman View, dan jika hasilnya mengembalikan String yang tidak kosong, maka eksekusi kode untuk mengubah link Edit tersebut.

Seperti kode PHP di beberapa artikel saya sebelum ini, kode di atas memiliki persamaan, yaitu untuk menyesuaikan link Edit, maka kita mengoptimalkan object OtherOptions yang di dalamnya memiliki pilihan action dan nama item-nya adalah edit.

Sedangkan untuk mengubah link Edit, maka kita cukup menyesuaikan nilai dari property Body milik item edit tadi.

Betapa mudah dan cepatnya, bukan? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Master/Detail, Master/Detail View, Page_Render, PHPMaker Indonesia, Server Events, Tutorial PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com dan ilovephpmaker.com.

Mudahnya Mengolah Nilai Balikan Stored Procedure di Aplikasi Web dari PHPMaker
Mudahnya Mengubah Link Hapus di Halaman View Aplikasi Web dari PHPMaker

Komentar

  1. ameisfine mengatakan

    Jum, 27 Oktober 2017 pada 12:26 pm

    Pak Masino, artikel ini hampir menjawab kasus saya. Tapi saya ingin memanipulasi tombol Master/Detail Copy supaya menjalankan aksinya seperti biasa yaitu meng-copy record tapi berpindah ke table yang lain.

    Jelasnya:
    Master/Detail dari Proforma Invoice yg terpilih -> dicopy ke table Master/Detail Real Invoice dengan otomatis diberi nomer invoice baru.

    Atas bantuannya terimakasih

    Balas
    • Masino Sinaga mengatakan

      Sab, 28 Oktober 2017 pada 10:20 am

      Sudah saya jawab di topik diskusi ini: Copy Master Detail to another table.

      Balas
      • ameisfine mengatakan

        Sab, 28 Oktober 2017 pada 2:24 pm

        Ooohhh makasih pak, saya lanjut disana aja kalo gitu 🙂

        Balas
        • Masino Sinaga mengatakan

          Sen, 30 Oktober 2017 pada 3:06 pm

          Oke, sama-sama.

          Balas
      • ameisfine mengatakan

        Jum, 3 November 2017 pada 2:22 pm

        Untuk kasus saya, coba solusi ini sy pasang di Add > Startup Script. Tapi panggil function itu kok tidak jalan ya pak? syntaxnya gmn ya? thx

        $(“input[name=’x_Is_Proforma’]”).change(function() { // Assume Field1 is a text input
        if (this.value == “Y”) {
        $(this).fields(“Sales_Number”).value(” “); // Set value to FieldA
        } else if (this.value == “N”){
        var next = GetNextSalesNumber();
        $(“#x_Sales_Number”).val(next);
        }
        });

        Balas
        • Masino Sinaga mengatakan

          Sab, 4 November 2017 pada 2:01 pm

          Lalu apa kaitannya dengan artikel di atas?

          Balas
  2. dani mengatakan

    Sab, 28 Oktober 2017 pada 12:41 am

    Saya mencari di help dan gugel, tapi belum ketemu. Mohon idenya pak, bagaimana agar seorang karyawan bisa mengedit data yg dia masukkan, tapi data itu baru terupdate setelah di ok atau di approve oleh atasannya.
    Trims pak

    Balas
    • Masino Sinaga mengatakan

      Sab, 28 Oktober 2017 pada 10:21 am

      Sudah saya jawab juga di topik diskusi ini: Employee could update data after approved by their boss.

      Balas
      • dani mengatakan

        Sab, 28 Oktober 2017 pada 10:53 am

        lho, mobhar itu rupanya pak masino ya? matur nuwun pak ilmunya,hehehe

        Balas
        • Masino Sinaga mengatakan

          Sab, 28 Oktober 2017 pada 1:59 pm

          Lho, baru tau ya? Kemana aja selama ini? Hehehe… 🙂

          Balas
  3. bagus mengatakan

    Ming, 2 Mei 2021 pada 8:05 am

    mohon saran pak Masino. Kalo ingin tabel detail masuk dalam salah satu tab di master baik edit delete maupun add. Apa harus di buat sebagai VIEW seperti cara diatas pak ? Kalo berupa view, insert data di 1 item master dengan banyak detail masih bisa pak ? terimakasih sebelumnya

    Balas
    • Masino Sinaga mengatakan

      Ming, 2 Mei 2021 pada 11:44 am

      Iya benar. Bisa dengan membuat database view, lalu database view tadi dijadikan sebagai detail table-nya.

      Balas
      • bagus mengatakan

        Ming, 2 Mei 2021 pada 4:34 pm

        tapi kalo jadi view. tab dari tabel detail tak bisa add data ? saya kasusnya seperti ini bang. bagaimana pada akhirnya itu kasus bisa done ? https://www.hkvforums.com/viewtopic.php?t=41138

        Balas
        • Masino Sinaga mengatakan

          Ming, 2 Mei 2021 pada 6:23 pm

          Tergantung dengan database view-nya. Jika database view hanya mengandung satu table saja, dan di project PHPMaker sudah ada Primary Key-nya, seharusnya database view tersebut bisa dilakukan operasi add/edit/delete.

          Balas
  4. Eka Dalas Pangestu mengatakan

    Sel, 15 Februari 2022 pada 3:22 pm

    Hallo pak masino
    izin bertanya, apakah bisa master detail view ketika add tampilannya itu add page,
    kalo saat ini kan kalo kita buat master detail itu tampilannya grid add

    Terima Kasih

    Balas
    • Masino Sinaga mengatakan

      Kam, 17 Februari 2022 pada 10:39 am

      Tidak bisa, kalau menggunakan link bawaan dari generate kode PHPMaker.

      Kalau mau ubah, gunakan server event Page_Render seperti kode di atas, sesuaikan link-nya supaya diarahkan ke halaman Add page untuk menambahkan per satu record.

      Balas

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

  • Hati-Hati Memilih Versi PHP Sebelum Generate Code di PHPMaker 2022
  • Alasan AlwaysUseEnglishUSLocale Sebaiknya Aktif di Masino Extensions untuk PHPMaker 2022
  • MasinoInputMask18 Extension, Autoformat Angka dengan Fitur Lebih Kaya di PHPMaker 2022
  • MasinoSignature18 Extension, Mudahnya Mengelola Tanda Tangan di PHPMaker 2022
  • MasinoFormWizard18 Extension, Mengubah Tampilan Multi-Page di PHPMaker 2022

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Hati-Hati Memilih Versi PHP Sebelum Generate Code di PHPMaker 2022
  • Thien Rudi pada Hati-Hati Memilih Versi PHP Sebelum Generate Code di PHPMaker 2022
  • Masino Sinaga pada Cara Menggunakan Login by session variables di Aplikasi Web dari PHPMaker 2021
  • Masino Sinaga pada Cara Menggunakan Login by session variables di Aplikasi Web dari PHPMaker 2021
  • Masino Sinaga pada Cara Menggunakan Login by session variables di Aplikasi Web dari PHPMaker 2021

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

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