ss
| RSS | RSS Forum | AboutUS |
Disarankan menggunakan browser selain Internet Explorer, resolusi minimal 1024x768
...
UserName:
PassWord:
     Lost?
Daftar jadi Anggota !
 


stress? deadline kelewat?
bos ngamuk? pc meledak?
masuk sini !


OpenID

(?)

e.g. myname.myhost.com


Main Menu
..:: onWebTools ::..
..:: onLastPosts ::..
LAST FORUM POSTS
goto Post[AKS] Gimana cara bikin file log(1)
 by mas_kofa
 on 09. Jan at 23:40
goto Postbackup database(2)
 by bimo_ganteng
 on 09. Jan at 18:33
goto PostCopy otomatis kedalam folder yang dbuat secara otomatis(6)
 by arjuna_1982
 on 09. Jan at 17:44
goto PostReportBuilder + Teechart Support(2)
 by wildan_m
 on 09. Jan at 13:28
goto Postcomponen menampilkan *.doc atau *.Pdf(0)
 by hafiezd
 on 09. Jan at 12:51
goto PostFormat DBEdit dengan Accesss(3)
 by LuriDarmawan
 on 09. Jan at 11:43
goto PostMohon Pertimbangan dan sarannya(12)
 by supermuam
 on 09. Jan at 08:54

[Access Forum]


Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
saysansay
6 Post subject: Aoutomasi Index  PostPosted: 18-09-2005 17:54
onProfessional


Joined: 06-08-2005 13:59
Posts: 632

Maaf Nanya Lagi Dech...
Akang2 Semuanya Terutama akang Cyber Hecker Gimana Caranya membuat otomatisasi pada Edit1. Misalnya Nech Edit1=Kode Barang..Kan Pas Inputannya K-001,Stelah Click tombol simpan Edit1(Kode barang ) Langsung mengidexkan diri sebagai K-002 Tanpa harus diinputJadi kita tinggal masukin nama barangnya aja dan yg lainnya...menurut saya ini dapat mengecilkan standar eror pada program..
Maaf Klu pertanyaan nya nga berbobot,,,(Maklum Baru Belajar Delphi
|)
 
 View user's profile Send private message Send e-mail  
Reply with quote Back to top
ZeALOffline
Post subject:   PostPosted: 19-09-2005 08:18
onProfessional


Joined: 07-04-2005 12:18
Posts: 761

Status: Offline
Wah, favoritnya si hecker nih..?? gue gak ada yang favoritin nih..??? Very Happy

caranya gampang2 susah....

logikanya dulu yah..
1. saat tombol di-klik, periksa editbox
2. kalo gak ada isinya, kasih messagebox buat peringatan aja kalo gak ada isinya..
3. kalo ada isinya, pecah jadi dua string.. 1 untuk headernya (di contoh : K), dan 1 untuk tail (di contoh : 001).
4. naikan 1 angka untuk variabel tail.. yang jadinya di contoh : 002
5. sambungkan lagi kedua string diatas dan masukan ke editbox.

oia, proses penyimpanan sebaiknya dilakukan diantara point 2 dan 3.. siapa tau lupa kalo counternya udah dinaikin.. yang seharusnya nyimpen K-001 malah jadi K-002...

kodenya pas penyimpanan kira2...
Code:


 var   head, tail, hasil : string;



 if trim(edit1.Text) = '' then // <-- cek ada isinya gak
 begin
  showmessage('isi hoi!');   // <-- tampilin peringatan
  exit;
 end
 else
 begin
  hasil := '000';         //<-- banyak digit 0 di depan angka

  head := copy(edit1.Text ,1,1);   //<-- ambil 1 huruf didepan.

  tail := copy(edit1.Text , 3,Length(edit1.Text));    //<-- ambil sisa digit setelah tanda -

  tail := inttostr(strtoint(tail) + 1);  //<-- tambah 1
 
 delete(hasil,1,length(tail));       //<-- buat dari misalnya 2 menjadi 002

  hasil := head + '-' + hasil + tail; //<-- simpan hasil dan rangkai ulang
 
edit1.Text := hasil;  //<-- tongolin deh.

 end;



