Vous pouvez accomplir cela en utilisant Automation Steps.
Sélectionnez votre écran de commande d'achat et, sur l'ID d'étape, sélectionnez "NL Ouvrir". (Voir ci-dessous)
Ensuite, recherchez "PO Ligne" TableName avec FieldName et désélectionné la case Désactivé. Puis sauvegardez vos modifications.
Alors disons que vous voulez modifier le champ Quantité de la grille, vous pouvez étendre le graphique POOrderEntry et gestionnaire d'événements rowSelected ajouter votre logique personnalisée (et la case Activer les champs souhaités):
public void POLine_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
POLine line = (POLine)e.Row;
POOrder order = Base.Document.Current;
if (order == null || line == null || Base.IsExport) return;
if (order.Status == POOrderStatus.Open)
{
PXUIFieldAttribute.SetEnabled<POLine.orderQty>(sender, line, true);
}
}
L'exemple ci-dessus permet d'activer le champ Qté lorsque POOrder est à état ouvert (Hold non coché). Voici un autre lien vers une question similaire concernant les champs utilisateur personnalisés: How to enable a custom field on PO301000 when the PO is in Open status?