背景:
修改某些标准功能(非文件夹)表单表单时,客户希望表格宽度随窗体宽度变化,无需拖拉滚动条方便查看数据。
解决方法:
虽然Oracle Form的组件没有其他开发语言的组件哪此灵活比较好的体验,但是,随窗体宽度变化通过代码还是可以实现。主要思路方法如下:
1、获得窗体的宽度
2、设置主画布大小
3、设置堆叠画布大小
4、设置块的垂直滚动条
首先,我们找到表单层级的触发事件:WHEN-WINDOW-RESIZED ,编写如下代码:
DECLARE
Ln_Win_Width NUMBER; --窗体宽度
Ln_Canvas_Width NUMBER; --堆叠画布宽度
Ln_Pos_x NUMBER := 3; --堆叠画布x坐标
BEGIN
Ln_Win_Width := Get_Window_Property('WINDOWS_NAME', Width); --获得窗体宽度
--窗体宽度小于等于初始化设置宽度时
IF (Ln_Win_Width <= 10) THEN
--主画布的宽度
Set_Canvas_Property('MAIN_CANVAS_NAME', Width, 10);
--堆叠画布的宽度
Set_View_Property('CANVAS_STACKED', Width, 7);
--垂直滚动条x坐标=主画布宽度-垂直滚动条宽度
Set_Block_Property('BLOCK_NAME', Blockscrollbar_x_Pos, 9.79)