Ce widget vous permet d'intégrer dynamiquement différents PartTemplates dans votre LayoutModel. Il vous permet d'afficher un panier ou une étagère pour une représentation graphique dans un flux de travail de prélèvement.
Exemple
Définition du modèle de pièce
<PartTemplate Name="CartInsertPick">
<Panel Orientation="Vertical" Weight="1">
<Panel Border="2,gray.dark," Orientation="Horizontal" Weight="0.5">
<Text Name="1.1" Border="2,gray.dark," Gravity="Center" Weight="0.33" Margin="2,2,2,2"/>
<Text Name="1.2" Border="2,gray.dark," Gravity="Center" Weight="0.33" Margin="2,2,2,2"/>
<Text Name="1.3" Border="2,gray.dark," Gravity="Center" Weight="0.33" Margin="2,2,2,2"/>
</Panel>
</Panel>
</PartTemplate>
Importation d'un modèle dans un modèle de mise en page
<WildcardWidget Name="CARTplace" PartTemplateName="CartInsertPick" Weight="0.4"/>
Utilisation
Le caractère générique peut être modifié dynamiquement pour le PartTemplate et le Content.
Dynamiquement :
<ui_update id="update_shelf">
<widget_params>
<ui_element name="SHELF">
En cartographie :
<ui_element name="SHELF">
Pour le changement de PartTemplate
Une chaîne de retour qui correspond au nom du modèle de pièce. Notez que dans Q3, les modèles de pièces sont définis globalement.
Un modèle de pièce ne peut être modifié qu'en faisant référence au nom, aucune insertion d'objet n'est possible.
<param name="PARTTEMPLATENAME"><![CDATA[?{pickOrder.groups[activeGroup].picks[0].destination.structure.split('.')[0]}?]]></param>
Pour le changement de contenu
Retourne les objets des objets nommés :
{
1.1: {CONTENT: 3, BACKGROUNDCOLOR: "blue", TEXTCOLOR: "red"}
1.2: {CONTENT: 2, BACKGROUNDCOLOR: "blue", TEXTCOLOR: "red"}
}
Ici, le nom de la cible qui correspond au nom défini dans le modèle de pièce, par exemple "1.1". Les modifications possibles sont CONTENU, COULEUR DE FOND, et/ou COULEUR DE TEXTE.
Exemple
<param name="TEMPLATE_CONTENT">
<![CDATA[?{
var result = {};
pickOrder.groups[activeGroup].picks.forEach((pick) => {
var amount = 0;
var shelfBox = pick.destination.structure.split('.').slice(2,4).join('.');
if (result[shelfBox]) {
amount = result[shelfBox].CONTENT
}
if (pick.attributes.place) {
result[shelfBox] = {
CONTENT:amount + pick.amountOpen,
TEXTCOLOR:"blue",
BACKGROUNDCOLOR:"black",
}
} else {
result[shelfBox] = {
CONTENT:amount + pick.amountOpen,
BACKGROUNDCOLOR:"blue",
TEXTCOLOR:"red",
}
}
});
result
}?]]>
</param>
Attributs