Masino Sinaga

Web Development, PHPMaker, & PHP Report Maker

Anda di sini: Beranda / PHPMaker / Membuat Kode Otomatis Saat Data Ditambah di Aplikasi Web dari PHPMaker
Menampilkan Data berdasarkan Data Terpilih di ComboBox Lain dari PHPMaker
Mengatur Pilihan Menu Milik Sebuah Record di Aplikasi Web dari PHPMaker

Membuat Kode Otomatis Saat Data Ditambah di Aplikasi Web dari PHPMaker

September 5, 2014 oleh Masino Sinaga 194 Komentar

Tidak akan pernah bisa dihindari di sebuah Aplikasi Web yang mengharuskan sistem membuat ID atau Kode secara otomatis saat Pengguna menambah data yang baru. Tidak terkecuali juga dengan Aplikasi Web yang dihasilkan oleh PHPMaker. Hanya saja, Aplikasi Web yang dihasilkan oleh PHPMaker akan jauh lebih mudah mengimplementasikannya dibandingkan (mungkin) dengan Aplikasi Web yang dibuat dengan cara lain. Tidak percaya? Simak saja artikel ini selengkapnya.

Supaya lebih mudah, mari kita menggunakan contoh pada sebuah tabel yang paling sederhana. Tabel ini bernama t_jenis hanya memiliki dua buah Field, masing-masing bernama Kode dengan tipe CHAR(6) dan Deskripsi dengan tipe VARCHAR(20). Format data Kode yang diinginkan misalnya seperti ini: JNS001, JNS002, JNS003, dan seterusnya. Artinya, Kode tersebut tidak diinput oleh Pengguna, tapi akan otomatis dibuat oleh sistem. Jadi, Pengguna hanya perlu memasukkan data pada field Deskripsi saja.

Ada tiga langkah utama yang perlu dilakukan (tentu saja diasumsikan project PHPMaker Anda sudah sinkron dengan struktur tabel tadi).

Pertama, kita harus menyiapkan sebuah fungsi global untuk men-generate data Kode dengan format seperti di atas. Katakanlah nama fungsi tadi GetNextKodeJenis, kemudian kita menempatkannya ke dalam Global Code yang terdapat di bawah Server Events -> Global -> All Pages:

function GetNextKodeJenis() {
	$sNextKode = "";
	$sLastKode = "";
	$value = ew_ExecuteScalar("SELECT Kode FROM t_jenis ORDER BY Kode DESC");
	if ($value != "") { // jika sudah ada, langsung ambil dan proses...
		$sLastKode = intval(substr($value, 3, 3)); // ambil 3 digit terakhir
		$sLastKode = intval($sLastKode) + 1; // konversi ke integer, lalu tambahkan satu
		$sNextKode = "JNS" . sprintf('%03s', $sLastKode); // format hasilnya dan tambahkan prefix
		if (strlen($sNextKode) > 6) {
			$sNextKode = "JNS999";
		}
	} else { // jika belum ada, gunakan kode yang pertama
		$sNextKode = "JNS001";
	}
	return $sNextKode;
}

Kedua, kita harus memastikan bahwa saat Pengguna sedang menyimpan data yang baru, maka sistem akan mengambil data Kode yang terakhir dan telah ditambahkan dengan nilai satu. Untuk itu, salin kode ini ke dalam server event Row_Inserting:

// Row Inserting event
function Row_Inserting($rsold, &$rsnew) {
	// Enter your code here
	// To cancel, set return value to FALSE
	$rsnew["Kode"] = GetNextKodeJenis(); // mengantisipasi lebih satu user menginput data saat bersamaan
	return TRUE;
}

Perhatikan bahwa kita cukup hanya menugaskan nilai yang dihasilkan oleh fungsi GetNextKodeJenis ke dalam Field Kode di recordset yang baru; $rsnew[“Kode”]. Hal ini penting, untuk mengantisipasi jika ada lebih dari satu Pengguna yang hampir secara bersamaan menambah data pada tabel ini.

Ketiga, kita harus mengantisipasi kondisi di form saat Pengguna sedang menambah data. Karena field Kode tidak diinput secara manual oleh Pengguna, tapi akan diisi otomatis oleh sistem. Jadi, field Kode harus dinonaktifkan (sekalipun masih tetap bisa kelihatan), sambil tetap menampilkan kode berikutnya yang berasal dari fungsi buatan di atas tadi.

Untuk itu, kita menggunakan server event Row_Rendered dengan kode seperti di bawah ini:

// Row Rendered event
function Row_Rendered() {
	// To view properties of field class, use:
	//var_dump($this-><FieldName>);

	// Kondisi saat form Tambah sedang terbuka (tidak dalam mode konfirmasi)
	if (CurrentPageID() == "add" && $this->CurrentAction != "F") {
		$this->Kode->CurrentValue = GetNextKodeJenis(); // trik
		$this->Kode->EditValue = $this->Kode->CurrentValue; // tampilkan
		$this->Kode->ReadOnly = TRUE; // supaya tidak bisa diubah
	}

	// Kondisi saat form Tambah sedang dalam mode konfirmasi
	if ($this->CurrentAction == "add" && $this->CurrentAction=="F") {
		$this->Kode->ViewValue = $this->Kode->CurrentValue; // ambil dari mode sebelumnya
	}
}

Perhatikanlah dari kode barusan, kita harus menangani dua kemungkinan. Kemungkinan pertama, saat Pengguna sedang menambah data atau mode form dalam keadaan terbuka. Lalu kemungkinan yang kedua, saat Pengguna sedang dalam mode konfirmasi, maka kita menampilkan data Kode dari nilai Kode yang diperoleh dari mode form yang terbuka sebelumnya.

Perlu diketahui, bahwa meskipun kita menampilkan kode berikutnya di saat Pengguna sedang menambahkan data, tapi itu bukan berarti kode tersebut yang akan digunakan. Itu hanya referensi saja buat Pengguna pada saat dia membuka form Add. Jika pada saat yang hampir bersamaan ada Pengguna lain yang menambahkan data di tabel ini, maka ada kemungkinan si Pengguna tadi yang duluan mendapatkan dan menyimpan kode tersebut.

Itulah kenapa sebabnya di server event Row_Inserting kita pun harus mengantisipasi hal tersebut dengan mengambil ulang nilai kode yang terakhir dari Database, lalu mengisikannya kembali ke field Kode sebelum data benar-benar disimpan ke Database. Paham maksudnya, ‘kan? πŸ˜‰

Yang hebatnya lagi adalah, trik ini bisa digunakan pada mode Grid-Add. Kita hanya cukup menyembunyikan kolom atau field Kode, dengan menambahkan sedikit kode saja di server event Page_Load yang terdapat di bawah lokasi Server Events -> Table-Specific -> List Page, sehingga kode selengkapnya menjadi seperti ini:

// Page Load event
function Page_Load() {
	//echo "Page Load";
	if ($this->IsGridAdd()) {
		$this->Kode->Visible = FALSE;
	}
}

Betapa mudah dan cepatnya, bukan? πŸ˜€

Ditempatkan di bawah: PHPMaker Ditag dengan:Global Code, Grid Add, Page_Load, PHPMaker Indonesia, Row_Rendered, 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.

Menampilkan Data berdasarkan Data Terpilih di ComboBox Lain dari PHPMaker
Mengatur Pilihan Menu Milik Sebuah Record di Aplikasi Web dari PHPMaker

