Belajar Script SIMKAH

Posted by : Unknown

Tanggal : 0 komentar

1. UPPERCASE, Namecase dan lowercase
- memo21.text := uppercase(memo21.text);
maksudnya untuk membuat memo21 menjadi huruh KAPITAL (BESAR SEMUA)
- memo21.text := namecase(memo21.text);
maksudnya untuk membuat memo21 menjadi Awal Katanya Huruf Kapital
- memo21.text := lowercase(memo21.text);
maksudnya untuk membuat memo21 menjadi huruf kecil semua

2. If .... then/then begin
Maksudnya jika ...... maka .......
Contoh:
if ='' then begin
line21.visible:=true;
line22.visible:=true;
end;

artinya jika alamat ayah kosong (tidak ada isinya) maka garis21 dan 22 akan terlihat (dengan catatan line21 dan 22 diseting non visible)
script ini bisa diterapkan utk garis silang almarhum..

3. FormatDateTime(,)
a. hanya menampilkan hari saja:
contoh : uppercase(FORMATDATETIME('DDDD',))
b. menampilkan tanggal saja:
contoh : FORMATDATETIME('dd',)
c. menampilkan bulannya saja:
contoh : uppercase( FORMATDATETIME('MMMM',))
d. menampilkan tahunnya saja:
contoh : uppercase(FORMATDATETIME('yyyy',))
e. menampilkan tanggal, bulan dan tahun
contoh : uppercase(formatdatetime('DD MMMM yyyy',))
f. menampilkan hari, tanggal, bulan dan tahun
contoh: [uppercase(formatdatetime('dddd, dd mmmm yyyy',))]
CATATAN :
- Kalo mau dimasukkan ke memo, maka diawali dengan tanda [ dan diakhiri dengan tanda ] seperti contoh pada huruf f
- Kalo pengen menyisipkan kata-kata ditambahkan tanda +'yang mau ditambahkan'
Contoh lengkap:
memo111.text :='Pada hari ini ' + uppercase(FORMATDATETIME('DDDD',))+ ' Tanggal '+
FORMATDATETIME('dd',) + ' Bulan ' +uppercase( FORMATDATETIME('MMMM',))+ ' Tahun ' + uppercase(FORMATDATETIME('yyyy',))+', Telah dilakukan pencatatan nikah sebagai berikut';

4. IIF(,,)
maksudnya jika ya maka..... tapi jika tidak maka .... (satu tempat utk berdua)
contoh :
[IIF( =0,
+', '+inttostr()+' TH.',
+', '+uppercase(formatdatetime('DD MMMM yyyy',)))]
artinya jika tgl lahir wali tidak diisi (menggunakan umur) maka memo tersebut akan menampilkan tempat lahir, umur TH....
tapi jika tanggal lahir wali terisi maka memo tsb akan menampilkan tempat lahir, tgl lahir....

kalo script tsb dituangkan dlm rumus if.... then begin.... end else begin ...... (dlm code) maka rumusnya menjadi:
If =0 then begin Memo49.text:= uppercase()+', '+inttostr()+' TH';
end Else begin Memo49.text:= uppercase()+', '+uppercase(formatdatetime('DD MMMM yyyy',));
end;

5. LENGHT --> mengetahui panjang suatu string

CONTOH:
a. if length(trim(memo10.text)) > 25 then memo10.font.size :=7;
biasanya utk nama suami/istri, ttl di buku nikah kalo panjaang
MAKSUDNYA: Jika panjang memo10 lebih dari 25 karakter, maka ukuran font memo10 akan berubah otomatis menjadi 7 (mengecil biar muat/utk buku nikah ukuran font standarnya 8)
KETERANGAN : jumlah karakter yg dimaksud adalah jumlah karakter isian dalam memo tersebut (sudah termasuk spasi dan karakter lainnya) .
CATATAN: Script Tersebut Tidak Bisa Diterapkan Pada Memo Yg Diambil Dari Dataset.

b. Kalo mau diterapkan di memo dari dataset contohnya begini:
if length() > 25 then memo86.font.size :=8;

Makksudnya: Jika panjang memo86 lebih dari 25 karakter, maka ukuran font memo86 akan berubah otomatis menjadi 8 (mengecil biar muat/utk register 2012 ukuran font standarnya 9)

6. strtoint -->konnversi dari string ke integer --> mengubah tipe data teks menjadi angka

