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 <frxDBDataset1."SUAMI_ORANGTUA_AYAH_ALAMA">=''
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',<frxDBDataset1."TGLCATATNIKAH">))
b. menampilkan tanggal saja:
contoh :
FORMATDATETIME('dd',<frxDBDataset1."TGLCATATNIKAH">)
c. menampilkan bulannya saja:
contoh : uppercase(
FORMATDATETIME('MMMM',<frxDBDataset1."TGLCATATNIKAH">))
d. menampilkan tahunnya saja:
contoh :
uppercase(FORMATDATETIME('yyyy',<frxDBDataset1."TGLCATATNIKAH">))
e. menampilkan tanggal, bulan
dan tahun
contoh :
uppercase(formatdatetime('DD MMMM
yyyy',<frxDBDataset1."WALI_TANGGAL_LAHIR">))
f. menampilkan hari, tanggal,
bulan dan tahun
contoh:
[uppercase(formatdatetime('dddd, dd mmmm
yyyy',<fr4."TGLNIKAHMASEHI">))]
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',<frxDBDataset1."TGLCATATNIKAH">))+
' Tanggal '+
FORMATDATETIME('dd',<frxDBDataset1."TGLCATATNIKAH">)
+ ' Bulan ' +uppercase(
FORMATDATETIME('MMMM',<frxDBDataset1."TGLCATATNIKAH">))+ '
Tahun ' +
uppercase(FORMATDATETIME('yyyy',<frxDBDataset1."TGLCATATNIKAH">))+',
Telah dilakukan pencatatan nikah sebagai berikut';
4.
IIF(,,)
maksudnya jika ya maka.....
tapi jika tidak maka .... (satu tempat utk berdua)
contoh :
[IIF(<frxDBDataset1."WALI_TANGGAL_LAHIR">
=0,
<frxDBDataset1."WALI_TEMPAT_LAHIR">+',
'+inttostr(<frxDBDataset1."WALI_UMUR">)+' TH.',
<frxDBDataset1."WALI_TEMPAT_LAHIR">+',
'+uppercase(formatdatetime('DD MMMM
yyyy',<frxDBDataset1."WALI_TANGGAL_LAHIR">)))]
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
<frxDBDataset1."WALI_TANGGAL_LAHIR"> =0 then begin
Memo49.text:= uppercase(<frxDBDataset1."WALI_TEMPAT_LAHIR">)+',
'+inttostr(<frxDBDataset1."WALI_UMUR">)+' TH';
end Else begin Memo49.text:=
uppercase(<frxDBDataset1."WALI_TEMPAT_LAHIR">)+',
'+uppercase(formatdatetime('DD MMMM yyyy',<frxDBDataset1."WALI_TANGGAL_LAHIR">));
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(<frxDBDataset1."SUAMI_NAMA">) > 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(<frxDBDataset1."TGLNIKAH_HIJ_TGL">)+'
'+(<frxDBDataset1."TGLNIKAH_HIJ_BULAN">)+'
'+inttostr(<frxDBDataset1."TGLNIKAH_HIJ_TAHUN">)]
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(<frxDBDataset1."WALI_UMUR">)+'
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(<frxDBDataset1."TGLCATATNIKAH">)]
Hasilnya sama dengan
[formatdatetime('dd/mm/yyyy',<frxDBDataset1."TGLCATATNIKAH">)]
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(<frxDBDataset1."SUAMI_NAMA">) > 25 then
memo86.font.size :=8;
Penjelasannya bisa dilihat di
fungsi lenght
11.
charspacing
untuk mengatur spasi
contoh :
if (length
(<fr4."ISTRI_NAMA">) >= 25) OR (length
(<fr4."SUAMI_NAMA">) >= 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
<frxDBDataset1."WALI_STATUS_WALI"> = '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
<frxDBDataset1."SUAMI_STATUS"> ='DUDA TALAK' then (tanpa trim)
if
trim(<frxDBDataset1."WALI_STATUS_WALI">) = 'HAKIM' then begin
cukup ditulis: if
<frxDBDataset1."WALI_STATUS_WALI"> = 'HAKIM' then begin
IF
(TRIM(UPPERCASE(<frxDBDataset1."SUAMI_STATUS">))= 'BERISTRI')
THEN BEGIN
cukup ditulis : IF
<frxDBDataset1."SUAMI_STATUS"> = 'BERISTRI' THEN BEGIN
13.
Case... Of
fungsi seleksi (hampir sama
dengan if then else), tetapi dalam case of , opsi ditentukan secara sistematis
contoh :
Case
<frxDBDataset1."TGLNIKAH_HIJ_BULAN"> 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',<frxDBDataset1."SUAMI_PEKERJAAN">) > 0) OR
(POS('ABRI',<frxDBDataset1."SUAMI_PEKERJAAN">)
> 0) OR
(POS('POLRI',<frxDBDataset1."SUAMI_PEKERJAAN">)
> 0) OR
(POS('TNI',<frxDBDataset1."ISTRI_PEKERJAAN">)
> 0) OR
(POS('ABRI',<frxDBDataset1."ISTRI_PEKERJAAN">)
> 0) OR
(POS('POLRI',<frxDBDataset1."ISTRI_PEKERJAAN">)
> 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(<frxDBDataset1."SUAMI_WARGANEGARA">))<>
'INDONESIA') and
(TRIM(UPPERCASE(<frxDBDataset1."SUAMI_WARGANEGARA">))<>
'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(<frxdaftar."DN_AKTANOMOR">,1,Pos('/',<frxdaftar."DN_AKTANOMOR">)-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(<frxdaftar."DN_AKTANOMOR">,1,4]
Jika ditulis
[Copy(<frxdaftar."DN_AKTANOMOR">,2,3] preview: 001
Seperti yg diseting 3 digit
menggunkan rumus sama seperti diatas:
[Copy(<frxdaftar."DN_AKTANOMOR">,1,Pos('/',<frxdaftar."DN_AKTANOMOR">)-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(<fr4."TGLNIKAHMASEHI">) = 1 then
begin
tglbaru :=
<fr4."TGLNIKAHMASEHI">+1;
tglstring :=
DateToStr(tglbaru);
memo8.text :=
UPPERCASE(FormatDateTime('DD MMMM',tglbaru));
end
else
if
DayOfWeek(<fr4."TGLNIKAHMASEHI">) = 7 then
begin
tglbaru :=
<fr4."TGLNIKAHMASEHI">+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)',<frxDBDataset1."SUAMI_ORANGTUA_AYAH_NAMA">)
>0) OR
(<frxDBDataset1."SUAMI_ORANGTUA_AYAH_NAMA">
= '') 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;