private bool ProcessUSCTag(InternalBookmarkItem ibmItem, DSIconType dataTagType, string itemName, ref GenOsqlParamInfo paramInfo, ref Dictionary <string, bool> dataTagChecker) { if (dataTagType == DSIconType.USC) { GetTableIndexForUSC(ibmItem, ref paramInfo); USCItem usc = paramInfo.UscItems[itemName]; string orderFieldName = usc.BaseOnField; if (!string.IsNullOrWhiteSpace(orderFieldName) && !dataTagChecker.ContainsKey(orderFieldName)) { InternalBookmarkItem exist = (from c in paramInfo.IbmDomain.InternalBookmarkItems where (c.TableIndex == usc.TableIndex) && (string.Equals(c.ItemType, DSIconType.Field.ToString())) select c).FirstOrDefault(); //If existed one data field in selected tag, shouldnot include data field in udf if (exist == null || string.IsNullOrEmpty(exist.BizName)) { InternalBookmarkItem bm = AddUdfFields(orderFieldName, ref paramInfo); dataTagChecker.Add(BaseMarkupUtilities.GetOriginalBizName(bm.Key, bm.BizName), true); } else { dataTagChecker.Add(itemName, true); paramInfo.AddDataTags(ibmItem, true); } } return(true); } return(false); }
/// <summary> /// extract all field in UDF tag /// </summary> /// <param name="bizName"></param> /// <param name="dataTagFields"></param> /// <param name="dataTagOthers"></param> /// <returns></returns> private InternalBookmarkItem AddUdfFields(string bizName, ref GenOsqlParamInfo paramInfo) { string bookmarkKey = DateTime.Now.ToString(BaseProntoMarkup.BookmarkKeyFormat); DSTreeView item = paramInfo.DomainInfo.GetField(bizName); InternalBookmarkItem bm = new InternalBookmarkItem(bookmarkKey, item.Text, item.TechName, item.Type.ToString(), item.TableIndex, item.Relation, 1); bm.UniqueName = item.UniqueName; bm.DataType = item.DataType; bm.Type = XsltType.Select; paramInfo.AddDataTags(bm, true); return(bm); }
private bool ProcessSelectTag(InternalBookmarkItem ibmItem, DSIconType dataTagType, string itemName, ref GenOsqlParamInfo paramInfo, ref Dictionary <string, bool> dataTagChecker) { if ((ibmItem.TableIndex >= 0 && dataTagType != DSIconType.USC) || (dataTagType == DSIconType.SystemInfo) || (dataTagType == DSIconType.Condition) || (dataTagType == DSIconType.RenderXY)) { if (dataTagType == DSIconType.SystemInfo || (dataTagType == DSIconType.Condition) || (dataTagType == DSIconType.RenderXY)) { ibmItem.TableIndex = Math.Max(0, ibmItem.TableIndex); } dataTagChecker.Add(itemName, true); bool isUdf = dataTagType == DSIconType.UDF || dataTagType == DSIconType.Condition; paramInfo.AddDataTags(ibmItem, isUdf); return(true); } return(false); }