Tampilkan postingan dengan label crystal report. Tampilkan semua postingan
Tampilkan postingan dengan label crystal report. Tampilkan semua postingan

Rabu, 30 Maret 2011

Store Procedure Crystal Report

Hari ini ngetes store procedure yang dipakai crystal report.
Ada tambahan temp table nya sih....


/* temporary table */
CREATE GLOBAL TEMPORARY TABLE "TMP_AREA_TABLE"
( "LOCGRP_CODE" VARCHAR2(6 BYTE),
"LOCGRP_NAME" VARCHAR2(30 BYTE),
"LOC_CODE" VARCHAR2(6 BYTE),
"LOC_NAME" VARCHAR2(30 BYTE),
"DEPO" VARCHAR2(1 BYTE)
) ON COMMIT PRESERVE ROWS ;



/* report package */
create or replace PACKAGE Report_Package
AS TYPE Report_Type IS REF CURSOR;
TYPE Report_Type2 IS REF CURSOR RETURN TMP_AREA_TABLE%ROWTYPE;
END Report_Package;




/* Store Procedure Report */
create or replace PROCEDURE P_RPT_AREAL1_TMP
(Report_Cursor IN OUT Report_Package.Report_Type2,
pUserType VARCHAR2, pLocCode VARCHAR2, pLocGrpCode VARCHAR2) AS
TEMP_ROW TMP_AREA_TABLE%ROWTYPE;

CURSOR AREA_CURSOR IS
SELECT LcGrps.LOCGRP_CODE, LcGrps.LOCGRP_NAME, Locs.LOC_CODE, Locs.LOC_NAME, Locs.DEPO
FROM LOCATIONS Locs INNER JOIN LOCATION_GROUPS LcGrps ON Locs.LOCGRP_CODE=LcGrps.LOCGRP_CODE;
BEGIN
set_vpd_context.set_akses_user(pUserType, pLocCode, pLocGrpCode);
delete from TMP_AREA_TABLE;
OPEN AREA_CURSOR();
LOOP
FETCH AREA_CURSOR INTO TEMP_ROW;
EXIT WHEN AREA_CURSOR%NOTFOUND;
INSERT INTO TMP_AREA_TABLE(LOCGRP_CODE, LOCGRP_NAME, LOC_CODE, LOC_NAME, DEPO)
VALUES(TEMP_ROW.LOCGRP_CODE, TEMP_ROW.LOCGRP_NAME, TEMP_ROW.LOC_CODE,
TEMP_ROW.LOC_NAME, TEMP_ROW.DEPO);
END LOOP;
OPEN Report_Cursor FOR
SELECT LOCGRP_CODE, LOCGRP_NAME, LOC_CODE, LOC_NAME, DEPO FROM TMP_AREA_TABLE;

END;



Sebenernya ini bukan cara yg bener, cm lumayan lah drpd menggunakan table fisik.
Untuk kedepannya ngilangin cursor nya.
maklum newbie