aly rmb wrote:
>
>
> salam buat master AH dan master lainnya,
> langsung saja :
>
> Misal hasil execute_query spt data di bawah.
> CUSTOMER ADDRESS
> A JAKARTA
> C JAKARTA
> E BANDUNG
> F SEMARANG
> G SEMARANG
> J SURABAYA
> L SURABAYA
> M MALANG
> N YOGJAKARTA
> O BANDUNG
> tp di tampilan blocknya selalu menampilkan 4 baris saja,
> CUSTOMER ADDRESS
> A JAKARTA
> C JAKARTA
> E BANDUNG
> F SEMARANG
> di block tsb kita tambahkan 1 kolom (u/ key searching) dan press
> button yg fungsinya :
> jika kolom tsb di isi misal E dan kemudian click button maka tampilannya
> CUSTOMER ADDRESS
> E BANDUNG
> F SEMARANG
> G SEMARANG
> J SURABAYA
> jika kolom di isi N dan kemudian click button maka tampilannya
> CUSTOMER ADDRESS
> N YOGJAKARTA
> O BANDUNG
> jika kolom di isi F dan kemudian click button maka tampilannya
> CUSTOMER ADDRESS
> F SEMARANG
> G SEMARANG
> J SURABAYA
> L SURABAYA
> kira* codingan u/ WHEN_BUTTON_ PRESSED seperti apa ?
>
> terimakasih sebelumnya.
>
> salam/Aly
>
>
Ada 2 case
1. Jika blok adalah table-based :
- Set Block Property MAXIMUM RECORDS FETCH : 4
- Set Block Property ORDER BY : CUSTOMER
- Isi blok PL/SQL di trigger WHEN-BUTTON-PRESSED
<code>
GO_BLOCK('nama_blok');
SET_BLOCK_PROPERTY('nama_blok',DEFAULT_WHERE,
' UPPER(customer) >= '||CHR(39)||UPPER(NAME_IN('item_searching'))||CHR(39));
EXECUTE_QUERY;
SET_BLOCK_PROPERTY('nama_blok',DEFAULT_WHERE,'');
</code>
2. Jika blok bukan table-based
- Isi blok PL/SQL di trigger WHEN-BUTTON-PRESSED :
<code>
DECLARE
v_input VARCHAR2(48) := UPPER(NAME_IN('item_searching'));
n_rec NUMBER(1) := 0;
BEGIN
GO_BLOCK('nama_blok');
CLEAR_BLOCK;
FIRST_RECORD;
FOR i IN (
SELECT customer, address FROM nama_tabel
WHERE UPPER(customer) >= v_input
ORDER BY customer) LOOP
n_rec := n_rec + 1;
:nama_blok.customer := i.customer;
:nama_blok.address := i.address;
EXIT WHEN n_rec = 4;
NEXT_RECORD;
END LOOP;
END;
</code>
CMIIW,
AH