Показать сообщение отдельно
Старый 19.08.2011, 15:07   #24  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Ярослав Щекин Посмотреть сообщение
Спасибо. Но, когда я пытался адаптировать этот проект под свою Axapta 3.0, то выяснил, что отчёт экспортируется без меток (вызовом treeNodeExport). Вы не знаете, каким образом заставить Axapta экспортировать их?
X++:
// >> DEV:mxk 18/08/11-16:09:19  DEV_ReportEditorExternal>>
/* System export flags
#define.noExport(0)                 // Do not export
#define.export(1)                   // Export
#define.expKeepIds(0x0100)          // Export with ID's
#define.expLables(0x0400)           // Export labels
#define.expProjectOnly(0x800)       // Export project only
#define.expLockOnExport(0x1000)     // Lock exported elements
#define.expDefaultValues(0x2000)    // Export default properties values
#define.expLayer(0x4000)            // Export current layer only*/
protected void export(  TreeNode _node      = reportNode,
                        FilePath _fileName  = xpoFile)
{
    int                     flag            = (#expKeepIds + #expLables + #expLockOnExport);
;
    if (_node)
    {
        _node.treeNodeExport(_fileName, flag);
    }
}
X++:
// >> DEV:mxk 18/08/11-16:09:19  DEV_ReportEditorExternal>>
/* System import flags
#define.impOk(0x0000)               // Element imported
#define.impError(0x0001)            // Element is not imported
#define.impReImport(0x0002)         // Reimport is needed
#define.impReImporting(0x0004)      // Reimporting
#define.impStopped(0x0008)          // Stop import
#define.impNeverOverwrite(0x0010)   // Do not overwrite elements
#define.impQueryOverwrite(0x0020)   // Display a dialog asking if you want to override or not
#define.impGetCompareNode(0x0040)   // Import into node not in tree
#define.impRemoveExcess(0x0080)     // Delete subelements not found in tree
#define.impKeepIds(0x0100)          // Keep ID's after import
#define.impFormCopyPaste(0x0200)    // Using import to copy and paste form-controls
#define.impLabels(0x0400)           // Import labels
#define.impOverrideLocks(0x0800)    // Override locks
#define.impAddToProject(0x2000)     // Import into project
#define.impIgnoreCheckStatus(0x8000)// Import even if object is checked in*/
protected void import(  TreeNode _importNode    = reportNode,
                        FilePath _fileName      = xpoFile)
{
    SysImportElements       import;
    SysCompilerOutput       compiler;
    TmpAotImport            tmpAotImport;

    TreeNode                treeNodeImport;
    int                     importId;
    int                     elements;
    int                     flag            = (#impKeepIds + #impOverrideLocks + #impLabels + #impIgnoreCheckStatus + #impRemoveExcess);
    boolean                 importOk
;
    try
    {
        // Import file and compile it
        import = new SysImportElements();
        import.newFile(xpoFile);

        import.parmAddToProject(false);
        import.parmImportAot(true);
        import.parmImportWithIds(false);
        import.import(#impRemoveExcess | #impIgnoreCheckStatus);

        // retrieve the compilation log and use it to produce the external log
        tmpAotImport = import.getTmpImportAot();
        compiler = infolog.compilerOutput();

        info(strfmt("Report %1 successfully imported.", _importNode.treeNodeName()));
    }
    catch(Exception::Error)
    {
        error(strfmt("@SYS97044", xpoFile));
    }
}
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.