7. Inttostr -->konnversi dari integer ke string --> mengubah tipe data angka menjadi teks

a. Utk tanggal hijriyah dan tahun hijriyah
Contoh: untuk tanggal nikah hijriyah pada modul NB: [inttostr()+' '+()+' '+inttostr()]
Keterangan :
kalo digabung dengan data yg lain menggunakan tanda +' maka harus menggunakan fungsi Inttostr,
tapi kalo masing-masing berdiri sendiri seperti kalo dirubah menjadi [frxDBDataset1."TGLNIKAH_HIJ_TGL"] [frxDBDataset1."TGLNIKAH_HIJ_BULAN"] [frxDBDataset1."TGLNIKAH_HIJ_TAHUN"] tidak ada masalah...
b. umur:
contoh:
inttostr()+' TH'
Penjelasan:
Kalo cuman mau menggabung dua data tersebut memonya cukup ditulis: [frxDBDataset1."WALI_UMUR"] TH
c. untuk menampilkan data yg didahului fungsi lenght
contoh:
memo2.text:=inttostr(length(trim(memo1.text)));

8. datetostr --> konnversi dari tipe data date(tanggal) ke integer --> mengubah format tanggal menjadi teks

Contoh: [DateToStr()]
Hasilnya sama dengan [formatdatetime('dd/mm/yyyy',)]
Preview: 01/01/2012

9. font.style
untuk setting style font menjadi bold/italic/underline

10. font.size
untuk mengatur ukuran font
contoh:
a. if length(memo4.text) > 25 then memo4.font.size :=7;
b. if length() > 25 then memo86.font.size :=8;
Penjelasannya bisa dilihat di fungsi lenght

11. charspacing
untuk mengatur spasi

contoh :
if (length () >= 25) OR (length () >= 25) then begin
memo17.font.size:=9;
MEMO53.FONT.SIZE:=9;
memo17.font.style := fsbold;
memo53.font.style := fsbold;
memo17.charspacing := 0; memo53.charspacing := 0;
END
else
BEGIN
memo17.font.size:=10;
MEMO53.FONT.SIZE:=10;
memo17.font.style := fsbold;
memo53.font.style := fsbold;
memo17.charspacing := 1;
memo53.charspacing := 1; END;

maksudnya jika nama istri atau nama suami terdiri dari 25 karakter atau lebih
maka memo17 dan memo53 (memo utk nama suami dan istri pd template NA gabungan hlm 2 dan 3) akan berubah jadi:
a.ukuran font = 9
b.huruf tebal
c.jarak antar huruf (horisontal) = 0
jika jumlah karakternya kurang dari 25 maka
a.ukuran font = 10
b.huruf tebal
c.jarak antar huruf (horisontal) = 1

fungsi charspacing kalo mau diseting secara lbh permanen bisa diatur pada properties memo tersebut..
utk mengatur spasi jarak antar baris bisa menggunakan linespacing

12. trim
untuk menghilangkan spasi
contoh:
a. if length(trim(memo10.text)) > 25 then memo10.font.size :=7;
b. if length(memo10.text) > 25 then memo10.font.size :=7;
Penjelasan:
a. yang pakai trim jumlah karakter memo akan sama dengan rumus
b. yang tanpa trim akan berkurang 2 karakter

CONTOH PENERAPAN DALAM MODUL NB dan REGISTER:
if trim(uppercase(memo19.text)) ='DUDA TALAK' then
memo19.text:='DUDA CERAI TALAK';
KETERANGAN:
Tanpa trim, script tersebut tdk akan ngefek....
Tp penambahan uppercase di situ jg tak perlu....

CATATAN:
1. untuk if trim (memo......) tdk akan berfungsi pada memo dari dataset:
contoh:
if trim(memo45.text) = 'HAKIM' then begin tidak akan berfungsi
tapi harus menggunakan: if = 'HAKIM' then begin
2. trim tidak diperlukan pada memo dari dataset
contoh:
script di atas if trim(uppercase(memo19.text)) ='DUDA TALAK' then
dapat ditulis: if ='DUDA TALAK' then (tanpa trim)
if trim() = 'HAKIM' then begin
cukup ditulis: if = 'HAKIM' then begin
IF (TRIM(UPPERCASE())= 'BERISTRI') THEN BEGIN
cukup ditulis : IF = 'BERISTRI' THEN BEGIN



