代码之家  ›  专栏  ›  技术社区  ›  Dane

不同领域值的针刀填充领域

  •  0
  • Dane  · 技术社区  · 6 年前

    我试图把屏幕上的其他字段串起来,有些是usr字段。我正在获取跟踪的输出,但在我的情况下它只是空的或破折号。即使破折号仍然被输出,它也不会更新到我希望字符串存储的字段。 这是我的代码:

    protected void InventoryItem_Descr_FieldDefaulting(PXCache cache, PXFieldDefaultingEventArgs e)
        {
    
          var row = (InventoryItem)e.Row;
          Combined.StockItem.InventoryItemExt rowExt = PXCache<InventoryItem>.GetExtension<Combined.StockItem.InventoryItemExt>(row); 
          if (row == null) return;
          if (row != null) {
          string style = row.ItemClassID;
          string metalColor = rowExt.UsrMetalColor;
          string metalType = rowExt.UsrMetalType;
          string diaQuality = rowExt.UsrDiamondQuality;
          string gemColor = rowExt.UsrCenterColor;
          string template = "{0}-{1}-{2}-{3}-{4}";
          string message = string.Format(template, style, metalColor, metalType, diaQuality, gemColor);
          PXTrace.WriteInformation("{0}", message);
          e.NewValue = message;
          }
        }
    

    还有痕迹:

    Information:    ----
    

    我正在拉取的值确实有存储在数据库中的值,但我希望在输入字段时动态生成这些值。

    我试过了 e.NewValue , cache.SetValueExt 同样,让它等于 row.Descr = message 使字符串显示为此字段值。

    任何意见都会有帮助。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Dane    6 年前

    将代码放在RowUpdated事件下,这应该对您有用。

    protected void InventoryItem_RowUpdated(PXCache cache, PXRowUpdatedEventArgs e, PXRowUpdated InvokeBaseHandler)
            {
                if (InvokeBaseHandler != null)
                    InvokeBaseHandler(cache, e);
                var row = (InventoryItem)e.Row;
                Combined.StockItem.InventoryItemExt rowExt = PXCache<InventoryItem>.GetExtension<Combined.StockItem.InventoryItemExt>(row); 
                if (row == null) return;
                if (row != null) {
                  string style = row.ItemClassID;
                  string metalColor = rowExt.UsrMetalColor;
                  string metalType = rowExt.UsrMetalType;
                  string diaQuality = rowExt.UsrDiamondQuality;
                  string gemColor = rowExt.UsrCenterColor;
                  string template = "{0}-{1}-{2}-{3}-{4}";
                  string message = string.Format(template, style, metalColor, metalType, diaQuality, gemColor);
                  PXTrace.WriteInformation("{0}", message);
                  cache.SetValueExt<InventoryItem.descr>(row, message);
    
               }
            }