Ejemplo n.º 1
0
        private void InitialExtHelpObj(string helpid)
        {
            CommonHelpEntity item = proxy.GetCommonHelpItem(helpid);

            ViewBag.Flag         = helpid;
            ViewBag.JsonTemplate = proxy.GetJsonTemplate(helpid);
        }
Ejemplo n.º 2
0
        private string BuildInputQuery(string helpid, string queryValue)
        {
            CommonHelpEntity item = proxy.GetCommonHelpItem(helpid);
            StringBuilder    strb = new StringBuilder();

            //无奈
            NG3.Data.Service.DbHelper.Open();
            NG3.Data.DbVendor vender = NG3.Data.Service.DbHelper.Vendor;
            NG3.Data.Service.DbHelper.Close();

            //获取汉字拼音首字母函数
            string functionName = "dbo.fun_getPY";

            if (vender == NG3.Data.DbVendor.Oracle)
            {
                functionName = "fun_getPY";
            }

            strb.Append(item.CodeField);
            strb.Append(" like '%");
            strb.Append(queryValue);
            strb.Append("%' or ");
            strb.Append(item.NameField);
            strb.Append(" like '%");
            strb.Append(queryValue);
            strb.Append("%' or ");
            strb.Append(functionName + "(");
            strb.Append(item.NameField);
            strb.Append(") like '%");
            strb.Append(queryValue);
            strb.Append("%'");


            return(strb.ToString());
        }