Comments

  1. Cak Sobri mengatakan

    September 9, 2014 pada 8:25 am

    Sungguh sangat mudah πŸ™‚
    tapi saya gagal faham tentang kode ini buat apa ya ‘%03s’ ? saya cari searching gk faham, siapa tau penjelasan om Masino Sinaga bisa mudah di mengerti πŸ™‚

    Balas
    • Masino Sinaga mengatakan

      Oktober 20, 2014 pada 1:38 pm

      Sori baru lihat komentar Anda pada hari ini. πŸ™‚

      Sintaks ‘%03s’ untuk membuat format angka 0 di depan dengan jumlah karakter angka maksimal 3 digit.

      Balas
  2. siti mengatakan

    Oktober 20, 2014 pada 1:14 pm

    selamat siang, saya ingin tanya, dimana bisa membeli software dg lisensi asli phpmaker-phpreport maker ini dijakarta? dan berapa kira2 harganya untuk diindonesia? tks

    Balas
    • Masino Sinaga mengatakan

      Oktober 20, 2014 pada 1:45 pm

      Selamat siang. Sepengetahuan saya, belum ada reseller PHPMaker di Indonesia (mohon koreksi saya jika salah).

      Anda bisa membelinya (purchase) langsung dari website resminya di sini: http://www.hkvstore.com/purchase.asp?prodid=11.

      Balas
    • Masino Sinaga mengatakan

      Januari 28, 2015 pada 4:08 pm

      Sekarang Anda bisa membeli PHPMaker melalui saya. Selengkapnya, baca artikel ini: Mau Beli PHPMaker? Hubungi Saya sebagai Reseller PHPMaker di Indonesia!

      Balas
  3. siti mengatakan

    Oktober 21, 2014 pada 12:57 pm

    saya sudah coba demo phpmaker11, bagus. kami juga coba trial softwarenya, dengan demo project. tapi sayang jika ingin fasilitas tambahan dg menambahkan thirdparty tools tidak bisa. kami coba mengikuti petunjuk http://www.hkvstore.com/phpmaker/doc/thirdparty.htm tapi denied dan tetap hanya 4 saja.
    o iya kami juga melihat software lain, menurut pak masino, keunggulan apa saja yg dimiliki phpmaker, phprunner, scriptcase? tks.

    Balas
    • Masino Sinaga mengatakan

      Oktober 21, 2014 pada 1:44 pm

      Artikel berikut semoga bisa membantu:
      – Apa Saja Kriteria Tools PHP Code Generator yang Bagus Menurut Saya?
      – Database Apa Saja yang Didukung oleh PHPMaker?
      – Bagaimana Cara Kerja PHPMaker?

      Balas
  4. Rijal mengatakan

    November 16, 2014 pada 4:10 pm

    bagus tutorial nya, saya pelajari dulu. (ijin nyimak) hehe..

    Balas
    • Masino Sinaga mengatakan

      November 17, 2014 pada 10:11 am

      Terima kasih. Silahkan… πŸ™‚

      Balas
  5. toni mengatakan

    Desember 5, 2014 pada 8:26 am

    bagaimana caranya agar setiap ganti bulan nomer diulang lagi dari awal jadi 001
    atau menambahkan kode bulan, jika Oktober : JNS-X.001 , Desember : JNS-XII.001 dst…

    Balas
    • Masino Sinaga mengatakan

      Desember 5, 2014 pada 8:36 am

      Ya tinggal Anda tambahkan saja logic pemeriksaan bulan dan tanggal di dalam function GetNextKodeJenis. Konversikan nilai bulan menjadi nilai angka romawi, dan konversikan nilai tanggal menjadi format 3 digit.

      Balas
      • toni mengatakan

        Desember 5, 2014 pada 8:56 am

        lalu yang jika ganti bulan otomatis nomer kembali ke 001, 002, 003 dst.. logikanya bgmana ?

        Balas
        • Masino Sinaga mengatakan

          Desember 5, 2014 pada 9:12 am

          Ya tinggal Anda periksa saja nilai Bulan dan Tanggal sekarang. Jika sekarang Tanggal 1 dan data Bulan di record sebelumnya lebih kecil dari Bulan sekarang, maka konversikan ke angka romawi Bulan sekarang, lalu konversikan juga nomor urut menjadi 001. Dengan cara ini maka Anda sudah mengantisipasi pemberian nomor 002, 003, dan seterusnya. Gampang kan?

          Balas
      • agus mengatakan

        Mei 2, 2017 pada 11:39 am

        mau tanya gan, untuk aplikasi surat saya masih model backup data pertahun, gimana caranya supaya dalam sebuah aplikasi bisa berubah otomatis di tahun berikutnya tanpa backup data tahun lalu

        Balas
        • Masino Sinaga mengatakan

          Mei 2, 2017 pada 12:58 pm

          Ya tinggal dicek aja tahun saat itu. Jika nilainya tidak sama dengan nomor sebelumnya, berarti kembali dimulai dari nomor 1. Gampang kan?

          Balas
  6. Edi mengatakan

    Juni 15, 2015 pada 4:38 pm

    Apakah kalo kita menggunakan Database Access ( bukan MySql) pada Projek PHP Maker Kode yang digunakan sama seperti diatas ?
    ataukah ada perbedaan Script Program ?

    dan apakah Artikel-artikel di situs ini bisa diterapkan kalo seandainya kita menggunakan Database Access (bukan MySql) ?
    (khususnya yg berkaitan dengan Script Modifikasi)

    Balas
    • Masino Sinaga mengatakan

      Juni 15, 2015 pada 6:35 pm

      Secara umum tidak ada perbedaan kode PHP untuk Database yang berbeda. Artinya, kode yang ada di artikel-artikel pada situs ini bisa digunakan untuk Database selain MySQL.

      Kalaupun ada perbedaan kode PHP, biasanya untuk kode yang memiliki sintaks SQL untuk melakukan query secara khusus sesuai dengan Database yang digunakan, dan itupun sangat jarang sekali. Kalau SQL yang digunakan umum, seharusnya bisa untuk Database yang berbeda.

      Balas
  7. Edi mengatakan

    Juni 16, 2015 pada 11:37 am

    konsep di PHP Maker jika menggunakan Database Access ternyata kita tidak perlu membuat DataSource ya mas..
    seperti Artikel ini http://blog.rosihanari.net/cara-koneksi-php-ke-microsoft-ms-access/

    kalo saya perhatikan, jika di generate maka akan mengkopi file Access yang dipilih sebagai Database menuju Direktori Folder Hasil Generate (satu folder dgn file .PHP),
    lalu jika file Access ada di Komputer lain (dlm satu jaringan) apakah bisa dengan menggunakan IP Adress ?

    Balas
    • Masino Sinaga mengatakan

      Juni 16, 2015 pada 12:30 pm

      Saya belum pernah coba menggunakan database MS Access. Silahkan Anda coba sendiri saja dulu, apakah bisa menggunakan IP Address.

      Balas
  8. fiqar tamin mengatakan

    Juli 28, 2015 pada 12:15 pm

    kog saya gak berhasil yah mas, gak muncul kode berikutnya, malah muncul ini mas

    “Strict Standards: Creating default object from empty value in C:\xampp\htdocs\project3\t_jenisinfo.php on line 822”

    bermasalah disini katanya mas, mohon bantuannya mas.

    if (CurrentPageID() == "add" && $this->CurrentAction != "F") {
    			$this->Kode->CurrentValue = GetNextKodeJenis(); // trik
    			$this->Kode->EditValue = $this->Kode->CurrentValue; // tampilkan
    			$this->Kode->ReadOnly = TRUE; // supaya tidak bisa diubah
    }
    
    Balas
    • Masino Sinaga mengatakan

      Juli 28, 2015 pada 9:25 pm

      Kode di baris 822 itu menunjuk kode yang mana?

      Kalau kode di atas kan ada 5 baris seluruhnya, nah baris ke-822 itu menunjuk ke kode yang mana?

      Balas
      • fiqar tamin mengatakan

        Juli 29, 2015 pada 10:17 am

        maaf mas, udah oke mas, saya salah ketik ternyata, hehehe

        Balas
      • fiqar tamin mengatakan

        Juli 29, 2015 pada 10:43 am

        mas maaf mau nannya lagi.
        gini saya punya 3 tabel, masing-masing
        – master
        – t_keluar
        – t_masuk

        nah masing-masing tabel ini punya id
        – master -> ctp001, ctp002, ctp003, dst
        – t_keluar -> klr001, klr002, klr003, dst
        – t_masuk -> msk001, msk002, msk003, dst

        nah ini penulisan di “Global Code” nya seperti apa yah mas, udah saya coba begini, gak berhasil

        function GetNextKodeJenis() {
        $sNextKode = “”;
        $sLastKode = “”;
        $value = ew_ExecuteScalar(“SELECT id FROM master ORDER BY id DESC”);
        if ($value != “”) { // jika sudah ada, langsung ambil dan proses…
        $sLastKode = intval(substr($value, 3, 3)); // ambil 3 digit terakhir
        $sLastKode = intval($sLastKode) + 1; // konversi ke integer, lalu tambahkan satu
        $sNextKode = “CTP” . sprintf(‘%03s’, $sLastKode); // format hasilnya dan tambahkan prefix
        } else { // jika belum ada, gunakan kode yang pertama
        $sNextKode = “CTP001”;
        }
        return $sNextKode;
        }

        function GetNextKodeJenisKeluar() {
        $sNextKode = “”;
        $sLastKode = “”;
        $value = ew_ExecuteScalar(“SELECT id FROM t_keluar ORDER BY id DESC”);
        if ($value != “”) { // jika sudah ada, langsung ambil dan proses…
        $sLastKode = intval(substr($value, 3, 3)); // ambil 3 digit terakhir
        $sLastKode = intval($sLastKode) + 1; // konversi ke integer, lalu tambahkan satu
        $sNextKode = “KLR” . sprintf(‘%03s’, $sLastKode); // format hasilnya dan tambahkan prefix
        } else { // jika belum ada, gunakan kode yang pertama
        $sNextKode = “KLR001”;
        }
        return $sNextKode;
        }

        help yah mas, maklum masih niubi mas

        Balas
        • Masino Sinaga mengatakan

          Juli 29, 2015 pada 3:44 pm

          Bagaimana saya bisa membantu jika yang Anda sampaikan hanya sebatas “gak berhasil”?

          Maksudnya “gak berhasil” itu seperti apa penjelasannya? Tidak berhasilnya di mana? Apakah ada pesan error atau bagaimana?

          Lalu, apakah Anda sudah mencoba dengan contoh sederhana di artikel di atas? Sudah ikuti semua petunjuk di artikel tersebut dengan teliti?

          Balas
          • fiqar tamin mengatakan

            Juli 30, 2015 pada 10:13 am

            selalu muncul pesan ini mas “Strict Standards: Creating default object from empty value”

            ni mas saya lampirkan capturan, trus sama database dan file .pmp dari phpmaker saya mas.

            https://www.dropbox.com/s/zg31p92eg12hmoa/belajar%20fiqar%20tamin.zip?dl=0

            kira-kira salahnya dimana yah mas, udah saya ikutin cara mas berkali-kali, tapi saya selalu muncul pesan itu.

            Balas
            • Masino Sinaga mengatakan

              Juli 30, 2015 pada 5:23 pm

              Berdasarkan project yang Anda upload ke Dropbox tadi, maka kode di komentar atas yang ini:

              $this->Kode
              

              ganti menjadi:

              $this->t_no_keluar
              

              Tolong perhatikan nama field yang sebenarnya. Error tersebut terjadi karena di server event Anda menggunakan nama field yang berbeda dengan nama field di tabel yang bertalian.

              Anda menulis nama field Kode di server event, sementara di tabel transaksi_keluar tidak ada field bernama Kode, tapi seharusnya adalah t_no_keluar.

              Balas
              • fiqar tamin mengatakan

                Juli 31, 2015 pada 10:08 am

                Ternyata itu masalahnya toh, oke trimakasih banyak mas udah membantu banget.

                Berarti Kode itu harus sesuai dengan field tabelnya yah mas, saya pikir itu hanya penamaan saja.

                Balas
                • Masino Sinaga mengatakan

                  Juli 31, 2015 pada 9:40 pm

                  Ya iyalah, meskipun hanya penamaan, tapi kalau sembarangan dibuat memangnya bisa? πŸ˜›

  9. Nanda mengatakan

    Juli 29, 2015 pada 11:34 am

    Kalau cara untuk membuat Kode/nomor otomatis di Grid Inserting apakah bisa ?
    misal kan intput 5 record sekaligus, secara otomatis akan membuat 5 nomor : 1,2,3,4,5.

    Balas
    • Masino Sinaga mengatakan

      Juli 29, 2015 pada 4:03 pm

      Bisa. Gunakan server event Row_Inserting. Baca topik Server Events and Client Scripts dari menu Help PHPMaker untuk informasi lebih lanjut.

      Balas
  10. fiqar tamin mengatakan

    Juli 29, 2015 pada 2:54 pm

    mas satu pertanyaan lagi mas,

    gini mas kan saya punya tabel

    master ( id_barang | nama_barang | satuan | harga )

    t_keluar ( id_keluar | tgl_transaksi | id_barang | nama_barang | satuan | jumlah | harga | total )

    yang saya tanyakan, ketika kita ingin input id_barang atau nama_barang pada t_keluar saya maunya kolom nama_barang | satuan | jumlah , secara otomatis terisi sesuai dengan data yang ada pada tabel master.

    itu gimana cara nya yah mas, saya lagi semngat belajar phpmaker nih gan, seru jg tgl klik-klik aja.

    terimakasih

    Balas
    • Masino Sinaga mengatakan

      Juli 29, 2015 pada 3:59 pm

      Karena Anda lagi semangat2-nya belajar PHPMaker, maka silahkan pelajari juga mengenai Auto fill yang terdapat di dalam topik Lookup Table pada menu Help PHPMaker.

      Balas
      • fiqar tamin mengatakan

        Juli 30, 2015 pada 9:54 am

        terimakasih bgt mas, ternyata gampang banget pake Auto fill ini.

        Balas
        • Masino Sinaga mengatakan

          Juli 30, 2015 pada 4:06 pm

          Sama-sama.

          Balas
  11. Akon mengatakan

    Juli 30, 2015 pada 9:37 pm

    Mas, kalo implementasi untuk barcode atau QR code di phpmaker seperti apa ya? mudah-mudahan artikelnya bisa dibuatkan oleh mas Masino. Terima Kasih

    Balas
    • Masino Sinaga mengatakan

      Agustus 28, 2015 pada 9:28 am

      Belum pernah nyobain euy.

      Balas
  12. ahmed mengatakan

    Agustus 27, 2015 pada 4:53 pm

    Gimana caranya jika ada tiga form yang berbeda di buat kode otomatis pada masing2 form. karena jika melihat kode diatas, kayaknya berlaku untuk satu form saja jika di buat kode tersebut di global code.

    Balas
    • bilqis mengatakan

      Agustus 27, 2015 pada 10:54 pm

      Global Code functionnya buat 3, Row_Inserting & Row_Rendered taruh dimasing2 field table yg dipilih buat dimasukkan kode otomatisnya.

      Balas
      • Masino Sinaga mengatakan

        Agustus 28, 2015 pada 9:27 am

        Betul.

        Balas
  13. ahmed mengatakan

    September 4, 2015 pada 4:43 pm

    akan saya coba lagi. kemarin2 saya sudah buat seperti itu tapi gagal dan muncul error.

    Balas
    • Masino Sinaga mengatakan

      September 5, 2015 pada 8:02 am

      Selamat mencoba lagi.

      Balas
      • ahmed mengatakan

        September 7, 2015 pada 10:43 am

        Ok, pak, sudah bisa.. nyangkut di tanda “;”
        anyway terimakasih

        Balas
        • Masino Sinaga mengatakan

          September 7, 2015 pada 11:23 am

          Sama-sama.

          Balas
  14. Shandy mengatakan

    Oktober 13, 2015 pada 9:48 am

    Mas jika mencapai nilai yang ke JNS999, Lalu Saat di input data lagi menjadi JNS1000,,,

    Nah Setelah itu bila di input data lagi, Kenapa menjadi JNS0001,,,
    Mohon sekali pencerahan nya Mas,,,

    Balas
    • Masino Sinaga mengatakan

      Oktober 13, 2015 pada 11:01 am

      Function GetNextKodeJenis sudah saya modifikasi barusan supaya maksimal sampai 999 saja. Silahkan copy-paste ulang lagi function di atas.

      Balas
  15. badri mengatakan

    Desember 29, 2015 pada 11:52 pm

    maaf mau bertanya, bagaimana cara CRUD agar hasilnya nanti seperti ini? terimakasih

    kode      uraian                                   jumlah
    --------------------------------------------------------------------------
    1000      penghasilanku                  15.000    jumlah kode 1100
    1100      penghasilan dari kantor        15.000    jumlah kode 1110 + 1120
    1110      penghasilan dari kantor A       3.000    jumlah kode 1110
                             - Kerupuk        2.000
                             - Gorengan       1.000
    
    1120             penghasilan kantor B    12.000    jumlah kode 1120
                             - komputer      10.000
                             - fd             2.000
    --------------------------------------------------------------------------
                             JUMLAH TOTAL    15.000
    
    Balas
    • Masino Sinaga mengatakan

      Desember 30, 2015 pada 7:59 am

      Gunakan fitur Master/Detail. Baca menu Help PHPMaker tentang Master/Detail.

      Balas
      • badri mengatakan

        Desember 31, 2015 pada 9:34 pm

        maaf, ada aplikasi sejenis gini ga mas.

        Balas
        • Masino Sinaga mengatakan

          Januari 5, 2016 pada 9:33 am

          Belum ada sepertinya yang mendekati persis dengan PHPMaker.

          Balas
  16. wakdin mengatakan

    Januari 18, 2016 pada 7:35 am

    Mas, bagaimana caranya kalau pilih select combobox pada field1 dan field tanggal bisa diupdate secara otomatis? Terima kasih.

    Balas
    • Masino Sinaga mengatakan

      Januari 18, 2016 pada 5:50 pm

      Mirip dengan dua artikel ini:
      – Menampilkan TextBox Saat ComboBox Terpilih di Aplikasi Web dari PHPMaker
      – Mengaktifkan TextBox Saat ComboBox Terpilih di Aplikasi Web dari PHPMaker

      Silahkan Anda modifikasi sesuai kebutuhan, cari di Google untuk referensi lainnya.

      Balas
  17. Deswita Panjaitan mengatakan

    Januari 28, 2016 pada 6:33 pm

    Bantu saya bg.
    Saya punya tabel pesanan. Di dalam tabel tsb terdapat field id_pesan, id_agent, id_pelanggan, dan jumlah_pesanan. Nah ceritanya, setiap pelanggan yg ingin memesan harus login dahulu. Bgmn cara saya untuk menampilkan secara otomatis id_pelanggan sesuai dengan username dan passwordnya saat login tadi bg? id_pesan sudah saya jadikan nomor urut otomatis. kalau id_agent dan jumlah_pesanan diinput otomatis. Jadi intinya bg, saat hendak memesan maka muncul form untuk input data ke tabel pesanan tapi id_pelanggan dan id_pesan tidak perlu diinputkan lagi karena sudah muncul otomatis.
    nb : username, password pelanggan dan id_pelanggan ada di tabel pelanggan.
    thanks bg

    Balas
    • Masino Sinaga mengatakan

      Januari 29, 2016 pada 12:28 pm

      Baca topik Tutorial – Advanced Security – User ID Security dari menu Help PHPMaker.

      Balas
  18. hendra mengatakan

    Maret 6, 2016 pada 10:26 pm

    Infonya bermanfaat..

    Balas
    • Masino Sinaga mengatakan

      Maret 7, 2016 pada 1:20 pm

      Terima kasih.

      Balas
  19. trie mengatakan

    Maret 7, 2016 pada 1:11 pm

    Selamat siang pak masino…..sy sudh ikuti semua dari apa yang ditulis diatas tapi masih ada error C\xampp\htdocs\ujikode\t_jenisinfo.php On line 833
    On line 833 mengarah pada $this->Kode->CurrentValue=GetNextKodeJenis(); //trik
    Mohon jelaskan kenapa itu bisa terjadi…..dan error seperti itu terjadi setelah sy klik add

    Balas
    • Masino Sinaga mengatakan

      Maret 7, 2016 pada 1:18 pm

      Boleh saya tahu isi pesan error-nya apa?

      Balas
      • trie mengatakan

        Maret 7, 2016 pada 4:05 pm

        Warning :creating default object from empty value in C:\xampp……(seperti keterangan saya di atas) dan kolom kodepun msih bisa di isi manual dan bisa ke save….trimksih pak masino ats bantuanya

        Balas
        • Masino Sinaga mengatakan

          Maret 8, 2016 pada 6:57 pm

          Coba ganti kode ini:

          $this->Kode->CurrentValue = GetNextKodeJenis(); // trik
          $this->Kode->EditValue = $this->Kode->CurrentValue; // tampilkan
          

          menjadi:

          $this->Kode->EditValue = GetNextKodeJenis(); // tampilkan
          
          Balas
  20. Andi mengatakan

    Maret 7, 2016 pada 5:46 pm

    tanya bang

    sudah ikutkan perintah di atas, tidak ada kesalahan, tetapi kode saat load add page tidak berubah, tetap JNS001, walaupun sy sudah mencoba memasukan 3 user, tetap JNS001

    dmn letak kesalahannya bang ?

    Balas
    • Masino Sinaga mengatakan

      Maret 8, 2016 pada 6:54 pm

      Coba ganti kode ini:

              $this->Kode->CurrentValue = GetNextKodeJenis(); // trik
              $this->Kode->EditValue = $this->Kode->CurrentValue; // tampilkan
      

      menjadi:

              $this->Kode->EditValue = GetNextKodeJenis(); // tampilkan
      
      Balas
      • Teguh mengatakan

        Februari 6, 2017 pada 11:38 am

        Pak masino, kasus Andi ini terjadi jg pada saya pak, sudah saya ganti jg kodenya seperti dicontohkan, namun tetap tidak berubah setelah add new data, mohon pencerahannya pak, terima kasih

        Balas
        • Masino Sinaga mengatakan

          Februari 6, 2017 pada 12:58 pm

          Cek data di table tersebut, apakah sudah data kode tersebut tersimpan di dalamnya? Jika belum ada, maka akan selalu muncul kode JNS001. Prinsipnya seperti itu.

          Balas
  21. Indra Dwi Budi Rahadian mengatakan

    Maret 27, 2016 pada 12:50 am

    Salam Mas Masino,
    Saya sudah coba untuk mengimplementasikan kode dan merubahnya sedikit sesuai keperluan. dan ketika mengakses halaman “add” kode pertama yaitu KPM00001 muncul, namun ketika saya “simpan”
    muncul notifikasi error seperti ini :

    Failed to execute SQL. Error: Unknown column ‘KPST00001’ in ‘field list’

    Dan berikut kode yang sudah saya modifikasi.

    function GetNextKodeJenis() {
    	$sNextKode = "";
    	$sLastKode = "";
    	$value = ew_ExecuteScalar("SELECT nomor_invoice FROM pelayanan_stnk_stck ORDER BY nomor_invoice DESC");
    	if ($value != "") { // jika sudah ada, langsung ambil dan proses...
    		$sLastKode = intval(substr($value, 3, 5)); // ambil 3 digit terakhir
    		$sLastKode = intval($sLastKode) + 1; // konversi ke integer, lalu tambahkan satu
    		$sNextKode = "KPM" . sprintf('%05s', $sLastKode); // format hasilnya dan tambahkan prefix
    		if (strlen($sNextKode) > 6) {
    			$sNextKode = "KPM99999";
    		} 
    	} else { // jika belum ada, gunakan kode yang pertama
    		$sNextKode = "KPM00001";
    	} 
    	return $sNextKode;
    }
    
    //Row Inserting
    
    // Row Inserting event
    function Row_Inserting($rsold, &$rsnew) {
    	// Enter your code here
    	// To cancel, set return value to FALSE
    	$rsnew["nomor_invoice"] = GetNextKodeJenis(); // mengantisipasi lebih satu user menginput data saat bersamaan
    	return TRUE;
    }
    
    //Row Rendered 
    // Row Rendered event
    function Row_Rendered() {
    	// To view properties of field class, use:
    	//var_dump($this->FieldName);
     
    	// Kondisi saat form Tambah sedang terbuka (tidak dalam mode konfirmasi)
    	if (CurrentPageID() == "add" && $this->CurrentAction != "F") {
    		$this->nomor_invoice->EditValue = GetNextKodeJenis(); // trik
    		$this->nomor_invoice->ReadOnly = TRUE; // supaya tidak bisa diubah
    	}
     
    	// Kondisi saat form Tambah sedang dalam mode konfirmasi
    	if ($this->CurrentAction == "add" && $this->CurrentAction=="F") {
    		$this->nomor_invoice->ViewValue = $this->nomor_invoice->CurrentValue; // ambil dari mode sebelumnya
    	}
    }
    

    Mohon pencerahannya Mas, terimakasih.

    Balas
    • Masino Sinaga mengatakan

      Maret 28, 2016 pada 9:46 am

      Error tersebut menunjuk ke kode baris yang mana?

      Balas
      • Indra Dwi Budi Rahadian mengatakan

        Maret 28, 2016 pada 2:23 pm

        Notifikasinya tidak menunjukan error pada baris tertentu Mas…,
        hanya menunjukkan ” Failed to execute SQL. Error: Unknown column β€˜KPST00001’ in β€˜field list’ ”

        saya pake PHPMAKER 12, mungkinkah ada perbedaan ?

        Balas
        • Indra Dwi Budi Rahadian mengatakan

          Maret 28, 2016 pada 2:27 pm

          Maaf maksud saya “Failed to execute SQL. Error: Unknown column β€˜KPM00001’ in β€˜field list’ “

          Balas
          • Masino Sinaga mengatakan

            Maret 28, 2016 pada 2:39 pm

            Aktifkan mode Debug, dari menu Tools -> Advanced Settings -> Debug, generate ulang, lalu coba lagi untuk mencari tahu error itu menunjuk ke baris kode di file php yang mana.

            Balas
            • Indra Dwi Budi Rahadian mengatakan

              Maret 28, 2016 pada 2:56 pm

              Hehehehehe, jangan2 mas Masino ini yang bikin Aplikasi PHPMAKER, MANTAP ! sudah berhasil !

              Balas
              • Masino Sinaga mengatakan

                Maret 28, 2016 pada 3:10 pm

                Syukurlah kalau begitu, hehehe… πŸ˜€

                Balas
            • Indra Dwi Budi Rahadian mengatakan

              Maret 28, 2016 pada 2:57 pm

              Makasih banyak ~!

              God Bless You !

              Balas
              • Masino Sinaga mengatakan

                Maret 28, 2016 pada 3:10 pm

                Sama-sama.

                Balas
  22. roby mengatakan

    Maret 29, 2016 pada 5:03 pm

    Sore pak masino
    Bila kode diatas sya terapkan di gird add input data sekaligus 5 kolom nomornya tetap berutlrutan ya…..contoh jns001,002,003,004,005….
    Yang sya ingin terapkan di gird add kode angka tidak bertambah pak misalkan dari 5 kolom tetap jns001…..
    Baru setelah saya buka inputan gird add baru bertambah ke jns002……itu gimana caranya pak…
    ….mohon bantuanya…..trima kasih

    Balas
    • Masino Sinaga mengatakan

      Maret 29, 2016 pada 6:13 pm

      Thanks for the feedback.

      Nanti saya coba dulu ya, hasilnya akan saya kabari.

      Balas
      • roby mengatakan

        Maret 29, 2016 pada 7:00 pm

        Trima kasih pak

        Balas
        • Masino Sinaga mengatakan

          Maret 30, 2016 pada 9:27 am

          Barusan sudah saya coba pada mode Grid-Add, tidak ada masalah. Katakanlah ada 5 row, maka nilai pada field Kode otomatis bertambah nilainya seperti yang diharapkan.

          Artikel di atas sudah saya ubah hari ini. Lihat di bagian/alinea terakhir, ada sedikit kode yang perlu ditambahkan di server event Page_Load milik halaman List.

          Balas
          • roby mengatakan

            Maret 30, 2016 pada 11:32 am

            Maaf pak…..yg sy maksud 5 row itu pada field Kode tidak bertambah pak……contohnya sya input data dari 5 row kode masih sama jns001,jns001,jns001 dst setelah simpan…..dan ketika saya buka girdadd baru dengan row sama maka kode berubah ke jns002,jns002,jns002 dst….. Itu gimana caranya pak….trimakasih

            Balas
            • Masino Sinaga mengatakan

              Maret 30, 2016 pada 3:01 pm

              Sudah baca alinea terakhir di artikel ini yang ada kode di server event Page_Load? Sudah Anda ikuti kode itu?

              Balas
              • roby mengatakan

                Maret 30, 2016 pada 3:27 pm

                Udah pak.
                Sy udh coba nomirnya masih urut satu kali inputan

                Balas
                • Masino Sinaga mengatakan

                  Maret 30, 2016 pada 3:31 pm

                  Kalau betul sudah Anda ikuti, seharusnya Anda tidak melihat kolom Kode di mode Gri-Add tersebut.

  23. roby mengatakan

    Maret 30, 2016 pada 4:24 pm

    Klu seperti itu memng sudah betul kode sudah tersembunyi…yg sya maksud dikolom girdadd itu kan bisa diinput lebih dari satu jenis barang 3 jenis barang atau lebih sekali kita input.bisa tidak bila no otomatis tetap sama dari 3 kolom sekali input contoh jns001,jns001,jns001….Setelah sy buka gridadd dan input barang baru dengan beberapa kolom sekaligus sekali inout nomor otomatis berubah ke jns002,jns002,jns,002 dst….mohon bantuanya pak….trimakasih

    Balas
    • Masino Sinaga mengatakan

      Maret 30, 2016 pada 4:36 pm

      Sekarang saya tanya balik… apakah Anda tahu fungsi dari table t_jenis di atas?

      Balas
  24. roby mengatakan

    Maret 30, 2016 pada 4:51 pm

    Fungsinya membuat no urut otomatis

    Balas
    • Masino Sinaga mengatakan

      Maret 30, 2016 pada 4:53 pm

      Nah itu sudah tau membuat nomor urut otomatis. πŸ™‚

      Kalau fungsinya sudah jelas membuat nomor urut otomatis, bisa nggak ada data dengan nomor yang sama? πŸ™‚

      Balas
      • roby mengatakan

        Maret 30, 2016 pada 5:12 pm

        Betul sekali itu pak…..mungkin pak masino ada saran membuat kode seperti yg sy maksud

        Balas
        • Masino Sinaga mengatakan

          Maret 30, 2016 pada 5:18 pm

          Sarannya, Anda tidak bisa menggunakan table yang sama seperti di atas. Anda harus membuat table baru di mana salah satu field-nya menggunakan lookup ke table t_jenis di atas.

          Tolong jangan tanya ke saya bagaimana caranya ya.. Harus bisa berusaha sendiri dulu. Oke? Selamat mencoba! πŸ™‚

          Balas
          • roby mengatakan

            Maret 30, 2016 pada 5:21 pm

            Klu itu sy paham pak…..trima kasih banyak

            Balas
            • Masino Sinaga mengatakan

              Maret 30, 2016 pada 5:35 pm

              Baguslah kalau begitu ya. Sama-sama.

              Balas
  25. ribut s mengatakan

    Mei 17, 2016 pada 4:12 pm

    sore pak..klu sy lihat dari aplikasi stok yg pak masino buat itu nomor otomatis bisa muncul sebelum data tersimpan atau setelah tombol add di klik..pertanyaan sy bagaimna caranya membuat sprti itu dan kode apa yg harus di tambah si serven event…mohon bantuanya pak…trimakasih

    Balas
    • Masino Sinaga mengatakan

      Mei 17, 2016 pada 4:29 pm

      Ya sama saja seperti uraian di artikel atas. Lihat kode pada server event Row_Rendered. Itu fungsinya untuk menampilkan nomor otomatis saat form Add sedang ditampilkan.

      Balas
      • ribut s mengatakan

        Mei 17, 2016 pada 8:10 pm

        bila sy mengikuti scrip artikel di atas itu betul pak nomor muncul setelah tombol save di klik….yg sy maksud disini nomor sudah keluar walau tombol save belum di klik…dari aplikasi yg pak masino pernah buat itu setelah sy klik tombol add master detil nomor langsung muncul padahal sy belum masukan data di kolom yg lain dan tombol save juga belum sy klik….mohon bantuanya pak trimakasih

        Balas
        • Masino Sinaga mengatakan

          Mei 18, 2016 pada 8:12 am

          Anda kok ngeyel banget, sih? Di artikel ini kan sudah dijelaskan bahwa data Kode Jenis akan ditampilkan saat form Add ditampilkan. Jadi, bukan setelah tombol Save diklik.

          Sudah dibilang lihat kode pada server event Row_Rendered, eh masih ngeyel juga?

          Jika Anda mengikuti semua langkah2 pada artikel ini, maka ketika user mengklik tombol + (Add) dari halaman List, di halaman/form Add yang muncul selanjutnya akan ditampilkan data Kode Jenis dalam mode Read-Only. Jadi, itu munculnya sebelum tombol Save diklik.

          Balas
        • ribut s mengatakan

          Mei 18, 2016 pada 8:23 am

          udah bisa pak….makasih banyak masukanya

          Balas
          • Masino Sinaga mengatakan

            Mei 18, 2016 pada 8:26 am

            Lain kali sebelum bertanya, dibaca dulu artikelnya dengan teliti ya… terus ikuti instruksinya dengan teliti juga, lalu dicoba juga kode-nya, juga dengan teliti…

            Jangan buru-buru bilang gak bisa., apalagi pake ngeyel segala, hehehe… πŸ˜›

            Balas
  26. pujiarahman mengatakan

    Mei 27, 2016 pada 8:43 pm

    Pak masino,

    bagaimana jika ingin menambahkan tanggal, sehingga jika
    misalnya :

    tgl 1 bulan 5, tgl 2 bulan 5 , dst

    105jns001, 205jns002, dst

    jika nanti ganti bulan
    tgl 1 bulan 6 , akan kereset jadi awal kembali

    106jns001, 206jns002 dst

    Balas
    • Masino Sinaga mengatakan

      Mei 28, 2016 pada 12:31 pm

      Gunakan fungsi PHP yang bernama substr untuk mem-parsing data tanggal dan bulan sesuai kebutuhan Anda. Silahkan Google untuk contoh-contohnya.

      Balas
  27. pujiarahman mengatakan

    Mei 30, 2016 pada 4:06 pm

    Pak Masino
    terimakasih untuk informasinya ,
    sekarang sudah bisa unuk reset jika berganti bulan.

    Balas
    • Masino Sinaga mengatakan

      Mei 30, 2016 pada 4:59 pm

      Sama-sama.

      Balas
  28. abdulmalik mengatakan

    Oktober 5, 2016 pada 4:03 pm

    tanya pak, dari persoalan diatas milik puji,
    tgl 1 bulan 5, tgl 2 bulan 5 , dst

    105jns001, 205jns002, dst

    jika nanti ganti bulan
    tgl 1 bulan 6 , akan kereset jadi awal kembali

    106jns001, 206jns002 dst

    kalau ingin ditambahkan menjadi (misalkan database ada dua perusahaan dg masing2 prsh ada bbrp cabang):
    PTABC-cab1-105jns001, PTABC-cab1-105jns002, PTABC-cab2-205jns001, PTABC-cab2-205jns002, dst

    PTXYZ-cab1-305jns001, PTXYZ-cab1-305jns002, PTXYZ-cab2-405jns001, PTXYZ-cab2-405jns002, dst

    (PTXYZ-cab1-305jns001 = namaprsh-cabang-tgl dan nmr faktur)

    terimakasih.

    Balas
    • Masino Sinaga mengatakan

      Oktober 6, 2016 pada 11:21 pm

      Yang Anda tanyakan terlalu teknis. Silahkan dicoba sendiri dengan menggunakan prinsip yang sudah dibahas di artikel ini.

      Balas
  29. Fadri mengatakan

    November 2, 2016 pada 1:44 pm

    Siang pak masino yang dimaksud $sNextKode = “JNS999”; adalah bila no sudah mencapa “JNS999” maka akan kembali ke “JNS001″….betul begitu?
    Tapi setelah saya coba berkali-kali dengan copas kode diatas kenapa tidak mulai angka JNS001 tapi tetap ke angka JNS999 dan tidak berubah

    Balas
    • Masino Sinaga mengatakan

      November 3, 2016 pada 5:23 pm

      Tidak. Jika nomor sudah mencapai JNS999, dia akan tetap mentok sampai di situ saja. Jadi, bukan kembali ke JNS001. Kode yang JNS001 itu hanya digunakan ketika belum ada data sama sekali di table t_jenis tersebut.

      Balas
      • Fadri mengatakan

        November 4, 2016 pada 8:31 am

        Gitu ya pak….maaf pak klu cara membuat no bisa kembali ke no JNS001 setelah mencapai JNS999 gimna ya….mohon bantuanya…trimakasih

        Balas
        • Masino Sinaga mengatakan

          November 4, 2016 pada 8:49 am

          Ya tidak bisa dong. Kan nomor JNS001 sudah dipakai sebelumnya. Kenapa harus kembali lagi ke nomor itu?

          Balas
  30. Fadri mengatakan

    November 4, 2016 pada 11:30 am

    sy sudah membuat no menjadi Sales/00001/01/2016 ,Sales/00002/01/2016, Sales/00003/01/2016 dst , ada nomor bula dan tahun niatnya setelah ganti tahun kembali lagi ke awal menjadi Sales/00001/01/2017 tahunya berganti tapi bulan dan no kembali ke awal…caranya gimana ya pak….tolong bantuanya….trimakasih

    Balas
    • Masino Sinaga mengatakan

      November 4, 2016 pada 12:41 pm

      Caranya ya tinggal Anda cek aja data Tahun di nomor yang terakhir dengan data Tahun saat ini. Jika berbeda, maka set kembali ke bulan satu nomor satu tahun sekarang. Gampang kan?

      Balas
  31. Fadri mengatakan

    November 10, 2016 pada 11:12 am

    Itu yg sya belum begitu paham membuatnya pak….bisa minta tolong contoh kode nya pak

    Balas
    • Masino Sinaga mengatakan

      November 10, 2016 pada 5:22 pm

      Ketika Anda berusaha untuk mencobanya sendiri terlebih dulu, barulah di situ Anda akan paham.

      Balas
  32. janesha eka putri mengatakan

    November 17, 2016 pada 9:14 pm

    makasih gan, membantu sekali buat tubes saya

    Balas
    • Masino Sinaga mengatakan

      November 22, 2016 pada 12:21 pm

      Sama-sama.

      Balas
  33. Caca mengatakan

    November 30, 2016 pada 1:41 am

    Pak saya baru belajar php,
    kalau yang bapak jelaskan itukan kode otomatis,
    saya ingin bertanya,
    ada 3 field,a b dan c
    jika field a dan b diisi agar yang c otomatis tambah atau kurang bagaimana?(sperti di excell)
    mohon bantuannya,,

    Balas
    • Masino Sinaga mengatakan

      November 30, 2016 pada 9:09 am

      Kalau di PHPMaker itu disebut dengan Auto fill.

      Silahkan Anda baca dan pelajari topik Lookup Table dari menu Help PHPMaker untuk informasi lebih lanjut.

      Balas
  34. ridwan mengatakan

    Desember 10, 2016 pada 6:17 am

    permisi gan saya hendak bertanya, bagaimana cara menambahkan tabel dengan otomatis melalui php. jadi begitu di pilih di web atau localhost di phpmyadmin otomatis bertambah, bukan isinya gan tapi tabelnya. terima kasih πŸ™‚

    Balas
    • Masino Sinaga mengatakan

      Desember 10, 2016 pada 4:06 pm

      Gunakan variabel object Connection bawaan PHPMaker untuk mengeksekusi script SQL membuat table.

      Baca sub-topik Some Global Functions di bawah topik Server Events and Client Scripts dari menu Help PHPMaker.

      Balas
  35. Fahrizal mengatakan

    Desember 31, 2016 pada 10:33 am

    Saya masih bingung Cara membuat Digit Angka Dengan Dreamweaver, maklum pemula.
    Saya menggunakan Dreamweaver cs 8, bisa minta gambarannya mas :
    terima kasih sebelumnya

    Balas
    • Masino Sinaga mengatakan

      Desember 31, 2016 pada 11:26 am

      Hubungannya apa ya antara PHPMaker dan Dreamweaver? Maaf, saya belum pernah menggunakan Dreamweaver, jadi tidak bisa bantu.

      Balas
  36. Nanda mengatakan

    Januari 4, 2017 pada 2:29 pm

    Bang Masino, apakah bisa menyisipkan variabel $rsnew di sini ?

    function GetNextKodeJenis() {
        $sNextKode = "";
        $sLastKode = "";
        $value = ew_ExecuteScalar("SELECT Kode FROM t_jenis ORDER BY Kode DESC");
        if ($value != "") { // jika sudah ada, langsung ambil dan proses...
            $sLastKode = intval(substr($value, 3, 3)); // ambil 3 digit terakhir
            $sLastKode = intval($sLastKode) + 1; // konversi ke integer, lalu tambahkan satu
            $sNextKode = "JNS" . sprintf('%03s', $sLastKode); // format hasilnya dan tambahkan prefix
            if (strlen($sNextKode) > 6) {
                $sNextKode = "JNS999";
            }
        } else { // jika belum ada, gunakan kode yang pertama
            $sNextKode = "JNS001";
        }
        return $sNextKode;
    }
    

    Jadi Keperluannya adalah akan membuat Nomor Otomatis namun Nomor yg akan ditambah Hanya berdasarkan Jenis yg Dipilih User.
    misal ada Field :
    nomor | kode_buku | keterangan
    ========================
    K.12 | K | Buku Komik
    K.13 | K | Buku Komik
    BK.1 | BK | Buku Keagamaan
    PLJR.113 | PLJR | Buku Pelajaran
    KOMP.1421 | KOMP | Buku Komputer
    dll………..

    Nah, Nomor K.12, K.13 akan bertambah menjadi K.14 dst… hanya ketika User menambah data dengan pilihan Buku komik (Kode ‘K’) ==> asumsi menggunakan SelectBox, namun data yg lain tidak ikut bertambah.
    Kira2 apakah bisa menggunakan cara diatas atau ada cara yang lain Bang Masino ?

    Balas
    • Nanda mengatakan

      Januari 4, 2017 pada 2:38 pm

      intinya kalo contoh diatas kan menggunakan awalan ‘JNS’
      sementara di kasus ini awalannya belum jelas,
      artinya Kode awalan tersebut berdasarkan Input User melalui pilihan Jenis/ Kode Buku,
      bisa hanya 1 digit, 2 digit, 3, 4 digit dst… (K , BK, PLJR, KOMP dll… )
      dan nomor yang bertambah hanya yang sesuai dengan Kode buku yang di pilih user melalui Form Tambah Data.
      Terimakasih.

      Balas
      • Masino Sinaga mengatakan

        Januari 5, 2017 pada 8:42 am

        Bisa saja Anda memodifikasi global function di atas sesuai kebutuhan Anda. Selamat mencoba!

        Balas
        • Nanda mengatakan

          Januari 10, 2017 pada 8:35 am

          Maaf, kok ga bisa ya Bang.
          saya sudah coba Script asli Bang Masino bahkan sudah sy modifikasi dan bisa berjalan baik.

          Namun untuk mengimplementasikan Kasus saya diatas belum bisa,
          dan Logika saya kok belum Ketemu ya, Karena untuk melakukan Insert ke Tabel BUKU tersebut harus melakukan Seleksi dulu berdasarkan Kode Jenis Buku (K, BK… ) melalui Form Input yang artinya harus melibatkan Variabel $rsnew[“kode_buku”] pada Form tersebut… sementara di Variabel Global sifatnya Global (bisa digunakan / dipanggil di semua Form ) yg ada di Project tersebut.
          “‘mohon koreksi jika saya salah. “

          Balas
          • Masino Sinaga mengatakan

            Januari 10, 2017 pada 4:36 pm

            Berarti Anda perlu mengoptimalkan server event Row_Inserting saja untuk memanggil function GetNextKodeJenis. Selain itu, function tadi harus dimodifikasi juga, supaya bisa menerima minimal satu parameter berupa nilai kode_buku.

            Balas
  37. Tedi mengatakan

    Februari 17, 2017 pada 5:51 am

    Pagi bang masino , mau tanya kalo mau merubah penomoran pada saat salah satu record dihapus bagaimana ya ??
    contoh nya :
    terdapat record yang sudah diinput dari no. 1,2,3,4 kemudian record nomor 3 dihapus , bagaimana caranya supaya nomor 4 bergeser dan berubah penomorannya menjadi nomor 3 ?

    Makasih banyak sebelumnya

    Balas
    • Masino Sinaga mengatakan

      Februari 17, 2017 pada 8:49 am

      Pagi Tedi. Kalau seperti itu saya sangat tidak menyarankan, karena bisa kacau jadinya di table lain yang sudah terlanjur menggunakan nomor 4 dan nomor-nomor yang akan digeser nantinya. Kalau pun belum ada yang menggunakan, saya juga tidak menyarankan, karena biasanya nomor tersebut menggunakan field yang tipe-nya Auto-Increment.

      Balas
      • tedi mengatakan

        April 7, 2017 pada 10:13 pm

        Oh begitu ya bang? Makasih info nya..
        Jadi autoincrement pada penomoran / nmr urut tetap berjalan ya walaupun data pada salah satu nomor dihapus?
        Makasih ya bang….

        Balas
        • Masino Sinaga mengatakan

          April 8, 2017 pada 11:20 am

          Sama-sama.

          Balas
  38. Ferdi mengatakan

    Februari 24, 2017 pada 9:57 am

    script ini apakah bisa di jalankan di PHP biasa bang?
    thanks

    Balas
    • Masino Sinaga mengatakan

      Februari 24, 2017 pada 10:06 am

      Kalau kode untuk fungsi GetNextKodeJenis bisa. Tapi kalau kode yang di server event Row_Inserting, Row_Rendered, dan Page_Load, hanya bisa di PHPMaker.

      Balas
  39. pujiarahman mengatakan

    Maret 6, 2017 pada 11:42 am

    Pak Masino,

    Jika ada nama barang
    A
    B
    C

    No urut
    Input A : A001, A002, A003
    Input B : B001, B002,
    input A : lanjut ke yang sudah ada A004,A005
    Input C : C001, C002

    Mohon pencerahannnya

    Balas
    • Masino Sinaga mengatakan

      Maret 6, 2017 pada 11:57 am

      Supaya cerah, ya tinggal dicoba saja toh?

      Balas
  40. WAFI mengatakan

    Maret 10, 2017 pada 5:39 pm

    mau tanya mas

    kan saya buat 3 table, terus satu table saya kasih maksimal 3 karakter, biar ganti table otomatis ke sebelahnya di kasih apan mas?

    Balas
    • Masino Sinaga mengatakan

      Maret 15, 2017 pada 1:30 pm

      Dikasih code-lah. Memangnya mau dikasih apa?

      Balas
  41. Misbah mengatakan

    Mei 2, 2017 pada 3:00 am

    Selamat malam pak masino, salam sejahtera, mohon pencerahaannya, bagaimana menambahkan kode otomatis dalam PHPMaker (eg. 0001/SM/A/V/2017),
    keterangannya :

    – “0001” diambil dari nomor urut “A” yang setiap tahun kembali ke nomor urut “0001”
    – “SM” kode permanen seperti “JNS” -> ($sNextKode = “JNS” . sprintf(‘%03s’, $sLastKode)
    – “A” diambil dari Combobox, ada beberapa kode jenis, misal “A,B,C,D,E,dst.” setiap kode “A, B, C, D, E dst.” mempunyai nomor otamatis “0001” yang setiap tahun kembali ke nomor urut “0001” -> misal jika Combobox memilih opsi kode “B” maka nomor otomatis “0001/SM/B/V/2017” begitu juga kode “C” kode “D” dst.
    – “V” diambil dari bulan Mei berupa nomor romawi, sumbernya dari function ew_CurrentDate()
    – “2017” diambil dari tahun, sumbernya dari function ew_CurrentDate()

    terima kasih, salam dari newbie πŸ™‚

    Balas
    • Masino Sinaga mengatakan

      Mei 2, 2017 pada 12:57 pm

      Silahkan dicoba sendiri ya.

      Balas
  42. rina sakinah mengatakan

    Mei 10, 2017 pada 7:37 pm

    kok saya gabisa ya buat simpan otomatis nilai di tampilan nilai akademik saya

    Balas
    • Masino Sinaga mengatakan

      Mei 10, 2017 pada 10:14 pm

      Mungkin karena belum teliti aja.

      Balas
  43. diki mengatakan

    Juni 30, 2017 pada 11:49 pm

    mmaf pa mau tanya kalo error begini bagaimana solusinya ?
    Parse error: syntax error, unexpected ‘$sNextKode’ (T_VARIABLE) in C:\xampp\htdocs\aset_upi\userfn13.php on line 24

    Balas
    • Masino Sinaga mengatakan

      Juni 30, 2017 pada 11:50 pm

      Ya tinggal Anda terjemahkan saja arti kata dari unexpected itu apa?

      Balas
  44. Nanang WP mengatakan

    Juli 20, 2017 pada 4:19 pm

    Sore Bang,

    Saya sudah buat Nomor otomatis pada Master/Detail, Tapi bila ada dua/lebih user bareng isi data dan Ketika User1 menyimpan data (mis No. J0001), maka pada user2 pada data Detailnya berubah menjadi data detail J0001.

    Tolong sarannya. terima kasih.

    Balas
    • Masino Sinaga mengatakan

      Juli 21, 2017 pada 9:11 am

      Solusinya jangan pakai kode dengan format di atas. Sebaiknya pakai Auto Increment, jadi yang menangani adalah Database-nya, sehingga tidak akan pernah bentrok.

      Solusi lainnya, ubah struktur nomornya, dengan cara menyertakan komponen tahun, bulan, tanggal, jam, menit, detik, bahkan sampai sepersepuluh detiknya juga diikutkan. Dijamin tidak akan bentrok nomornya.

      Balas
  45. Nurjayadi mengatakan

    September 4, 2017 pada 3:44 pm

    Makin asik belajar php maker!!!, Pak Masino bagaimana merubah nilai angka jadi nilai huruf seperti 78,34 jadi “Tujuh Puluh Delapan Koma Tiga Empat”……

    Balas
    • Masino Sinaga mengatakan

      September 5, 2017 pada 9:48 am

      Betul, setiap hari pasti mengasyikkan membangun Aplikasi Web dengan menggunakan PHPMaker. Sabar ya, nanti saya buatkan artikel khusus untuk membahas cara pemakaian fungsi Terbilang di dalam Aplikasi Web yang dibangun pakai PHPMaker.

      Balas
  46. Nurjayadi mengatakan

    September 5, 2017 pada 11:22 am

    makasih pak masino…….saya tungggu artikel terbilang nya !!!! semangat!!!

    Balas
    • Masino Sinaga mengatakan

      September 14, 2017 pada 10:40 am

      Sama-sama.

      Balas
  47. Ido mengatakan

    November 11, 2017 pada 2:29 am

    Pagi Pak Masino,
    mau nanya pak.
    saya masang script ini kok nomor tidak bisa bertambah ya Pak?
    misal saya udah input item nomor 1 dengan nomor JNS001
    lalu saya input item nomor 2 kok form Kode masih bertuliskan JNS001 bukannya JNS002 ya Pak?
    kira2 saya salah dimana ya?
    mohon pencerahannya

    Balas
    • Ido mengatakan

      November 11, 2017 pada 9:46 am

      sudah bisa Pak,
      maaf saya yang kurang teliti Pak hehhehe,
      benar-benar tutorial yang sangat bermanfaat Pak.
      terimakasih.

      Balas
      • Masino Sinaga mengatakan

        November 13, 2017 pada 12:47 pm

        Sama-sama.

        Balas
  48. tiyus mengatakan

    November 15, 2017 pada 12:51 pm

    Mas, Mau tanya, saya buat kode lebih dari table. ini scrpt nya bener g ya ?

    function KodeJabatan() {
    	$sNextKode = "";
    	$sLastKode = "";
    	$value = ew_ExecuteScalar("SELECT id_jab FROM tb_jab ORDER BY id_jab DESC");
    	if ($value != "") { // jika sudah ada, langsung ambil dan proses...
    		$sLastKode = intval(substr($value, 3, 3)); // ambil 3 digit terakhir
    		$sLastKode = intval($sLastKode) + 1; // konversi ke integer, lalu tambahkan satu
    		$sNextKode = "JBT" . sprintf('%03s', $sLastKode); // format hasilnya dan tambahkan prefix
    		if (strlen($sNextKode) &gt; 6) {
    			$sNextKode = "JBT999";
    		}
    	} else { // jika belum ada, gunakan kode yang pertama
    		$sNextKode = "JBT001";
    	}
    	return $sNextKode;
    }
    
    function KodePegawai() {
    	$sNextKode = "";
    	$sLastKode = "";
    	$value = ew_ExecuteScalar("SELECT id_peg FROM tb_peg ORDER BY id_peg DESC");
    	if ($value != "") { // jika sudah ada, langsung ambil dan proses...
    		$sLastKode = intval(substr($value, 3, 3)); // ambil 3 digit terakhir
    		$sLastKode = intval($sLastKode) + 1; // konversi ke integer, lalu tambahkan satu
    		$sNextKode = "PEG" . sprintf('%03s', $sLastKode); // format hasilnya dan tambahkan prefix
    		if (strlen($sNextKode) &gt; 6) {
    			$sNextKode = "PEG999";
    		}
    	} else { // jika belum ada, gunakan kode yang pertama
    		$sNextKode = "PEG001";
    	}
    	return $sNextKode;
    }
    

    mohon bantuannya

    Balas
    • Masino Sinaga mengatakan

      November 17, 2017 pada 3:20 pm

      Nggak tahu saya, benar atau enggak. Ya tinggal Anda coba/buktikan saja ke PHPMaker-nya. Mudah kan?

      Balas
  49. rycko mengatakan

    Desember 4, 2017 pada 12:25 am

    Pak Masino, saya coba baris perintah di artikel ini di master/detail table, dikombinasi dengan fungsi menampilkan total dari table detail ke list table master. Untuk fungsi memberi kodenya berhasil dan data bisa disimpan. namun berbeda ketika akan menambahkan data pada detil, data berhasil disimpan pada table detail, namun hasil perhitungannya tidak nampak di master. muncul error seperti ini :
    “”Failed to execute SQL. Error: Unknown column ‘BG’ in ‘where clause’ (1054)
    Failed to execute SQL. Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘WHERE Nomor_Jaminan = 8989/001/BG/07/2017’ at line 1 (1064)”
    Awalnya dikira keliru pada setting jenis table nya, namun ini tidak terjadi ketika belum ditambahkan pemberian kode otomatis.

    Mohon petunjuknya, pak.

    Balas
    • Masino Sinaga mengatakan

      Desember 7, 2017 pada 11:45 pm

      Tinggal periksa saja yang menyebabkan error itu, sehingga seolah-olah ada kolom atau field yang bernama BG tidak dikenal di bagian WHERE. Cek ulang, pastikan data atau nilai dari Nomor_Jaminan sudah diapit oleh karakter petik tunggal.

      Balas
  50. sugeng mengatakan

    Februari 4, 2018 pada 1:52 pm

    Pak Masino,

    Mau nanya.
    Saya mau melindungi salah satu field supaya tidak bisa diedit. Field ini ada di dalam detil dari sebuah relasi master-detil. Misal : relasi mater-detil antara Tabel Beli dan Tabel DetilBeli.
    Di Tabel Beli ada kolom : ID (PK), tgl_beli, ID_pembeli.
    Di Tabel DetilBeli ada kolom : ID(FK),kode_barang ,harga_barang,total_rupiah.
    Relasi Belid an DetilBeli : 1 to MANY.
    Tabel Beli dan DetilBeli diisi dihalaman yg bersamaan krn pakai relasi master-detil.

    Kolom DetilBeli.Harga_barang terisi otomatis saat kode_barang dimasukkan. Bagaimana cara men-disable kolom harga_barang supaya tidak bisa diedit dan hanya ditampilkan saja ?

    Saya sudah coba bbrp server event di tabel Beli dan DetilBeli seperti : Page_Load (di Add/Copy, Edit dan List Page) tapi tidak berhasil semua. Bbrp Kode yang saya coba :

    1. if ($this->IsGridAdd ())
    {$this->detilbeli->harga_barang->ReadOnly = TRUE;}
    2. $this->detilbeli->harga_barang->ReadOnly = TRUE
    3.if ($this->IsGridAdd ())
    {$this->harga_barang->ReadOnly = TRUE;}
    4.$this->harga_barang->ReadOnly = TRUE

    Mohon pencerahannya.

    terimakasih

    Balas
Komentar Lebih Baru »

Tinggalkan Balasan Batalkan balasan

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Pos-pos Terbaru

  • Server Event Page_Render dan Page_Rendering di PHPMaker, Apa Sih Bedanya?
  • Begini Mudahnya Mengubah Judul Browser Secara Dinamis di PHPMaker 2021
  • Solusi Supaya PreviewRow dan PreviewOverlay Bisa Sama-Sama Berfungsi di PHPMaker 2021
  • Jangan Pernah Lagi Mencampur Kode PHP di Client Script atau Startup Script pada PHPMaker 2021
  • Seperti Ini Mudahnya Menyembunyikan Data Label di Chart dari PHPMaker 2021

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Setting Import Data Berikut Wajib Anda Ketahui Bedanya di PHPMaker 2021
  • Masino Sinaga pada Jangan Pernah Lagi Mencampur Kode PHP di Client Script atau Startup Script pada PHPMaker 2021
  • Masino Sinaga pada Mudahnya Menambahkan Global Function untuk Auto-Update Field di PHPMaker
  • Abu Syifa pada Setting Import Data Berikut Wajib Anda Ketahui Bedanya di PHPMaker 2021
  • Abu Syifa pada Jangan Pernah Lagi Mencampur Kode PHP di Client Script atau Startup Script pada 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 - 2019 | WordPress | Catat masuk | Kembali ke atas