ChildDataTableClass流程子表管理类

ChildDataTableClass流程子表方法列表:

序号函数名称
返回值
函数说明
 1 ChildDataTableClass.GetDataRowUniqueKey(子行控件对象) 字符串 获得子表行的唯一标识
 2 ChildDataTableClass.AddRowByPosition(StartTRID, IsMetroForm) 字符串 添加新行
 3 ChildDataTableClass.AddRow(sender, IsMetroForm) 字符串 添加新行
 4 ChildDataTableClass.AddRowAfterRow(trobject, IsMetroForm) 字符串 添加新行
 5 ChildDataTableClass.AddRowByTableID(TableID, IsMetroForm) 字符串 添加新行
 6 ChildDataTableClass.ClearRow(ChildTableColumnCSSName, AutoCreateEmptyRow) 无 删除所有行
 7 ChildDataTableClass.DeleteRow(sender, ShowConfirm) 无 删除行
 8 ChildDataTableClass.GetLastEmptyRow(ContainerDIVID, CheckIfEmptyRowColumnCSSName, IsMetroForm) 字符串 自动检查子表最后一个空行,如果无,则自动创建一个空行,并返回DataRowUniqueKey
 9 ChildDataTableClass.GetValue(DataRowUniqueKey, ColumnCSSName) 字符串 获得子表控件的值
 10 ChildDataTableClass.SetValue(DataRowUniqueKey, ColumnCSSName, Value) 无 设置子表控件的值
 11 ChildDataTableClass.GetAllColumnNameList() 数组 获得子表的所有字段列表

 

ChildDataTableClass流程子表事件列表:

序号事件名称
事件说明
 1 PageDynamicObject.ChildDataTableConfig.AddRowSuccessCallBack 添加行事件回调
 2 PageDynamicObject.ChildDataTableConfig.DeleteRowSuccessCallBack 删除行事件回调

 

1、获得子表行的唯一标识

函数:ChildDataTableClass.GetDataRowUniqueKey(子行控件对象)

子行控件对象:子表行内的控件对象

返回: 字符串

 

2、ChildDataTableClass.AddRowByPosition添加新行

函数: ChildDataTableClass.AddRowByPosition(StartTRID, IsMetroForm)

StartTRID:指定tr行的ID

IsMetroForm:是否为metro风格

返回: 字符串,新创建的行的唯一标识

 

3、ChildDataTableClass.AddRow添加新行

函数: ChildDataTableClass.AddRow(sender, IsMetroForm)

sender:触发创建行的控件,即在当前触发事件控件下面创建新行

IsMetroForm:是否为metro风格

返回: 字符串,新创建的行的唯一标识

if (Element.GetValue($(".子表行 .产品编码").last()).length > 0)
{
  ChildDataTableClass.AddRow($(".子表行 .产品编码").last(), false);
}

 

4、ChildDataTableClass.AddRowAfterRow添加新行

函数: ChildDataTableClass.AddRowAfterRow(trobject, IsMetroForm)

trobject:行对象,在哪一行的下面创建新行

IsMetroForm:是否为metro风格

返回: 字符串,新创建的行的唯一标识

ChildDataTableClass.AddRowAfterRow($(".子表行").last(), false);

 

5、ChildDataTableClass.AddRowByTableID添加新行

函数: ChildDataTableClass.AddRowByTableID(TableID, IsMetroForm)

TableID:表格ID,在哪个表格下面添加新行

IsMetroForm:是否为metro风格

返回: 字符串,新创建的行的唯一标识

 

6、删除所有行

函数:ChildDataTableClass.ClearRow(ChildTableColumnCSSName, AutoCreateEmptyRow)

ChildTableColumnCSSName:子表某个字段的CSS名称,用于批量选择子表行

AutoCreateEmptyRow:删除所有的子表行后,是否自动创建一行空白行

返回: 无

//清空所有明细
PageDynamicObject.清空所有明细 = function ()
{
    ChildDataTableClass.ClearRow("产品编码", true);
    PageDynamicObject.ChildDataTableConfig.DeleteRowSuccessCallBack();
};

 

7、删除行

函数:ChildDataTableClass.DeleteRow(sender, ShowConfirm)

sender:触发删除行的控件,即删除当前控件所在的行

ShowConfirm:true/false,是否让用户确认删除

返回: 字符串

//删除其它同样编码的行
var DataRowUniqueKey = $(".产品编码", CurrentRowObject)[0].id.split("_").last();
var 产品编码 = Element.GetValue($(".产品编码", CurrentRowObject));
$(".产品编码").foreach(function (item, index)
{
    if (Element.GetValue($(item)) == 产品编码 && item.id.split("_").last() != DataRowUniqueKey)
    {
        PopupToastMessage("warning", 产品编码 + "已经添加过了,系统已自动删除了重复的记录!");
        ChildDataTableClass.DeleteRow(item, false);
    }
});

 

8、自动检查子表最后一个空行,如果无,则自动创建一个空行,并返回DataRowUniqueKey

函数:ChildDataTableClass.GetLastEmptyRow(ContainerDIVID, CheckIfEmptyRowColumnCSSName, IsMetroForm)

ContainerDIVID:子表容器的ID

CheckIfEmptyRowColumnCSSName:用于检测行是否为空的字段的CSS

IsMetroForm:是否为metro风格

返回: 字符串

var DataRowUniqueKey = ChildDataTableClass.GetLastEmptyRow("MainWorkFlowCSSTable", "产品编码", false);

 

9、获得子表控件的值

函数:ChildDataTableClass.GetValue(DataRowUniqueKey, ColumnCSSName)

DataRowUniqueKey:子表行的唯一标识

ColumnCSSName:字符的CSS

返回: 字符串

var DataRowUniqueKey = sender.id.split("_").last();
var 仓库 = ChildDataTableClass.GetValue(DataRowUniqueKey, "仓库");
if (仓库.length == 0)
{
  alert("请先选择仓库!");
}

 

10、设置子表控件的值

函数:ChildDataTableClass.SetValue(DataRowUniqueKey, ColumnCSSName, Value)

DataRowUniqueKey:子表行的唯一标识

ColumnCSSName:字符的CSS

Value:设置字段的值

返回: 无

ChildDataTableClass.SetValue(DataRowUniqueKey, "调入仓库", "");

 

11、获得子表的所有字段列表

函数:ChildDataTableClass.GetAllColumnNameList()

返回: 子表所有字符名称的数组

 

12、添加行事件回调

事件:PageDynamicObject.ChildDataTableConfig.AddRowSuccessCallBack

//添加行的回调
PageDynamicObject.ChildDataTableConfig.AddRowSuccessCallBack = function ()
{
    ScrollBarClass.Resize($("#产品清单层"));
};

 

13、删除行事件回调

事件:PageDynamicObject.ChildDataTableConfig.DeleteRowSuccessCallBack

//删除行的回调
PageDynamicObject.ChildDataTableConfig.DeleteRowSuccessCallBack = function ()
{
    if ($(".数量").length > 0)
    {
        $($(".数量")[0]).fireEvent("change");
    }
    else
    {
        Element.SetValue($(".合计数量"), "0");
    }

    if ($(".金额").length > 0)
    {
        $($(".金额")[0]).fireEvent("change");
    }
    else
    {
        Element.SetValue($(".合计金额"), "0");
    }

    ScrollBarClass.Resize($("#产品清单层"));
};