kelemahannya bentuknya HARUS tetap.. yaitu digit pertama kode, digit kedua pemisah dan sisanya adalah counternya...
jadi misalnya diisi k-001, maka valid... diisi m-999, maka valid.. diisi p-129302, maka valid.. diisi kl-290, maka tidak valid.. diisi jp209, maka valid (p dianggap pemisah)... dst..dst...dst...

cara lain bisa pake fungsi pos untuk mendeteksi tanda pemisah.. misalnya tanda '-'.
Code:

 if trim(edit1.Text) = '' then
 begin
  showmessage('isi hoi!');
  exit;
 end
 else
 begin
  hasil := '000';

  head := copy(edit1.Text ,1, pos('-',edit1.Text) - 1 );    //<-- cek sebelum tanda pemisah

  tail := copy(edit1.Text , pos('-',edit1.Text) + 1,Length(edit1.Text)); //<-- cek sesudah tanda pemisah

  tail := inttostr(strtoint(tail) + 1);
  delete(hasil,1,length(tail));
  hasil := head + '-' + hasil + tail;

  edit1.Text := hasil;

 end;


kalo disini bebas diisi bentuknya kayak gimana aja... tapiiiii.... harus ada pemisah dengan head dan tail... dari contoh diatas, pemisahnya adalah tanda strip ( - )...

Enjoy...

_________________
do i know you?

