arranged alongside In 2 Block Tabular

To discuss Oracle Forms & Reports related technical issues.
Post Reply
ALSAMHOURI
Posts: 1
Joined: Tue Sep 29, 2009 6:54 am
Location: Jordan

arranged alongside In 2 Block Tabular

Post by ALSAMHOURI »

I like to create 3 block
1- Block 1 CHECKS_HDR search from LOV FROM NO. TO NO. after that click Icone SEARCH
2- Block 2 Tabular CHECKS_DTL display Item Fro 10 Row
3- Block 3 Tabular XX_AUDIT_CHECK ITEM 10 Row alongside Block 2 CHECKS_DTL
CREATE TABLE XX_AUDIT_CHECK
(
CHECK_ID VARCHAR2(15 BYTE),
CHECK_NO VARCHAR2(15 BYTE),
CHECK_CONDITION VARCHAR2(1 BYTE),
DATE_CHECK DATE,
USER_CHECK VARCHAR2(50 BYTE),
REMARK VARCHAR2(200 BYTE),
UPDATE_NAME VARCHAR2(100 BYTE)
)

PROBLEM :-

IF I CAN To CHECK_CONDITION (Y/N) IF YES you Can Create Username and sysdate For Every Row
And Write this code

when-checkbox-changed

BEGIN
IF :XX_AUDIT_CHECK.CHECK_CONDITION='Y'THEN
:XX_AUDIT_CHECK.CHECK_ID :=:CHECKS_DTL.VOUCHER_NUM;
:XX_AUDIT_CHECK.CHECK_NO:=:CHECKS_DTL.CHECK_NO;
:XX_AUDIT_CHECK.CHECK_CONDITION:='Y';
:XX_AUDIT_CHECK.USER_CHECK:=FND_GLOBAL.USER_NAME;
:XX_AUDIT_CHECK.DATE_CHECK:=SYSDATE;
:XX_AUDIT_CHECK.REMARK:=:XX_AUDIT_CHECK.REMARK;
ELSIF :XX_AUDIT_CHECK.CHECK_CONDITION='N' THEN
:XX_AUDIT_CHECK.CHECK_ID :=:CHECKS_DTL.VOUCHER_NUM;
:XX_AUDIT_CHECK.CHECK_NO:=:CHECKS_DTL.CHECK_NO;
:XX_AUDIT_CHECK.CHECK_CONDITION:='N';
:XX_AUDIT_CHECK.USER_CHECK:=FND_GLOBAL.USER_NAME;
:XX_AUDIT_CHECK.DATE_CHECK:=SYSDATE;
:XX_AUDIT_CHECK.REMARK:=:XX_AUDIT_CHECK.REMARK;
END IF;
END;
this is code is correct

but when I can retrieve data (New Search ) the new data From No. to No.
we can Incorrect Data in block 3 (XX_AUDIT_CHECK ) , Rows is not arranged alongside In Block 2 ( CHECKS_DTL ) ,despite Write this Code In the Icons SEARCH In Block 1

BEGIN
go_block('XX_AUDIT_CHECK' );

FIRST_RECORD;
LOOP
select NVL(AP.XX_AUDIT_CHECK.CHECK_ID,''),NVL(AP.XX_AUDIT_CHECK.CHECK_NO,''),
NVL(AP.XX_AUDIT_CHECK.CHECK_CONDITION,'N'),NVL(AP.XX_AUDIT_CHECK.date_check,sysdate),NVL(AP.XX_AUDIT_CHECK.USER_CHECK,FND_GLOBAL.USER_NAME),NVL(AP.XX_AUDIT_CHECK.remark,''),NVL(Ap.XX_AUDIT_CHECK.UPDATE_NAME,FND_GLOBAL.USER_NAME)
INTO :XX_AUDIT_CHECK.CHECK_ID,
:XX_AUDIT_CHECK.CHECK_NO,
:XX_AUDIT_CHECK.CHECK_CONDITION,
:XX_AUDIT_CHECK.date_check,
:XX_AUDIT_CHECK.USER_CHECK,
:XX_AUDIT_CHECK.remark,
:XX_AUDIT_CHECK.UPDATE_NAME
from AP.XX_AUDIT_CHECK
WHERE XX_AUDIT_CHECK.CHECK_NO BETWEEN :CHECKS_HDR.CHECK_NO_FROM AND :CHECKS_HDR.CHECK_NO_TO
AND ( :CHECKS_DTL.CHECK_NO=:XX_AUDIT_CHECK.CHECK_NO)
ORDER BY TO_NUMBER(:XX_AUDIT_CHECK.CHECK_NO);
EXIT WHEN :System.Last_Record = 'TRUE';
NEXT_RECORD;
END LOOP;
FIRST_RECORD;
EXCEPTION

