- Catatan mengenai tabel:
# Dukungan untuk membuat banyak tabel sekaligus
# Untuk setiap tabel, pengembang script harus menentukan kolom yang valid
# Untuk setiap kolom, pengembang script harus menentukan nama, jenis, dan flag
# Jenis kolom yang valid: integer, real, char, varchar, text, blob, null
# Flag kolom yang valid: 0, 1 (primary key), 2 (hanya untuk integer: primary key autoincrement)
# Mendukung lebih dari satu primary key
# Saat ini, nilai default belum didukung
# Untuk tabel yang sudah ada, bisa dilakukan penambahan kolom
* Pengembang dapat menentukan kolom dan hanya kolom yang tidak ada yang akan ditambahkan
* Kolom yang sudah ada, jika ditentukan akan dibandingkan. Kesalahan terjadi jika ada ketidakcocokan antara tipe kolom baru dan tipe kolom yang ada.
- Catatan mengenai form dan report:
# Dukungan untuk membuat banyak form dan report sekaligus
# Kesalahan terjadi jika terdapat form atau report yang sudah ada
# Harap baca artikel mengenai form atau artikel mengenai report lagi untuk info lebih lanjut.
Referensi Kode Script
- Hanya nilai yang valid yang akan dibaca
- Script tidak dapat dijalankan jika ada kesalahan
- Jika ada pengecualian saat script berjalan, tabel apa pun yang baru dibuat (jika kosong) akan dihapus secara eksplisit. Namun, kolom yang baru ditambahkan tidak dapat dihapus dengan mudah.
- Script dirancang untuk dijalankan hanya sekali
- Harus sintaks JSON yang valid (json.org)
- Terletak dalam satu file
- String (termasuk keys di bawah) harus dikutip ganda (antara " dan ")
- Tanda koma di akhir dictionary atau list tidak diijinkan.
- Setiap key adalah case-sensitive, di mana huruf besar/kecil dibedakan.
- Keys:
Key
|
Deskripsi
|
Tipe
|
Status
|
Contoh
|
name
|
Nama
script
|
string
|
Wajib
|
“script
saya”
|
tables
|
Definisi
tabel.
- List
dari list (tabel) atau []
- Untuk
tiap tabel: [“namatabel”, [kolom], …]
Untuk
tiap [kolom]: [“nama”, “tipe”, flag]
|
list
dari list
|
Wajib
|
|
forms
|
Definisi
form.
- List
dari list (form) atau []
- Untuk
tiap form: [“namaform”, {kodeform}]
- kodeform:
kode form yang valid (dict)
|
list
dari list
|
Wajib
|
|
reports
|
Definisi
report.
- List
dari list (report) atau []
- Untuk
tiap report: [“namareport”, {kodereport}]
- kodereport:
kode report yang valid (dict)
|
list
dari list
|
Wajib
|
|
profiles
|
Profil
yang ditentukan pengguna
|
list
|
Opsional
|
|
info
|
Informasi
script
|
string
|
Opsional
|
“Informasi
Script”
|
author
|
Informasi
pembuat script
|
string
|
Opsional
|
“© Author <email>”
|
license
|
Informasi
lisensi
|
string
|
Opsional
|
“license”
|
Contoh Script
1. {
"name": "script saya",
"info": "Informasi Script",
"author": "(c) Haikal <haikal1531041@sttpln.ac.id>",
"license": "GPL",
"tables": [
[
"new_table",
["a", "integer", 1],
["b", "integer", 1],
["c", "integer", 1],
["d", "text", 0]
]
],
"forms": [
],
"reports": [
]
}
2. {
"name": "script saya",
"info": "Informasi Script",
"author": "(c) Haikal <haikal1531041@sttpln.ac.id>",
"license": "GPL",
"tables": [
[
"new_table_1",
["a", "integer", 1],
["b", "integer", 1],
["c", "integer", 1],
["d", "text", 0]
],
[
"new_table_2",
["a", "integer", 2],
["b", "integer", 0],
["c", "integer", 0],
["d", "text", 0]
]
],
"forms": [
[
"new_form_1",
{
"title" : "Form 1",
"info" : "Informasi Form",
"data" : [
{
"table" : "new_table_1",
"column" : "a"
},
{
"table" : "new_table_1",
"column" : "b"
}
],
"security" : {
"run" : ""
}
}
],
[
"new_form_2",
{
"title" : "Form 2",
"info" : "Informasi Form",
"data" : [
{
"table" : "new_table_2",
"column" : "c"
},
{
"table" : "new_table_2",
"column" : "d"
}
],
"security" : {
"run" : ""
}
}
]
],
"reports": [
[
"new_report_1",
{
"title" : "Report 1",
"info" : "Informasi Report",
"header": ["a", "b"],
"sql" : "select a,b from new_table_1 a where a > $input_a or b > $input_b",
"data" : [
{
"key" : "input_a",
"label" : "column a >",
"default" : "0"
},
{
"key" : "input_b",
"label" : "column b >",
"default" : "0"
}
],
"security" : {
"run" : ""
}
}
]
],
"profiles": [
[
"company",
"Company",
"select id as a, name as b from company",
0
],
[
"sqliteboy",
"Happy SQLiteBoy user?",
[ [0,"no :("], [1,"yes :)"] ],
1
],
[
"signature",
"Signature",
0,
""
]
]
}
Selamat mencoba :).
Tidak ada komentar:
Posting Komentar