Показать сообщение отдельно
Старый 13.09.2006, 18:10   #35  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,353 / 2052 (77) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Я тут как умел для себя кнопочку еще одну привинтил.
Соответственно, делюсь с общественностью. (заодно глюки исправят, подскажут может чего )
Часто проект чтоб создать, нужно ну очень долго ждать, пока дуплит меню по правой кнопке.
Добавил кнопулю, которая просто создает за меня чистый проектик и открывает его.

NormalResource для нее естественно - 7665

Код метода clicked вот:
Код:
void clicked()
{
    TreeNodeName        projNum, project = 'Project';
    int                 i, numProj, len = strLen(project);
    SET                 projNumSet = new Set(Types::Integer);
    ProjectNode         node, groupNode;
    ProjectGroupNode    child;
    TreeNodeIterator    treeNodeIterator;

    ProjectNode createProject(TreeNodeName name, ProjectGroupNode parent)
    {
        ProjectNode childNode = parent.aotFindChild(name);

        if (!child)
        {
            parent.aotAdd(name);
            childNode = parent.aotFindChild(name);
        }
        return childNode;
    }
    ;
    super();
    startLengthyOperation();
    groupNode = Infolog.projectRootNode().AOTfindChild('Shared');

    treeNodeIterator = groupNode.AOTiterator();
    node = treeNodeIterator.next();
    while (node)
    {
        if (substr(node.name(), 1, len) == project)
        {
            projNum = substr(node.name(), len + 1, strLen(node.name()) - len);
            if (strlen(projNum) > 0 && isInteger(projNum))
                projNumSet.add(str2int(projNum));
        }
        node = treeNodeIterator.next();
    }
    if (projNumSet.elements() > 0)
    {
        for (i = 1; i <= projNumSet.elements(); i++)
        {
            if (!projNumSet.in(i))
            {
                numProj = i;
                break;
            }
        }
        if (numProj < 1)
            numProj = projNumSet.elements() + 1;
    }
    else
        numProj = 1;

    node = createProject(project + int2str(numProj), groupNode);
    groupNode.AOTsave();

    endLengthyOperation();
    node.AOTRun();
    node.AOTnewWindow();
}
если кто что привинтит еще или оптимизирует существующее, не стесняйтесь- очень уж хочется еще чего-то эдакого сюда.