protected virtual void _(Events.FieldUpdated <GIMapping, GIMapping.designID> e) { foreach (GIMappingLine line in MappingLines.Select()) { MappingLines.Delete(line); } if (Mapping.Current == null) { Mapping.Current = e.Row; } if (e.Row?.DesignID != null) { var Params = PXSelect <GIFilter, Where <GIFilter.designID, Equal <Required <GIDesign.designID> > > > .Select(this, e.Row.DesignID); foreach (GIFilter param in Params) { GIMappingLine line = MappingLines.Insert(new GIMappingLine() { ParamLineNbr = param.LineNbr }); // line.ParamLineNbr = param.LineNbr; line.ParamName = param.Name; if (!String.IsNullOrEmpty(param.DisplayName)) { line.ParamDisplayName = param.DisplayName; } // else if (!String.IsNullOrEmpty(param.FieldName)) // { // int dotIndex = param.FieldName.IndexOf('.'); // string viewName = param.FieldName.Substring(0, dotIndex); // Type TableType = System.Web.Compilation.PXBuildManager.GetType(viewName, false); // string displayName = PXUIFieldAttribute.GetDisplayName(Caches[TableType], param.FieldName); // line.ParamDisplayName = displayName; // } else { line.ParamDisplayName = param.Name; } line = MappingLines.Update(line); SetFieldNameList(MappingLines.Cache, line); } } }
private void SetFieldNameList(PXCache cache, GIMappingLine row) { // Tuple<string, string>[] valuesArr = null; string[] valuesArr = null; var a = Assembly.Load("PX.Objects"); Type graphType = a.GetType(Mapping.Current.GraphTypeName); if (graphType != null) { PXGraph graph = PXGraph.CreateInstance(graphType); string tst = graph.PrimaryView; var fields = graph.Views[graph.PrimaryView].Cache.Fields; List <string> valuesList = new List <string>(); string tanleName = graph.Views[graph.PrimaryView].Cache.BqlTable.Name; foreach (var field in fields) { string name = tanleName + '.' + field; valuesList.Add(name); } valuesArr = valuesList.ToArray(); } PXStringListAttribute.SetList <GIMappingLine.fieldName>(cache, row, valuesArr, valuesArr); }