1。在要排序的块上建立:when-mouse-click trigger,代码:
:global.mouserecord := :system.mouse_record;
:global.mouseitem := :system.mouse_item;
2。建立排序弹出菜单
正排序,代码:sort_asc(substr(:global.mouseitem,1,instr(:global.mouseitem,'.')-1)); --括号内的是鼠标所在的块名
反排序,代码:sort_desc(substr(:global.mouseitem,1,instr(:global.mouseitem,'.')-1));
不排序,代码:sort_no(substr(:global.mouseitem,1,instr(:global.mouseitem,'.')-1));
3。建立三个排序程序单元:
PROCEDURE sort_asc(blockname varchar) IS
BEGIN
set_block_property(blockname,order_by,substr(:global.mouseitem,instr(:global.mouseitem,'.')+1,999));
go_block(blockname);
execute_query;
go_record(:global.mouserecord);
go_item(:global.mouseitem);
END;
PROCEDURE sort_desc(blockname varchar) IS
BEGIN
set_block_property(blockname,order_by,substr(:global.mouseitem,instr(:global.mouseitem,'.')+1,999)|| ' desc');
go_block(blockname);
execute_query;
go_record(:global.mouserecord);
go_item(:global.mouseitem);
END;
PROCEDURE sort_no(blockname varchar) IS
BEGIN
set_block_property(blockname,order_by,'');
go_block(blockname);
execute_query;
go_record(:global.mouserecord);
go_item(:global.mouseitem);
END;
4。在字段上指定弹出菜单的名称