13. Case... Of
fungsi seleksi (hampir sama dengan if then else), tetapi dalam case of , opsi ditentukan secara sistematis
contoh :
Case of
'MUHARROM' : memo74.text:='01';
'SHOFAR': memo74.text :='02';
'RABI''UL ULA': memo74.text :='03';
'RABI''UL TSANI': memo74.text :='04';
'JUMADIL ULA': memo74.text :='05';
'JUMADIL TSANI': memo74.text :='06';
'ROJAB': memo74.text :='07';
'SA''BAN': memo74.text :='08';
'RAMADHAN': memo74.text :='09';
'SYAWAL': memo74.text :='10';
'DZULQO''DAH': memo74.text :='11';
'DZULHIJJAH': memo74.text :='12';
end;

14. OR
fungsi logika.. akan bernilai false/salah apabila 2 pernyataan bernilai salah
tabel logikanya :
true or true = true;
true or false = true;
false or true =true;
false or false = false;

contoh:
IF (POS('TNI',) > 0) OR
(POS('ABRI',) > 0) OR
(POS('POLRI',) > 0) OR
(POS('TNI',) > 0) OR
(POS('ABRI',) > 0) OR
(POS('POLRI',) > 0) THEN BEGIN


15. And
fungsi logika.. akan bernilai true/benar apabila 2 pernyataan bernilai benar
tabel logikanya :
true or true = true;
true or false = false;
false or true =false;
false or false = false;

contoh:
IF( (TRIM(UPPERCASE())<> 'INDONESIA') and
(TRIM(UPPERCASE())<> 'WNI'))


16. Copy
untuk mengcopy isi dari suatu object/field

Copy dari data ........ mulai dari karakter/digit ke ....... dengan jumlah ..... karakter/digit
contoh:
- untuk nomor urut pada template ekspedisi buku nikah
[Copy(,1,Pos('/',)-1)]

Keterangan:
Copy dari data akta nikah,, mulai dari digit pertama,, sejumlah digit nomor tahunan sampai tanda / dikurangi 1..
Untuk yg diseting 4 digit preview: 0001
Rumus trsebut akan sama jika ditulis [Copy(,1,4]
Jika ditulis [Copy(,2,3] preview: 001
Seperti yg diseting 3 digit menggunkan rumus sama seperti diatas:
[Copy(,1,Pos('/',)-1)]

Untuk nomor urut pada laporan bulanan cukup menggunakan script [line]

17. Dayofweek
untuk mengetahui nilai dari suatu hari
1 : minggu
2 : senin
3 : selasa
4 : rabu
5 : kamis
6 : jumat
7 : sabtu

contoh :

if DayOfWeek() = 1 then
begin
tglbaru := +1;
tglstring := DateToStr(tglbaru);
memo8.text := UPPERCASE(FormatDateTime('DD MMMM',tglbaru));
end
else
if DayOfWeek() = 7 then
begin
tglbaru := +2;
tglstring := DateToStr(tglbaru);
memo8.text := UPPERCASE(FormatDateTime('DD MMMM',tglbaru)); end;

Keterangan : jika hari nikah hari minggu,pencatatan dibuat senin (jadi ditambah 1) jika hari sabtu maka pencatatan dibuat tanggal senin (jadi ditambah 2)

18. Pos
untuk mengetahui posisi dari suatu karakter di dalam suatu string
contoh:
  if (POS('(ALM)',) >0) OR
 ( = '') then begin
MEMO90.VISIBLE :=FALSE;
MEMO92.VISIBLE :=FALSE;
MEMO31.VISIBLE :=FALSE;
MEMO32.VISIBLE :=FALSE;
line23.visible :=true;
line27.visible :=true;
end;

maksudnya: jika ada embel2 (ALM) pada nama ayah karena ayah telah meninggal
atau tanpa ayah maka:
memo90 (warga negara) = tidak terlihat (jadi kosong);
memo92 (agama) = tidak terlihat (jadi kosong);
memo31 (pekerjaan) = tidak terlihat (jadi kosong);
memo32 (alamat) = tidak terlihat (jadi kosong);
line23 (garis silang) = akan muncul;
line27 (garis silang) = akan muncul;


Sumber : FK-OSI 
Readmore...

Penghulu Online: Konsultasi Pernikahan & Keluarga SMS CENTER DAN PENGADUAN Maintenance
UNDER MAINTENANCE

Konsultasi © Nikah . | Kontak | Call/SMS