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

Kirim email ke