Архив

Публикации с меткой ‘отчет’

Список полномочий и групп запросов для отчета

15 Апрель 2016 1 комментарий

Запрос для вывода списка полномочий и групп запросов по коду или имени отчета/параллельной программы:

with params as (
select 'FNDATREP' as short_name
      ,''    as long_name
      ,'RU'  as lang /* RU;US */
from dual
)
select  p1.concurrent_program_name
       ,pt.user_concurrent_program_name
       ,fa.application_short_name as appl_resp
       ,r.responsibility_key
       ,rt.responsibility_name      
       ,fa1.application_short_name as appl_request_group
       ,g.request_group_name
from fnd_request_groups      g,
     fnd_request_group_units u,
     fnd_application    fa,
     fnd_application    fa1,         
     fnd_concurrent_programs_tl pt,
     fnd_concurrent_programs    p1,
     fnd_responsibility    r,
     fnd_responsibility_tl rt,
     params
where 1=1
      and u.application_id = g.application_id
      and u.request_group_id = g.request_group_id
      and (u.request_unit_id = pt.concurrent_program_id
          or u.request_unit_type = 'A')
      and u.unit_application_id = pt.application_id
      and pt.application_id = fa.application_id
      and pt.concurrent_program_id = p1.concurrent_program_id
      and g.application_id = fa1.application_id
      and r.request_group_id = g.request_group_id
      and r.responsibility_id = rt.responsibility_id
      and rt.language = params.lang
      and pt.language  = params.lang
      and (
            (p1.concurrent_program_name like '%'||params.short_name||'%' 
             and params.short_name is not null 
            ) 
            or 
            (pt.user_concurrent_program_name like '%'||params.long_name||'%' 
             and params.long_name is not null and params.short_name is null
            )
          )
order by 1,2;

XSL-Трансформации (XSLT)

6 Февраль 2012 5 comments

Для написания красивых отчетов в Excel (под OEBS) довольно часто используем XSL шаблон.

Для тестирования XSL шаблона есть несколько вариантов:

  1. Загружаем XSL в OEBS и запускаем отчет — самый долгий способ.
  2. Используем мощный редактор Altova XMLSpy, который позволяет накладывать XSL на XML (XSL-Transformation). Основной минус, то что продукт платный.
  3. Используем javascript скрипт представленный ниже.
  4. var xmlFile = "data.xml";         // xml данные
    var xslFile = "tempalate.xsl";	  // xsl шаблон
    var outFile = "REPORT.xls";       // имя генерируемого файла
    //
    var Xml = null;
    var Xsl = null;
    var objTransformer = null;
    
    function init()
    {
       Xml = new ActiveXObject("MSXML2.DOMDocument");
       Xml.async = false;
       Xml.load(xmlFile);
    
       Xsl = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
       Xsl.async = false;
       Xsl.load(xslFile);
    
       // запись в файл   
       f = new ActiveXObject("ADODB.Stream");
       f.Charset = "UTF-8";
       f.Open();
       f.WriteText(Xml.transformNode(Xsl));
       f.SaveToFile(outFile,2);
       f.Close();   
    
       // запуск файла
       //var WshShell = new ActiveXObject("WScript.Shell");
       //WshShell.Run(outFile);   
    }
    
    init();


    Для использования скрипта создаем файл с расширением «.js», например «GenerateReportXML-XSL.js». Указываем в скрипте название файлов для шаблона и данных. Запускаем скрипт на выполнение (Windows).

  5. В данных после

    < ?xml version="1.0" encoding="UTF-8"?>

    добавляем новый тег

    < ?xml-stylesheet href="XXX.xsl" type="text/xsl"?>

    , где XXX.xsl имя xslt преобразования. Затем открываем xml через Excel