Вставка отчета Dynamix AX 2012 SRSS PDF в другую базу данных - PullRequest
1 голос
/ 04 ноября 2011

Мне нужно вставить отчет в формате PDF в связанную базу данных после генерации в AX2012. Когда пользователь создает отчет в AX, копию необходимо вставить в другую базу данных. Я не уверен, возможно ли это. Если есть какие-либо URL или ссылки, которые могут указать мне правильное направление, я был бы признателен.

1 Ответ

0 голосов
/ 04 ноября 2011

Я бы не рекомендовал хранить BLOB-объекты напрямую в другой базе данных.Сначала сохраните данные в записи AX, а затем перенесите их с помощью служб SSIS или аналогичного.

Обновление : я не заметил часть вопроса о SRSS, следующее будет работать только для старого стиляотчеты.

Первым шагом является создание файла PDF, что можно сделать, как в этом методе, который возвращает контейнер для последующего сохранения:

client container reportFileCreate(PurchReqQuickId _reqQuickId, Object caller, ReportName reportName)
{
    MenuFunction     mf;
    ReportRun        rr;
    PrintJobSettings pjs;
    Args             args;
    BinData          data;
    #File
    FileName         reportFile = WinAPI::getTempPath() + 'qr' + _reqQuickId + #pdf;
    ;
    new FileIOPermission(reportFile, 'r').assert();

    mf = new MenuFunction(reportName, MenuItemType::Output);
    args = new args(caller);
    args.record(this);

    rr = mf.create(args);
    rr.init();
    rr.report().interactive(false);
    rr.query().interactive(false);

    pjs = rr.printJobSettings();
    pjs.format(PrintFormat::PDF);
    pjs.setTarget(PrintMedium::File);
    pjs.fileName(reportFile);
    pjs.outputToClient(false);

    rr.run();

    data = new BinData();
    data.loadFile(reportFile);
    WinAPI::deleteFile(reportFile);

    return data.getData();
}
...