diff --git a/docs/zh/conf/base.md b/docs/zh/conf/base.md
index f6ccf70..9b60bbd 100644
--- a/docs/zh/conf/base.md
+++ b/docs/zh/conf/base.md
@@ -488,14 +488,14 @@ hasOption 是为了动态初始化option,他总是返回true。
 
 - window.cellreport.show_tips 是否显示右上角的提示信息,这个信息是后台传过来的。
 
-- window.cellreport.cr_login_verfiy_code_type='text';  设计器登陆验证方式:
+- ```window.cellreport.cr_login_verfiy_code_type='text';```  设计器登陆验证方式:
   text,纯前端(已经显示了。重输入一遍就可以)。
   img:`${baseUrl}/VerifyCode` 后端要编写这个代码
   其他:用其他方式(如手机验证码)验证,需要后端代码配合。也是修改 UserController.cs中的VerifyCode
 
-- window.cellreport["expand_form"] 手机端是否显示收缩查询输入图标(控制查询输入是否显示)
-- window.cellreport.cr_export_excel_func 导出excel 时调用的监控函数。通常需要传给后端记录
-- window.cellreport[`cr_click_${gridName}`](p_data,this) 点击某个组件后调用的函数,p_data 是传递的数据,this表示的是调用函数的组件.
+- ```window.cellreport["expand_form"]``` 手机端是否显示收缩查询输入图标(控制查询输入是否显示)
+- ```window.cellreport.cr_export_excel_func``` 导出excel 时调用的监控函数。通常需要传给后端记录
+- ```window.cellreport[`cr_click_${gridName}`](p_data,this)``` 点击某个组件后调用的函数,p_data 是传递的数据,this表示的是调用函数的组件.
 只有报表、echarts 有缺省的点击事件,可以直接调用click事件。如果是其他组件,需要自己写有关的click,如果需要刷新数据集,自己组装_this.context.clickedEle以及调用click_fresh.
 
 - window.cellreport.hn_old 控制列表头上的链接是否有用
@@ -507,7 +507,7 @@ hasOption 是为了动态初始化option,他总是返回true。
 - window.cellreport.pdf_print  pdf预览时,如果为true直接显示打印预览,不设置或false,将显示中间预览,以便调整或另存到本地
 - window.cellreport.form_validate(queryForm)  form提交时的表单校验。queryForm的属性就是报表用到的参数,返回true表示校验通过,false或字符串表示校验不通过,返回字符串时将作为错误信息显示到浏览器
 - window.cellreport.convert_col_to_button 手机端是否将多层表头转换为按钮显示
-
+- window.cellreport.cfc_max_line 缺省值1000。在设计器使用条件格式菜单设置的条件格式化计算的最大行数,超过这个行数就不计算。
 ## 查找组件和显示组件对话框
 this.findElelment("line_832",{parent_obj:null,dialog_params:{title:'标题'},params:{style:"height:50vh"} }) 
 this.showDialog("line_832",{parent_obj:null,dialog_params:{title:'标题'},params:{style:"height:50vh"} )
diff --git a/end/reportWeb/Startup.cs b/end/reportWeb/Startup.cs
index d10eedd..10c5421 100644
--- a/end/reportWeb/Startup.cs
+++ b/end/reportWeb/Startup.cs
@@ -231,14 +231,15 @@ public void ConfigureServices(IServiceCollection services)
                 CSRedisClient redisClient = new CSRedisClient(CellReport.Redis_Cache.redis_str);
                 RedisHelper.Initialization(redisClient);
             }
+            var loc=System.Reflection.Assembly.GetEntryAssembly().Location;
             DbProviderFactories.RegisterFactory("Microsoft.Data.Sqlite", SqliteFactory.Instance);
             foreach(var one in Configuration.GetSection("DbProviderFactories").Get<DbProviderCfg[]>())
             {
                 //var ass = System.Reflection.Assembly.Load( one.DllName);
-                var ass = System.Reflection.Assembly.LoadFrom(Path.GetDirectoryName(Environment.ProcessPath) + "/" + one.DllName + (one.DllName.EndsWith(".dll")?"":".dll"));
+                var file_name = Path.GetDirectoryName(loc) + "/" + one.DllName + (one.DllName.EndsWith(".dll") ? "" : ".dll");
+                var ass = System.Reflection.Assembly.LoadFrom(file_name);
                 DbProviderFactory f = ass.GetType(one.FactoryClass).GetField(one.InstanceName).GetValue(null) as DbProviderFactory;
                 DbProviderFactories.RegisterFactory(one.Name, f );
-                
             }
 
         }
diff --git a/front/src/views/rpt_design/design_index.vue b/front/src/views/rpt_design/design_index.vue
index 732bd01..aa136ed 100644
--- a/front/src/views/rpt_design/design_index.vue
+++ b/front/src/views/rpt_design/design_index.vue
@@ -1082,7 +1082,6 @@ export default {
     },
     preview_run(){
       this.save_fix()
-      this.save_layout(this.layout_mode)
       this.preview_dialogVisible=true
       
     },
@@ -1107,7 +1106,6 @@ export default {
     },
     save_report(){
       this.save_fix()
-      this.save_layout(this.layout_mode)
       let _this=this
       if(this.report.reportName.split(":")[1].startsWith("大屏/")){
         this.setSelectWidgetForLayout();
@@ -1145,7 +1143,6 @@ export default {
     async run_report(url){
       // console.log(url)
       this.save_fix()
-      this.save_layout(this.layout_mode)
       save_one(this.report)
       if(navigator?.clipboard && navigator.clipboard.writeText)
         await navigator.clipboard.writeText(url)
diff --git a/front/src/views/rpt_design/utils/resultGrid2HtmlTable.js b/front/src/views/rpt_design/utils/resultGrid2HtmlTable.js
index 286efea..c59e6e5 100644
--- a/front/src/views/rpt_design/utils/resultGrid2HtmlTable.js
+++ b/front/src/views/rpt_design/utils/resultGrid2HtmlTable.js
@@ -278,7 +278,7 @@ export default class ResultGrid2HtmlTable{
                 }                
             })
         })
-        if(tableData.length<=1000)
+        if(tableData.length<= (window.cellreport.cfc_max_line??1000))
             this.cell_cf= cellFromatCompute(cdf_arr,tableData)
         this.tableData_bridge=new Array(tableData.length)//里面存的是指向原始表的行号
         for(let idx=0;idx<tableData.length;idx++)