2017-05-11 3 views
0

J'ai essayé d'ajouter le champ Solde actuel (Devise) à la page "Mes documents (SP.40.20.00)" du portail client dans la zone d'en-tête, mais ces champs ne s'affichent pas, quoi que je fasse. et modifier (Overriding) la fonction Aggregate ne semble pas possible (erreur Wrapper). Y a-t-il un autre moyen pour moi d'obtenir le total de la devise (client) au lieu du total de la devise par défaut?Ajouter les champs de solde de devise au portail client?

Link to the project

+0

En publiant votre paquet, il montre les informations de devise dans la grille de détails, votre problème est qu'il n'apparaît pas dans la zone d'en-tête? Je vois publier le paquet met les champs dans le fichier de la page. Je ne sais pas pourquoi les ne se présentent pas. Peut-être que quelque chose limitant l'affichage à la base seulement? – Brendan

+0

Oui dans la zone d'en-tête, corrigera l'instruction d'origine. Je pense aussi à une restriction de certaines sortes, mais je n'arrive pas à trouver ce que c'est, ou une façon de contourner le problème. –

Répondre

1

Le graphique de base sur lequel vous travaillez (ARDocumentEnq) a des validations de visibilité dans un événement rowSelected basé sur le jeu de fonction sélectionnée dans la licence et la ligne sélectionnée CuryID/devise de base de l'entreprise.

Vérifiez que ces fonctions sont activées sur le site principal dans Configuration-> Paramètres communs-> Licences-> Activer/Désactiver les fonctionnalités et définissez les conditions dont vous avez besoin pour row.CuryID et Company.Current.BaseCuryID. Pour remplacer les conditions du graphique de base, vous pouvez ajouter un événement RowSelected dans une extension de graphique.

public class ARDocumentEnq_Extension:PXGraphExtension<ARDocumentEnq> 
  { 
    public virtual void ARDocumentFilter_RowSelected(PXCache cache, PXRowSelectedEventArgs e) 
    { 
      ARDocumentEnq.ARDocumentFilter row = (ARDocumentEnq.ARDocumentFilter)e.Row; 
      if (row == null) return; 

      PXCache docCache = Base.Documents.Cache; 

      // Forcing display 
      bool byPeriod = true; //(row.Period != null); 
      bool isMCFeatureInstalled = true; //PXAccess.FeatureInstalled<FeaturesSet.multicurrency>(); 
      bool isForeignCurrencySelected = true; //String.IsNullOrEmpty(row.CuryID) == false && (row.CuryID != this.Company.Current.BaseCuryID); 
      bool isBaseCurrencySelected = true; //String.IsNullOrEmpty(row.CuryID) == false && (row.CuryID == this.Company.Current.BaseCuryID); 

      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentFilter.curyID>(cache, row, isMCFeatureInstalled); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentFilter.curyBalanceSummary>(cache, row, isMCFeatureInstalled && isForeignCurrencySelected); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentFilter.curyDifference>(cache, row, isMCFeatureInstalled && isForeignCurrencySelected); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentFilter.curyCustomerBalance>(cache, row, isMCFeatureInstalled && isForeignCurrencySelected); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentFilter.curyCustomerDepositsBalance>(cache, row, isMCFeatureInstalled && isForeignCurrencySelected); 

      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentResult.curyID>(docCache, null, isMCFeatureInstalled); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentResult.rGOLAmt>(docCache, null, isMCFeatureInstalled && !isBaseCurrencySelected); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentResult.curyBegBalance>(docCache, null, byPeriod && isMCFeatureInstalled && !isBaseCurrencySelected); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentResult.begBalance>(docCache, null, byPeriod); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentResult.curyOrigDocAmt>(docCache, null, isMCFeatureInstalled && !isBaseCurrencySelected); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentResult.curyDocBal>(docCache, null, isMCFeatureInstalled && !isBaseCurrencySelected); 
      PXUIFieldAttribute.SetVisible<ARDocumentEnq.ARDocumentResult.curyDiscActTaken>(docCache, null, isMCFeatureInstalled && !isBaseCurrencySelected); 
    } 
  } 
+0

Cela fonctionne! Merci! –