Penanya
generate kode barang berdasarkan nama, merek + no urut

Diskusi Umum
-
Dim dataku As String
Dim nbr As String
Dim mdr As String
Dim mrk As String
Try
mrk = merek.Text
mdr = model.Text
nbr = nabar.Text
Dim gabung As String
Dim rm As MySqlDataReader
Dim rs As MySqlCommand
connek()
Dim kkd As String
kkd =
sett.Left(nbr, 3) & sett.Left(mdr, 2) & sett.Left(mrk, 2) & "001"
ThBl =
sett.Left(nbr, 3) & sett.Left(mdr, 2) & sett.Left(mrk, 2)
rs =
New MySqlCommand("SELECT count(*) from barang where kobar like'" & ThBl & "%'", con)
rm = rs.ExecuteReader
If rm.Read Then
dataku =
CStr(rm.Item(0))
isi = dataku
ThBlRec =
sett.Left(isi, 7)
If ThBlRec = ThBl Then
NoUrut =
CLng(isi) 'CInt(sett.Right(isi, 3))
gabung =
sett.Right("000" & NoUrut, 3)
id_kode = ThBlRec & gabung
Else
NoUrut =
CLng(isi) + 1 'CInt(sett.Right(isi, 3))
gabung =
sett.Right("000" & NoUrut, 3)
id_kode = ThBl & gabung
End If
Else
gabung =
sett.Right("000" & NoUrut, 3)
id_kode = ThBl & gabung
End If
id_kode = id_kode
' MsgBox(id_kode)
rs.Connection.Close()
Catch ex As Exception
MsgBox(ex.Message,
MsgBoxStyle.Exclamation)
End Try
Mohon pecerahannya.. soalnya ketika salahsatu data dihapus no jadi duplikat. dan tidak bisa input yang baru.
Minggu, 09 Mei 2010 09.44
Semua Balasan
-
bisa kasih contoh format kode barangnya?
Rabu, 23 Juni 2010 04.45 -
Nama Barang : MOTHERBOARD
Model Barang : Socket 462 2nd
Merek Barang : AMD VIA
Hasil keluar Kodenya :MOTSOAM001
Kamis, 24 Juni 2010 01.24 -
kenapa gak di taruh di trigger table aja, lebih mudah, saya coba bantu logika-nya aja, kalau syntax tgt dari databasenya pakai apa, kalau saya biasanya pakai oracle jadi syntax di bawah ini untuk oracle
---begin trigger---
new_kodebarang = substring(nama_barang,1,3) + substring(model_barang,1,2) + substring(merk_barang,1,2)
select count(*) into total from Master_barang
where kodebarang like new_kodebarang||'%';
if total = 0 then
new_kodebarang = new_kodebarang + lpad('1',3,'0')
else
new_kodebarang = new_kodebarang + lpad(total+1,3,'0')
end if
:new.kodebarang := new_kodebarang;
--end trigger--
semoga bisa membantu...
- Diedit oleh Robby Gunawan Kamis, 24 Juni 2010 18.21 tambahan syntax yang kurang
Kamis, 24 Juni 2010 18.20 -
saya coba dulu ya...
soalnya saya pake MySQL jadi cari perubahan dulu dari oracle ke Mysql
thanks masukannya..
Jumat, 25 Juni 2010 01.09 -
Ikut gabung ya..
Maaf kalau kita buat pengkodean harus hati2
masalahnya saya mengalami kaya gitu dulu
kalu misal berdasarkan nama dan merk berarti kita harus buat mempunya master nama2 barang?
takutnya user salah ketik..
Sabtu, 07 Agustus 2010 12.50 -
iya emang betul, kadang nama barang bisa diganti tapi kode sudah menjadi primary key. dan barang yang sudah terjual nama barangpun jadi error kalo di edit soalnya sudah beda dengan yang di faktur.Sabtu, 07 Agustus 2010 15.47
-
MUNGKIN BISA NAMBAH BANTUAN:
cara mudahnya, primary key jangan didasarkan pada ketiga field tersebut, buat primary key yg sifatnya identity: misal bertipe biginteger. perkara ingin look up ke ketiga field yg digabung tsb, cukup buat relasi one to many aja. dan jangan lupa enforce referential integrity dijaga. baik cascade delete maupun update.
Atau jika tidak, tambah satu field konstruktor penggabung yg sifatnya berubah terus mengikuti waktu: misal tambahkan: datetime yg merujuk ke hari dan jam sekarang. anggap barang tsbt memiliki identitas kapan diinputkan.
Oke, semoga membantu....
Jumat, 21 Januari 2011 05.08