[ My Blog : http://www.monyetpinter.com ] [ My RPG Project : http://einarc.wordpress.com ] [ FJBex : http://www.fjbex.com ]
 
 View user's profile Send private message  
Reply with quote Back to top
cyber_heckerOffline
Post subject:   PostPosted: 19-09-2005 15:23
onProfessional


Joined: 19-05-2005 20:32
Posts: 902

Status: Offline
wakakaka... , ya udah zeal kamu ku jadi in idola ku deh tapi ngomong-ngomong "kang... adiknya sapa namanya ? itu lho yang rambutnya panjang lurus" wakakakakaka......

yup.. untuk bikin auto kode caranya kayak yang ditunjuk in zeal. tapi kalo gue biasanya untuk nomor kode udah ku buatkan sebuah tabel khusus untuk menyimpan nomor kode (TJurnal). wah logika cara penggunaannya sulit mau gue jelaskan. yang pasti buat tabel untuk nomor kode dengan format :

KdJurnal = untuk nomor jurnal (nomor kode)
Keterangan = sekadar keterangan
Prefix = awalan dari kode, contoh : BR-
Sufix = akhiran dari kode, contoh : -2005
Nomor = untuk menyimpan nomor terakhir

contoh penggunaan dalam program :
Code:
procedure TFInBarang.btnNewClick(Sender: TObject);
var
  sKode : String;
begin
  // ubah caption button sesuai fungsi
  case TComponent(Sender).Tag of
    1 : begin
          (Sender As TButton).Tag := 2;
          (Sender As TButton).Caption := '&Simpan';

          // check nomor jurnal kode
          with QJurnal do begin
            SQL.Clear;
            SQL.Append('SELECT * FROM TJurnal WHERE KdJurnal = :pKdJurnal');
            Parameters[0].Value := 'BR';
            Open;
            sKode := FieldByName('Prefix').AsString +
              FormatFloat('0000',FieldByName('Nomor').AsInteger) +
              FieldByName('Sufix').AsString;
            Close;
            edKdBarang.Text := sKode;
            edNmBarang.Clear;
            edSatuan.Clear;
            edJumlah.Text := '0';
            edNmBarang.SetFocus;
          end;
        end;
    2 : begin
          (Sender As TButton).Tag := 1;
          (Sender As TButton).Caption := '&New';

          // check kembali nomor jurnal (untuk program multiuser)
          with QJurnal do begin
            SQL.Clear;
            SQL.Append('SELECT * FROM TJurnal WHERE KdJurnal = :pKdJurnal');
            Parameters[0].Value := 'BR';
            Open;
            sKode := FieldByName('Prefix').AsString +
              FormatFloat('0000',FieldByName('Nomor').AsInteger) +
              FieldByName('Sufix').AsString;
            Close;

          // simpan data ke tabel barang
            SQL.Clear;
            SQL.Append(
              'INSERT INTO TBarang(KdBarang, NmBarang, Satuan, Jumlah) ' +
              'VALUES (:pKdBarang, :pNmBarang, :pSatuan, :pJumlah)'
              );
            Parameters[0].Value := sKode;
            Parameters[1].Value := edNmBarang.Text;
            Parameters[2].Value := edSatuan.Text;
            Parameters[3].Value := StrToInt(edJumlah.Text);
            ExecSQL;
            TBarang.Requery();

          // update TJurnal
            SQL.Clear;
            SQL.Append(
              'UPDATE TJurnal SET Nomor = Nomor + 1 WHERE KdJurnal = :pKdJurnal'
              );
            Parameters[0].Value := 'BR';
            ExecSQL;
          end;
        end;
  end;
end;


hasilnya kira-kira begini :


silakan di logika gimana alurnya. habis gue gak pinter nerangin tentang logika hik.. hik...

Download Contoh Program Disini

_________________
 
 View user's profile Send private message  
Reply with quote Back to top
ZeALOffline
Post subject:   PostPosted: 19-09-2005 16:05
onProfessional


Joined: 07-04-2005 12:18
Posts: 761

Status: Offline
adek gue rambutnya panjang lurus..?? wah, berarti lo salah liat kalo gitu... Very Happy

_________________
do i know you?

[ My Blog : http://www.monyetpinter.com ] [ My RPG Project : http://einarc.wordpress.com ] [ FJBex : http://www.fjbex.com ]
 
 View user's profile Send private message  
Reply with quote Back to top
saysansay
Post subject:   PostPosted: 19-09-2005 18:39
onProfessional


Joined: 06-08-2005 13:59
Posts: 632

Kang benar seperti itu yang saya maksud...bikin artikel donk biar gampang di mengerti
Wach Jadi ada dua pilihan nech..Cyber atau zeal sizpa sech yg gagah

_________________
== Barudak Jambi ===
Site : http://geocities.com/nahax_san/
Company : http://www.vs-i.com/
===Kenangan yang tertinggal===
========cibodas==========
 
 View user's profile Send private message Send e-mail  
Reply with quote Back to top
cyber_heckerOffline
Post subject:   PostPosted: 19-09-2005 20:56
onProfessional


Joined: 19-05-2005 20:32
Posts: 902

Status: Offline
milih zeal aja. ayo jangan ragu. zeal itu cowok cakep lho xixixixixixixi

_________________
 
 View user's profile Send private message  
Reply with quote Back to top
ZeALOffline
Post subject:   PostPosted: 20-09-2005 07:41
onProfessional


Joined: 07-04-2005 12:18
Posts: 761

Status: Offline
milih cyber aja... cyber gagah loh..
tapi gak tau gagah : suka digagahi, gagah : suka menggagahi, atau gagah beneran... weksss... Very Happy

_________________
do i know you?

[ My Blog : http://www.monyetpinter.com ] [ My RPG Project : http://einarc.wordpress.com ] [ FJBex : http://www.fjbex.com ]
 
 View user's profile Send private message  
Reply with quote Back to top
EkoIndriOffline
Post subject:   PostPosted: 24-11-2005 01:15
onElite


Joined: 23-11-2005 19:14
Posts: 1185
Location: Jakarta - Solo - Surabaya - Bali
Status: Offline
caranya sudah bagus......
cuma untuk kelas server gimana.............???

saya melihat disini ada celah, atau mungkin saya yang salah persepsi atau salah baca.

jadi begini, untuk mendapatkan kode yang real, kita dilarang mengambil acuan atau parameter dari client, malainkan kita harus ambil data dari server alias tempat database disimpan.

jadi untuk menentukan kode yang begituan aku selalu ambil data dari record yang ada pada tabel.

dan untuk itu aku selalu ambil nilai terbesar dari n karakter yang sudah dipotong dari karakter huruf -->> KB0001 -->> 0001

jadi dari sini setiap ada aplikasi client aktif dia minta satu yang akan dibuat nota, maka akan kita masukkan kedalam tabel permintaan, sehingga kita mengacu berdasarkan record yang da ditabel bukan di client

dari sini peluang error akan ditekan lagi........

he...........he...........

ada yang kurang jelas silahkan post ja

nanti aku jawab dengan jelas beserta querynya......

btw, untuk main database, aq jarang sekali main script di delphi, malah ngak ada sama sekali.....

aq lebih suka main di server, sebab bisa mengurangi network traffic yang padat.
apalagi aplikasi anda dipakai untuk kelas yang besar dan terintegrasi

pasti butuh ruang gerak bebas yang agak besar

_________________
Blog Delphi favourite:

www.ekoindri.wordpress.com
 
 View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger  
Reply with quote Back to top
imunkOffline
Post subject:   PostPosted: 24-11-2005 09:34
onUber-Skilled


Joined: 28-03-2005 10:06
Posts: 447

Status: Offline
aku sdh pernah mencoba menjalankan trik dari mas ekoindri, perintah querynya gini:

select max(right(fieldnya),4)+1 from tablenya

kalo setiap client menjalankan query ini dan mengacu pada table yg sama, pada saat nyimpen jadi error. karena client tersebut mendapat max kode yg sama.

misal gini:
kode pada tabel maksimalnya :2345

saat client 1 menjalankan query diatas hasil yg diperoleh : 2346.
saat client 1 belum simpan data, client 2 jalankan query di atas terlebih dahulu.
otomatis client 2 akan mendapat hasil yg sama dgn client 1 yaitu 2346.
setelah itu client 1 simpan data, no problem data tersimpan dgn mulus.. luss...
tapi saat client 2 menyimpan data, errrrrooooorrrrrr....

kira2 giman triknya ya mas ekoindri....??? Smile
 
 View user's profile Send private message  
Reply with quote Back to top
EkoIndriOffline
Post subject:   PostPosted: 24-11-2005 13:49
onElite


Joined: 23-11-2005 19:14
Posts: 1185
Location: Jakarta - Solo - Surabaya - Bali
Status: Offline
begini mas...........
untuk klarifikasi dari tanggapan yang mengatakan kata2 aja akan saya berikan kasus nyata nih bang @imunk

jika ada yang kurang jelas nantinya posting aja lagi...

he.............he.............



pertama begini, (biasa...... kata2 tetep masih diperlukan untuk memperjelas)
mas kan punya tabel master nota transaksi, anggap aja namanya adalah TabelTransaksi dengan ada nama field [kode Transaksi](sebagai informasi ini menggunakan database SQL Server).

nah, agar kita bisa membuat kode secara otomatis dan tidak kress antara komputer1 dengan komputer yang lain, kita bisa membuat parameter bantuan.

untuk tabel pembantu ini kita berikan nama -->> TabelTempKodeTransaksi

nah sekarang kita buat prosedur untuk membuat kode otomatis.


informasi penegasan:

TabelTransaksi -->> [Kode Transaksi],
[Kode Barang],
.......
........
TabelTempKodeTransaksi -->> [Kode Transaksi]

pertama kita cek dulu apakah tabel TabelTempKodeTransaksi ada record apa tidak....????
jika tidak maka kita ambil data dari tabel TabelTransaksi untuk menentukan kode transaksinya.

untuk query silahkan anda lihat berikut ini (anggap pada field [Kode Transaksi] ada 10 karakter dan 2 karakter dari kiri untuk karakter huruf, misalkan KT, jadi lengkapnya KT000000001 atau yang lain).

DECLARE @NomorTransaksi numeric,
@KodeTransaksi varchar(10)

SELECT @NomorTransaksi = MAX(DISTINCT CAST(RIGHT([Kode Transaksi], 8 ) AS numeric))
FROM TabelTransaksi

IF @NomorTransaksi IS NULL
BEGIN
SET @NomorTransaksi = 1
END
ELSE
BEGIN
SET @NomorTransaksi = @NomorTransaksi + 1
END

IF @NomorTransaksi < 10
BEGIN
SET @KodeTransaksi = 'KT'+'0000000' +CAST( @NomorTransaksi AS varchar )
END
ELSE IF @NomorTransaksi < 100
BEGIN
SET @KodeTransaksi = 'KT'+'000000' +CAST( @NomorTransaksi AS varchar )
END
ELSE IF @NomorTransaksi < 1000
BEGIN
SET @KodeTransaksi = 'KT'+'00000' +CAST( @NomorTransaksi AS varchar )
END
ELSE IF @NomorTransaksi < 10000
BEGIN
SET @KodeTransaksi = 'KT'+'0000' +CAST( @NomorTransaksi AS varchar )
END
ELSE IF @NomorTransaksi < 100000
BEGIN
SET @KodeTransaksi = 'KT'+'000' +CAST( @NomorTransaksi AS varchar )
END
ELSE IF @NomorTransaksi < 1000000
BEGIN
SET @KodeTransaksi = 'KT'+'00' +CAST( @NomorTransaksi AS varchar )
END
ELSE IF @NomorTransaksi < 10000000
BEGIN
SET @KodeTransaksi = 'KT'+'0' +CAST( @NomorTransaksi AS varchar )
END
ELSE IF @NomorTransaksi < 100000000
BEGIN
SET @KodeTransaksi = 'KT' +CAST( @NomorTransaksi AS varchar )
END

nah sekarang kamu masukkan kode terpilih dengan parameter @KodeTransaksi ke tabel TabelTempKodeTransaksi dengan query sebagai berikut

Insert Into TabelTempKodeTransaksi
([Kode Transaksi])
values
(@KodeTransaksi)

itu tadi kondisi jika tabel TabelTempKodeTransaksi kosong tidak ada datanya.

terus jika ada user lain yang ingin membuat nota transaksi lagi kita cek lagi apakah tabel TabelTempKodeTransaksi kosong apa tidak, jika tidak parameter acuan kita adalah kode transaksi yang ada di tabel TabelTempKodeTransaksi bukan tabel TabelTransaksi.

dengan cara yang sama dengn diatas jika sudah selesai didapatkan @KodeTransaksi, kita insertkan lagi untuk kode yang baru, dengan demikian tidak ada error waktu penyimpanan mas...... karena tidak ada data yang identik sama.......

selamat mencoba...............


jika ada yang bingung posting lagi aja....
aku siap bantu koq........ dan tidak hanya kata-kata aja.... sekali lagi tidak hanya kata-kata aja.........


Last edited by EkoIndri on 24-11-2005 18:07; edited 1 time in total
 
 View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger  
Reply with quote Back to top
imunkOffline
Post subject:   PostPosted: 24-11-2005 14:52
onUber-Skilled


Joined: 28-03-2005 10:06
Posts: 447

Status: Offline
kalo client 1 mengcancel penyimpanan data gimana??
nanti ada satu nomor yg gak terisi dong, karena nomor transaksi bertambah terus...

kakakakakak
 
 View user's profile Send private message  
Reply with quote Back to top
EkoIndriOffline
Post subject:   PostPosted: 24-11-2005 16:16
onElite


Joined: 23-11-2005 19:14
Posts: 1185
Location: Jakarta - Solo - Surabaya - Bali
Status: Offline
untuk mengatasi hal ini sebenarnya tergantung dari kemampuan aplikasi kita masing2
1. Jika perusahaan itu mengijinkan untuk mengabaikan nota transaksi yang telah terbit(dibatalkan seperti kondisi yang mas maksud itu ngak masalah). Pokoknya yang menjadi parameter adalah Nota yang masuk ke dalam kasir, sementara nota itu kan masih dalam proses tahap SO atau sales order, sehingga tidak masalah.
2. Jika memang perusahaan ingin membuat semua nota itu berlaku, maka ketika pihak komputer client membatalkan, maka kita bisa menambahkan field status untuk kode transaksi yang ada di tabel TabelTempKodeTransaksi, yang mana kalau tahap proses pembuatan nota kita kasih status 0 dan jika dibatalkan kita berikan nilai 1 yang artinya batal, dan ketika ada client lain yang mengajukan kode transaksi bisa memanfaatkan kode Transaksi yang idle sebelum membuat Kode transaksi baru. Cara ini juga bisa dilakukan dan tidak masalah.
Kalau pertama tadi mengecek apakah tabel TabelTempKodeTransaksi Kosong apa tidak, maka jika tidak Kosong kita bisa cek validasi kedua, apakah ada Kode Transaksi yang Idle apa tidak.
Jika tidak ada sistem secara otomatis akan mengcounter membuat Kode transaksi Baru, namun apabila ada kode Transaksi yang idle, maka sistem akan memberikan Kode Transaksi idle sebagai Kode transaksi yang diminta oleh Komputer Client.

begitu mas.............

sori, kalau untuk posting kali ini aq cuma kata2 aja........
kalau memang masih lom jelas, nanti akan aq berikan penjelasan yang tidak hanya sekedar kata2......


he..........he..........

_________________
Blog Delphi favourite:

www.ekoindri.wordpress.com
 
 View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger  
Reply with quote Back to top
saysansay
22 Post subject:   PostPosted: 24-11-2005 17:55
onProfessional


Joined: 06-08-2005 13:59
Posts: 632

Kang Ekoindri Kenapa Ya pas aku baca penjelesan dari akang rada susah dimengerti.... Sebaiknya gunakana kata2 yg bermanfaat aja, n jagan lupa klu mau buat contoh kasus implementasikan dalam sample yg bisa didownload, Coz kami-kami in kan baru pemula yg masih awam buaaanget ama delphi...oh iya sekedar saran buat akang ekoindri, Implementasi ilmunya bagus tapi penjelasannya berbelit2 jadi rada susah dimengerti bagi pemula< Wakaakakakakak utng aku udah masuk kls intemedite>

_________________
== Barudak Jambi ===
Site : http://geocities.com/nahax_san/
Company : http://www.vs-i.com/
===Kenangan yang tertinggal===
========cibodas==========
 
 View user's profile Send private message Send e-mail  
Reply with quote Back to top
EkoIndriOffline
Post subject:   PostPosted: 24-11-2005 18:04
onElite


Joined: 23-11-2005 19:14
Posts: 1185
Location: Jakarta - Solo - Surabaya - Bali
Status: Offline
kelihatan jarang belajar konsep..........

ha.........ha................

dan kelihatan suka dikasih aplikasi langsung

ha.............ha..................

memang sih kebanyakan temen2 maunya simple ngak mau belajar konsep, sehingga akibatnya ...........

btw, banyak sekali orang yang berpikiran langsung to the point, padahal tu salah besar.
kalau aku sering diskusi diluar, itu malah jarang langsung script, mereka lebih sering megajarkan konsep.
nah dari situ aq dah ambil hikmahnya yang begitu besar sekali.

dan aku dah terapin dibeberapa forum dalam negeri ngak ada masalah
dan baru kali ini aku di complain, biasanya ada yang bilang jelas banget, koq disini dibilang susah dimengerti

ha...............ha..............

salah nulis kali aq kali ini................

_________________
Blog Delphi favourite:

www.ekoindri.wordpress.com
 
 View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger  
Reply with quote Back to top
saysansay
Post subject:   PostPosted: 24-11-2005 18:19
onProfessional


Joined: 06-08-2005 13:59
Posts: 632

Mungkin aku yg bloon ya, Tapi trus terang bukannya aku membeda2kan orang, klu penjelasan dari kang cyber.h,delogic,zeal,luri.d,tox2wow, lebih cepat dimengerti...mungkin akang udah biasa implementasi dengan konsep ya, Tapi ini lah kesalahan yg snagat besar, kita belajar ilmu logika bukan hafalan, so kang ekoindri pasti ngerti,,,,,,hehehehehe <<<<< KLu masalah ginian udah biasa Wakakakakakaakka

_________________
== Barudak Jambi ===
Site : http://geocities.com/nahax_san/
Company : http://www.vs-i.com/
===Kenangan yang tertinggal===
========cibodas==========
 
 View user's profile Send private message Send e-mail  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT - 5 Hours
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2007 The PNphpBB Group
Credits