zoukankan      html  css  js  c++  java
  • PB小技巧集锦


    1. 数据窗口检查重复行
    dw_1.SetSort ("user_id A")
    dw_1.Sort()
    dw_1.SetFilter ("user_id = user_id[-1]")
    dw_1.Filter()
    if dw_1.RowCount() > 0 then
    Messagebox("注意", "用户编码重复.")
    end if
    dw_1.SetFilter ("")
    dw_1.Filter()

    2.使用函数Describe可以获取数据窗口对象中的信息。该函数语法是:

    dwcontrol.Describe(propertylist)
    其中,dwcontrol是数据窗口控件名称,propertylist是以空格分隔的特性或运算表达式列表,它用来报告列与图形对象的属性值。表达式可以用特定行与列的值进行运算。Describe函数返回的是一个字符串,该字符串是对指定属性的描述,不同的属性占用不同的行(不同属性用~n分隔)。如果有无效属性则返回该属性之前的属性取值和一个惊叹号(!)。如果某个属性没有值,则返回一个问号(?)。

    3.用数据窗口控件名.describe("Evaluate('计算公式',行号)") 理论上可以取到数据窗口里所有能用计算列计算的内容,如:
    1、取数据窗口的页数:
           dw_1.describe("Evaluate('pagecount()',1)")
    2、取DropDownDW列显示的值:
           dw_1.describe("Evaluate('lookupdisplay(列名)',行号)")
    3、取最小值:
           dw_1.describe("evaluate('min(billing_date_time)',1)")
    4、求合计:
           dw_1.describe("evaluate('sum(charges for all)',1)")
    4.根据从指定的子数据窗口中取对应值的显示值:
    /**************************************************************************
    |* 函  数: w_zydj_001::wf_get_dwchild_display()                           *|
    |*------------------------------------------------------------------------*|
    |* 描  述: 根据值寻找子数据窗口的显示值                                   *|
    |* 参  数:                                                                *|
    |*         value   datawindowchild   adwc_source       ;                  *|
    |*         value   string            as_value_col      ;                  *|
    |*         value   string            as_display_col    ;                  *|
    |*         value   string            as_value          ;                  *|
    |* 返回值: string                                                         *|
    |*------------------------------------------------------------------------*|
    |* 示  例:                                                                *|
    |*------------------------------------------------------------------------*|
    |* 作  者: 冬Sir      日  期: 2013-09-12                                 *|
    **************************************************************************/
    nuo_public_string lnv_string
    String ls_display_value
    IF NOT lnv_string.uf_isempty(as_value) THEN
        String ls_find_exp
        Long ll_find
        ls_find_exp = as_value_col + "='"  + as_value + "'"
        ll_find = adwc_source.Find(ls_find_exp,1,adwc_source.rowCount())
        IF ll_find > 0 THEN
            ls_display_value = adwc_source.getItemString(ll_find,as_display_col)
        ELSE
            ls_display_value =""
        END IF
    END IF
    
    RETURN ls_display_value

    5.显示各分组的序号 及 分组后每个分组中的序号

    a、如何显示各个分组的序号:
    建一个计算列,EXPRESSION设为countcumulativeSum(1   for   all   distinct   要分组的列名)
    或者cumulativeSum(if(city   =   city[-1],   0,   1)   for   all),其中all可改成要分组号 试试。

    b、如何设置datawindow分组后每个分组中的记录号?
    建立一个计算列,expression为   getrow()   -   first(getrow()   for   group   1)+1,其中 first(getrow()   for   group   1)这句话要好好理解,它其实是求的该分组当中的第一行,相当于min(getrow()   for   group   1),同理last(getrow()   for   group   1)、max(getrow()   for   group   1)则表示该分组当中的最后一行的行号。

    c、如何获取总分组数:
    1、方法一:
     建一个计算列,EXPRESSION设为 "count(要分组的列名   for   all   distinct) "
    2、方法二:
    dw_1.describe( "evaluate( 'count(要分组的列名   for   all   distinct) ', "+string(dw_1.rowcount())+ ") ")
    不能直接用ROWCOUNT()函数,:)
    或:
    dw_1.describe( "evaluate( 'countcumulativeSum(1   for   all   distinct   要分组的列名) ', "+string(dw_1.rowcount())+ ") ")

    5.获得在父类中的事件返回值

     在子类中的open中可以通过AncestorReturnValue获得在父类中的事件返回值

  • 相关阅读:
    Python 简单的方法爬取b站dnf视频封面
    Opencv学习(一)
    某个代码
    2017年江西理工大学C语言程序设计竞赛(高级组)
    2017年江西理工大学C语言程序设计竞赛(初级组)
    两数相除
    华东交通大学2017年ACM“双基”程序设计竞赛 1009
    华东交通大学2017年ACM“双基”程序设计竞赛 1005
    UE4联机多人游戏基本设置
    菜鸟学习物联网---辨析基于Andriod 5.1,Linux,Windows10开发Dragon Board 410c板
  • 原文地址:https://www.cnblogs.com/szxiaofei14/p/3287704.html
Copyright © 2011-2022 走看看