Ejemplo n.º 3
0
        public string GetHelpInfo(string helpid)
        {
            bool             ORMMode = System.Web.HttpContext.Current.Request.Params["ORMMode"] == "true" ? true : false;
            CommonHelpEntity item    = proxy.GetCommonHelpItem(helpid, ORMMode);

            JObject jo = new JObject();

            jo.Add("Title", item.Title);
            jo.Add("HeadText", item.HeadText);
            if (ORMMode)
            {
                jo.Add("AllField", item.AllProperty);
                jo.Add("codeField", item.CodeProperty);
                jo.Add("nameField", item.NameProperty);
            }
            else
            {
                jo.Add("AllField", item.AllField);
                jo.Add("codeField", item.CodeField);
                jo.Add("nameField", item.NameField);
            }
            string str = JsonConvert.SerializeObject(jo);

            return("{status : \"ok\", data:" + str + "}");
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 得到帮助字段的CodeField,和NameField
        /// </summary>
        /// <param name="helpId"></param>
        /// <returns></returns>
        public KeyValuePair <string, string> GetHelpData(string helpId)
        {
            CommonHelpEntity helper           = helpdac.GetHelpItem(helpId);
            KeyValuePair <string, string> dic = new KeyValuePair <string, string>(helper.CodeField, helper.NameField);

            return(dic);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 取得列表的模板信息
        /// </summary>
        /// <param name="helpid"></param>
        /// <returns></returns>
        public string GetListTemplate(string helpid)
        {
            CommonHelpEntity item = this.GetCommonHelpItem(helpid);

            //return string.Format("<TreeList>{0}</TreeList>", item.List.InnerXml);

            return(GetHelpTemplate(item.ListTemplate));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 获取查询区模板
        /// </summary>
        /// <param name="helpid"></param>
        /// <returns></returns>
        public string GetQueryTemplate(string helpid)
        {
            CommonHelpEntity item = this.GetCommonHelpItem(helpid);

            //return item.Query.ToTemplate();

            return(GetHelpTemplate(item.QueryTemplate));
        }
Ejemplo n.º 7
0
        public ActionResult ExtHelp(string helpid)
        {
            CommonHelpEntity item = proxy.GetCommonHelpItem(helpid);

            ViewBag.Flag         = helpid;
            ViewBag.JsonTemplate = proxy.GetJsonTemplate(helpid);

            return(View("ExtCommonHelp"));
        }
Ejemplo n.º 8
0
        private void InitialHelpObj(string helpid)
        {
            CommonHelpEntity item = proxy.GetCommonHelpItem(helpid);

            ViewBag.Flag       = helpid;
            ViewBag.HelpTitle  = item.Title;
            ViewBag.Icon       = string.Empty;
            ViewBag.CodeField  = item.CodeField;
            ViewBag.NameField  = item.NameField;
            ViewBag.SelectMode = 1;
            ViewBag.T0         = string.Empty;
            ViewBag.T1         = proxy.GetQueryTemplate(helpid);
            ViewBag.T2         = proxy.GetListTemplate(helpid);
        }
Ejemplo n.º 9
0
        public string GetHelpTemplate(string helpid)
        {
            CommonHelpEntity item = proxy.GetCommonHelpItem(helpid);

            //JObject jo = new JObject();
            //jo.Add("Title", item.Title);
            //jo.Add("Template", proxy.GetJsonTemplate(helpid));
            //string str = JsonConvert.SerializeObject(jo);

            string str = proxy.GetJsonTemplate(helpid);

            //StreamReader sr = new StreamReader()
            str.Replace("\\\n", "");
            //str.Replace((char)13, ' ');

            return("{status : \"ok\", Title:\"" + item.Title + "\",template:" + str + "}");
        }
Ejemplo n.º 10
0
        public string GetHelpInfo(string helpid)
        {
            bool ORMMode = System.Web.HttpContext.Current.Request.Params["ORMMode"] == "true" ? true : false;

            CommonHelpEntity item     = proxy.GetCommonHelpItem(helpid);
            JArray           arr      = proxy.GetRichQueryItems(helpid);
            JObject          queryObj = proxy.GetQueryFilter(helpid, AppInfoBase.OCode, AppInfoBase.LoginID);

            JObject jo = new JObject();

            jo.Add("Title", item.Title);
            jo.Add("HeadText", item.HeadText);
            jo.Add("detailHeadText", item.DetailTableHeaders);
            if (ORMMode)
            {
                jo.Add("AllField", item.AllProperty);
                jo.Add("codeField", item.CodeProperty);
                jo.Add("nameField", item.NameProperty);

                jo.Add("detailTableFields", item.DetailTablePropertys);
                jo.Add("masterTableKey", item.MasterTableKeyProperty);
            }
            else
            {
                jo.Add("AllField", item.AllField);
                jo.Add("codeField", item.CodeField);
                jo.Add("nameField", item.NameField);

                jo.Add("detailTableFields", item.DetailTableFields);
                jo.Add("masterTableKey", item.MasterTableKey);
            }

            jo.Add("queryProperty", JsonConvert.SerializeObject(item.QueryPropertyItem));
            jo.Add("existQueryProp", item.ExistQueryProperty);
            jo.Add("showTree", item.ShowTree);
            jo.Add("richQueryItem", JsonConvert.SerializeObject(arr));
            jo.Add("queryFilter", JsonConvert.SerializeObject(queryObj));

            string str = JsonConvert.SerializeObject(jo);

            return("{status : \"ok\", data:" + str + "}");
        }
Ejemplo n.º 11
0
        public string GetHelpObject(string helpid)
        {
            CommonHelpDac    dac  = new CommonHelpDac();
            CommonHelpEntity item = dac.GetCommonHelpItem(helpid);

            var sb = new StringBuilder("var helpObj={");

            sb.Append("title:'" + item.Title + "',");
            sb.Append("icon:'" + string.Empty + "',");
            sb.Append("codeField:'" + item.CodeField + "',");
            sb.Append("nameField:'" + item.NameField + "',");
            sb.Append("selectMode:" + 1 + ",");
            sb.Append("t0:'");
            sb.Append(string.Empty);
            sb.Append("',t1:'");
            sb.Append(dac.GetQueryTemplate(helpid).Replace("\r\n", string.Empty).Replace("'", "''"));
            sb.Append("',t2:'");
            sb.Append(dac.GetListTemplate(helpid).Replace("\r\n", string.Empty).Replace("'", "''"));
            sb.Append("'\r\n};");

            return(sb.ToString());
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 获取列表数据
        /// </summary>
        /// <param name="helpid">帮助标记</param>
        /// <param name="clientQuery">客户端查询条件</param>
        /// <param name="pageSize"></param>
        /// <param name="pageIndex"></param>
        /// <param name="totalRecord"></param>
        /// <param name="clientSqlFilter">客户端传来的sql查询条件</param>
        /// <param name="isAutoComplete">联想搜索</param>
        /// <returns></returns>
        public DataTable GetList(string helpid, int pageSize, int pageIndex, ref int totalRecord, string clientQuery, string outJsonQuery, string leftLikeJsonQuery, string clientSqlFilter, bool isAutoComplete, bool ormMode)
        {
            DataTable        dt   = null;
            CommonHelpEntity item = ormMode ? this.GetHelpItem(helpid) : this.GetCommonHelpItem(helpid);

            //拼装sql语句方式
            if (item.Mode == HelpMode.Default)
            {
                StringBuilder sql = new StringBuilder();

                if (item.AllField.Length > 0)
                {
                    sql.Append("select " + item.Distinct + item.AllField)
                    .Append(" from " + item.TableName)
                    .Append(" where ");
                }
                else
                {
                    sql.Append("select " + item.Distinct + item.CodeField + " " + item.CodeProperty + " , "
                               + item.NameField + " " + item.NameProperty)
                    .Append(" from " + item.TableName)
                    .Append(" where ");
                }

                #region where


                if (!string.IsNullOrEmpty(item.SqlFilter))
                {
                    sql.Append(item.SqlFilter);
                }
                else
                {
                    sql.Append(" 1=1 ");
                }

                if (!string.IsNullOrEmpty(clientSqlFilter))
                {
                    sql.Append(" and " + clientSqlFilter);
                }

                //if(!string.IsNullOrEmpty(clientQuery))
                //{
                //    sql.Append(" and " + clientQuery);
                //}


                #endregion

                #region 分页

                string sortString = string.Empty;

                if (!string.IsNullOrEmpty(item.SortField))
                {
                    sortString = item.SortField.Trim().IndexOf(" ") > 0 ? item.SortField : item.SortField + " asc ";
                }
                else
                {
                    sortString = item.CodeField + " asc ";
                }


                if (string.IsNullOrEmpty(clientQuery) && string.IsNullOrEmpty(outJsonQuery))
                {
                    string strSql = PaginationAdapter.GetPageDataSql(sql.ToString(), pageSize, ref pageIndex, ref totalRecord, sortString, null);

                    dt = DbHelper.GetDataTable(strSql);
                }
                else
                {
                    string query = string.Empty;

                    IDataParameter[] p = null;
                    if (isAutoComplete)
                    {
                        p = this.BuildInputQuery(helpid, clientQuery, item.PYField, outJsonQuery, leftLikeJsonQuery, ref query);
                    }
                    else
                    {
                        p = DataConverterHelper.BuildQueryWithParam(clientQuery, outJsonQuery, leftLikeJsonQuery, ref query);
                    }

                    if (!string.IsNullOrEmpty(query))
                    {
                        sql.Append(" and " + query);
                    }

                    string strSql = PaginationAdapter.GetPageDataSql(sql.ToString(), pageSize, ref pageIndex, ref totalRecord, sortString, p);

                    dt = DbHelper.GetDataTable(strSql, p);
                }

                #endregion
            }
            else if (item.Mode == HelpMode.GetHelpResult)//插件模式通过反射获取帮助列表
            {
                string fullpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "I6Rules" + Path.DirectorySeparatorChar + item.Assembly);
                if (!File.Exists(fullpath))
                {
                    fullpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Rules" + Path.DirectorySeparatorChar + item.Assembly);
                }
                if (File.Exists(fullpath))
                {
                    Assembly assem    = Assembly.LoadFile(fullpath);
                    object   instance = assem.CreateInstance(item.ClassName);

                    ICommonHelp help = instance as ICommonHelp;

                    if (help != null)
                    {
                        dt = help.GetHelpList(pageSize, pageIndex, ref totalRecord, clientQuery, outJsonQuery, isAutoComplete);
                    }
                    else
                    {
                        throw new Exception(string.Format("程序集{0}中的{1}类未实现SUP.Common.Base.ICommonHelp接口", item.Assembly, item.ClassName));
                    }
                }
                else
                {
                    throw new Exception(string.Format("服务端Rules目录下找不到程序集{0}", item.Assembly));
                }
            }

            if (ormMode)
            {
                dt.TableName = item.TableName;
                return(ConvertFieldColToPropertyCol(dt, item.FieldPropertyDic, item.FieldDic));
            }

            return(dt);
        }
Ejemplo n.º 13
0
        public string GetJsonTemplate(string helpid)
        {
            CommonHelpEntity item = this.GetCommonHelpItem(helpid);

            return(GetXmlContent(item.JsonTemplate, "gb2312"));
        }
Ejemplo n.º 14
0
        //----------新实现,注册信息放在数据库中-------

        public override CommonHelpEntity GetHelpItem(string helpid)
        {
            if (string.IsNullOrEmpty(helpid))
            {
                throw new ArgumentException("helpid is null");
            }

            CommonHelpEntity item = HttpRuntime.Cache.Get(COMMONHELPORMKEY + helpid) as CommonHelpEntity;

            if (item == null)
            {
                DataTable dt = this.GetMasterInfo(helpid);
                DataRow   dr = dt.Rows[0];

                item = new CommonHelpEntity();

                string mode = dr["modetype"].ToString();
                item.AllField    = this.GetFields(helpid);
                item.AllProperty = this.GetProperties(helpid, item.FieldPropertyDic, item.FieldDic);
                item.HeadText    = this.GetHeader(helpid);

                switch (mode)
                {
                case "0": item.Mode = HelpMode.Default;
                    break;

                case "1": item.Mode = HelpMode.GetHelpResult;
                    break;

                default: item.Mode = HelpMode.Default;
                    break;
                }

                item.CodeField    = dr["codefield"].ToString();
                item.CodeProperty = DataConverterHelper.FieldToProperty(dr["tablename"].ToString(), item.CodeField);
                item.NameField    = dr["namefield"].ToString();
                item.NameProperty = DataConverterHelper.FieldToProperty(dr["tablename"].ToString(), item.NameField);

                if (item.Mode == HelpMode.Default)
                {
                    //item.ID = helpflag;
                    item.TableName = dr["tablename"].ToString();
                    item.SqlFilter = dr["sqlfilter"].ToString();
                    item.SortField = dr["sortfield"].ToString();


                    string distinct = dr["needdistinct"].ToString();
                    if (distinct == "1")
                    {
                        item.Distinct = " DISTINCT ";
                    }
                }
                else if (item.Mode == HelpMode.GetHelpResult)
                {
                    item.Assembly  = dr["assemblyname"].ToString();
                    item.ClassName = dr["classname"].ToString();
                }

                item.Title       = dr["title"].ToString();
                item.ShowTree    = dr["showtree"].ToString();
                item.TreePid     = dr["treepid"].ToString();
                item.TreeChildId = dr["treechildid"].ToString();

                //缓存起来
                HttpRuntime.Cache.Add(COMMONHELPKEY + helpid,
                                      item,
                                      null,
                                      DateTime.Now.AddDays(1),
                                      Cache.NoSlidingExpiration,
                                      CacheItemPriority.NotRemovable,
                                      null);
            }

            return(item);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 取得帮助节点信息
        /// </summary>
        /// <param name="helpid"></param>
        /// <returns></returns>
        public override CommonHelpEntity GetCommonHelpItem(string helpid)
        {
            if (string.IsNullOrEmpty(helpid))
            {
                throw new ArgumentException("helpid is null");
            }

            CommonHelpEntity item = HttpRuntime.Cache.Get(COMMONHELPKEY + helpid) as CommonHelpEntity;

            if (item == null)
            {
                string fullpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                               "NG3Config" + Path.DirectorySeparatorChar + "NG3CommonHelp.xml");
                //@"Config\CommonHelp.xml");
                //读取通用帮助文档
                XmlDocument doc = HttpRuntime.Cache.Get(COMMONHELPKEY) as XmlDocument;
                if (doc == null)
                {
                    try
                    {
                        doc = new XmlDocument();
                        doc.Load(fullpath);

                        HttpRuntime.Cache.Add(COMMONHELPKEY,
                                              doc,
                                              new CacheDependency(fullpath),
                                              DateTime.Now.AddDays(30),
                                              Cache.NoSlidingExpiration,
                                              CacheItemPriority.NotRemovable,
                                              null);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }

                //取配置节
                string xPath = string.Format("/CommonHelp/Help[HelpID='{0}']", helpid);

                try
                {
                    DbHelper.Open();
                    if (DbHelper.Vendor == DbVendor.Oracle)
                    {
                        xPath = string.Format("/CommonHelp/Help[HelpID='{0}']", helpid + "_orcale");

                        //先尝试找oracle节点
                        XmlNode tempnode = doc.DocumentElement.SelectSingleNode(xPath);
                        if (tempnode == null)
                        {
                            xPath = string.Format("/CommonHelp/Help[HelpID='{0}']", helpid); //找不到就找正常节点
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                finally
                {
                    DbHelper.Close();
                }


                XmlNode node = doc.DocumentElement.SelectSingleNode(xPath);

                if (node == null)
                {
                    throw new Exception(string.Format("commonhelp.xml文件中无法找到{0}配置节,请注意区分大小写", helpid));
                }

                item = new CommonHelpEntity();

                string mode = GetSubNode(node, "Mode", string.Empty);
                item.AllField = GetSubNode(node, "AllField", string.Empty);
                item.HeadText = GetSubNode(node, "HeadText", string.Empty);

                switch (mode)
                {
                case "0":
                    item.Mode = HelpMode.Default;
                    break;

                case "1":
                    item.Mode = HelpMode.GetHelpSql;
                    break;

                case "2":
                    item.Mode = HelpMode.GetHelpResult;
                    break;

                default:
                    item.Mode = HelpMode.Default;
                    break;
                }

                item.CodeField = GetSubNode(node, "CodeField", string.Empty);
                item.NameField = GetSubNode(node, "NameField", string.Empty);
                item.TableName = GetSubNode(node, "TableName", string.Empty);
                if (item.Mode == HelpMode.Default)
                {
                    //item.ID = helpflag;

                    item.SqlFilter = GetSubNode(node, "SqlFilter", string.Empty);
                    item.SortField = GetSubNode(node, "SortField", string.Empty);


                    string distinct = GetSubNode(node, "Distinct", string.Empty);
                    if (distinct == "1")
                    {
                        item.Distinct = " DISTINCT ";
                    }
                }
                else if (item.Mode == HelpMode.GetHelpSql)
                {
                    item.Assembly  = GetSubNode(node, "Assembly", string.Empty);
                    item.ClassName = GetSubNode(node, "ClassName", string.Empty);
                }
                else
                {
                    item.Assembly         = GetSubNode(node, "Assembly", string.Empty);
                    item.ClassName        = GetSubNode(node, "ClassName", string.Empty);
                    item.GetListMethod    = GetSubNode(node, "GetListMethod", string.Empty);
                    item.GetNameMethod    = GetSubNode(node, "GetNameMethod", string.Empty);
                    item.CodeToNameMethod = GetSubNode(node, "CodeToNameMethod", string.Empty);
                }

                item.Title         = GetSubNode(node, "Title", string.Empty);
                item.QueryTemplate = GetSubNode(node, "QueryTemplate", string.Empty);
                item.ListTemplate  = GetSubNode(node, "ListTemplate", string.Empty);
                item.JsonTemplate  = GetSubNode(node, "JsonTemplate", string.Empty);
                //var queryNode = node.SelectSingleNode("Query");
                //if (queryNode != null)
                //{
                //    item.Query = new CommHelpQuery(queryNode);
                //}
                //item.List = node.SelectSingleNode("List");

                //缓存起来
                HttpRuntime.Cache.Add(COMMONHELPKEY + helpid,
                                      item,
                                      new CacheDependency(fullpath),
                                      DateTime.Now.AddDays(30),
                                      Cache.NoSlidingExpiration,
                                      CacheItemPriority.NotRemovable,
                                      null);
            }

            //过滤条件宏定义替换,不能再缓存里面做,否则组织切换了,缓存还在数据就不正确了
            string filter = item.SqlFilter;

            if (filter != null)
            {
                if (filter.IndexOf("@ocode@") > 0)
                {
                    item.SqlFilter = filter.Replace("@ocode@", AppInfoBase.OCode);
                }
                if (filter.IndexOf("@orgid@") > 0)
                {
                    item.SqlFilter = filter.Replace("@orgid@", AppInfoBase.OrgID.ToString());
                }
                if (filter.IndexOf("@version@") > 0)//fastdp用到
                {
                    item.SqlFilter = filter.Replace("@version@", AppInfoBase.Version);
                }
            }
            return(item);
        }
Ejemplo n.º 16
0
        public IList <TreeJSONBase> GetTreeList(string helpid, string clientQuery, string outJsonQuery, string leftLikeJsonQuery, string clientSqlFilter, string nodeid, bool ormMode)
        {
            string           filter = string.Empty;
            CommonHelpEntity item   = richDac.GetCommonHelpItem(helpid);

            TreeListBuilder builder = new TreeListBuilder();

            string treePid     = item.TreePid;
            string treeChildId = item.TreeChildId;

            if (ormMode)
            {
                string   tableName = item.TableName;
                string[] s         = item.TableName.Split(' ');//有别名
                if (s.Length > 0)
                {
                    tableName = s[s.Length - 1].Trim();
                }
                builder.ID       = DataConverterHelper.FieldToProperty(tableName, item.CodeField); //item.CodeField;
                builder.Text     = DataConverterHelper.FieldToProperty(tableName, item.NameField); //item.NameField;
                treePid          = DataConverterHelper.FieldToProperty(tableName, item.TreePid);
                item.TreeChildId = DataConverterHelper.FieldToProperty(tableName, item.TreeChildId);
            }
            else
            {
                builder.ID   = item.CodeField;
                builder.Text = item.NameField;
            }

            DataTable dt = richDac.GetTreeList(helpid, clientQuery, outJsonQuery, leftLikeJsonQuery, clientSqlFilter, nodeid, ormMode);

            string sort = string.Empty;

            if (!string.IsNullOrWhiteSpace(item.SortProperty))
            {
                sort = item.SortProperty + " asc ";
            }

            if (string.IsNullOrEmpty(treePid))
            {
                throw new Exception("树节点pid未设置,请在通用帮助注册设置[父节点id]和[子节点id]!");
            }

            Type type = dt.Columns[treePid].DataType;

            if ("root" == nodeid)//首次加载
            {
                if (type == typeof(Int64) || type == typeof(Int32))
                {
                    filter = "(" + treePid + "=0 or " + treePid + " is null)";
                }
                else
                {
                    filter = "(" + treePid + "='' or " + treePid + "is null)";
                }
                return(builder.GetExtTreeList(dt, treePid, treeChildId, filter, sort, TreeDataLevelType.TopLevel, 2));
            }
            else//懒加载
            {
                //return builder.GetExtTreeList(dt, item.TreePid, item.TreeChildId, filter, TreeDataLevelType.LazyLevel);
                return(builder.LazyLoadTreeList(dt, treePid, treeChildId, nodeid));
            }
        }