天天看点

PB_数据窗口展示数据问题

今天简单总结下PB数据窗口(DW)显示数据实现(不包含界面),如有不对地方,请大家多多指点,谢谢!

目标 : 实现如下图片的数据显示功能,并且在点击“学生信息列表(dw_userinfo_list)”某一行后要在“学生信息(dw_userinfo_detail)”显示该行记录的详细信息。

PB_数据窗口展示数据问题

准备====================================================走起!

1.  在db里创建学生信息表“userinfo_table”此处省略N多字。。。

2.  创建两个数据窗口:“dw_userinfo_free”and "dw_userinfo_grid"

e.g. "dw_userinfo_grid"

(1) NEW --> Datawindow(grid) --> sql select --> 选择相应表及字段 --> return --> 在select color and border settings界面直接next --> finish 

(2) 在dw编辑页面,对样式进行设置,省略N多字。。。

3.  分别在“学生信息列表”和“学生信息”的Dataobject里选择"dw_userinfo_grid"和“dw_userinfo_free”

4.  在open方法里添加如下代码:

dw_userinfo_list.settransobject(sqlca) //连接数据库
dw_userinfo_detail.settransobject(sqlca) //连接数据库
dw_userinfo_list.retrieve('%','%') //显示数据表里面的信息
           

5.  在 dw_userinfo_list的click方法添加如下代码:

dw_userinfo_detail.reset()

string ls_id
if row>0 then
	this.selectrow(0,false)
	this.selectrow(row,true)
	ls_id = this.object.userid[row]
	dw_userinfo_detail.retrieve(ls_id)
end if
           

6.  在 dw_userinfo_detail的constructor方法里添加如下代码;

this.reset()
           

7.  下面需要在" dw_userinfo_detail"对应的"dw_userinfo_free"里面设置参数及sql语句

(1) 在"dw_userinfo_free"页面点击 design --> data sourse 

(2) 设置一个参数 : design --> retrieve argument创建一个参数,类型选择string

(3) 在where tag里设置查询条件;在sort tag里设置排序。结果如下:

SELECT "ZHT_USERINFO_TABLE"."USERID",  
         "ZHT_USERINFO_TABLE"."USERNAME",  
         "ZHT_USERINFO_TABLE"."AGE",  
         "ZHT_USERINFO_TABLE"."SEX",  
         "ZHT_USERINFO_TABLE"."BIRTHDAY",  
         "ZHT_USERINFO_TABLE"."ADDR" 
    FROM "ZHT_USERINFO_TABLE" 
   WHERE "ZHT_USERINFO_TABLE"."USERID" = :s_id   //userid是前台语句中传参的参数,s_id是自己定义的变量,但是在语句中加冒号
ORDER BY "ZHT_USERINFO_TABLE"."USERID" ASC   //生成排序的语句,ASC表示ascending升序
           

8.  保存后运行