2017-08-31 2 views
0

Je souhaite créer un GI pour l'écran Historique des transactions d'inventaire (IN405000).Acumatica GI - Ecran Historique des transactions d'inventaire

Étant donné que la table InventoryTranHistEnqResult n'est pas présente dans la base de données ... peu de colonnes de cet écran proviennent de la table INTran.

Je ne suis pas en mesure de trouver des colonnes suivantes: BegQty, QtyIn, QtyOut, EndQty ...

J'ai aussi essayé la requête suivante sur la base de données pour trouver ces colonnes

SELECT c.name AS ColName, t.name AS TableName 
FROM sys.columns c 
JOIN sys.tables t ON c.object_id = t.object_id 
WHERE c.name LIKE '%EndQty%' 

Le CAD pour ces champs est:

enter image description here

+0

Vous devez regarder le DAC dans l'Acumatica pour savoir comment il est construit. Il est préférable de rechercher le code source pour les champs et ne pas chercher à SQL pour les champs. Les IG sont construites sur le DAC et non spécifiquement sur le SQL car le DAC peut être une PXProjection ou contenir des champs non liés/calculés. – Brendan

+0

Je suis passé par le CAD de ces champs, mais n'a pas pu trouver une solution .. le CAD pour tous ces domaines est [PXDBQuantity()] [PXDefault (TypeCode.Decimal, "0.0")] [PXUIField (DisplayName = "Qty. Out", Visibility = PXUIVisibility.SelectorVisible)] – Naina

Répondre

0

en regardant les informations derrière la page dans la page graphique vous donnera les réponses à vos question. L'écran Historique des transactions d'inventaire (IN405000) utilise le graphique InventoryTranHistEnq. La grille de cette page utilise des DAC InventoryTranHistEnqResult dans la vue suivante:

PXSelectJoin<InventoryTranHistEnqResult, 
CrossJoin<INTran>, 
Where<True, Equal<True>>, 
OrderBy<Asc<InventoryTranHistEnqResult.gridLineNbr>>> ResultRecords 

Les ResultsRecords sont construites dynamiquement à l'enquête en utilisant les éléments suivants:

protected virtual IEnumerable resultRecords() 
{ 
    int startRow = PXView.StartRow; 
    int totalRows = 0; 
    decimal? beginQty = null; 

    List<object> list = InternalResultRecords.View.Select(PXView.Currents, PXView.Parameters, new object[PXView.SortColumns.Length], PXView.SortColumns, PXView.Descendings, PXView.Filters, ref startRow, PXView.MaximumRows, ref totalRows); 
    PXView.StartRow = 0; 

    foreach (PXResult<InventoryTranHistEnqResult> item in list) 
    { 
     InventoryTranHistEnqResult it = (InventoryTranHistEnqResult)item; 
     it.BegQty = beginQty = (beginQty ?? it.BegQty); 
     decimal? QtyIn = it.QtyIn; 
     decimal? QtyOut = it.QtyOut; 
     beginQty += (QtyIn ?? 0m) - (QtyOut ?? 0m); 
     it.EndQty = beginQty; 
    } 
    return list; 
} 

donc je suppose que la réponse courte est que vous ne pouvez pas utiliser la résultats de cette page pour un GI car il est construit dans la page seulement. Vous voudrez peut-être ajouter ce dont vous avez besoin à cette page d'historique via une personnalisation ou créer votre propre version de cette page/graphique/dac si l'information dont vous avez besoin est si importante.

+0

Okay ... donc j'essaye d'ajouter une colonne de client (https://stackoverflow.com/q/45742684/4405230) dans cet écran qui montrerait le ID client lié à l'inventaire spécifique ... Mais encore une fois tout en ajoutant le champ de données lors de la personnalisation, il dit que la table InventoryTranHistEnqResult n'existe pas ... Alors, comment puis-je ajouter des colonnes de la grille à cette table? – Naina

+0

Parce qu'il n'existe pas en tant que table réelle, vous ne pouvez pas l'ajouter. Vous devez l'ajouter à une autre table qui existe déjà et rejoindre votre GI – Brendan

+0

Que faire si je souhaite ajouter une colonne dans cet écran Historique des transactions d'inventaire? Puisque la table n'existe pas, cela ne peut pas être fait ... Y a-t-il un moyen d'ajouter une autre table à cet écran? – Naina