Показать столбцы DXL из других модулей

Я работаю в формальном модуле с одним типом внутренних ссылок. Эти ссылки (мы называем их ссылками типа X) сделаны на 4 уровнях глубины из 4 различных формальных модулей. Например, я работаю в модуле A, у которого есть входящие ссылки из модуля B, в которых есть входящие ссылки из модуля C, в которых есть входящие ссылки из модуля D.

У меня есть представление, которое показывает в разных столбцах каждый уровень ссылок: столбец 1: ссылки глубины 1 (AB), столбец 2: ссылки глубины 2 (BC), столбец 3: ссылки глубины 3 (C-D).

Каждый столбец генерируется таким скриптом:

    pragma runLim, 0
    int lines[4] = {0, 0, 0, 0}
    void adjustLines(int depth, showAtDepth) {
    int count
    for (count = 0; count < 4; count++) {
    while (lines[depth-1] < lines[count]) {
        if (depth == showAtDepth) displayRich("\\pard " " ")
        lines[depth-1]++
    }
  }
}
void showIn(Object o, int depth) {
Link l
LinkRef lr
ModName_ otherMod = null
Module linkMod = null
ModuleVersion otherVersion = null
Object othero
string disp = null
string s = null
string plain, plainDisp
int plainTextLen
int count
bool doneOne = false

    string linkModName = "../links/TYPE X"
    for lr in all(o<-linkModName) do {
        otherMod = module (sourceVersion lr)
        if (!null otherMod) {
            if ((!isDeleted otherMod) && (null data(sourceVersion lr))) {
                load((sourceVersion lr),false)
            }
        }
    }
    for l in all(o<-linkModName) do {
        otherVersion = sourceVersion l
        otherMod = module(otherVersion)
        if (null otherMod || isDeleted otherMod) continue
        othero = source l
        if (null othero) {
            load(otherVersion,false)
        }
        othero = source l
        if (null othero) continue
        if (isDeleted othero) continue
        int oldLines = lines[depth-1]
        adjustLines(depth, 1)
        bool kick = (doneOne) && (lines[depth-1] == oldLines)
        if (kick) {
            lines[depth-1]++
            if (depth == 1) displayRich("\\pard " " ")
        }
        if (depth < 4) {
            showIn(othero, depth+1)
        }
        doneOne = true
        if (depth == 1) {
            s = name(otherMod)
            if (isBaseline(otherVersion)) {
                s = s " [" versionString(otherVersion) "]"
            }

        s = "{\\b " s " : }"
        s = s " " probeRichAttr_(othero,"Object Heading", false)
        s = s " " probeRichAttr_(othero,"Object Text", false)

        displayRich s

        }
        lines[depth-1] += 3
    }
}
showIn(obj,1)

Однако теперь мне нужно добавить новый столбец, содержащий другой тип связи (тип Y), определенный между модулем C и другим новым модулем, который не связан напрямую с моим модулем (A). К счастью, у меня есть эти отношения в колонке в модуле C (как макет dxl).

Как я могу показать в своем модуле (A), что столбец, сохраненный в представлении в модуле (C), будет сохранен в моем текущем представлении?

Заранее благодарим за сотрудничество и помощь


person Jose Manuel Moreno Ramos    schedule 04.03.2013    source источник
comment
Я думаю, что самым простым решением было бы сделать макет DXL, который у вас есть в модуле C, атрибутом DXL. Если вы преобразуете DXL макета в атрибут DXL, вы можете просто вызвать его непосредственно из DXL макета в модуле A. Если вы опубликуете свой DXL макета из модуля C, я могу помочь вам изменить его для работы в качестве атрибута DXL.   -  person Steve Valliere    schedule 27.03.2013


Ответы (1)


Перейдите по ссылкам типа X к модулю C, а затем по ссылкам типа Y.

Сдача:

string linkModName = "../links/TYPE X"

To:

string linkModName = (depth<3) ? "../links/TYPE X" : "../links/TYPE Y"

Вам может понадобиться другой номер, так как я не уверен в вашей структуре.

person Adamarla    schedule 06.05.2013