示例#1
0
        public static void GeneratedCode(KeelExt.ModelKind mk)
        {
            Common.ShowInfo("正在检查数据库是否可用!");
            if (Kit.CheckDataBase())
            {
                Common.ShowInfo("正在从数据库中读取表信息...");
                EnvDTE.Project      pjt    = Kit.GetProjectModel();
                List <SQLTableInfo> dbix   = GetSqlTableInfoList();
                string[]            lsttab = (Kit.SlnKeel.DataTables + Kit.SlnKeel.DataViews).Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                string keelcpp             = null;
                foreach (var item in lsttab)
                {
                    #region 生成一个model
                    tablenamenow = item;
                    Common.ShowInfo(string.Format("正在生成{0}的实体,请稍候...", tablenamenow));
                    Predicate <SQLTableInfo> pdbi  = new Predicate <SQLTableInfo>(FindByTableName);
                    List <SQLTableInfo>      lstdb = dbix.FindAll(pdbi);
                    ModelGengerator          mg    = new ModelGengerator(Kit.GetRootNamespace(pjt), item);
                    if (mk == KeelExt.ModelKind.DotNetAndC)
                    {
                        mg.AddStruct(tablenamenow);
                        mg.AddFunForStructModel();
                    }
                    foreach (var tableitem in lstdb)
                    {
                        mg.AddProperty(tableitem, mk);
                        mg.AddTableNameConst(tableitem.t_fieldname, tableitem.t_tabledesc);
                    }
                    mg.AddCtor(lstdb, mk);
                    cfLangType cl       = Kit.GetProjectLangType(pjt);
                    string     filename = mg.Save(pjt.FullName, cl);

                    AddFileToProject(pjt, filename);
                    if (cl == cfLangType.CPP)
                    {
                        keelcpp += string.Format("#include \"{0}\"", new System.IO.FileInfo(filename).Name) + Environment.NewLine;
                    }
                    Common.ShowInfo(string.Format("恭喜!{0}的实体保存完毕!", tablenamenow));
                    #endregion
                }
                ForCpptoDo(pjt, keelcpp);
                Common.ShowInfo(string.Format("全部实体生成完毕,开始生产DBContext"));
                GenDAL(lsttab);
                Common.ShowInfo(string.Format("KeelKit所需生成的内容生成完毕!"));
            }
        }
        public static void GeneratedCode(DCreateControl dc, string fieldlist, string tablename)
        {
            Common.ShowInfo("正在检查数据库是否可用!");
            if (Kit.CheckDataBase())
            {
                Common.ShowInfo("正在从数据库中读取表信息...");
                EnvDTE.Project      pjt      = Kit.GetProjectComponent();
                List <SQLTableInfo> dbix     = ModelGengerator.GetSqlTableInfoList();
                SQLTableInfo[]      dbix_111 = dbix.ToArray();
                if (fieldlist != null && fieldlist != "" && tablename != null && tablename != "")
                {
                    var xf = from f in dbix_111 where f.t_tablename.ToLower() == tablename.ToLower() && fieldlist.Contains(f.t_fieldname + ";") select f;
                    dbix = xf.ToList();
                }

                string[] lsttab = ((tablename != null) ? tablename + ";" : (Kit.SlnKeel.DataTableForms + Kit.SlnKeel.DataViewForms)).Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                foreach (var item in lsttab)
                {
                    CreateControlByTable(dc, pjt, dbix, item, item + (fieldlist != null ? "_diy_" + fieldlist.Replace(";", "") : ""));
                }
                Common.chExc("SaveAll", "");
                Common.ShowInfo(string.Format("全部控件生成完毕!"));
            }
        }
示例#3
0
 public static List <SQLTableName> GetSPNameList()
 {
     return(ModelGengerator.GetSQLList("SPInfo"));
 }