1.Q1:----&p_whare understand. function AfterPForm return boolean is begin if nvl(:p_trace,'x') = 'Y' then SRW.DO_SQL('ALTER SESSION SET SQL_TRACE = TRUE'); end if; SELECT ORGANIZATION_CODE INTO :P_ORG_CODE FROM MTL_PARAMETERS WHERE ORGANIZATION_ID = :P_ORG_ID ; ------------ if (:p_type <> 'NOR') and (:p_type <> 'COPY') then srw.message(1, 'type not in NOR/COPY'); return(false); end if; ------------------------------------------------------------------------------ if :p_type = 'NOR' then ---------タ盽锣郎 :p_where := ' AND 1 = 1 ' ; ELSE ------------------------------------------------- IF :P_VERSION_FM IS NULL THEN srw.message(1, 'VERSION FM ぃNULL'); return(false); end if; IF :P_VERSION_TO IS NULL THEN srw.message(1, 'VERSION TO ぃNULL'); return(false); end if; ---------------check process ------------------------------------------------------------- if :P_pc_fm is null and :p_pc_to is not null then srw.message(1, 'process fm ぃnull'); return(false); end if; if :P_pc_to is null and :p_pc_fm is not null then srw.message(1, 'process to ぃnull'); return(false); end if; ------------- check prod type ---------------------------------- if :P_prod_fm is null and :p_prod_to is not null then srw.message(1, 'prod fm ぃnull'); return(false); end if; if :P_prod_to is null and :p_prod_fm is not null then srw.message(1, 'prod to ぃnull'); return(false); end if; ------------------------------------------------------- if (:P_VERSION_FM = :P_VERSION_TO) and ----check all (nvl(:p_pc_fm,'x') = nvl(:p_pc_to,'x')) and (nvl(:p_prod_fm,'x') = nvl(:p_prod_to,'x')) then srw.message(1, 'VERSION/玻珇/籹祘 ぃall'); return(false); end if; if :p_prod_fm is null and :p_prod_to is null then -----------chekc copy pc if (:P_VERSION_FM = :P_VERSION_TO) and nvl(:p_pc_fm,'x') = nvl(:p_pc_to,'x') then srw.message(1, 'VERSION/籹祘 ぃall'); return(false); end if; end if; if :p_pc_fm is null and :p_pc_to is null then -----------copy prod if (:P_VERSION_FM = :P_VERSION_TO) and nvl(:p_prod_fm,'x') = nvl(:p_prod_to,'x') then srw.message(1, 'VERSION/玻珇 ぃall'); return(false); end if; end if; --------------------------------------------------------------- :P_where := ' AND 1 = 2 ' ; ----copy by PC or PROD_TYPE copy_all; ---------copy end if; return (TRUE); exception when others then return(false); end; 2.report 1. Report Properties : 設定 Report的寬與高(横式:11 * 8.5;直式: 8.5 * 11) 2.charater mode: 一定要勾選「Use Character Units in Designer」 3.tools-----data mode Editor--key sql 4.tools----default parameter form 5.以後要做細部修改,至「Tools」à「Parameter Form Editor」 6.選擇該User Parameters的「Properties…」à「Data/Selection」à選「SELECT Statement」 à在「Enter Query」寫SQL指令 7.Restict list to prodetermined values 8.勾選「Restrict List to Predetermined Values」且又有設default值時,default值須為 實值列表內容之一。EX:實值列表內容為89~93,但default值設為88. 9.選擇該User Parameters的「Properties…」à「General」 「Input Mask」為輸入格式設定。「Initial Value」為default值設定 10.「View」à「View Options」à「Rulers…」 11.「Centimeters」:有格線。「Character Cells」:無格線。「Grid Spacing」:選擇格線間距大小。 12.至「Data Model」,新增一個Formula Column,點選「Edit」後,將SQL指令寫入 13.srw.message(1, ‘此站別v_seq為:’ || to_char(v_seq)); |