Quiero llamar a un graphic desde repor, t enviando parámetros, necesito un ejemplo.
1 Respuesta
Respuesta de Javier
1
1
Javier, Experto/Jefe Proyecto: Analisis y desarrollo y Administracion de...
¿Qué version de Forms tienes?
La version es Forms6, Report6
Te paso un pequeño manual de como hacerlo: Pasos [Editar] Construir una aplicación de Oracle gráficos * Abrir Oracle gráficos Builder (GOBLD60.EXE), conecte con una base de datos de usuario (como scott / tiger), cree un nuevo "display" (CTRL + N) * Haga doble clic en "Queries" para construir su consulta como esta: (Tablas de demo de Oracle) select b.dname, count(*) from emp a, dept b where a.sal>=:pr_sal and a.deptno=b.deptno group by b.dname En este ejemplo, esta consulta muestra cuanta gente trabaja en cada Departamento, cuyo sal "> =" el valor del parámetro especificado; * Creación del parámetro con el nombre de "PR_SAL" y establecer el tipo como "NUMBER"; * En el "Layout Editor" ventana, arrastrar y soltar un elemento de gráfico(chart item) y elija el query0 para vincular a este objeto. A continuación, seleccione el tipo de gráfico (pie, bars, etc..) Y darle un nombre y título del grafico; * Guardar (como sal.ogd) y compilar este Graphics. [Editar] Crear un Form con Oracle Forms, e incluir los gráficos * Abrir Oracle Forms Builder, conectarse con un usuario de base de datos (como scott / tiger), cree un nuevo "Form" (CTRL + N) * Atachar en esta form la libreria OG. PLL (vea Objeto Navigator nodo "Atached Libraries") * Crear un nuevo bloque de datos (sin tabla de base) y construir un campo de text_item (para el usuario introduzca un valor de parámetro para pasar a los gráficos como PR_SAL), modificar el tipo de datos a NUMBER; * En la Canvas, arrastrar y soltar un objeto de elemento gráfico, y seleccione "Build a new chart manually"; * Haga doble clic en el elemento gráfico y cambiar la propiedad "Filename" con el nombre de Oracle gráficos guardados en el paso 1 (como sal.ogd); * Construir un "botón" en la Canvas para refrescar los gráficos con el parámetro actual o nuevo, en el "botón" cambiar la propiedad Label a "Refrescar", y crear un trigger "when-button-pressed" con este código: declare pl_id ParamList; pl_name VARCHAR2(10) := 'tempdata'; BEGIN pl_id := Get_Parameter_List(pl_name); IF not Id_Null(pl_id) THEN destroy_parameter_list(pl_id); end if; pl_id := Create_Parameter_List(pl_name); /*Now add a parameter to pass to graphics*/ Add_Parameter(pl_id,'PR_SAL',TEXT_PARAMETER,to_char(:block1.pr_sal)); /*if need more parameters, use more Add_parameter to list*/ /*now, call the graphics sal.ogd file to show on especified chart_area and with a parameter list*/ OG.open('sal.ogd','block1.chart_area1',FALSE,TRUE,pl_id); OG.close('sal.ogd','block1.chart_area1'); END;