PB开发系统实用工具1-数据筛选功能

用户很多时候需要对查询出来的数据做小范围重复筛选,这时候Excel的数据筛选功能优势就出来了,本文利用PB自建一个类似的数据筛选功能。

1,新建一个Custom Visual对象,放入一个数据窗口控制,一个单行编辑框,两个checkbox以及两个按钮,新建一个数据窗口对象(外部数据源),三个字段即可,具体如下图,建好后面用户对象如图:

2,功能实现方法,在该对象增加几个实例变量,用户调用它的窗口对象、调用它的数据窗口控件,调用它的备用数据,当前列,过滤条件,具体如图:

3,具体代码(事件及函数),两个事件三个函数

4,运行效果,鼠标移动到列标题自动显示倒黑三角形

5,数据筛选,自动生成筛选下拉框

6,函数代码

//==============================================================================
// 函数: of_get_dw()
//------------------------------------------------------------------------------
// 描述:
//------------------------------------------------------------------------------
// 参数:
//        value    u_dw    adw_data        
//------------------------------------------------------------------------------
// 返回值:  integer
//------------------------------------------------------------------------------
// 作者:    zzx        日期: 2017.11.30
//==============================================================================
Blob lblb_data

idw_requst = adw_data

adw_data.GetFullState(lblb_data)

ids_requst.SetFullState(lblb_data)

Return 1

//==============================================================================
// 函数: of_set_data()
//------------------------------------------------------------------------------
// 描述:
//------------------------------------------------------------------------------
// 参数:
//        value    string    as_column        
//------------------------------------------------------------------------------
// 返回值:  integer
//------------------------------------------------------------------------------
// 作者:    zzx        日期: 2017.11.30
//==============================================================================
Any la_data
String ls_coltype,ls_coldisplay,ls_coldata,ls_column_type,ls_old_data
Long li_rc,i,li_row
Int li_find

li_row = ids_requst.RowCount()

If li_row > 0 Then
    ids_requst.SetSort(as_column + ' A')
    ids_requst.Sort()
    
    dw_filter.Reset()
    
    ls_coltype = Lower(ids_requst.Describe(as_column + ".ColType" ))
    ls_column_type = ids_requst.Describe(as_column+".Edit.Style")
    
    For i = 1 To li_row
        Choose Case Left(ls_coltype, 5)
            Case "char(", "char"
                la_data = ids_requst.GetItemString(i,as_column,primary!,Tru

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值