when NO_DATA_FOUND THEN
:XX_AUDIT_CHECK.CHECK_ID :=NVL(:XX_AUDIT_CHECK.CHECK_ID,'');
:XX_AUDIT_CHECK.CHECK_NO :=NVL(:XX_AUDIT_CHECK.CHECK_NO,'');
:XX_AUDIT_CHECK.CHECK_CONDITION:= NVL(:XX_AUDIT_CHECK.CHECK_CONDITION,'N');
:XX_AUDIT_CHECK.date_check:=NVL(:XX_AUDIT_CHECK.date_check,sysdate);
:XX_AUDIT_CHECK.USER_CHECK:=NVL(:XX_AUDIT_CHECK.USER_CHECK,FND_GLOBAL.USER_NAME);
:XX_AUDIT_CHECK.remark:=NVL(:XX_AUDIT_CHECK.remark,'');
:XX_AUDIT_CHECK.UPDATE_NAME:=NVL(:XX_AUDIT_CHECK.UPDATE_NAME,FND_GLOBAL.USER_NAME);
WHEN TOO_MANY_ROWS THEN
:XX_AUDIT_CHECK.CHECK_ID :=NVL(:XX_AUDIT_CHECK.CHECK_ID,'');
:XX_AUDIT_CHECK.CHECK_NO :=NVL(:XX_AUDIT_CHECK.CHECK_NO,'');
:XX_AUDIT_CHECK.CHECK_CONDITION:= NVL(:XX_AUDIT_CHECK.CHECK_CONDITION,'N');
:XX_AUDIT_CHECK.date_check:=NVL(:XX_AUDIT_CHECK.date_check,sysdate);
:XX_AUDIT_CHECK.USER_CHECK:=NVL(:XX_AUDIT_CHECK.USER_CHECK,FND_GLOBAL.USER_NAME);
:XX_AUDIT_CHECK.remark:=NVL(:XX_AUDIT_CHECK.remark,'');
:XX_AUDIT_CHECK.UPDATE_NAME:=NVL(:XX_AUDIT_CHECK.UPDATE_NAME,FND_GLOBAL.USER_NAME);
WHEN OTHERS THEN
:XX_AUDIT_CHECK.CHECK_ID :=NVL(:XX_AUDIT_CHECK.CHECK_ID,'');
:XX_AUDIT_CHECK.CHECK_NO :=NVL(:XX_AUDIT_CHECK.CHECK_NO,'');
:XX_AUDIT_CHECK.CHECK_CONDITION:= NVL(:XX_AUDIT_CHECK.CHECK_CONDITION,'N');
:XX_AUDIT_CHECK.date_check:=NVL(:XX_AUDIT_CHECK.date_check,sysdate);
:XX_AUDIT_CHECK.USER_CHECK:=NVL(:XX_AUDIT_CHECK.USER_CHECK,FND_GLOBAL.USER_NAME);
:XX_AUDIT_CHECK.remark:=NVL(:XX_AUDIT_CHECK.remark,'');
:XX_AUDIT_CHECK.UPDATE_NAME:=NVL(:XX_AUDIT_CHECK.UPDATE_NAME,FND_GLOBAL.USER_NAME);
END;


You Can HELP Me for this Code :
AL-SAMHOURI
Posts: 3
Joined: Thu Apr 23, 2009 5:43 am
Location: Jordan

Post by AL-SAMHOURI »

I am Write this code : for Icone SEARCH

DECLARE
CURSOR XX IS
SELECT XX_AUD.CHECK_ID,XX_AUD.CHECK_NO,
XX_AUD.CHECK_CONDITION,XX_AUD.DATE_CHECK,
XX_AUD.USER_CHECK,XX_AUD.REMARK,
XX_AUD.UPDATE_NAME
FROM AP.XX_AUDIT_CHECK XX_AUD
where XX_AUD.CHECK_NO BETWEEN :CHECKS_HDR.CHECK_NO_FROM AND :CHECKS_HDR.CHECK_NO_TO;

BEGIN
FOR X_REC IN XX
LOOP
GO_BLOCK('XX_AUDIT_CHECK ');
IF :XX_AUDIT_CHECK.CHECK_NO ='TRUE'
THEN
set_block_property('XX_AUDIT_CHECK',DEFAULT_WHERE,
'nvl(CHECK_no,0) BETWEEN nvl(nvl(:checks_hdr.check_no_from,CHECK_No),0)
AND nvl(nvl(:checks_hdr.check_no_to,CHECK_No),0)');

EXECUTE_QUERY;
ELSE
:XX_AUDIT_CHECK.CHECK_ID :=NULL;
:XX_AUDIT_CHECK.CHECK_NO :=NULL;
:XX_AUDIT_CHECK.CHECK_CONDITION :=NULL;
:XX_AUDIT_CHECK.DATE_CHECK :=NULL;
:XX_AUDIT_CHECK.USER_CHECK:=NULL;
:XX_AUDIT_CHECK.REMARK:=NULL;
:XX_AUDIT_CHECK.UPDATE_NAME:=NULL;

END IF;
END LOOP;
EXCEPTION
when NO_DATA_FOUND THEN NULL;
END;


There is Result Message

You Cant Crete Record here :


If you can Solve this problem
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest