Example #1
0
        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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        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);
        }