精华内容
下载资源
问答
  • Birt API 实现动态参数列报表

    千次阅读 2014-07-14 15:12:51
     根据你传入的参数,动态展现展示。 例如传入参数:columnNames: "EMPLOYEENUMBER,FIRSTNAME,LASTNAME,EMAIL,OFFICECODE",则显示这五。 见图 figure1     试验环境:  1:birt-...

    效果简述:

          根据你传入的参数,动态展现展示列。

    例如传入参数:columnNames: "EMPLOYEENUMBER,FIRSTNAME,LASTNAME,EMAIL,OFFICECODE",则显示这五列。

    见图 figure1

     

     

    试验环境:

           1:birt-report-designer-all-2_3_1 集成eclipse BIRT设计工具

           2:集成环境自带样例数据源:ClassicModels

           3:选用集成数据集 select * from CLASSICMODELS.EMPLOYEES

     

    实现步骤:

           1:设计简单Birt报表模板(dynamicTableColumns.rptdesign),设置数据源、数据集、画表等,详细不多说了,参见《birt中文手册.chm》。

           2:编写java class(DynamicTableColumnHandle.class) 拓展 ReportEventAdapter 实现动态列报表。

           3:绑定报表模板eventHandle。

     

     

           1.1 设计报表模板(dynamicTableColumns.rptdesign)详细格式如见图figure2

     

           2.1 编写 java class(DynamicTableColumnHandle.class)

                 2.1.1重写initialize方法,解析动态列名。

                

    [java] view plaincopy
    1. @Override  
    2. public void initialize(IReportContext reportContext) {  
    3.         // TODO Auto-generated method stub  
    4.         try{  
    5.         super.initialize(reportContext);  
    6.                       
    7.         String columnsStr = (String)reportContext.getParameterValue("columnNames");           
    8.         dynamicColumns = doSplit(columnsStr, ","); //split columnsStr  
    9.               
    10.                           
    11.     }catch (Exception e) {  
    12.         e.printStackTrace();  
    13.     }  

               

                2.1.2重写beforeFactory,动态插入展示列,并设置样式。

               

    [java] view plaincopy
    1. @Override  
    2.     public void beforeFactory(IReportDesign report, IReportContext reportContext) {  
    3.         // TODO Auto-generated method stub  
    4.         super.beforeFactory(report, reportContext);  
    5.           
    6.         try{  
    7.             ElementFactory elementFactory = reportContext.getDesignHandle().getElementFactory();  
    8.             TableHandle mytable = (TableHandle) reportContext.getDesignHandle().findElement("mytable");  
    9.             mytable.setWidth("100%");  
    10.                           
    11.               
    12.             RowHandle myheader = (RowHandle) mytable.getHeader( ).get( 0 );//获得表格头  
    13.             RowHandle mydetail = (RowHandle) mytable.getDetail().get( 0 );//获得明细行  
    14.             ColumnHandle mycolumn0 = (ColumnHandle) mytable.getColumns().get(0);//获取固定列  
    15.             mycolumn0.setProperty("width""2cm");  
    16.             mycolumn0.setProperty("backgroundColor""white");  
    17. //          mycolumn0.drop(); //drop the 0 column  
    18.               
    19.             String[] colors = {"red","orange","yellow","green","blue","navy","purple"};  
    20.             int i=0;//计列数  
    21.             for(String column : dynamicColumns){  
    22.                 mytable.insertColumn(i+1,1);//循环插入新列,每次加在最后一列的后面  
    23.                 ColumnHandle mycolumn = (ColumnHandle) mytable.getColumns().get(i+1);  
    24.                 mycolumn.setProperty("width""2cm");  
    25.                 mycolumn.setProperty("backgroundColor", colors[i%7]);  
    26.                 mycolumn.setProperty("color""black");  
    27.                   
    28.                 CellHandle dcell = (CellHandle) mydetail.getCells().get(i+1);//取得明细行单元格  
    29.                 //设置样式  
    30.                 dcell.setProperty("borderBottomColor","#000000");  
    31.                 dcell.setProperty("borderBottomStyle","solid");  
    32.                 dcell.setProperty("borderBottomWidth","1px");  
    33.                 dcell.setProperty("borderLeftColor","#000000");  
    34.                 dcell.setProperty("borderLeftStyle","solid");  
    35.                 dcell.setProperty("borderLeftWidth","1px");  
    36.                 dcell.setProperty("borderRightColor","#000000");  
    37.                 dcell.setProperty("borderRightStyle","solid");  
    38.                 dcell.setProperty("borderRightWidth","1px");  
    39.                 dcell.setProperty("borderTopColor","#000000");  
    40.                 dcell.setProperty("borderTopStyle","solid");  
    41.                 dcell.setProperty("borderTopWidth","1px");  
    42.   
    43.                 DataItemHandle myDataItem2 = elementFactory.newDataItem(column);  
    44.                 myDataItem2.setResultSetColumn(column);  
    45.                 dcell.getContent().add(myDataItem2);  
    46.                   
    47.                 CellHandle hcell = (CellHandle) myheader.getCells( ).get(i+1);  
    48.                 //设置样式  
    49.                 hcell.setProperty("borderBottomColor","#000000");  
    50.                 hcell.setProperty("borderBottomStyle","solid");  
    51.                 hcell.setProperty("borderBottomWidth","1px");  
    52.                 hcell.setProperty("borderLeftColor","#000000");  
    53.                 hcell.setProperty("borderLeftStyle","solid");  
    54.                 hcell.setProperty("borderLeftWidth","1px");  
    55.                 hcell.setProperty("borderRightColor","#000000");  
    56.                 hcell.setProperty("borderRightStyle","solid");  
    57.                 hcell.setProperty("borderRightWidth","1px");  
    58.                 hcell.setProperty("borderTopColor","#000000");  
    59.                 hcell.setProperty("borderTopStyle","solid");  
    60.                 hcell.setProperty("borderTopWidth","1px");  
    61.   
    62.                 LabelHandle myLabel = elementFactory.newLabel(column);  
    63.                 myLabel.setText(column);  
    64.                   
    65.                 hcell.getContent().add(myLabel);  
    66.                 i++;  
    67.   
    68.             }  
    69.           
    70.         pw.println("beforeFactory add tables done");  
    71.         }catch (Exception e) {  
    72.             e.printStackTrace();  
    73.         }  
    74.     }  

     

           3.1 绑定报表模板的eventHandle,详见下图figure3

     

    参考资料:

          1:birt设计器中文手册.chm http://download.csdn.net/user/hob007

          2:报表模板及javaClass源文件(birt_API_动态列_实现.rar) http://hob007.download.csdn.net/


    展开全文
  • 我通过ViewSchedule类可以创建一个明细表,通过definition.addfield函数可以添加显示的参数例如面积,体积等,可是如果我想添加一个类别里没有的参数怎么办呢,例如我想在明细表中添加一个序号的参数要通过什么...




    问题描述:
    我通过ViewSchedule类可以创建一个明细表,通过definition.addfield函数可以添加显示的参数例如面积,体积等,可是如果我想添加一个类别里没有的参数怎么办呢,例如我想在明细表中添加一个序号的列的参数要通过什么方法实现


    解答:
    在这种情况下,你可以先变成添加一个共享参数到目标对象中,然后你应该就可以吧这个参数添加到明细表中。


    转载请复制以下信息:
    原文链接: http://blog.csdn.net/joexiongjin/article/details/12515369
    作者:  叶雄进 , Autodesk ADN

    展开全文
  • ① 重复代码 : 一个类中代码重复, 兄弟子类中代码...④ 过长参数列 : 使用对象代替普通参数, 函数取代参数, 创建参数对象, 注意依赖 与 多参 之间的平衡; ⑤ 发散式变化 : 一个类受多种变化影响, 每种变化修改的方法

    膜拜下 Martin Fowler 大神 , 开始学习 圣经 重构-改善既有代码设计 .


    代码的坏味道就意味着需要重构, 对代码的坏味道了然于心是重构的比要前提;


    .

    作者 : 万境绝尘

    转载请注明出处http://blog.csdn.net/shulianghan/article/details/20009689

    .


    1. 重复代码 (Duplicated Code)


    用到的重构方法简介 : Extract Method(提炼函数), Pull Up Method(函数上移), From Template Method(塑造模板函数), Substitute Algorithm(替换算法), Extract Class(提炼类);

    -- Extract Method(提炼函数) : 将重复的代码放到一个函数中, 并让函数名称清晰的解释函数的用途;

    -- Pull Up Method(函数上移) : 将函数从子类移动到父类中;

    -- From Template Method(塑造模板函数) : 不同子类中某些函数执行相似操作, 细节上不同, 可以将这些操作放入独立函数中, 这些函数名相同, 将函数上移父类中.

    -- Substitute Algorithm(替换算法) : 将函数的本体替换成另外一个算法;

    -- Extract Class(提炼类) : 建立一个新类, 将相关的函数 和 字段 从旧类搬移到新类;



    重复代码坏处 : 重复的代码结构使程序变得冗长, 这个肯定要优化, 不解释;



    同类函数重复代码 : 同一个类中 两个函数 使用了相同的表达式;

    -- 解决方案 : 使用 Extract Method(提炼函数) 方法提炼出重复的代码, 两个函数同时调用这个方法, 代替使用相同的表达式;



    兄弟子类重复代码 : 一个父类有两个子类, 这两个子类存在相同的表达式;

    -- 代码相同解决方案 : 对两个子类 使用 Extract Method(提炼函数)方法, 然后将提炼出来的代码 使用 Pull Up Method(函数上移)方法, 将这段代码定义到父类中去;

    -- 代码相似解决方案 : 使用 Extract Method(提炼函数)方法 将相似的部分 与 差异部分 分割开来, 将相似的部分单独放在一个函数中;

    -- 进一步操作 : 进行完上面的操作之后, 可以运用 From Template Method(塑造模板函数) 获得一个 Template Method 设计模式, 使用模板函数将相似的部分设置到模板中, 不同的部分用于模板的参数等变量;

    -- 算法切换 : 如果模板中函数的算法有差异, 可以选择比较清晰的一个, 使用Substitute Algorithm(替换算法) 将不清晰的算法替换掉;



    不相干类出现重复代码 : 使用Extract Class(提炼类) 方法, 将重复的代码提炼到一个重复类中去, 然后在两个类中 使用这个提炼后的新类; 

    -- 提炼类存在方式 : 将提炼后的代码放到两个类中的一个, 另一个调用这个类, 如果放到第三个类, 两个类需要同时引用这个类;



    2. 过长函数(Long Method)



    用到的重构方法 : Extract Method(提炼函数)Replace Temp with Query(以查询取代临时变量)Introduce Parameter Object(引入参数对象)Preserve Whole Object(保持对象完整), Decompose Conditional(分解条件表达式);

    -- Extract Method(提炼函数) : 将代码放到一个新函数中, 函数名清晰的说明函数的作用;

    -- Replace Temp with Query(以查询取代临时变量) : 程序中将表达式结果放到临时变量中, 可以将这个表达式提炼到一个独立函数中, 调用这个新函数 去替换 这个临时变量表达式, 这个新函数就可以被其它函数调用;

    -- Introduce Parameter Object(引入参数对象) : 将参数封装到一个对象中, 以一个对象取代这些参数;

    -- Preserve Whole Object(保持对象完整) : 从某个对象中取出若干值, 将其作为某次函数调用时的参数, 由原来的传递参数 改为 传递整个对象, 类似于 Hibernate;

    -- Replace Method with Method Object(以函数对象取代函数) : 大型函数中有很多 参数 和 临时变量, 将函数放到一个单独对象中, 局部变量 和 参数 就变成了对象内的字段, 然后可以在 同一个对象中 将这个 大型函数 分解为许多 小函数;

    -- Decompose Conditional(分解条件表达式) : 将 if then else while 等语句的条件表达式提炼出来, 放到独立的函数中去; 



    小函数优点 : 小函数具有更强的 解释能力, 共享能力, 选择能力, 小函数维护性比较好, 拥有小函数的类活的比较长;

    -- 长函数缺点 : 程序越长越难理解;

    -- 函数开销 : 早期编程语言中子程序需要额外的开销, 所以都不愿意定义小函数. 现在面向对象语言中, 函数的开销基本没有;

    -- 函数名称 : 小函数多, 看代码的时候经常转换上下文查看, 这里我们就需要为函数起一个容易懂的好名称, 一看函数名就能明白函数的作用, 不同在跳转过去理解函数的含义;


    分解函数结果 : 尽可能分解函, 即使函数中只有一行代码, 哪怕函数调用比函数还要长, 只要函数名解释代码用途就可以;

    -- 分解时机 : 当我们需要添加注释的时候, 就应该将要注释的代码写入到一个独立的函数中, 并以代码的用途命名;

    -- 关键 : 函数长度不是关键, 关键在于 函数 是 "做什么", 和 "如何做";


    常用分解方法 : Extract Method(提炼函数) 适用于 99% 的过长函数情况, 只要将函数中冗长的部分提取出来, 放到另外一个函数中即可;


    参数过多情况 : 如果函数内有大量的 参数 和 临时变量, 就会对函数提炼形成阻碍, 这时候使用 Extract Method(提炼函数) 方法就会将许多参数 和 临时变量当做参数传入到 提炼出来的函数中;

    -- 消除临时变量 : 使用 Replace Temp with Query(以查询取代临时变量) 方法消除临时元素;

    -- 消除过长参数 : 使用 Introduce Parameter Object(引入参数对象) Preserve Whole Object(保持对象完整) 方法 可以将过长的参数列变得简洁一些;

    -- 杀手锏 : 如果使用了上面 消除临时变量和过长参数的方法之后, 还存在很多 参数 和 临时变量, 此时就可以使用 Replace Method with Method Object(以函数对象取代函数方法) ;


    提炼代码技巧

    -- 寻找注释 : 注释能很好的指出 代码用途 和 实现手法 之间的语义距离, 代码前面有注释, 就说明这段代码可以替换成一个函数, 在注释的基础上为函数命名, 即使注释下面只有一行代码, 也要将其提炼到函数中;

    -- 条件表达式 : 当 if else 语句, 或者 while 语句的条件表达式过长的时候, 可以使用Decompose Conditional(分解条件表达式) 方法, 处理条件表达式;

    -- 循环代码提炼 : 当遇到循环的时候, 应该将循环的代码提炼到一个函数中去;



    3. 过大的类 (Large Class)


    用到的重构方法 : Extract Class(提炼类), Extract Subclass(提炼子类), Extract Interface(提炼接口), Duplicate Observed Data(复制被监视的数据);

    -- Extract Class(提炼类) : 一个类中做了两个类做的事, 建立一个新类, 将相关的字段和函数从旧类中搬移到新类;

    -- Extract Subclass(提炼子类) : 一个类中的某些特性只能被一部分实例使用到, 可以新建一个子类, 将只能由一部分实例用到的特性转移到子类中;

    -- Extract Interface(提炼接口) : 多个客户端使用类中的同一组代码, 或者两个类的接口有相同的部分, 此时可以将相同的子集提炼到一个独立接口中;

    -- Duplicate Observed Data(复制被监视的数据) : 一些领域数据放在GUI控件中, 领域函数需要访问这些数据; 将这些数据复制到一个领域对象中, 建立一个观察者模式, 用来同步领域对象 和 GUI对象的重要数据;

     


    实例变量太多解决方案 : 使用 Extract Class (提炼类) 方法将一些变量提炼出来, 放入新类中;

    -- 产生原因 : 如果一个类的职能太多, 在单个类中做太多的事情, 这个类中会出现大量的实例变量; 

    -- 实例变量多的缺陷 : 往往 Duplicate Code(重复代码) 与 Large Class(过大的类)一起产生的;

    -- 选择相关变量 : 选择类中相关的变量提炼到一个新类中, 一般前缀, 后缀相同的变量相关性较强, 可以将这些相关性较强的变量提炼到一个类中;

    -- 子类提炼 : 如果一些变量适合作为子类, 使用Extract Subclass(提炼子类) 方法, 可以创建一个子类, 继承该类, 将提炼出来的相关变量放到子类中;

    -- 多次提炼 : 一个类中定义了20个实例变量, 在同一个时刻, 只使用一部分实例变量, 比如在一个时刻只使用5个, 在另一时刻只使用4个 ... 我们可以将这些实例变量多次使用 提炼类 和 子类提炼方法;



    代码太多解决方案

    -- 代码多的缺陷 : 太多的代码是 代码重复, 混乱, 最终走向项目死亡的源头;

    -- 简单解决方案 : 使用 Extract Method (提炼函数) 方法, 将重复代码提炼出来;

    -- 提炼类代码技巧 : 使用 Extract Class(提炼类)Extract Subclass(子类提炼) 方法对类的代码进行提炼, 先确定客户端如何使用这个类, 之后运用 Extract Interface(提炼接口) 为每种使用方式提炼出一个接口, 可以更清楚的分解这个类;

    -- GUI类提炼技巧 : 使用 Duplicate Observed Data(复制被监视的数据) 方法, 将数据 和 行为 提炼到一个独立的对象中, 两边各保留一些重复数据, 用来保持同步; 



    4. 过长参数列 (Long Parameter List)



    使用到的重构方法简介 : Replace Parameter with Method(以函数取代参数), Preserve Whole Object(保持对象完整), Introduce Parameter Object(引入参数对象);

    -- Replace Parameter with Method(以函数取代参数) : 对象调用 函数1, 将结果作为 函数2 的参数, 函数2 内部就可以调用 函数1, 不用再传递参数了; 

    -- Preserve Whole Object(保持对象完整) : 将对象中的一些字段是函数的参数, 直接将对象作为函数的参数, 由传递多个参数改为传递封装好的对象;

    -- Introduce Parameter Object(引入参数对象) : 将函数参数封装在一个对象中;



    参数列过长

    -- 函数数据来源 : ① 参数, 将函数中所需的数据都由参数传入; ② 将函数中所用到的数据设置在全局数据中, 尽量不要使用全局数据;

    -- 对象参数 : 使用对象封装参数, 不需要把函数需要的所有数据用参数传入, 只需要将函数用到的数据封装到对象中即可;

    -- 面向对象函数参数少 : 面向对象程序的函数, 函数所用的数据通常在类的全局变量中, 要比面向过程函数参数要少;


    普通参数和对象参数对比

    -- 参数过长缺陷 : 太多的参数会造成函数 调用之间的 前后不一致, 不易使用, 一旦需要更多数据, 就要修改函数参数结构;

    -- 对象参数优点 : 使用对象传递函数, 如果需要更多的参数, 只需要在对象中添加字段即可;


    参数的其它操作

    -- 函数取代参数 : 在对象中 执行一个 函数1 就可以取代 函数2 的参数, 就要使用 Replace Parameter with Method(以函数取代参数) 方法;

    -- 对象代替参数 :  函数中来自 同一个对象的 多个参数 可以封装在这个对象中, 可以将这个封装好的对象当做参数, 使用Preserve Whole Object(保持对象完整) 方法;

    -- 创建参数对象 : 如果找不到合适的对象封装这些参数数据, 可以使用 Introduce Parameter Object(引入参数对象) 方法制造一个参数对象;


    对象依赖与函数参数之间的平衡 : 二者是相对的, 下面一定要选择一种不利状况;

    -- 避免依赖 : 函数参数传递对象, 那个函数所在的对象 与 这个参数对象依赖关系很紧密, 耦合性很高, 这时候就要避免依赖关系, 将数据从对象中拆出来作为参数;

    -- 参数太长 : 如果参数太长, 或者变化太频繁, 就要考虑是否选择依赖;



    5. 发散式变化 (Divergent Change)


    对于这个在我所在的研发团队中这个问题很严重, 因为做的是远程医疗系统, 在Android上要支持许多医疗设备, 每次添加医疗设备都会死去活来;


    使用到的重构方法简介 : Extract Class(提炼类);


    期望效果 : 当我们添加新功能的时候, 只需要修改一个地方即可, 针对外界变化相应的修改, 只发生在单一类中, 如果做不到这一点, 就意味着程序有了坏味道 Divergent Change;


    发散式变化

    -- 出现效果 : 如果对程序进行例行维护的时候, 添加修改组件的时候, 要同时修改一个类中的多个方法, 那么这就是 Divergent Change;

    -- 修改方法 : 找出造成发散变化的原因, 使用 Extract Class(提炼类) 将需要修改的方法集中到一个类中;



    6. 霰弹式修改 (Shotgun Surgery)



    使用到的重构方法简介 : Move Method(搬移函数), Move Field(搬移字段), Inline Class(内联化类);

    -- Move Method(搬移函数) : 类A 中的 方法A 与 类B 交流频繁, 在类B中创建一个与 方法A 相似的 方法B, 从方法A 中 调用 方法B, 或者直接将方法A删除;

    -- Move Field(搬移字段) : 类A 中的 字段A 经常被 类B 用到, 在类B 中新建一个字段B, 在类B 中尽量使用字段B;

    -- Inline Class(内联化类) : 类A 没有太多功能, 将类A 的所有特性搬移到 类B中, 删除类A ;


    霰弹式修改坏味道 : 遇到的每种变化都需要在许多不同类内做出小修改, 即要修改的代码散布于四处, 不但很难找到, 而且容易忘记重要的修改, 这种情况就是霰弹式修改;

    -- 注意霰弹式修改 与 发散式变化 区别 : 发散式变化是在一个类受多种变化影响, 每种变化修改的方法不同, 霰弹式修改是 一种变化引发修改多个类中的代码;

    -- 目标 : 使外界变化需要修改的类 趋于一一对应;



    重构霰弹式修改

    -- 代码集中到某个类中 : 使用 Move Method(搬移函数)Move Field(搬移字段) 把所有需要修改的代码放进同一个类中;

    -- 代码集中到新创建类中 : 没有合适类存放代码, 创建一个类, 使用 Inline Class(内联化类) 方法将一系列的行为放在同一个类中;

    -- 造成分散式变化 : 上面的两种操作会造成 Divergent Change, 使用Extract Class 处理分散式变化;



    .

    作者 : 万境绝尘

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/20009689

    .


    展开全文
  • 代码坏味道之过长的参数列

    千次阅读 2014-07-31 10:32:16
    过长的参数

    1.为什么会出现过长的参数的函数呢?

    出现过长的参数列,我们在编写程序的时候职责划分不清晰,一个函数做了太多的事情,可能会让调用者传入更多的参数进行功能的实现。第二函数封装不合理,导致调用函数的内部变量成为封装函数的参数。

    2.当我们遇上了过长的参数函数怎么办?

    当我们遇上了过长的参数列的函数有两种方法来解决,第一,通过重载参数把程序中暂时不需要的函数的参数进行封装,减少过长的参数列。第二,通过封装参数列对象,在封装的时候尽量将职责相近的参数放在一起,这样做提高了封装对象的内聚性。

    3.怎样避免在平时的编码中出现过长的参数列?

    那么我们怎样来避免我们在编码中出现过长的参数列呢?在使用SSH或者Spring MVC的时候我们都会接触到很多的O,我们可以将过长的参数列封装成为一个数据传输对象,这样做即减少了参数列又提升了代码 的重用性。

    其次我们合理的封装函数,我经常采用的方式就是编写完成一个函数之后回过头来看看这个函数的职责范围,将多余一个职责的函数进行剥离,让每一个函数都只具有单一的一个职责,这样做了之后,在需要封装参数对象的时候就可以提炼出内聚性很高的代码了。

    展开全文
  • BootStrap Table:列参数

    万次阅读 多人点赞 2018-06-11 22:04:02
    官方文档地址:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/列参数表格的列参数定义在 jQuery.fn.bootstrapTable.columnDefaults 。名称标签类型默认描述radiodata-radioBooleanFALSE设置为 True ...
  • 文章目录Pre-XX:+PrintFlagsInitial 出JVM参数的默认值-XX:+PrintFlagsFinal 出运行程序时生效的值-XX:+PrintCommandLineFlags 出被用户或者JVM优化设置过的详细的XX参数的名称和值列举附加隐藏参数 ...
  • kettle根据参数动态派生(也可用js脚本动态派生,这里就不介绍了) 抽取数据的时候没有日期字段,需要根据抽取日期自动生成月份,如下图结构 表输入_参数部分,接收来自其他系统传过来的参数(JAVA程序...
  • 总结GridView实现超链接和图片、跳转页面并传递参数的方法。
  • 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态... 扩展阅读一:参数化表名、分组、行转字段、字段值; 扩展阅读...
  • 通过上面查询条件中的下拉选择参数,来隐藏报表中的 2.查询条件 下面是给这个下拉框设置数据字典,进行选择操作 由上图可知:这个下拉框为selectType 3.处理报表 通过上面给selectType赋值来隐藏...
  • 跳过第一行, 使用第二行为索引 pd.read_excel('header.xlsx', header=1) 一二行组成多叠索引, 第1作为行索引 pd.read_excel('header.xlsx', header=[0, 1], index_col=0)
  • 关于行和参数解释 axis=0是跨行, axis=1是跨 • axis=0: 0值表示沿着行的方向或行标签、索引值向下执行 • axis=1: 1值表示沿着的方向或标签值执行对应方法 可以看到当axis=0时,遍历的是每行,或者说...
  • bootstrap-table的formatter列参数

    万次阅读 2018-03-06 15:31:57
    queryParams : oTableInit.queryParams,//传递参数(*) sidePagination : "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber : 1, //初始化加载第一页,默认...
  • ArcSDE 设置DBTUNE参数存储BLOB

    千次阅读 2011-03-30 19:02:00
    摘要:DBTUNE表中的存储参数控制着在oracle中如何创建表和索引。其中一些存储参数定义在创建表的时候使用的数据类型。  DBTUNE表中的存储参数控制着在oracle中如何创建表和索引。其中一些存储参数定义在创建...
  • done: function (res, curr, count) { console.log(res); $("[data-field = 'sort']").children().each(function () { if ($(this).text() == '1') { $(this).text("人才"); } el...
  • 查找出JAVA POI导出Excel所限定的列参数,搜索xxxReport model.addAttribute(“xxxReport”, list);
  • 10.4.4 CONNECT_BY_ISCYCLE伪和NOCYCLE参数

    千次阅读 2016-02-03 09:02:17
    10.4.4 CONNECT_BY_ISCYCLE伪和NOCYCLE参数正在更新内容,请稍后
  • 演示弹出窗口传递参数,并用参数来动态修改DataGrid的源代码下载/Files/singlepine/father.rar
  • Python drop方法删除之inplace参数

    千次阅读 2018-09-22 22:58:53
    drop方法有一个可选参数inplace,表明可对原数组作出修改并返回一个新数组。不管参数默认为False还是设置为True,原数组的内存值是不会改变的,区别在于原数组的内容是否直接被修改。默认为False,表明原数组内容并不...
  • 其中,Food为表名,food_name为想要查询的,number为随机生成的int类型参数,范围在表的长度内。 上面的代码shakeFoodName结果一直为null; 当我将new String[]{"number"}参数设置为new String[]{"1"}或者new ...
  • pandas读取excel使用read_excel()中的usecols参数读取指定的
  • 动态指定DataGrid中多个参数的超链接document.title="动态指定DataGrid中多个参数的超链接(downmoon) - "+document.title.net 自带的DataGrid 超链接只能指定一个动态参数, 可以通过以下方式来改进:第一种...
  • ibatis 动态传入 表名、 以及参数

    千次阅读 2014-04-15 21:58:36
    参数 用#parameter#接收 表名 列名 用 $tableName$ $columnName$接收(表名、列名也用#接收的话 sql语句里的表名列名会带 ' 单引号,导致报错)
  • OpenCV中行数(rows)和数(cols)对应高(height)和宽(width),由于OpenCV1.0和OpenCV2.0的代码风格有所不同,所以在处理行和这个细节上面需要多加注意,特别是函数参数的顺序,到底是先行后还是先后行...
  • Oracle存储过程表名称名称做参数,动态SQL背景 当前的系统中有几种日志信息做了分表处理,每个月插入到一个表中,一个表的分表有12个。这样的这种表有四个左右。 有个定时器,每天晚上的时候去执行满足条件的表去...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,842
精华内容 16,736
关键字:

参数列