2017-03-24 4 views
0

J'ai vu cette question demander des chiffres, mais ma colonne de mise en page est constituée de chaînes de texte. Il n'y a pas d'ordre inhérent aux chaînes et les valeurs possibles pour l'attribut connecté à un objet pourraient être, par exemple "apple", "orange", "banana" ou "kiwi". La colonne que je recherche recherche les liens entrants d'un autre module et chaque lien peut avoir plusieurs valeurs pour l'attribut en question. En fin de compte je veux que les valeurs soient ordonnées "orange", "banane", "kiwi", "pomme" selon les valeurs de chaque objet lié. Par exemple, si l'objet lié contient tous les 4, vous obtiendrez la liste de l'ordre complet. Si seulement il y a des bananes et des pommes, vous retournerez la valeur pour la colonne "banane", "kiwi". Désolé, je n'ai pas d'échantillon de code. À ce stade, ce serait juste la colonne DXL de mise en page de stock. Merci pour toute aide.Réorganisation du texte dans la colonne de mise en page de DOORS à l'aide de DXL

Répondre

0

Si votre monde réel est vraiment aussi simple que votre exemple, il peut être suffisant d'avoir juste une combinaison de l'instruction if s, comme (pseudocode)

if linked_values contains "orange" 
    display "orange\n" 
if linked_values contains "banana" 
    display "banana\n" 

et vous avez une belle liste triée des valeurs.

Sinon, vous avez besoin d'un véritable tri. Le tri en DXL est généralement effectué en utilisant des listes de sauts. Lorsque vous parcourez une liste de sélection, vous obtenez les valeurs dans l'ordre des clés triées (notez que les clés sont uniques, il ne peut y avoir deux objets avec la même clé dans une liste de sélection). Donc, ce serait votre tâche de créer un mappage qui pour chaque entrée à stocker calcule une clé qui représente l'ordre correct et une liste de saut temporaire.

Si je comprends votre exemple correctement, vous auriez une cartographie

  • orange: un
  • banane: b
  • kiwi: c
  • pomme: d

Entre Nous Supposons qu'il peut y avoir plusieurs oranges par objet et que vous voulez tous les énumérer, car vous ne voulez pas seulement afficher le fruit, mais aussi ute comme la taille ou la qualité. Dans ce cas, vous devez créer des clés de tri comme ceci:

L'objet 1 a des objets liés avec les valeurs: première pomme (grande), deuxième pomme (petite), kiwi (moyenne), troisième pomme (grande), orange.Cela rendrait la liste de saut suivant:

  • clé: D001, valeur: pomme (grande)
  • clé: d002, valeur: pomme (petite)
  • clé: C003, valeur: kiwi (moyenne)
  • clé: d004, valeur: pomme (grande)
  • clé: A005, valeur: orange

Si vous voulez trier d'abord par les fruits, puis par la taille, et vous codez vos tailles par un: grand, b: moyen, c: petit, d: unde condamné à une amende, vous auriez des clés comme:

  • da001
  • dc002
  • cb003
  • da004
  • ad005
+0

Merci, cela me donne une meilleure idée de la façon dont fonctionnent les clés pour passer les listes. Je suis un peu flou sur la façon dont je code cela en utilisant la disposition des colonnes DXL de l'assistant si. Fondamentalement maintenant j'ai exécuté l'assistant, et en créant la liste de saut et quelques variables. – user2291360

+0

Alors que la colonne DXL s'exécute, elle parcourt tous les liens entrants d'un autre module et vide la valeur dans une variable "s". s est alors affecté puis affecté à la variable disp dans la mise en page stock DXL. Le problème vient quand je vais créer l'ordre pour les choses à mettre dans la liste de saut. – user2291360

+0

En fin de compte j'utilise put (skip, order, disp) pour remplir la liste de choix, mais je ne semble pas être en mesure de faire une commande correcte. La liste actuelle avec laquelle je travaille est super longue donc je n'ai pas pu l'essayer, mais je ferais Ordre des cordes = {pomme (grande), pomme (petite), kiwi (grosse), kiwi (petite), orange (grand), etc.} de mettre correctement les éléments dans la liste de choix? – user2291360