oracle erp,我要用一个package建report,请问怎么做?
不是table,是package,能用来建report吗?

解决方案 »

  1.   

    建REPORT?
    你这个REPORT指的是什么报表吗
    在SQL*PLUS里可以通过格式化输出生成报表
    或者使用ORACLE REPORTS BUILDER做报表
      

  2.   

    恩,是用oracle report builder来建,但要用一个pkg,而不是sql语句,请问你能帮忙吗?
    我qq517823336,msn: [email protected]
    请帮帮忙
      

  3.   

    我不太理解什么叫做用PKG来建报表我用的时候都是通过SQL语句从后台取出一些数据
    顶多就是一些特殊的COLUMN需要写一下PL/SQL
    界面完全是自己在REPORTS BUILDER里布置的么当然 我也就暑假实习的时候用过1、2个月而已
      

  4.   

    恩,没有 sql,只有pgk,package里的sql语句有变量,没办法直接用,所以我想问,package能用来做report吗?
      

  5.   

    PACKAGE里面的SQL语句?
    你指的是PACKAGE中函数和存储过程里的SQL语句吗?
      

  6.   

    恩,对,那些sql语句,怎么用来建report,或者report可以不用sql来建吗?直接用package,?
    哎,
      

  7.   

    我感觉应该不行
    你想想 你的那些SQL只能提取出一些数据而已
    而在ORACLE REPORTS BUILDER中除了从后台数据库提取数据以外还有很多排版方面的操作
      

  8.   

    就打开ORACLE REPORTS BUILDER新建一个.REP文件吧
    完了在不同的视图窗口中进行排版如果不熟悉的话在新建的时候会有向导提示你一步步操作
      

  9.   


    一打开REPORTS BUILDER有向导的么 这里可以选择你需要的格式
    接下来你就一步步做下去会提示你输入取出数据的SQL语句 你把你有的SQL语句输入就可以了
    你说你有PACKAGE 那么你把里面的SQL语句取出来也行呀
    接下来在这边的几个板块里你做相应的修改和排版
    也不知道我回答的是不是你想要的 因为我还不太清楚你想干什么
      

  10.   

    对,就是你说的取sql那,我的sql里有变量,不能直接用,所以才问你pgk能不能见报表,因为pkg里有定义变量,sql的where条件中,用到了这些变量,所以在建report时,那些sql没法用,这样你清楚忘我说的吗
      

  11.   

     CREATE OR REPLACE PACKAGE BODY CCT_WIP_TRAN_DETAIL_NEW_PKG IS
     PROCEDURE MAIN(TRAN_DETAIL_REC IN OUT TRAN_DETAIL_CUR,
                     P_START_DATE    IN DATE,
                     P_FINAL_DATE    IN DATE,
                     P_WC            VARCHAR2,
                     P_DEPT_DESC VARCHAR2,
                     P_RSC_DESC VARCHAR2,
                     P_SOP_DESC VARCHAR2,
                     P_TIME_S DATE,
                     P_TIME_F DATE,
                     P_COMPONENT_TYPE VARCHAR2)
      AS  BEGIN    OPEN TRAN_DETAIL_REC FOR
     SELECT
                     WO.WIP_ENTITY_ID,
                     WO.OPERATION_SEQ_NUM,
                     WO.ORGANIZATION_ID,
                     WO.RESOURCE_ID,
                     CASE BS.ITEM_UOM||NVL(WM.ATTRIBUTE4,'N')
                      WHEN 'PCSN' THEN WM.MOVE_QTY
                      WHEN 'PCSY' THEN WM.MOVE_QTY
                      ELSE (TRUNC(WM.MOVE_QTY/BS.SET_PNL))*BS.PCS_PNL
                     END AS OP_START_QTY_PCS,
                     CASE BS.ITEM_UOM||NVL(WM.ATTRIBUTE4,'N')
                      WHEN 'PCSN' THEN NVL(WM.GOOD_PNL_QTY,0)
                      ELSE TRUNC(WM.MOVE_QTY/BS.SET_PNL)
                     END AS OP_START_QTY_PNL,
                     CASE BS.ITEM_UOM||NVL(WM.ATTRIBUTE4,'N')
                      WHEN 'PCSN' THEN TRUNC(WM.MOVE_QTY/BS.PCS_MM,2)
                      WHEN 'PCSY' THEN TRUNC(WM.MOVE_QTY/BS.PCS_MM,2)
                      ELSE TRUNC(((TRUNC(WM.MOVE_QTY/BS.SET_PNL))*BS.PCS_PNL)/BS.PCS_MM,2)
                     END AS OP_START_QTY_MM,
                     0 AS OP_NEXT_QTY_PCS,
                     0 AS OP_NEXT_QTY_PNL,
                     0 AS OP_NEXT_QTY_MM,
                     0 AS OP_WAIT_QTY_PCS,
                     0 AS OP_WAIT_QTY_PNL,
                     0 AS OP_WAIT_QTY_MM,
                     'N' AS SAMPLE_YN
                    FROM IFC_WIP_OPERATION_ONHAND WO INNER JOIN
                               IFC_WIP_MOVE_TXN_INTERFACE WM ON WO.JOB_NAME=WM.JOB_NAME AND WO.OPERATION_SEQ_NUM=WM.TO_OPERATION_SEQ_NUM INNER JOIN
                               WIP_ENTITIES SWE ON WO.JOB_NAME=SWE.WIP_ENTITY_NAME AND WO.ORGANIZATION_ID=SWE.ORGANIZATION_ID INNER JOIN
                               IFC_BOM_COMPONENT_SIDE BS ON SWE.PRIMARY_ITEM_ID=BS.COMPONENT_ITEM_ID AND SWE.ORGANIZATION_ID=BS.ORGANIZATION_ID
                    WHERE (WM.MOVE_DATE BETWEEN TO_DATE(TO_CHAR(P_START_DATE,'YYYY-MM-DD')||' '||TO_CHAR(P_TIME_S,'HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') AND
                                                                             TO_DATE(TO_CHAR(P_FINAL_DATE,'YYYY-MM-DD')||' '||TO_CHAR(P_TIME_F,'HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS')) AND
                                  (WM.MOVE_TYPE_ID IN (3, 8))
     END MAIN;END CCT_WIP_TRAN_DETAIL_NEW_PKG;
    这个就是用来建forms的pgk,中间的那部分是sql,但他用到了最前面定义的变量 
                       P_START_DATE    IN DATE,
                     P_FINAL_DATE    IN DATE,
                     P_WC            VARCHAR2,
                     P_DEPT_DESC VARCHAR2,
                     P_RSC_DESC VARCHAR2,
                     P_SOP_DESC VARCHAR2,
                     P_TIME_S DATE,
                     P_TIME_F DATE,
                     P_COMPONENT_TYPE VARCHAR2)  这些是变量,sql中用到了,
    所以sql没办法拿出来用,因为含有不能识别的字段,
    所以不能建report
    所以应该怎么办呀,我头疼死了,我怎么这么笨,
      

  12.   

    看到上面那个图中有个Parameter Form了吗
    如果需要参数可以在这里加如果你包里的变量都是已经赋过值的
    那可以试试把包或者其中的过程与函数加到Program Units里面呵呵 这个工具我也只是暑假实习用过而已 不怎么熟悉