[]
Forguncy.Forguncy.ForguncyPage
页面对象。
• new ForguncyPage()
• AutoDisconnectTimeout: number
用户操作超时时间,将自动断开连接并释放并发用户数。
单位是分钟,默认值是0
,同时意味着永不自动断开。
如果修改为30
,用户未在页面进行任何操作,页面将在30
分钟后自动断开。
Example
// 将当前页面超时时间设置为30分钟。
Forguncy.Page.AutoDisconnectTimeout = 30;
▸ bind(eventType
, data?
, fn?
, targetPage?
): void
为页面绑定事件。可以给当前页面、指定页面或所有页面绑定事件。
Example
// 如果有两个页面:`Page1`和`Page2`
var loadedEvent = Forguncy.PageEvents.Loaded;
// 自定义参数
var text = "ready";
// 当前页面是页面1,在页面准备好后,将弹出提示框显示当前的页面名称。
Forguncy.Page.bind("loaded", function (arg1, arg2) {
alert(arg2.pageName);
});
// 当`Page1`准备好时,弹出提示框显示`Page1`的页面名称。
Forguncy.Page.bind("loaded", function (arg1, arg2) {
alert(arg2.pageName);
}, "");
// 当`Page1`准备好时,弹出自定义内容的提示框。
var text = "ready";
Forguncy.Page.bind("loaded", text, function (arg1, arg2) {
alert(arg1.data);
}, "Page1");
// 当`Page1`和`Page2`准备好时, 弹出框将显示它们的页面名称。
Forguncy.Page.bind("loaded", function (arg1, arg2) {
alert(arg2.pageName);
}, "*");
属性名 | 类型 | 说明 |
---|---|---|
eventType |
string |
表示页面事件类型的字符串。页面支持的事件请参考 PageEvents 类 。 |
data? |
any |
可选参数,如果不为忽略表示给事件处理函数传递的自定义参数。 |
fn? |
any |
事件处理函数。 |
targetPage? |
string |
页面的名称。如果绑定所有页面的事件,请使用* 。如果忽略,则绑定到当前页面。 |
void
▸ getCell(name
, includeSubPage?
): Cell
通过单元格名称获取单元格实例。
Example
// 下面的示例代码中,通过getCell方法,获取一个单元格实例,并设置单元格的值。
// 获取当前页面。
var page = Forguncy.Page;
// 获取单元格对象。
var cell = page.getCell("myCell");
// 设置单元格的值。
cell.setValue("活字格");
属性名 | 类型 | 说明 |
---|---|---|
name |
string |
单元格名称。 |
includeSubPage? |
boolean |
指定是否在子页面中查找单元格。默认为 true。 |
▸ getCellArray(name
, includeSubPage?
): Cell
[]
通过单元格名称获取一组单元格实例。
Example
// 获取当前页面
var page = Forguncy.Page;
// 获取单元格对象
var cell = page.getCellArray("myCell");
// 获取单元格实例的长度
var len = cell.length;
// 弹出警告框,显示单元格实例的长度
alert(len);
属性名 | 类型 | 说明 |
---|---|---|
name |
string |
单元格名称。 |
includeSubPage? |
boolean |
指定是否在子页面中查找单元格。默认为 true。 |
Cell
[]
▸ getCellByLocation(cellLocation
, printError?
): Cell
通过单元格的位置信息获取一个单元格对象。
Example
// 下面的示例代码中,通过getCellByLocation方法,获取一个单元格对象,并设置其单元格背景色。
// 获取当前页面
var page = Forguncy.Page;
// 获取单元格对象
var cell = page.getCellByLocation({
Row: 2,
Column: 3,
PageName: "页面1"
});
// 设置单元格的背景色为红色
var setColor = cell.setBackColor("red");
属性名 | 类型 | 说明 |
---|---|---|
cellLocation |
CellLocationInfo |
单元格的位置。 |
printError? |
boolean |
是否在控制台输出错误信息。 |
▸ getContainerCells(includeSubPage?
): ContainerCellBase
[]
获取所有选项卡和页面容器类型的单元格。
Example
var containerCells = Forguncy.Page.getContainerCells();
var subPage = containerCells[0].getContentPage();
属性名 | 类型 | 说明 |
---|---|---|
includeSubPage? |
boolean |
指定是否在子页面中查找单元格。默认为 true。 |
▸ getListView(name
, includeSubPage?
): ListView
通过表格名称获取表格实例。
Example
// 下面的示例代码中,通过getListView方法,获取页面中指定的表格。
// 获取当前页面
var page = Forguncy.Page;
// 获取表格对象
var listview = page.getListView("表格1");
// 获取表格的名称
var name = listview.getName();
// 弹出警告框,显示表格的名称
alert(name);
属性名 | 类型 | 说明 |
---|---|---|
name |
string |
表格名称。 |
includeSubPage? |
boolean |
指定是否在子页面中查找单元格。默认为 true。 |
▸ getListViewByLocation(targetCellLocation
): ListView
根据CellLocationInfo获取ListView,如果单元格位于表格内,则返回该表格。
Example
var formula = "=E8";
//通过Api获得公式代表的单元格位置。
var location = Forguncy.Helper.getCellLocation(formula, {});
//通过getListViewByLocation,传入刚才获取的location获取listview实例。
var listview = Forguncy.Page.getListViewByLocation(location);
//对listview实例进行操作。
listview.setText(0,0,"TextValue")
属性名 | 类型 | 说明 |
---|---|---|
targetCellLocation |
CellLocationInfo |
单元格的位置。 |
▸ getListViews(includeSubPage?
): ListView
[]
获取页面内所有的表格。
Example
// 下面的示例代码中,通过getListViews方法,获取页面中所有的表格。
// 获取当前页面
var page = Forguncy.Page;
// 获取表格对象
var listview = page.getListViews();
// 获取表格实例的长度
var len = listview.length;
// 弹出警告框,显示表格实例的长度
alert(len);
属性名 | 类型 | 说明 |
---|---|---|
includeSubPage? |
boolean |
指定是否在子页面中查找单元格。默认为 true。 |
ListView
[]
▸ getMasterPageName(): string
获取当前页面的母版页名称。
Example
// 下面的示例代码中,通过getMasterPageName方法,获取当前页面的母版页的名称。如果当前页没有母版页,则返回null。
// 获取当前页面
var page = Forguncy.Page;
// 获取当前页面的母版页名称
var masterPageName = page.getMasterPageName();
// 弹出警告框,显示母版页名称
alert(masterPageName);
string
▸ getPageName(): string
获取当前页面的名称。
Example
// 下面的示例代码中,通过getPageName方法,获取当前页面的名称。
// 获取当前页面
var page = Forguncy.Page;
// 获取当前页面名称
var pageName = page.getPageName();
// 弹出警告框,显示当前页面的名称
alert(pageName);
string
▸ getSubPageInfoByPageID(pageID
): SubPage
通过页面 ID
获取子页面。
属性名 | 类型 | 说明 |
---|---|---|
pageID |
string |
页面的唯一标识符。在浏览器中,每个父页面和子页面都有其唯一的ID 。 |
▸ getUserInfo(): UserInfo
获取当前登录用户的信息。
Example
// 下面的示例代码中,通过getUserInfo方法,获取当前登录用户详细信息。
// 获取当前页面
var page = Forguncy.Page;
// 获取当前登录用户的详细信息
var userInfo = page.getUserInfo();
// 弹出警告框,显示当前登录用户的详细信息
alert(JSON.stringify(userInfo, null, " "));
// 获取当前登录用户的用户名
var name = userInfo.UserName;
// 获取当前登录用户的角色
var role = userInfo.Role;
// 获取当前登录用户的全名
var fullName = userInfo.FullName;
▸ getUserName(): string
获取当前登录用户的用户名,如果用户没有登录则返回空值。
Example
// 下面的示例代码中,通过getUserName方法来获取用户名。
// 获取当前页面
var page = Forguncy.Page;
// 获取当前登录用户的用户名
var userName = page.getUserName();
// 弹出警告框,显示当前登录用户的用户名
alert(userName);
string
▸ ready(fn
): void
绑定当前页面的loaded
事件。
Example
// 下面的示例代码中,使用ready的方法,在ready方法的回调函数中加入页面处理逻辑,获得当前登录用户的用户名。
// 获取当前页面
var page = Forguncy.Page;
// 在ready方法的回调函数中加入页面处理逻辑
page.ready(function () {
// 绑定单元格button的事件
page.getCell("button").bind("click", function () {
// 弹出警告框,显示当前登录用户的用户名
alert(page.getUserName());
})
});
属性名 | 类型 | 说明 |
---|---|---|
fn |
Function |
事件处理函数。 |
void
▸ recalc(): void
强制触发页面所有公式重算。
Example
// 下面的示例代码中,使用recalc的方法,强行触发页面上所有的公式重新进行了计算。
// 获取当前页面
var page = Forguncy.Page;
// 强行触发页面上所有的公式重新进行计算
page.recalc();
void
▸ reloadBindingData(tableName?
): void
从当前页面中使用的表和视图中重新加载数据。
Example
// 下面的示例代码中,通过reloadBindingData方法,重新从数据库加载数据。
// 获取当前页面
var page = Forguncy.Page;
// 重新从数据库加载数据
page.reloadBindingData("表格1");
属性名 | 类型 | 说明 |
---|---|---|
tableName? |
string |
表名,如果忽略此参数,则重新加载所有表的数据。 |
void
▸ resumeCalc(): void
恢复页面的公式计算逻辑,通常在大量操作单元格之后使用。要和suspendCalc
方法成对使用。
Example
// 下面的示例代码中,使用resumeCalc的方法,恢复页面上所有的公式的计算。
// 获取当前页面
var page = Forguncy.Page;
// 恢复页面上公式的计算
page.resumeCalc();
void
▸ setCurrentRow(currentRowParam
): void
设置当前行。
Example
// 使用setCurrentRow方法,参数为CurrentRowInfoParam:
// 获取当前页面
var page = Forguncy.Page;
// 设置当前行
page.setCurrentRow(
{
// 当前行所在的表名
TableName: " 员工表",
// 当前行的查询条件
PrimaryKey: {
ID: 1
}
});
// 参数为CurrentRowInfoPluginParam,一般在插件开发中使用。比如,下面的代码是插件命令SetCurrentRowCommand的一部分实现:
SetCurrentRowCommand.prototype.execute = function () {
Forguncy.Page.setCurrentRow({
QueryCondition: this.CommandParam.CurrentRowInfo,
FormulaCalcContext: this.getFormulaCalcContext()
});
}
属性名 | 类型 | 说明 |
---|---|---|
currentRowParam |
CurrentRowInfoParam | CurrentRowInfoPluginParam |
当前行信息。 |
void
▸ suspendCalc(): void
挂起页面的公式计算逻辑,通常在大量操作单元格值之前使用,以获得更好的性能。
Example
// 下面的示例代码中,使用suspendCalc的方法,挂起页面上所有的公式,不进行计算。
// 获取当前页面
var page = Forguncy.Page;
// 暂停页面上公式的计算
page.suspendCalc();
void
▸ unbind(eventType
, fn?
, targetPage?
): void
取消特定事件的绑定。该方法能够移除被选的事件处理程序,或者当事件发生时终止指定函数的运行。
Example
// 下面的示例代码中,通过unbind方法,移除页面事件的绑定。
// 如果有两个页面:页面1和页面2。当前页面是页面1
var eventHandler = function (arg1, arg2) {
alert(arg2.pageName);
};
// 绑定事件
Forguncy.Page.bind("Loaded", eventHandler);
// 取消特定页面特定事件处理函数的绑定:
Forguncy.Page.unbind("Loaded", eventHandler, "页面1");
// 取消当前页面特定事件处理函数的绑定:
Forguncy.Page.unbind("Loaded", eventHandler);
// 取消当前页面某事件所有处理函数的绑定:
Forguncy.Page.unbind("Loaded");
// 取消绑定时targetPage传"*"的事件处理函数的绑定:
Forguncy.Page.unbind("Loaded", eventHandler, "*");
属性名 | 类型 | 说明 |
---|---|---|
eventType |
any |
表示页面事件类型的字符串。页面支持的事件请参考PageEvents 类 。 |
fn? |
Function |
事件处理函数。如果忽略,则取消绑定页面上该事件类型的所有处理函数。 |
targetPage? |
string |
页面的名称。如果取消绑定所有页面的事件,请使用* 。如果忽略,则取消绑定当前页面的事件。 |
void
▸ unbindAll(targetPage?
): void
取消页面上所有事件的绑定。
Example
// 下面的示例代码中,通过unbind方法,移除页面事件的绑定。
// 如果有两个页面:页面1和页面2。当前页面是页面1
var eventHandler = function (arg1, arg2) {
alert(arg2.pageName);
};
// 绑定事件
Forguncy.Page.bind("Loaded", eventHandler);
// 取消绑定到当前页面的所有事件
Forguncy.Page.unbindAll();
// 取消绑定页面1的所有事件
Forguncy.Page.unbindAll("页面1");
// 取消绑定所有全局事件
Forguncy.Page.unbindAll("*");
属性名 | 类型 | 说明 |
---|---|---|
targetPage? |
string |
页面的名称。如果绑定时targetPage 使用的是* 的,则仍然使用* 。如果忽略,则删除当前页面的所有绑定。 |
void