コード例 #1
0
        private void AppendLookupQueryIfApplicable(SPSiteDataQuery dq)
        {
            if (!IsLookupQuery())
            {
                return;
            }

            var queryXml = new XmlDocument();

            queryXml.LoadXml(dq.Query);
            LookupFilterHelper.AppendLookupQueryToExistingQuery(ref queryXml, ChartLookupField, ChartLookupFieldList);
            dq.Query = queryXml.OuterXml;
        }
コード例 #2
0
        internal static void ProcessWeb(
            SPWeb web,
            SortedList <string, int> statusList,
            string rollupList,
            ref string errors,
            Func <XmlDocument, SPList, SPWeb, string> processReportFilterFunc,
            Action <DataTable> processListAction,
            string propList,
            string propView,
            string propStatus,
            string lookupField,
            string lookupFieldList)
        {
            try
            {
                var siteUrl = web.ServerRelativeUrl.Substring(1);
                var list    = web.GetListFromUrl(propList);
                var view    = list.Views[propView];
                var spQuery = view.Query;
                var spField = list.Fields.GetFieldByInternalName(propStatus);

                PopulateStatusList(statusList, spField);

                var dqFields = string.Format("<FieldRef Name='{0}' Nullable='TRUE'/>", propStatus);
                var dQuery   = string.Empty;
                var doc      = new XmlDocument();
                doc.LoadXml(string.Format("<Query>{0}</Query>", view.Query));

                var reportInternal = processReportFilterFunc?.Invoke(doc, list, web);
                LookupFilterHelper.AppendLookupQueryToExistingQuery(ref doc, lookupField, lookupFieldList);
                var ndWhere = setupWhereNode(doc, reportInternal);

                ProcessList(web, rollupList, ref errors, processListAction, propStatus, ndWhere, dQuery, siteUrl, dqFields, list);
            }
            catch (Exception ex)
            {
                Trace.TraceError("Exception Suppressed {0}", ex);
                errors += string.Format("General Error: {0}<br>", ex.Message);
            }
        }