";
_display_content += "
";
_display_content += "
";
_display_content += "
";
_display_content += " ";
_display_content += " 新增明細資料
";
_display_content += " ";
_display_content += " ";
_display_content += "
";
_display_content += "
";
_display_content += "
"
_display_content += "
"
_display_content += "
"
//_display_content += "
";
//_display_content += "
";
_display_content += "
";
_display_content += "
";
_display_content += "
";
//_display_content = _display_content.ReplaceAll("%events%", "");
//_display_content = _display_content.ReplaceAll("%name%", element_name );
//_display_content = _display_content.ReplaceAll("%param%", element_param);
//_display_content = _display_content.ReplaceAll("%url%", str_URL);
//_display_content = _display_content.ReplaceAll("%LEN%", LEN);
_display_content = _display_content.ReplaceAll("%detail%", str_TYPE);
_display_content = _display_content.ReplaceAll("%width%", LEN == "" ? "100%" : LEN);
try {
$(str_display_name).innerHTML = _display_content;
}
catch (e) {
alert(locales[l_key].clsForm.no_object + "display." + element_name);
}
// 定義取得value的function, 由 get_element_value 呼叫
function getValue(ele_name) {
return ""
}
function setValue(ele_name, ele_value) {
}
// 加入共用控制項
controls.add(element_name, getValue, setValue);
}
//***************************************************************************************************
this.create_timeselect = function (row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name)
//***************************************************************************************************
{
if (typeof(schema_dt) == "undefined")
{
var detail = false
var dt = this.dt;
}
else
{
var detail = true;
var dt = schema_dt;
}
var str_HEAD = dt.getValueByRow(row, "HEAD");
var _display_content = str_HEAD;
var str_NOT_NULL = dt.getValueByRow(row, "NOT_NULL");
var str_NUMERIC = dt.getValueByRow(row, "NUMERIC");
var str_TYPE = dt.getValueByRow(row, "TYPE");
var str_DECIMAL = dt.getValueByRow(row, "DECIMAL");
var str_LEN = dt.getValueByRow(row, "LEN");
var str_display_name = this.str_display_name;
var required = false;
var str_TAIL = dt.getValueByRow(row, "TAIL");
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
element_param += "size='%len%' maxlength='%len%'";
element_param = element_param.ReplaceAll("%len%", 2);
if (str_NOT_NULL == "1" && (this.str_namespace == "display.Edit.form" ||this.str_namespace == "display.AddNew.form")
&& element_disabled != "1")
{
required = true;
element_param += " style=\"border-color:red\"";
}
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
_display_content += "
";
// -----------------------------------------------------------------------------
_display_content2 = _display_content
_display_content = _display_content.ReplaceAll("%events%", "onkeyup='function (e) {autoTab(\"" + element_name + "_h\", \"" +element_name + "_m\",e);}'");
_display_content = _display_content.ReplaceAll("%name%", element_name + "_h");
_display_content = _display_content.ReplaceAll("%param%", element_param);
_display_content2 = _display_content2.ReplaceAll("%name%", element_name + "_m");
_display_content2 = _display_content2.ReplaceAll("%param%", element_param);
_display_content2 = _display_content2.ReplaceAll("%events%", "");
_display_content = _display_content + " : " + _display_content2
_display_content += str_TAIL;
if (required)
{
_display_content += this.required_mark;
} ;
try
{
$(str_display_name).innerHTML = _display_content;
}
catch (e)
{
alert(locales[l_key].clsForm.no_object + "display." + element_name);
}
// 定義取得value的function, 由 get_element_value 呼叫
function getValue(ele_name)
{
var _element = document.getElementsByName(ele_name+"_h");
var _element2 = document.getElementsByName(ele_name+"_m");
if (_element.length == 1 && _element2.length == 1)
{
if (_element[0].value == "" || _element2[0].value == "")
return ("");
else
return (parseInt(_element[0].value,10) * 60 + parseInt(_element2[0].value,10));
}
}
function setValue(ele_name, ele_value)
{
var _element = document.getElementsByName(ele_name+"_h");
var _element2 = document.getElementsByName(ele_name+"_m");
if (_element.length == 1 && _element2.length == 1)
{
if (ele_value == "")
{
_element[0].value="";
_element2[0].value="";
}
else
{
_element[0].value = Format(parseInt(ele_value / 60,10), "00");
_element2[0].value = Format(parseInt(ele_value % 60,10), "00");
}
}
}
// 加入共用控制項
controls.add(element_name, getValue, setValue);
}
//***************************************************************************************************
this.create_label = function (row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name)
//***************************************************************************************************
{
// 定義取得value的function, 由 get_element_value 呼叫
function getTelValue(ele_name) {
return $j("[name='" + ele_name + "']").text();
}
function setTelValue(ele_name, ele_value) {
$j("[name='" + ele_name + "']").text(ele_value);
$j("[name='" + ele_name + "']").attr("href", "tel:" + ele_value);
}
function setAddrValue(ele_name, ele_value) {
$j("[name='" + ele_name + "']").text(ele_value);
}
function setNumericValue(ele_name, ele_value) {
ele_value = FormatKendo(ele_value, str_LEN, str_DECIMAL);
$j("[name='" + ele_name + "']").val(ele_value);
}
function getNumericValue(ele_name) {
var ele_value = $j("[name='" + ele_name + "']").val();
return ele_value.ReplaceAll(",", "");
}
if (typeof (schema_dt) == "undefined") {
var detail = false
var dt = this.dt;
}
else {
var detail = true;
var dt = schema_dt;
}
var t_element_param = element_param;
var str_HEAD = dt.getValueByRow(row, "HEAD");
var _display_content = "";
var str_NOT_NULL = dt.getValueByRow(row, "NOT_NULL");
var str_NUMERIC = dt.getValueByRow(row, "NUMERIC");
var str_TYPE = dt.getValueByRow(row, "TYPE");
var str_DECIMAL = dt.getValueByRow(row, "DECIMAL");
var str_LEN = dt.getValueByRow(row, "LEN");
var str_display_name = this.str_display_name;
var str_TAIL = dt.getValueByRow(row, "TAIL");
var align_right = false;
switch (str_TYPE.toUpperCase()) {
case "String".toUpperCase():
case "Password".toUpperCase():
element_param = "size='%len%' maxlength='%len%'";
element_param = element_param.ReplaceAll("%len%", str_LEN);
break;
case "Numeric".toUpperCase():
var _length = parseInt(str_LEN, 10);
if (str_DECIMAL != "" && str_DECIMAL != "0")
_length += 1;
element_param = "size='%len%' maxlength='%len%' ";
element_param = element_param.ReplaceAll("%len%", _length);
// += " onblur=\"this.value=FormatKendo(this.value, " + str_LEN + ",'" + str_DECIMAL + "');\"";
controls.add(element_name, getNumericValue, setNumericValue);
align_right = true;
break;
case "Integer".toUpperCase():
element_param = "size='%len%' maxlength='%len%' ";
element_param = element_param.ReplaceAll("%len%", str_LEN);
align_right = true;
break;
case "Date".toUpperCase():
element_param = "size='%len%' maxlength='%len%'";
element_param = element_param.ReplaceAll("%len%", "8");
break;
case "Time".toUpperCase():
element_param = "size='%len%' maxlength='%len%'";
element_param = element_param.ReplaceAll("%len%", "5");
break;
case "DateTime".toUpperCase():
element_param = "size='20' maxlength='20'";
break;
case "tel".toUpperCase():
_display_content += str_HEAD;
_display_content += "
"
element_param = t_element_param;
// 加入共用控制項
controls.add(element_name, getTelValue, setTelValue);
break;
case "TextArea".toUpperCase():
_display_content += str_HEAD;
_display_content += "
"
element_param = t_element_param;
// 加入共用控制項
controls.add(element_name, getTelValue, setAddrValue);
break;
default:
element_param = "size='20' maxlength='20'";
break;
}
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
if (_display_content == "") {
element_param += " readonly style='border-width:0;" + (align_right ? "text-align:right;" : "") + "'" + " onfocus='this.blur()' tabindex=-1 " + t_element_param;
_display_content += str_HEAD;
if (str_TYPE.toUpperCase() == "PASSWORD")
_display_content += "
";
else
_display_content += "
";
}
_display_content = _display_content.ReplaceAll("%name%", element_name);
_display_content = _display_content.ReplaceAll("%param%", element_param);
_display_content += str_TAIL;
try {
$(str_display_name).innerHTML = _display_content;
}
catch (e) {
alert(locales[l_key].clsForm.no_object + "display." + element_name);
}
}
//***************************************************************************************************
this.create_password = function (row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name)
//***************************************************************************************************
{
if (typeof(schema_dt) == "undefined")
{
var detail = false
var dt = this.dt;
}
else
{
var detail = true;
var dt = schema_dt;
}
var required = false;
var str_HEAD = dt.getValueByRow(row, "HEAD");
var _display_content = str_HEAD;
var str_NOT_NULL = dt.getValueByRow(row, "NOT_NULL");
var str_NUMERIC = dt.getValueByRow(row, "NUMERIC");
var str_TYPE = dt.getValueByRow(row, "TYPE");
var str_LEN = dt.getValueByRow(row, "LEN");
var str_display_name = this.str_display_name;
var required = false;
var str_TAIL = dt.getValueByRow(row, "TAIL");
switch (str_TYPE.toUpperCase())
{
case "String".toUpperCase():
case "Numeric".toUpperCase():
element_param += "size='%len%' maxlength='%len%'";
element_param += element_param.ReplaceAll("%len%", str_LEN);
break;
case "DateTime".toUpperCase():
element_param += "size='20' maxlength='20'";
break;
default:
element_param += "size='20' maxlength='20'";
break;
}
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
if (str_NOT_NULL == "1" && (this.str_namespace == "display.Edit.form" ||this.str_namespace == "display.AddNew.form")
&& element_disabled != "1")
{
element_param += " style=\"border-color:red\"";
required = true;
}
var str_display_name = this.str_display_name;
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
_display_content += "
";
_display_content = _display_content.ReplaceAll("%name%", element_name);
_display_content = _display_content.ReplaceAll("%param%", element_param);
_display_content += str_TAIL;
if (required)
{
_display_content += this.required_mark;
} ;
$(str_display_name).innerHTML = _display_content;
}
//***************************************************************************************************
this.create_textarea = function (row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name)
//***************************************************************************************************
{
if (typeof(schema_dt) == "undefined")
{
var detail = false
var dt = this.dt;
}
else
{
var detail = true;
var dt = schema_dt;
}
var str_HEAD = dt.getValueByRow(row, "HEAD");
var _display_content = new StringBuilder();
_display_content.Append(str_HEAD);
var required = false;
var str_NOT_NULL = dt.getValueByRow(row, "NOT_NULL");
var str_NUMERIC = dt.getValueByRow(row, "NUMERIC");
var str_TYPE = dt.getValueByRow(row, "TYPE");
var str_LEN = dt.getValueByRow(row, "LEN");
var str_display_name = this.str_display_name;
var str_TAIL = dt.getValueByRow(row, "TAIL");
if (element_param == "")
{
switch (str_TYPE.toUpperCase())
{
case "String".toUpperCase():
case "Numeric".toUpperCase():
element_param = "cols='%cols%' rows='%rows%'";
element_param = element_param.ReplaceAll("%cols%", str_LEN);
break;
case "DateTime".toUpperCase():
element_param = "cols='20' rows='3'";
break;
case "Editor".toUpperCase():
element_param = "style='width: 100%; height: 600'";
break;
default:
element_param = "cols='50' rows='10'";
break;
}
}
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
if (str_NOT_NULL == "1"
&& element_disabled != "1") {
element_param += " style=\"border-color:red\"";
required = true;
}
var str_display_name = this.str_display_name;
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
if (str_TYPE.toUpperCase() == "Editor".toUpperCase())
{
_display_content.Append("
");
}
else
_display_content.Append( "
");
_display_content.replace("%name%", element_name);
_display_content.replace("%param%", element_param);
_display_content.replace("%len%", str_LEN);
_display_content.Append(str_TAIL);
if (required)
{
_display_content.Append(this.required_mark);
} ;
$(str_display_name).innerHTML = _display_content.ToString();
// 定義取得value的function, 由 get_element_value 呼叫
function getValue(ele_name)
{
var ele = "__" + ele_name;
ele = ele.ReplaceAll("\\.", "");
return eval(ele + ".getHTML()");
}
function setValue(ele_name, ele_value)
{
var ele = "__" + ele_name;
ele = ele.ReplaceAll("\\.", "");
// eval(ele + ".setFullHTML(\"" + ele_value + "\");")
eval(ele + ".setFullHTML(ele_value);")
}
// 加入共用控制項
if (str_TYPE.toUpperCase() == "Editor".toUpperCase()) controls.add(element_name, getValue, setValue);
}
//***************************************************************************************************
this.create_button = function (row, element_name, element_param)
//***************************************************************************************************
{
var dt = this.dt;
var _display_content = "";
var str_display_name = this.str_display_name;
var linkurl = dt.getValueByRow(row, "LINKURL");
var title = dt.getValueByRow(row, "TITLE");
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
_display_content = "
";
_display_content = _display_content.ReplaceAll("%name%", element_name);
_display_content = _display_content.ReplaceAll("%title%", title);
_display_content = _display_content.ReplaceAll("%param%", element_param);
$(str_display_name).innerHTML = _display_content;
if (linkurl != "") {
var dialog = "1";
var linkurl_param = dt.getValueByRow(row, "LINKURL_PARAM");
var linkurl_addnew = dt.getValueByRow(row, "LINKURL_ADDNEW");
var linkurl_edit = dt.getValueByRow(row, "LINKURL_EDIT");
var linkurl_iframe = dt.getValueByRow(row, "LINKURL_IFRAME");
set_element_event(element_name , "onclick", function () {
display_linkurl(linkurl, linkurl_param, linkurl_addnew, linkurl_edit, linkurl_iframe);
});
}
}
//***************************************************************************************************
this.create_dbbutton = function(row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name)
//***************************************************************************************************
{
if (typeof (schema_dt) == "undefined") {
var detail = false
var dt = this.dt;
}
else {
var detail = true;
var dt = schema_dt;
}
var str_HEAD = dt.getValueByRow(row, "HEAD");
var str_TAIL = dt.getValueByRow(row, "TAIL");
var _display_content = "";
var str_display_name = this.str_display_name;
var linkurl = dt.getValueByRow(row, "LINKURL");
var title = dt.getValueByRow(row, "TITLE");
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
_display_content = str_HEAD + "
" + str_TAIL;
_display_content = _display_content.ReplaceAll("%name%", element_name);
_display_content = _display_content.ReplaceAll("%title%", title);
_display_content = _display_content.ReplaceAll("%param%", element_param);
_display_content = _display_content.ReplaceAll("%detail_row%", detail_row);
$(str_display_name).innerHTML = _display_content;
// 定義取得value的function, 由 get_element_value 呼叫
function getValue(ele_name) {
return $(ele_name).value;
}
function setValue(ele_name, ele_value) {
if (ele_value == "")
$(ele_name).style.display = "none";
else
$(ele_name).style.display = "";
$(ele_name).value = ele_value;
}
controls.add(element_name, getValue, setValue);
}
//***************************************************************************************************
this.create_listbox = function (row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name, cache)
//***************************************************************************************************
{
if (typeof (cache) == "undefined") cache = false;
var str_result = "";
var SYS_LIST_ITEM = null;
var _display_content = "";
var required = false;
if (typeof (schema_dt) == "undefined") {
var detail = false
var dt = this.dt;
}
else {
var detail = true;
var dt = schema_dt;
}
var LIST_DATA = dt.getValueByRow(row, "LIST_DATA");
var TYPE = dt.getValueByRow(row, "TYPE");
var transfer = false;
if (TYPE.toUpperCase() == "TRANSFER") transfer = true;
if (transfer) element_param = " multiple style='height:200px' ";
var str_HEAD = dt.getValueByRow(row, "HEAD");
var str_TAIL = dt.getValueByRow(row, "TAIL");
var _display_content = str_HEAD;
var _display_content = "";
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
var str_not_null = dt.getValueByRow(row, "NOT_NULL");
var _dt = new DataTable();
var linkurl = dt.getValueByRow(row, "LINKURL");
SYS_LIST_ITEM = dt.getValueByRow(row, "SYS_LIST_ITEM").split(",");
if (element_param == "")
element_param = "size='1'"
if (str_not_null == "1" && (this.str_namespace == "display.Edit.form" || this.str_namespace == "display.AddNew.form")
&& element_disabled != "1") {
element_param += " style=\"border-color:red\"";
required = true;
}
var str_display_name = this.str_display_name;
if (!detail) {
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
}
if (str_url != "") {
str_url = str_url.ReplaceAll("%str_page_name%", str_page_name);
try {
str_result = _dt.connect(str_url, str_element_list, true);
}
catch (e) {
window.status = "create_listbox DataTable.connect() error!";
return (false);
}
if (!detail) {
_display_content += _dt.getListBox(element_name, element_param, "0", "1");
//_display_content += str_TAIL;
if (required) {
_display_content += this.required_mark;
};
$(str_display_name).innerHTML = _display_content;
}
}
var selected_name = element_name + "_selected";
var list_var = "";
if ((SYS_LIST_ITEM[0] != "" || LIST_DATA != "") && str_url == "") {
try {
if (detail) {
var t_list = str_element_list.split(",");
for (var i = 0; i < t_list.length; i++) {
if (t_list[i].indexOf("Detail") >= 0)
t_list[i] += "_" + (detail_row + 1).toString();
else {
if (get_element_value(t_list[i]) == "" && t_list[i].indexOf("Edit.") >= 0) {
var e_name = o_EditForm.form.dt_schema.getValueByIndex("ELE_NAME", t_list[i], "NAME");
set_element_value(t_list[i], o_EditForm.dt_data.getValue(e_name));
}
}
}
str_element_list = t_list.join(",");
// str_element_list += "_" + (detail_row + 1).toString();
}
if (LIST_DATA != "") {
if (LIST_DATA.indexOf("=") > 0) {
list_var = LIST_DATA.split("=")[0];
LIST_DATA = LIST_DATA.substring(LIST_DATA.indexOf("=") + 1, LIST_DATA.length);
_dt = this.load_DATA_ListItem(LIST_DATA);
_list_data[list_var] = _dt.getListBox("%" + list_var + "%", element_param, "0", "1", str_not_null);
}
else if (LIST_DATA.indexOf("$") >= 0) {
list_var = LIST_DATA.substring(1, LIST_DATA.length);
}
else {
_dt = this.load_DATA_ListItem(LIST_DATA);
}
}
else
_dt = this.load_SYS_ListItem(SYS_LIST_ITEM[0], str_page_name, str_element_list, str_element_list, "&listname=" + SYS_LIST_ITEM[1], cache)
if (_dt.getValue("flg_error") == "1") {
alert(_dt.getValue("message"));
return (false);
}
}
catch (e) {
window.status = "create_listbox DataTable.connect() error!";
return (false);
}
if (!detail) {
if (list_var != "")
_display_content += str_HEAD + _list_data[list_var].ReplaceAll("%" + list_var + "%", element_name);
else
_display_content += str_HEAD + _dt.getListBox(element_name, element_param, "0", "1", str_not_null);
_display_content = _display_content.ReplaceAll("\n", "");
if (linkurl != "" && element_disabled != "1") {
_display_content += "

";
}
if (transfer) { // 設定兩欄式
_display_content = "
可挑選項目 " + _display_content + " | "
var button = " | "
button = button.ReplaceAll("%button1%", element_name + "_button1");
button = button.ReplaceAll("%button2%", element_name + "_button2");
button = button.ReplaceAll("%button3%", element_name + "_button3");
button = button.ReplaceAll("%button4%", element_name + "_button4");
_display_content += button;
var selected_html = "已挑選項目 |
";
selected_html = selected_html.ReplaceAll("%name%", selected_name);
_display_content += selected_html;
}
_display_content += str_TAIL;
if (required) {
_display_content += this.required_mark;
};
$(str_display_name).innerHTML = _display_content;
// $j("[name='" + element_name + "']").kendoDropDownList();
// controls.add(element_name, getListValue, setListValue);
}
if (transfer) {
var ele_name = element_name;
$j("[name='" + element_name + "']").dblclick(function () {
if ($j("[name='" + element_name + "']").attr("disabled")) return;
$j("[name='" + ele_name + "'] option:selected").next().attr("selected", true).end().remove().appendTo("[name='" + selected_name + "']").attr("selected", false);
var my_options = $j("[name='" + selected_name + "'] option");
my_options.sort(function (a, b) {
return parseInt(a.order) > parseInt(b.order) ? 1 : -1;
});
$j("[name='" + selected_name + "']").empty().append(my_options);
return false;
}
);
$j("[name='" + selected_name + "']").dblclick(function () {
if ($j("[name='" + element_name + "']").attr("disabled")) return;
$j("[name='" + selected_name + "'] option:selected").next().attr("selected", true).end().remove().appendTo("[name='" + ele_name + "']").attr("selected", false);
var my_options = $j("[name='" + ele_name + "'] option");
my_options.sort(function (a, b) {
return parseInt(a.order) > parseInt(b.order) ? 1 : -1;
});
$j("[name='" + ele_name + "']").empty().append(my_options);
// $j("[name='" + selected_name + "'] option:first").attr("selected", true);
return false;
}
);
$j("[id='" + element_name + "_button1']").button({ icons: {
primary: 'ui-icon-arrowthick-1-e'
},
text: false
}).click(function () {
if ($j("[name='" + element_name + "']").attr("disabled")) return;
$j("[name='" + ele_name + "'] option:selected").next().attr("selected", true).end().remove().appendTo("[name='" + selected_name + "']").attr("selected", false);
var my_options = $j("[name='" + selected_name + "'] option");
my_options.sort(function (a, b) {
return parseInt(a.order) > parseInt(b.order) ? 1 : -1;
});
$j("[name='" + selected_name + "']").empty().append(my_options);
// $j("[name='" + ele_name + "'] option:first").attr("selected", true);
return false;
}
);
$j("[id='" + element_name + "_button2']").button({ icons: {
primary: 'ui-icon-arrowthick-1-w'
},
text: false
}).click(function () {
if ($j("[name='" + element_name + "']").attr("disabled")) return;
$j("[name='" + selected_name + "'] option:selected").next().attr("selected", true).end().remove().appendTo("[name='" + ele_name + "']").attr("selected", false);
var my_options = $j("[name='" + ele_name + "'] option");
my_options.sort(function (a, b) {
return parseInt(a.order) > parseInt(b.order) ? 1 : -1;
});
$j("[name='" + ele_name + "']").empty().append(my_options);
// $j("[name='" + selected_name + "'] option:first").attr("selected", true);
return false;
}
);
$j("[id='" + element_name + "_button3']").button({ icons: {
primary: 'ui-icon-seek-next'
},
text: false
}).click(function () {
if ($j("[name='" + element_name + "']").attr("disabled")) return;
$j("[name='" + ele_name + "'] option").remove().appendTo("[name='" + selected_name + "']").attr("selected", false);
var my_options = $j("[name='" + selected_name + "'] option");
my_options.sort(function (a, b) {
return parseInt(a.order) > parseInt(b.order) ? 1 : -1;
});
$j("[name='" + selected_name + "']").empty().append(my_options);
return false;
}
);
$j("[id='" + element_name + "_button4']").button({ icons: {
primary: 'ui-icon-seek-prev'
},
text: false
}).click(function () {
if ($j("[name='" + element_name + "']").attr("disabled")) return;
$j("[name='" + selected_name + "'] option").remove().appendTo("[name='" + ele_name + "']").attr("selected", false);
var my_options = $j("[name='" + ele_name + "'] option");
my_options.sort(function (a, b) {
return parseInt(a.order) > parseInt(b.order) ? 1 : -1;
});
$j("[name='" + ele_name + "']").empty().append(my_options);
return false;
}
);
controls.add(element_name, getValue, setValue);
}
// 定義取得value的function
function getListValue(ele_name) {
return $j("[name='" + ele_name + "']").data("kendoDropDownList").value();
}
function setListValue(ele_name, ele_value) {
$j("[name='" + ele_name + "']").data("kendoDropDownList").value(ele_value);
}
function getValue(ele_name) {
var a = new Array();
$j("[name='" + selected_name + "'] option").each(function () {
a.push($j(this).val());
}
);
return a.join(",");
}
function setValue(ele_name, ele_value) {
$j("[name='" + selected_name + "'] option").remove().appendTo($j("[name='" + ele_name + "']")).attr("selected", false);
$j("[name='" + ele_name + "']").val(ele_value.split(","));
$j("[name='" + ele_name + "'] option:selected").remove().appendTo("[name='" + selected_name + "']").attr("selected", false);
var my_options = $j("[name='" + selected_name + "'] option");
my_options.sort(function (a, b) {
return parseInt(a.order) > parseInt(b.order) ? 1 : -1;
});
$j("[name='" + selected_name + "']").empty().append(my_options);
my_options = $j("[name='" + ele_name + "'] option");
my_options.sort(function (a, b) {
return parseInt(a.order) > parseInt(b.order) ? 1 : -1;
});
$j("[name='" + ele_name + "']").empty().append(my_options);
$j("[name='" + ele_name + "'] option:first").attr("selected", true);
$j("[name='" + selected_name + "'] option:first").attr("selected", true);
if ($j("[name='" + ele_name + "'] option").size() <= 0) $j("[name='" + ele_name + "']").width("150")
if ($j("[name='" + selected_name + "'] option").size() <= 0) $j("[name='" + selected_name + "']").width("150")
}
// 加入共用控制項
if (linkurl != "" && element_disabled != "1") {
var dialog = "1";
set_element_event(element_name + ".link", "onclick", function () {
var url = "/" + COMPANY_CODE + "/" + COMPANY_CODE + "/ToPage.aspx?SN=" + linkurl;
var url2 = "__"
try { url2 = get_linkurl_url(element_name, url) } catch (ex) { };
if (typeof (url2) != "undefined" && url2 != "__") url = url2;
if (url == "") return;
display_linkurl(linkurl, "", "", "", {
open_by_window: false, // true : window.open , false : dialog
iframe: "",
height: 760,
width: 800,
onclose: function () {
if (element_name.substring(0, 1) == "A")
o_AddNewForm.form.refresh_listbox(element_name, "Y");
else
o_EditForm.form.refresh_listbox(element_name, "Y");
}
});
});
}
if (str_element_list != "") {
// controls.add(element_name, get_cas_value, set_cas_value);
var obj = this;
var elements = str_element_list.split(",");
if (this.functions == null) this.functions = new Array()
if ((element_name.indexOf("Edit.") >= 0 || element_name.indexOf("AddNew.") >= 0 || element_name.indexOf("Search.") >= 0) && this.refreshing_listbox == false && !detail) {
var setValue2 = function (e_name, _value) {
var disabled = $j("[name='" + e_name + "']").attr("disabled")
obj.refresh_listbox(e_name);
$j("[name='" + e_name + "']").val(_value);
if ($j("[name='" + e_name + "']").val() == null)
$j("[name='" + e_name + "'] option:first").prop("selected", true);
if (disabled) $j("[name='" + e_name + "']").attr("disabled", true);
};
var getValue2 = function (e_name) {
return ($j("[name='" + e_name + "']").val());
}
controls.add(element_name, getValue2, setValue2);
}
if (typeof (this.event_defined[element_name]) == "undefined") {
var ele = str_element_list.split(",").pop();
$j(document).on("change", "[name='" + ele + "']", function () { obj.refresh_listbox(element_name); $j("[name='" + element_name + "']").trigger("change"); });
this.event_defined[element_name] = true;
}
}
}
list_dt[element_name] = _dt;
return (_dt);
}
//***************************************************************************************************
this.create_subc = function (row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name, cache)
//***************************************************************************************************
{
if (typeof (cache) == "undefined") cache = false;
var str_result = "";
var SYS_LIST_ITEM = null;
var _display_content = "";
var required = false;
if (typeof (schema_dt) == "undefined") {
var detail = false
var dt = this.dt;
}
else {
var detail = true;
var dt = schema_dt;
}
var TYPE = dt.getValueByRow(row, "TYPE");
var str_HEAD = dt.getValueByRow(row, "HEAD");
var str_TAIL = dt.getValueByRow(row, "TAIL");
var _display_content = str_HEAD;
var _display_content = "";
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
var str_not_null = dt.getValueByRow(row, "NOT_NULL");
var _dt = new DataTable();
if (element_param == "")
element_param = "size='1'"
if (str_not_null == "1" && (this.str_namespace == "display.Edit.form" || this.str_namespace == "display.AddNew.form")
&& element_disabled != "1") {
element_param += " style=\"border-color:red\"";
required = true;
}
var str_display_name = this.str_display_name;
var str_element_list = "";
if (!detail) {
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
}
str_url = "/" + COMPANY_CODE + "/" + COMPANY_CODE + "/PG0M00.aspx?AJAX=1&do_action=AJAX_GET_SUBC"
try {
str_result = _dt.connect(str_url, str_element_list, true);
}
catch (e) {
window.status = "create_listbox DataTable.connect() error!";
return (false);
}
element_param += "data-placeholder='分公司或單位(可多選)'"
if (!detail) {
_display_content += _dt.getListBox(element_name, element_param, "0", "1");
//_display_content += str_TAIL;
if (required) {
_display_content += this.required_mark;
};
$(str_display_name).innerHTML = _display_content;
}
var subc = $j("[name='" + element_name + "']").kendoMultiSelect().data("kendoMultiSelect");
$j(".k-multiselect-wrap > .k-input").attr("readonly","readonly");
list_dt[element_name] = _dt;
controls.add(element_name, getValue, setValue);
function getValue(ele_name) {
return $j("[name='" + ele_name + "']").data("kendoMultiSelect").value().join(",");
}
function setValue(ele_name, ele_value) {
$j("[name='" + ele_name + "']").data("kendoMultiSelect").value(ele_value.split(","));
}
return (_dt);
}
this.refresh_listbox = function (element_name, keep_value, row_no) {
this.refreshing_listbox = true;
var dt = this.dt;
var oldV = "";
if (typeof (keep_value) != "undefined") {
try { oldV = get_element_value(element_name) } catch (e) { };
};
// console.log("refresh:" + element_name);
var row = dt.Search("ELE_NAME", element_name);
if (row != -1) {
var str_url = dt.getValueByRow(row, "URL");
var str_element_list = dt.getValueByRow(row, "ELE_LIST");
var element_param = dt.getValueByRow(row, "ELE_PARAM");
if (keep_value == "D")
var _dt = this.create_listbox(row, element_name, element_param, str_url, str_element_list, dt, row_no - 1, "", "", "", true);
else
var _dt = this.create_listbox(row, element_name, element_param, str_url, str_element_list);
dt.setValueByRow(row, "DATA", _dt);
if (keep_value == "D") {
// if (get_element_value(str_element_list + + "_" + row_no.toString()) == "")
// $(element_name + "_" + row_no.toString()).options.length = 0;
// else
_dt.setListBoxOption(element_name + "_" + row_no.toString(), "", "Value", "Label", "0", "0");
/* var sel = $j("[name='" + element_name + "_" + row_no.toString() + "']");
sel.find("option[value='']").text(""); */
}
if (oldV != "")
set_element_value(element_name, oldV);
if (dt.getValueByRow(row, "ELE_DISABLED") != "")
set_element_disabled(element_name);
this.refreshing_listbox = false;
return (true);
}
else {
this.refreshing_listbox = false;
return (false);
}
}
//***************************************************************************************************
this.create_checkbox = function (row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name)
//***************************************************************************************************
{
var _display_content = "";
var str_result = "";
var SYS_LIST_ITEM = null;
var required = false;
var list_var = "";
if (typeof(schema_dt) == "undefined")
{
var detail = false
var dt = this.dt;
}
else
{
var detail = true;
var dt = schema_dt;
}
var str_HEAD = dt.getValueByRow(row, "HEAD");
var str_NO_TD = dt.getValueByRow(row, "NO_TD");
var LIST_DATA = dt.getValueByRow(row, "LIST_DATA");;
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
var str_not_null = dt.getValueByRow(row, "NOT_NULL");
var _dt = new DataTable();
SYS_LIST_ITEM = dt.getValueByRow(row, "SYS_LIST_ITEM").split(",");
if (str_not_null == "1" && (this.str_namespace == "display.Edit.form" ||this.str_namespace == "display.AddNew.form")
&& element_disabled != "1")
{
element_param += " style=\"border-color:red\"";
required = true;
}
if (element_param == "")
element_param = "size='1'";
var str_display_name = this.str_display_name;
if (!detail)
{
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
}
if (str_url != "")
{
str_url = str_url.ReplaceAll("%str_page_name%", str_page_name);
try
{
str_result = _dt.connect(str_url, str_element_list);
}
catch (e)
{
window.status = "create_checkbox DataTable.connect() error!";
return (false);
}
_display_content = _dt.getListBox(element_name, element_param, "0", "1");
$(str_display_name).innerHTML = _display_content;
}
if ((SYS_LIST_ITEM[0] != "" || LIST_DATA != "") && str_url == "")
{
try
{
if (LIST_DATA != "")
{
if (LIST_DATA.indexOf("=") > 0)
{
list_var = LIST_DATA.split("=")[0];
LIST_DATA = LIST_DATA.substring(LIST_DATA.indexOf("=") + 1, LIST_DATA.length);
_dt = this.load_DATA_ListItem(LIST_DATA);
if (str_NO_TD != "")
_list_data[list_var] = _dt.getCheckBox("%" +list_var + "%" , element_param, "Value", "Label", 4, "", true);
else
_list_data[list_var] = _dt.getCheckBox("%" +list_var + "%" , element_param, "Value", "Label", 4, "", false);
}
else if (LIST_DATA.indexOf("$") >=0 )
{
list_var = LIST_DATA.substring(1, LIST_DATA.length);
}
else
{
_dt = this.load_DATA_ListItem(LIST_DATA);
}
}
else
_dt = this.load_SYS_ListItem(SYS_LIST_ITEM[0], str_page_name, str_element_list, str_element_list, "&listname="+SYS_LIST_ITEM[1])
if (_dt.getValue("flg_error") == "1")
{
alert(_dt.getValue("message"));
return (false);
}
}
catch (e)
{
window.status = "create_checkbox DataTable.connect() error!";
return (false);
}
if (!detail)
{
if (list_var != "")
_display_content += _list_data[list_var].ReplaceAll("%"+list_var+"%", element_name );
else
{
if (str_NO_TD != "")
_display_content += _dt.getCheckBox(element_name, element_param, "Value", "Label", 4, "", true);
else
_display_content += _dt.getCheckBox(element_name, element_param, "Value", "Label", 4, "", false);
}
if (required)
{
_display_content += this.required_mark;
} ;
$(str_display_name).innerHTML = str_HEAD + _display_content;
}
}
return (_dt);
}
//***************************************************************************************************
this.create_radiobutton = function (row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name)
//***************************************************************************************************
{
var _display_content = "";
var list_var = "";
var str_result = "";
var SYS_LIST_ITEM = null;
var required = false;
if (typeof(schema_dt) == "undefined")
{
var detail = false
var dt = this.dt;
}
else
{
var detail = true;
var dt = schema_dt;
}
var str_HEAD = dt.getValueByRow(row, "HEAD");
var str_NO_TD = dt.getValueByRow(row, "NO_TD");
var LIST_DATA = dt.getValueByRow(row, "LIST_DATA");;
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
var str_not_null = dt.getValueByRow(row, "NOT_NULL");
var _dt = new DataTable();
SYS_LIST_ITEM = dt.getValueByRow(row, "SYS_LIST_ITEM").split(",");
if (str_not_null == "1" && (this.str_namespace == "display.Edit.form" ||this.str_namespace == "display.AddNew.form")
&& element_disabled != "1")
{
element_param += " style=\"border-color:red\"";
required = true;
}
if (element_param == "")
element_param = "size='1'"
var str_display_name = this.str_display_name;
if (!detail)
{
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
}
if (str_url != "")
{
str_url = str_url.ReplaceAll("%str_page_name%", str_page_name);
try
{
str_result = _dt.connect(str_url, str_element_list);
}
catch (e)
{
window.status = "radiobutton DataTable.connect() error!";
return (false);
}
_display_content = _dt.getListBox(element_name, element_param, "0", "1");
$(str_display_name).innerHTML = _display_content;
}
if ((SYS_LIST_ITEM[0] != "" || LIST_DATA != "") && str_url == "")
{
try
{
if (LIST_DATA != "")
{
if (LIST_DATA.indexOf("=") > 0)
{
list_var = LIST_DATA.split("=")[0];
LIST_DATA = LIST_DATA.substring(LIST_DATA.indexOf("=") + 1, LIST_DATA.length);
_dt = this.load_DATA_ListItem(LIST_DATA);
if (str_NO_TD != "")
_list_data[list_var] = _dt.getRadioButton("%" +list_var + "%", element_param, "Value", "Label", 4, true);
else
_list_data[list_var] = _dt.getRadioButton("%" +list_var + "%", element_param, "Value", "Label", 4, false);
}
else if (LIST_DATA.indexOf("$") >=0 )
{
list_var = LIST_DATA.substring(1, LIST_DATA.length);
}
else
{
_dt = this.load_DATA_ListItem(LIST_DATA);
}
}
else {
_dt = this.load_SYS_ListItem(SYS_LIST_ITEM[0], str_page_name, str_element_list, str_element_list, "&listname="+SYS_LIST_ITEM[1])
}
if (_dt.getValue("flg_error") == "1")
{
alert(_dt.getValue("message"));
return (false);
}
}
catch (e)
{
window.status = "radiobutton DataTable.connect() error!";
return (false);
}
if (!detail)
{
if (list_var != "")
_display_content += _list_data[list_var].ReplaceAll("%"+list_var+"%", element_name );
else { if (str_NO_TD != "")
_display_content = _dt.getRadioButton(element_name, element_param, "Value", "Label", 4, true);
else
_display_content = _dt.getRadioButton(element_name, element_param, "Value", "Label", 4, false);
}
if (required)
{
_display_content += this.required_mark;
} ;
$(str_display_name).innerHTML = str_HEAD + _display_content;
}
}
return (_dt);
}
this.create_space = function (element_name, element_param, str_url, str_element_list)
{
var display_name = "display.space." + element_name;
var combobox_name = "index_textbox." + element_name;
var old_value_name = "index_textbox." + element_name + ".old";
var element_label_name = "index_textbox." + element_name + ".label";
var str_result = "";
var _display_content = "
"
;
var str_display_name = this.str_display_name;
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
_display_content = _display_content.ReplaceAll("%name%", element_name);
_display_content = _display_content.ReplaceAll("%param%", element_param);
_display_content = _display_content.ReplaceAll("%old_value_name%", old_value_name);
_display_content = _display_content.ReplaceAll("%element_label_name%", element_label_name);
$(str_display_name).innerHTML = _display_content;
if (str_element_list == "")
str_element_list = element_name;
else
str_element_list += "," +element_name;
str_url += "&key_name=" + element_name;
str_url = str_url.ReplaceAll("%page_name%", str_page_name);
this.index_textbox_init(element_name, str_url, str_element_list);
}
this.create_index_textbox = function (element_name, element_param, str_url, str_element_list)
{
var display_name = "display.index_text." + element_name;
var combobox_name = "index_textbox." + element_name;
var old_value_name = "index_textbox." + element_name + ".old";
var element_label_name = "index_textbox." + element_name + ".label";
var str_result = "";
var _display_content = "
"
;
var str_display_name = this.str_display_name;
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
_display_content = _display_content.ReplaceAll("%name%", element_name);
_display_content = _display_content.ReplaceAll("%param%", element_param);
_display_content = _display_content.ReplaceAll("%old_value_name%", old_value_name);
_display_content = _display_content.ReplaceAll("%element_label_name%", element_label_name);
$(str_display_name).innerHTML = _display_content;
if (str_element_list == "")
str_element_list = element_name;
else
str_element_list += "," + element_name;
str_url += "&key_name=" + element_name;
str_url = str_url.ReplaceAll("%page_name%", str_page_name);
this.index_textbox_init(element_name, str_url, str_element_list);
}
this.create_async_select = function (row, element_name, element_param, str_url, str_element_list, schema_dt, detail_row, control_name, _value, _name) {
var dt = this.dt;
if (typeof (schema_dt) == "undefined") {
var detail = false
var dt = this.dt;
}
else {
var detail = true;
var dt = schema_dt;
}
var str_HEAD = dt.getValueByRow(row, "HEAD");
var str_TYPE = dt.getValueByRow(row, "TYPE");
//var is_select_type = str_TYPE.toUpperCase() == "SELECT" ? true : false;
var is_select_type = true;
var display_name = "display.index_text." + element_name;
var combobox_name = "index_textbox." + element_name;
var old_value_name = "index_textbox." + element_name + ".old";
var element_label_name = "index_textbox." + element_name + ".label";
var element_button_name = "index_textbox." + element_name + ".button";
var element_flag_name = "index_textbox." + element_name + ".flag";
var display_name_icon = "display.index_textbox." + element_name + "_icon";
var str_result = "";
element_param = "";
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
var str_NO_TD = dt.getValueByRow(row, "NO_TD");
var str_not_null = dt.getValueByRow(row, "NOT_NULL");
var str_LEN = dt.getValueByRow(row, "LEN");
var required = false;
var list_name = dt.getValueByRow(row, "SYS_LIST_ITEM").split(",")[1];
var schema_name = dt.getValueByRow(row, "NAME")
var LIST_DATA = dt.getValueByRow(row, "LIST_DATA");
if (str_not_null == "1" && (this.str_namespace == "display.Edit.form" || this.str_namespace == "display.AddNew.form")
&& element_disabled != "1") {
element_param += " style=\"border-color:red\"";
required = true;
}
// var img_html = "

";
var img_html = "
";
var label_html = "
";
// var label_html = "
";
var _display_content = new StringBuilder();
// if (str_NO_TD != "")
_display_content.Append(
"
"
+ "\n " + str_HEAD + ""
+ "\n "
+ "\n " + (is_select_type ? label_html : img_html)
+ "\n " + (is_select_type ? img_html : label_html) + "
"
+ " "
+ "\n "
+ "\n "
+ ""
+ "\n
"
);
var element_onblur = "";
if (detail) {
element_onblur += "%ControlName%.td_onblur(%row%, '%ColumnName%', $(element_name).value);";
element_onblur = element_onblur.ReplaceAll("%row%", detail_row - 1);
element_onblur = element_onblur.ReplaceAll("%ColumnName%", _name);
element_onblur = element_onblur.ReplaceAll("%ControlName%", control_name);
}
var str_display_name = this.str_display_name;
str_display_name = str_display_name.ReplaceAll("%namespace%", this.str_namespace);
str_display_name = str_display_name.ReplaceAll("%FormName%", this.str_form_name);
str_display_name = str_display_name.ReplaceAll("%EleName%", element_name);
if (is_select_type) element_param += " style='display:none;' "
_display_content.replace("%name%", element_name);
_display_content.replace("%param%", element_param);
_display_content.replace("%old_value_name%", old_value_name);
_display_content.replace("%element_label_name%", element_label_name);
_display_content.replace("%element_button_name%", element_button_name);
_display_content.replace("%flag_name%", element_flag_name);
_display_content.replace("%LEN%", str_LEN);
if (required) {
_display_content.Append(this.required_mark);
};
$(str_display_name).innerHTML = _display_content.ToString();
str_url = str_page_name + "?AJAX=1&do_action=ajax_index_button_text&list_name=" + list_name;
str_url += "&search_element=" + str_element_list;
if (typeof (this.event_defined[element_name]) == "undefined") {
var ele = str_element_list.split(",").pop();
$j(document).on("change", "[name='" + ele + "']", function () { set_element_value(element_name, ""); $j("[name='" + element_name + "']").trigger("change"); });
this.event_defined[element_name] = true;
}
if (str_element_list == "")
str_element_list = element_name;
else
str_element_list += "," + element_name;
str_url += "&key_name=" + element_name;
str_url = str_url.ReplaceAll("%page_name%", str_page_name);
function get_str_element_list() {
var eles = str_element_list.split(",")
var rows = (eles[eles.length - 1].split("_"));
var row = rows[rows.length - 1];
var ele_list = "";
for (var cnt = 0; cnt < eles.length - 1; cnt++) {
if (eles[cnt].indexOf("Detail") > 0) {
var x = eles[cnt].split("_")
var y = x.pop();
if (!isNaN(parseInt(y, 10))) continue;
eles[cnt] = eles[cnt] + "_" + row;
}
}
return eles.join(",");
}
// 定義取得value的function, 由 get_element_value 呼叫
function getValue(ele_name) {
var _element = document.getElementsByName(ele_name);
return _element[0].value;
}
function setValue(ele_name, ele_value) {
// if (ele_name == "AddNewDetail.PPRICE_1") debugger;
var _element = document.getElementsByName(ele_name);
var _element2 = document.getElementsByName("index_textbox." + ele_name + ".label");
var _element3 = document.getElementsByName("display.index_textbox." + ele_name); //combobox
var _element4 = document.getElementsByName("index_textbox." + ele_name + ".button");
var _element5 = document.getElementsByName("index_textbox." + ele_name + ".flag");
var my_list = "";
if (_element.length == 1 && _element2.length == 1) {
if (ele_value == "") {
_element[0].value = "";
if (ele_name.indexOf("Search.") >= 0)
_element2[0].value = "(全部)";
else
_element2[0].value = ""
}
else {
if (ele_name.substring(0, 1) == "E") {
_v = o_EditForm.dt_data.getValueByRow(0, schema_name);
_l = o_EditForm.dt_data.getValueByRow(0, schema_name + "_LABEL");
if (_v == ele_value && (typeof _l != "undefined")) {
_element[0].value = _v;
_element2[0].value = _l;
return;
}
}
var _dt = new DataTable();
_element[0].value = ele_value;
var key = str_url.split("=")[3].split("&")[0] + ele_value;
if (typeof (list_cache[key]) != "undefined") {
_element2[0].value = list_cache[key];
return;
}
if (str_url.indexOf("&_key=") == -1) str_url += "&_key=1";
if (detail) {
my_list = get_str_element_list();
} else my_list = str_element_list
$j("[name='" + element_label_name + "_group']").hide();
function set(_dt) {
$j("[name='" + element_label_name + "_group']").show();
$(display_name_icon).innerHTML = "";
if (_dt.MaxRow() == 1) {
try {
var _value = _dt.getRowValue(0, _dt._FieldName[0]);
var _lable = _dt.getValueByIndex(_dt._FieldName[0], _value, _dt._FieldName[1]);
list_cache[key] = _lable;
//set_element_value(element_label_name, _lable);
if (_element[0].value != _value) {
_element2[0].value = "";
return;
}
_element2[0].value = _lable;
}
catch (e) { }
}
else
_element2[0].value = "";
_element3[0].innerHTML = "";
}
if (LIST_DATA != "") {
var __dt = new DataTable();
__dt = that.load_DATA_ListItem(LIST_DATA);
_dt = __dt.getFirstSearchDataTable(__dt._FieldName[0], ele_value);
set(_dt);
}
else {
var str_result = _dt.connect(str_url, my_list, {
imgId: display_name_icon,
onready: function (_dt) {
set(_dt);
}
});
}
}; // else
_element3[0].innerHTML = "";
// _element4[0].src = "/" + COMPANY_CODE + "/" + COMPANY_CODE + "/img/search2.gif";
_element5[0].value = "0";
try {
if (detail && o_DetailGrid.dg.dt.MaxRow() >= detail_row) {
o_DetailGrid.dg.td_onblur(detail_row - 1, _name, _element[0].value);
}
}
catch (e) { };
}
}
// 加入共用控制項
controls.add(element_name, getValue, setValue);
this.index_textbox_button_init(element_name, str_url, str_element_list, schema_dt, element_onblur, is_select_type, row);
if (detail) return _display_content;
}
this.create_element_by_name = function (str_name)
{
var dt = this.dt;
var i_row = dt.Search("NAME", str_name);
if (i_row != -1)
this.create_element_by_row(i_row);
}
this.create_element_by_row = function (row)
{
var dt = this.dt;
var this_row = null;
this_row = row;
var element_name = dt.getValueByRow(row, "ELE_NAME");
var element_type = dt.getValueByRow(row, "ELE_TYPE");
var element_param = dt.getValueByRow(row, "ELE_PARAM");
var element_initialize = dt.getValueByRow(row, "ELE_INIT");
var element_value = dt.getValueByRow(row, "ELE_VALUE");
var element_default = dt.getValueByRow(row, "ELE_DEFAULT");
var element_disabled = dt.getValueByRow(row, "ELE_DISABLED");
var element_hide = dt.getValueByRow(row, "ELE_HIDE");
var element_memo = dt.getValueByRow(row, "ELE_MEMO");
var _display_content = "";
if (element_type.toUpperCase() == "TITLE") return;
switch (element_type)
{
case "text":
this.create_textbox(row, element_name, element_param);
break;
case "label":
this.create_label(row, element_name, element_param);
break;
case "password":
this.create_password(row, element_name, element_param);
break;
case "textarea":
this.create_textarea(row, element_name, element_param);
break;
case "button":
this.create_button(row, element_name, element_param);
break;
case "select":
var str_url = dt.getValueByRow(row, "URL");
var str_element_list = dt.getValueByRow(row, "ELE_LIST");
var _dt = this.create_listbox(row, element_name, element_param, str_url, str_element_list);
dt.setValueByRow(row, "DATA", _dt);
break;
case "checkbox":
var str_url = dt.getValueByRow(row, "URL");
var str_element_list = dt.getValueByRow(row, "ELE_LIST");
var _dt = this.create_checkbox(row, element_name, element_param, str_url, str_element_list);
dt.setValueByRow(row, "DATA", _dt);
break;
case "radiobutton":
var str_url = dt.getValueByRow(row, "URL");
var str_element_list = dt.getValueByRow(row, "ELE_LIST");
var _dt = this.create_radiobutton(row, element_name, element_param, str_url, str_element_list);
dt.setValueByRow(row, "DATA", _dt);
break;
case "index_textbox":
var str_url = dt.getValueByRow(row, "URL");
var str_element_list = dt.getValueByRow(row, "ELE_LIST");
this.create_index_textbox(element_name, element_param, str_url, str_element_list);
break;
case "async_select":
var str_url = dt.getValueByRow(row, "URL");
var str_element_list = dt.getValueByRow(row, "ELE_LIST");
this.create_async_select(row, element_name, element_param, str_url, str_element_list);
break;
case "space":
var str_url = dt.getValueByRow(row, "URL");
var str_element_list = dt.getValueByRow(row, "ELE_LIST");
this.create_space(element_name, element_param, str_url, str_element_list);
default:
str_create = "this.create_"+ element_type + "(row, element_name, element_param);"
eval (str_create);
break;
}
try {
for (var i =0 ; i < this.functions.length; i++)
{
this.functions[i]();
}
}
catch (e) {};
this.functions = null;
if (element_value != "")
set_element_value(element_name, element_value);
else
set_element_value(element_name, element_default);
if (element_initialize != "")
{
var obj = return_json_object(element_initialize);
try
{
obj.initialize();
}
catch (e) {}
}
if (element_disabled != "")
set_element_disabled(element_name, true);
else
set_element_disabled(element_name, false);
}
this.create_form = function ()
{
var dt = this.dt;
var this_row = null;
for (var row = 0; row < dt.MaxRow(); row++)
{
try
{
this.create_element_by_row(row);
}
catch (e)
{
// window.status = "clsForm.create_form() 發生錯誤:" + row + " -- " + e.Message;
}
}
}
this.index_textbox_init = function (element_name, str_url, str_element_list) {
var dt = this.dt;
var display_name = "display.index_textbox." + element_name;
var combobox_name = "index_textbox." + element_name;
var old_value_name = "index_textbox." + element_name + ".old";
var element_label_name = "index_textbox." + element_name + ".label";
display_label = function () {
var _dt = new DataTable();
var str_result = _dt.connect(str_url, str_element_list);
if (_dt.MaxRow() == 1) {
try {
var _value = _dt.getRowValue(0, "value");
var _lable = _dt.getValueByIndex("value", _value, "label");
set_element_value(element_label_name, _lable);
set_element_value(element_name, _value);
}
catch (e) { }
$(display_name).innerHTML = "";
}
else
set_element_value(element_label_name, "");
};
set_element_event(element_name, "onblur", display_label);
set_element_event(element_name, "onkeyup",
function () {
var str_result = "";
var str_listbox = "";
var _dt = new DataTable();
var _old_value = get_element_value(old_value_name);
var _value = get_element_value(element_name);
var str_param = "size=\"%size%\"";
str_param = str_param.ReplaceAll("%size%", "10");
set_element_value(old_value_name, _value);
if (_old_value == _value)
return (false);
if (_value == "") {
$(display_name).innerHTML = "";
set_element_value(element_name, "");
set_element_value(element_label_name, "");
return (false);
}
try {
//alert(str_url + " " + str_element_list)
str_result = _dt.connect(str_url, str_element_list);
//alert(str_result);
dt.setValueByIndex("ELE_NAME", element_name, "DATA", _dt);
if (_dt.MaxRow() == 0) {
$(display_name).innerHTML = "";
return (false);
}
}
catch (e) {
alert("index_textbox -> DataTable.connect() error!");
return (false);
}
str_listbox = _dt.getListBox(combobox_name, str_param, "value", "label", "0", "1");
//alert(str_listbox);
$(display_name).innerHTML = str_listbox;
set_element_event(combobox_name, "onchange",
function () {
var _dt = dt.getValueByIndex("ELE_NAME", element_name, "DATA");
try {
var _value = get_element_value(combobox_name);
var _lable = _dt.getValueByIndex("value", _value, "label");
set_element_value(element_label_name, _lable);
set_element_value(element_name, _value);
}
catch (e) { }
$(display_name).innerHTML = "";
}
);
}
);
}
this.index_textbox_button_init = function (element_name, str_url, str_element_list, dt_detail, element_onblur, is_select_type, row) {
if (this.dt.MaxRow() > 0)
var dt = this.dt;
else
var dt = dt_detail;
var display_name = "display.index_textbox." + element_name;
var combobox_name = "index_textbox." + element_name;
var old_value_name = "index_textbox." + element_name + ".old";
var element_label_name = "index_textbox." + element_name + ".label";
var element_button_name = "index_textbox." + element_name + ".button";
var element_flag_name = "index_textbox." + element_name + ".flag";
var not_fond = "
No item found!!";
var old_str_element_list = str_element_list;
var select_type = is_select_type;
var LIST_DATA = dt.getValueByRow(row, "LIST_DATA");
var NO_CACHE = dt.getValueByRow(row, "NO_CACHE");
get_detail_elename_name = function (element_name) {
var a = element_name.split("_")
a.pop();
return (a.join("_"));
}
function get_str_element_list() {
str_element_list = old_str_element_list;
if (str_element_list.indexOf("@") > 0) return;
var eles = str_element_list.split(",")
var rows = (eles[eles.length - 1].split("_"));
var row = rows[rows.length - 1];
var ele_list = "";
for (var cnt = 0; cnt < eles.length - 1; cnt++) {
if (eles[cnt].indexOf("Detail") > 0)
eles[cnt] = eles[cnt] + "_" + row;
}
return eles.join(",") + "@";
}
display_label = function () {
if ($(display_name).innerHTML != "") return;
set_element_value(element_name, get_element_value(element_name));
// $(display_name).innerHTML = "";
$(element_flag_name).value = "0";
if (element_onblur != "")
eval(element_onblur);
$(element_button_name).src = "/" + COMPANY_CODE + "/" + COMPANY_CODE + "/img/search2.gif";
try
{ if (element_name.substring(0, 7) == "Search.") $("display.form.Result").innerHTML = ""; } catch (e) { };
if (element_name.substring(0, 1) == "A" || element_name.substring(0, 1) == "E") {
// if ($(element_label_name).value == "") $(element_name).value = "";
}
if (select_type) $j("[name='" + element_name + "']").trigger("change");
if (typeof (after_index_textbox_onchange) != "undefined") {
after_index_textbox_onchange(element_name, $(element_name).value, $(element_label_name).value);
}
//$j("[name='" + element_name + "']").trigger("change");
cancelBuble();
};
set_element_event(element_name, "onblur", display_label);
set_element_event(element_name, "onclick", function (ev) { cancelBuble(ev); })
$j("body").bind("click", function () {
try {
var dropdownlist = $j("[name='" + combobox_name + "']").data("kendoDropDownList");
if (dropdownlist != null) {
dropdownlist.destroy();
dropdownlist.wrapper.remove();
}
$(element_flag_name).value = "0";
$(display_name).innerHTML = "";
// $(element_button_name).src = "/" + COMPANY_CODE + "/" + COMPANY_CODE + "/img/search2.gif";
} catch (e) { };
})
function get_dt(key) {
if (LIST_DATA != "")
return that.load_DATA_ListItem(LIST_DATA);
if (!is_list_cached || NO_CACHE != "") return null;
if (window.sessionStorage) {
var data = sessionStorage.getItem(key);
if (data == null) {
return null;
} else {
var dt = new DataTable();
dt.ImportCSV(data);
return dt;
}
}
else {
if (typeof list_dt[key] == "undefined") return null;
return list_dt[key]
}
}
function set_dt(key, dt) {
if (!is_list_cached || NO_CACHE != "") return;
if (window.sessionStorage) {
window.sessionStorage.setItem(key, dt.ExportCSV());
} else {
list_dt[key] = dt;
}
}
function showList(my_dt) {
$(display_name + "_icon").innerHTML = ""
$j("[name='" + element_label_name + "_group']").show();
if (typeof (dt_detail) != "undefined") {
dt_detail.setValueByIndex("ELE_NAME", get_detail_elename_name(element_name), "DATA", my_dt);
}
else
dt.setValueByIndex("ELE_NAME", element_name, "DATA", my_dt);
if (my_dt.MaxRow() == 0) {
$(display_name).innerHTML = not_fond;
window.status = "No item found!!";
return (false);
}
// setControlPosition("display.index_textbox." + element_name, "div." + element_name);
var str_not_null = dt.getValueByRow(row, "NOT_NULL");
str_listbox = my_dt.getListBox(combobox_name, "", "value", "label", str_not_null, "1");
//alert(str_listbox);
$(display_name).innerHTML = str_listbox;
$j("[name='" + combobox_name + "']").width($j("[name='" + element_label_name + "_group']").width());
var t = $j("[name='" + element_label_name + "']").offset().top + $j("[name='" + element_label_name + "']").height();
var l = $j("[name='" + element_label_name + "']").offset().left;
$j("[name='" + combobox_name + "']").offset({ top: t, left: l });
$j("[name='" + combobox_name + "']").kendoDropDownList({
select: function (e) {
var dataItem = this.dataItem(e.item);
if (e.item.index() == 0) {
$j("[name='" + combobox_name + "']").data("kendoDropDownList").value(dataItem.value);
list_change();
}
}
});
var dl = $j("[name='" + combobox_name + "']").data("kendoDropDownList");
dl.value(get_element_value(element_name));
dl.open();
$j(".k-dropdown-wrap").hide();
$j("[name='" + combobox_name + "']").on("change", function (e) { list_change() });
}
button_action = function (ev, _e_name) {
if (typeof _e_name != "undefined") element_name = _e_name;
// window.event.CancelBubble=true;
if ($(element_name).disabled == true) return;
if ($(element_flag_name).value == "0") {
$(element_flag_name).value = "1";
// $(element_button_name).src = "/" + COMPANY_CODE + "/" + COMPANY_CODE + "/img/return.gif";
var str_result = "";
var str_listbox = "";
var _dt = new DataTable();
var _old_value = get_element_value(old_value_name);
var _value = get_element_value(element_name);
var str_param = "size=\"%size%\"";
if ($(element_flag_name).value == "0") return;
str_param = str_param.ReplaceAll("%size%", "10");
window.status = "";
if (select_type) if (str_url.indexOf("SELECT=") < 0) str_url += "&SELECT=1";
try {
//alert(str_url + " " + str_element_list)
if (typeof (dt_detail) != "undefined")
str_element_list = get_str_element_list();
var list_key = dt.getValueByRow(row, "SYS_LIST_ITEM"); ;
var ele_array = str_element_list.split(",")
if (ele_array.length > 1)
for (var i = 0; i < ele_array.length; i++) {
list_key += get_element_value(ele_array[i]);
}
$j("[name='" + element_label_name + "_group']").hide();
var _list_dt = get_dt(list_key);
if (_list_dt != null) {
showList(_list_dt);
}
else {
str_result = _dt.connect(str_url, str_element_list.ReplaceAll("@", ""), {
imgId: display_name + "_icon",
onready: function (_dt) {
set_dt(list_key, _dt);
showList(_dt);
}
}
);
}
//alert(str_result);
}
catch (e) {
$(display_name + "_icon").innerHTML = ""
$j("[name='" + element_label_name + "_group']").show();
alert("index_textbox -> DataTable.connect() error!");
return (false);
}
list_change = function (ev) {
if (typeof (dt_detail) != "undefined") {
dt_detail.setValueByIndex("ELE_NAME", get_detail_elename_name(element_name), "DATA", _dt);
}
else
dt.setValueByIndex("ELE_NAME", element_name, "DATA", _dt);
try {
var dl = $j("[name='" + combobox_name + "']").data("kendoDropDownList");
var _value = get_element_value(combobox_name);
var _label = _dt.getValueByIndex("value", _value, "label");
if (_value == "err!") {
//$(element_label_name).value ="";
// $(element_name).value = "";
set_element_value(element_name, "");
}
else {
$(element_label_name).value = dl.text();
$(element_name).value = _value;
//set_element_value(element_name, _value);
}
}
catch (e) { }
var dropdownlist = $j("[name='" + combobox_name + "']").data("kendoDropDownList");
if (dropdownlist != null) {
dropdownlist.destroy();
dropdownlist.wrapper.remove();
}
$(display_name).innerHTML = "";
$(element_flag_name).value = "0";
// $(element_button_name).src = "/" + COMPANY_CODE + "/" + COMPANY_CODE + "/img/search2.gif";
if (element_onblur != "")
eval(element_onblur);
try
{ if (element_name.substring(0, 7) == "Search.") $("display.form.Result").innerHTML = ""; } catch (e) { };
if (element_name.substring(0, 1) == "A" || element_name.substring(0, 1) == "E") {
// if ($(element_label_name).value == "") $(element_name).value = "";
}
if (select_type) $j("[name='" + element_name + "']").trigger("change");
if (typeof (after_index_textbox_onchange) != "undefined") {
after_index_textbox_onchange(element_name, $(element_name).value, $(element_label_name).value);
}
// $j("[name='" + element_name + "']").trigger("change");
}; // list_change
}
else {
var dropdownlist = $j("[name='" + combobox_name + "']").data("kendoDropDownList");
if (dropdownlist != null) {
dropdownlist.destroy();
dropdownlist.wrapper.remove();
}
$(element_flag_name).value = "0";
$(display_name).innerHTML = "";
//$(element_button_name).src = "/" + COMPANY_CODE + "/" + COMPANY_CODE + "/img/search2.gif";
}
cancelBuble(arguments[0]);
}; // button_action
set_element_event(element_label_name, "onclick", button_action);
set_element_event(element_name, "onkeyup", function (ev) {
var str_result = "";
var str_listbox = "";
var _dt = new DataTable();
var _old_value = get_element_value(old_value_name);
var _value = get_element_value(element_name);
var str_param = "size=\"%size%\"";
$j("[name='" + element_name + "']").attr("pageno", "1");
if ($(element_flag_name).value == "0") {
if (window.event.keyCode == 40) {
// button_action();
return;
}
else
return;
}
str_param = str_param.ReplaceAll("%size%", "10");
window.status = "";
try {
if (typeof (dt_detail) != "undefined")
str_element_list = get_str_element_list();
str_result = _dt.connect(str_url, str_element_list.ReplaceAll("@", ""));
if (typeof (dt_detail) != "undefined") {
dt_detail.setValueByIndex("ELE_NAME", get_detail_elename_name(element_name), "DATA", _dt);
}
else
dt.setValueByIndex("ELE_NAME", element_name, "DATA", _dt);
if (_dt.MaxRow() == 0) {
$(display_name).innerHTML = not_fond;
window.status = "No item found!!";
return (false);
}
}
catch (e) {
alert("index_textbox -> DataTable.connect() Error!");
return (false);
}
str_listbox = _dt.getListBox(combobox_name, str_param, "value", "label", "0", "1");
$(display_name).innerHTML = str_listbox;
list_change = function () {
if (dt.MaxRow() == 0) {
dt_detail.setValueByIndex("ELE_NAME", get_detail_elename_name(element_name), "DATA", _dt);
}
else
dt.setValueByIndex("ELE_NAME", element_name, "DATA", _dt);
try {
var _value = get_element_value(combobox_name);
var _label = _dt.getValueByIndex("value", _value, "label");
if (_value == "err!" || _value == "") {
set_element_value(element_name, "");
}
else {
set_element_value(element_name, _value);
}
}
catch (e) { }
$(display_name).innerHTML = "";
$(element_flag_name).value = "0";
$(element_button_name).src = "/" + COMPANY_CODE + "/" + COMPANY_CODE + "/img/search2.gif";
try
{ if (element_name.substring(0, 7) == "Search.") $("display.form.Result").innerHTML = ""; } catch (e) { };
if (element_name.substring(0, 1) == "A" || element_name.substring(0, 1) == "E") {
// if ($(element_label_name).value == "") $(element_name).value = "";
}
if (select_type) $j("[name='" + element_name + "']").trigger("change");
if (typeof (after_index_textbox_onchange) != "undefined") {
after_index_textbox_onchange(element_name, $(element_name).value, $(element_label_name).value);
}
};
$j("[name='" + combobox_name + "']").on("change", function (e) { list_change() });
cancelBuble(ev);
}
);
}
this.FillValue = function (dt)
{
for (var row = 0; row < this.dt.MaxRow(); row++)
{
var _field_name = this.dt.getValueByRow(row, "NAME");
var str_ELE_DEFAULT = this.dt.getValueByRow(row, "ELE_DEFAULT");
var _field_value = null;
if (dt.MaxRow() == 0)
_field_value = "";
else
{
_field_value = dt.getValue(_field_name);
}
if (_field_value == "")
_field_value = str_ELE_DEFAULT;
this.dt.setValueByRow(row, "ELE_VALUE", _field_value);
}
}
this.push_function = function (f) {
if (this.functions == null)
this.functions = new Array();
this.functions.push(f);
}
this.FillDetailValue = function (dt, dt_detail)
{
for (var row = 0; row < dt_detail.MaxRow(); row++)
{
var _field_name = dt_detail.getValueByRow(row, "NAME");
var str_ELE_DEFAULT = dt_detail.getValueByRow(row, "ELE_DEFAULT");
var _field_value = null;
if (dt.MaxRow() == 0)
_field_value = "";
else
{
_field_value = dt.getValue(_field_name);
}
if (_field_value == "")
_field_value = str_ELE_DEFAULT;
dt_detail.setValueByRow(row, "ELE_VALUE", _field_value);
}
}
this.RefreshValue = function () {
var dt = this.dt;
for (var row = 0; row < dt.MaxRow() ; row++) {
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = dt.getValueByRow(row, "ELE_VALUE");
var _ele_type = dt.getValueByRow(row, "ELE_TYPE");
if (dt.getValueByRow(row, "ELE_LIST") != "" && _ele_type != "async_select") {
if (_element_name.substring(0, 1) == "E")
o_EditForm.form.refresh_listbox(_element_name, "Y");
else if (_element_name.substring(0, 1) == "S")
o_SearchForm.o_Form.refresh_listbox(_element_name, "Y");
}
set_element_value(_element_name, _value);
try { $(_element_name + ".message").innerHTML = ""; hide(_element_name + ".message"); } catch (e) { }
}
}
this.RefreshDetailValue = function (dt)
{
for (var row = 0; row < dt.MaxRow(); row++)
{
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = dt.getValueByRow(row, "ELE_VALUE");
set_element_value(_element_name, _value);
try { $(_element_name + ".message").innerHTML = ""; hide(_element_name + ".message"); } catch (e) { }
}
}
this.DataCollection = function () {
this.flg_error = false;
this.error_msg = new Array();
var dt = this.dt;
for (var row = 0; row < dt.MaxRow(); row++) {
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var _ele_type = dt.getValueByRow(row, "ELE_TYPE");
dt.setValueByRow(row, "ELE_VALUE", _value);
if (_ele_type == "label") continue;
this.set_message(_element_name, "");
this.check_not_null(row);
if (_ele_type == "text" || _ele_type == "textarea")
this.check_length(row);
if (_ele_type != "select" && _ele_type != "checkbox" && _ele_type != "radiobuttom") {
this.check_numeric(row);
//根據 欄位資料型態 做檢查
this.check_Numeric_by_type(row);
this.check_datetime(row);
this.check_Integer(row);
this.check_YearMon(row);
this.check_date(row);
this.check_time(row);
}
this._check_my_error(row);
}
if (flg_error_tab != "") showTab(flg_error_tab);
}
this._check_my_error = function (row, isDetail, detailRow, dt_data) {
if (typeof (isDetail) == "undefined")
var isDetail = false;
var dt = this.dt;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _name = dt.getValueByRow(row, "NAME");
var _value = get_element_value(_element_name);
var mode = _element_name.split(".")[0];
var rule = "";
if (isDetail) {
try { rule = dt_data.getValueByRow(detailRow - 1, "_check_rule"); } catch (e) { };
};
if (rule != "")
var err_message = this.check_my_error(mode, _element_name, _name, _value, rule);
else
var err_message = this.check_my_error(mode, _element_name, _name, _value);
if (err_message != "") {
this.setErrorMessage(row, _element_name, err_message)
}
};
this.check_my_error = function(element_name, name, value)
{
return "";
}
this.DataCollectionDetail = function (dt_schema, dt_data, key_list, detail_row) {
this.flg_error = false;
this.error_msg = new Array();
var dt = dt_schema;
var old_dt = this.dt;
this.dt = dt_schema;
var key_element_name;
var dt_keys = new DataTable();
dt_keys.setFieldName(key_list.split(","));
dt_keys.AddNewRow();
for (var row = 0; row < dt.MaxRow(); row++) {
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var _name = dt.getValueByRow(row, "NAME");
var _ele_type = dt.getValueByRow(row, "ELE_TYPE");
dt.setValueByRow(row, "ELE_VALUE", _value);
if (dt_keys.SearchFieldName(_name) >= 0) {
dt_keys.setValue(_name, _value);
key_element_name = _element_name;
}
this.set_message(_element_name, "");
this.check_not_null(row);
if (_ele_type == "text" || _ele_type == "textarea")
this.check_length(row);
this.check_numeric(row);
//根據 欄位資料型態 做檢查
this.check_Numeric_by_type(row);
this.check_datetime(row);
this.check_Integer(row);
this.check_YearMon(row);
this.check_date(row);
this.check_time(row);
this._check_my_error(row);
}
// Check duplicate data
var key_value = "";
for (var k = 0; k < dt_keys.getFieldCount(); k++) {
key_value += dt_keys.getValue(dt_keys.getFieldName(k));
}
for (var row = 0; row < dt_data.MaxRow(); row++) {
var key_search_value = ""
for (var k = 0; k < dt_data.getFieldCount(); k++) {
if (dt_keys.SearchFieldName(dt_data.getFieldName(k)) >= 0)
key_search_value += dt_data.getRowValue(row, dt_data.getFieldName(k));
}
if (key_search_value == key_value && row != detail_row) {
var err_row = new Array();
var str_msg = locales[l_key].clsForm.duplicate;
this.flg_error = true;
err_row.push(0);
err_row.push(key_element_name);
err_row.push("");
err_row.push(str_msg);
this.error_msg.push(err_row);
this.set_message(key_element_name, str_msg);
}
}
if (flg_error_tab != "") showTab(flg_error_tab);
this.dt = old_dt;
}
this.setDetailMessage = function (row, element_name, message)
{
var err_row = new Array();
var str_msg = message;
this.flg_error = true;
err_row.push(0);
err_row.push(element_name );
err_row.push("");
err_row.push(str_msg);
this.error_msg.push(err_row);
this.set_message(element_name, str_msg);
};
this.setErrorMessage = function (row, element_name, message)
{
var err_row = new Array();
var str_msg = message;
this.flg_error = true;
err_row.push(0);
err_row.push(element_name );
err_row.push("");
err_row.push(str_msg);
if (TABS.length > 0)
{
flg_error_tab = this.dt.getValueByRow(row, "TABS");
}
this.error_msg.push(err_row);
this.set_message(element_name, str_msg);
};
this.DataCollectionGridDetail = function (dt_schema, dt_data, key_list, detail_row) {
that.flg_error = false;
that.error_msg = new Array();
var dt = dt_schema;
var old_dt = this.dt;
that.dt = dt_schema;
var key_element_name;
var dt_keys = new DataTable();
dt_keys.setFieldName(key_list.split(","));
dt_keys.AddNewRow();
for (var row = 0; row < dt.MaxRow(); row++) {
var detail_row_no = detail_row + 1;
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detail_row_no.toString();
var _ele_type = dt.getValueByRow(row, "ELE_TYPE");
var _value = get_element_value(_element_name);
if (_value == "err!") continue;
var _name = dt.getValueByRow(row, "NAME");
dt.setValueByRow(row, "ELE_VALUE", _value);
if (dt_keys.SearchFieldName(_name) >= 0) {
dt_keys.setValue(_name, _value);
key_element_name = _element_name;
}
that.set_message(_element_name, "");
that.check_not_null(row, true, detail_row_no);
if (_ele_type == "text" || _ele_type == "textarea")
this.check_length(row, true, detail_row_no);
that.check_numeric(row, true, detail_row_no);
//根據 欄位資料型態 做檢查
that.check_Numeric_by_type(row, true, detail_row_no);
that.check_datetime(row, true, detail_row_no);
that.check_Integer(row, true, detail_row_no);
that.check_YearMon(row, true, detail_row_no);
that.check_date(row, true, detail_row_no);
that.check_time(row, true, detail_row_no);
that._check_my_error(row, true, detail_row_no, dt_data);
// that.check_detaildata(detail_row, _name, _element_name, _value );
}
// Check duplicate data
var key_value = "";
for (var k = 0; k < dt_keys.getFieldCount(); k++) {
key_value += dt_keys.getValue(dt_keys.getFieldName(k));
}
for (var row = 0; row < dt_data.MaxRow(); row++) {
var key_search_value = ""
for (var k = 0; k < dt_data.getFieldCount(); k++) {
if (dt_keys.SearchFieldName(dt_data.getFieldName(k)) >= 0)
key_search_value += dt_data.getRowValue(row, dt_data.getFieldName(k));
}
if (key_search_value == key_value && row != detail_row) {
var err_row = new Array();
var str_msg = locales[l_key].clsForm.duplicate;
that.flg_error = true;
err_row.push(0);
err_row.push(key_element_name);
err_row.push("");
err_row.push(str_msg);
that.error_msg.push(err_row);
that.set_message(key_element_name, str_msg);
}
}
that.dt = old_dt;
}
// 回傳是否錯誤
this.check_detaildata = function (detail_row, _name, _element_name, _value )
{
}
this.check_length = function (row, isDetail, detailRow) {
if (typeof (isDetail) == "undefined")
var isDetail = false;
var dt = this.dt;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var i_name = dt.find("LEN");
var LEN = 0;
if (i_name == -1)
return (false);
var str_ELE_TYPE = dt.getValueByRow(row, "ELE_TYPE");
LEN = parseInt( dt.getValueByRow(row, "LEN"), 10);
if (countLength(_value) > LEN) {
var err_row = new Array();
var str_msg = locales[l_key].clsForm.length_error + LEN;
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
this.error_msg.push(err_row);
this.set_message(_element_name, str_msg);
}
}
this.check_not_null = function (row, isDetail, detailRow) {
if (typeof (isDetail) == "undefined")
var isDetail = false;
var dt = this.dt;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var i_name = dt.find("NOT_NULL");
var str_NOT_NULL = "";
if (i_name == -1)
return (false);
var str_ELE_TYPE = dt.getValueByRow(row, "ELE_TYPE");
if (str_ELE_TYPE == "daterange") {
var values = ("" + _value).split(",");
}
str_NOT_NULL = dt.getValueByRow(row, "NOT_NULL");
if (str_NOT_NULL == "1") {
if (_value === "" || (str_ELE_TYPE == "daterange" && (values[0] == "" || values[1] == ""))) {
var err_row = new Array();
var str_msg = locales[l_key].clsForm.require;
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
this.error_msg.push(err_row);
this.set_message(_element_name, str_msg);
}
}
/* var spec_char = /[\\']+/;
if (spec_char.test(_value))
{
var err_row = new Array();
var str_msg = "請勿使用單引號或反斜線!!";
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
this.error_msg.push(err_row);
this.set_message(_element_name, str_msg);
}
*/
}
this.check_numeric = function (row, isDetail, detailRow)
{
if (typeof(isDetail) == "undefined")
var isDetail = false;
var dt = this.dt;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var i_name = dt.find("NUMERIC");
var str_NUMERIC = "";
if (i_name == -1)
return (false);
if (_value == "")
return (false);
str_NUMERIC = dt.getValueByRow(row, "NUMERIC");
if (str_NUMERIC == "1")
{
if (isNumeric(_value) == false)
{
var err_row = new Array();
var str_msg = locales[l_key].clsForm.not_numeric;
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
}
}
}
this.check_Numeric_by_type = function (row, isDetail, detailRow)
{
if (typeof(isDetail) == "undefined")
var isDetail = false;
var dt = this.dt;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var i_name = dt.find("TYPE");
var str_TYPE = "";
if (i_name == -1)
return (false);
if (_value == "")
return (false);
str_TYPE = dt.getValueByRow(row, "TYPE");
if (str_TYPE.toUpperCase() == "Numeric".toUpperCase())
{
if (isNumeric(_value) == false)
{
var err_row = new Array();
var str_msg = locales[l_key].clsForm.not_numeric;
this.flg_error = true;
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
}
}
}
this.check_YearMon = function (row, isDetail, detailRow)
{
if (typeof(isDetail) == "undefined")
var isDetail = false;
var dt = this.dt;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var i_name = dt.find("TYPE");
var str_TYPE = "";
if (i_name == -1)
return (false);
if (_value == "")
return (false);
str_TYPE = dt.getValueByRow(row, "TYPE");
if (str_TYPE.toUpperCase() == "YearMon".toUpperCase())
{
var str_year = "";
var str_month = "";
var flg_check = true;
if (flg_check == true)
if (_value.length != 6)
flg_check = false;
if (flg_check == true)
{
str_year = _value.Left(4);
str_mon = _value.Right(2);
if (isInteger(str_year) == false || isInteger(str_mon) == false)
flg_check = false;
}
if (flg_check == true)
if (parseInt(str_year, 10) < 1 || parseInt(str_year, 10) > 3000
|| parseInt(str_mon, 10) < 1 || parseInt(str_mon, 10) > 12)
flg_check = false;
if (flg_check == false)
{
var err_row = new Array();
var str_msg = locales[l_key].clsForm.invalid_yymm + "『" + _value + "』";
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
return (false);
}
}
}
this.check_date = function (row, isDetail, detailRow) {
if (typeof (isDetail) == "undefined")
var isDetail = false;
var dt = this.dt;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var values = ("" + _value).split(",")
var i_name = dt.find("TYPE");
var str_TYPE = "";
if (i_name == -1)
return (false);
str_TYPE = dt.getValueByRow(row, "TYPE");
if (str_TYPE.toUpperCase() == "Date".toUpperCase()) {
for (var i = 0; i < values.length; i++) {
if (values[i] == "")
return (false);
var str_year = "";
var str_month = "";
var str_day = "";
var str_date = "";
if (values[i].length != 7) {
var err_row = new Array();
var str_msg = locales[l_key].clsForm.date_format + "(民國年):YYY/MM/DD Ex:110/05/13";
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(values[i]);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
return (false);
}
str_year = values[i].Left(3);
str_mon = values[i].Left(5).Right(2);
str_day = values[i].Right(2);
str_date = str_year + "/" + str_mon + "/" + str_day;
if (isDate(str_date) == false) {
var err_row = new Array();
var str_msg = locales[l_key].clsForm.invalid_date + "『" + values[i] + "』";
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(values[i]);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
return (false);
}
}
if (values.length == 2 && values[0] > values[1]) {
var err_row = new Array();
var str_msg = locales[l_key].clsForm.date_err1 + "『" + values[0] + "』";
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(values[0]);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
return (false);
}
}
}
this.check_time = function (row, isDetail, detailRow) {
if (typeof (isDetail) == "undefined")
var isDetail = false;
var dt = this.dt;
var len;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
// var _value = get_element_value(_element_name);
var i_name = dt.find("TYPE");
len = dt.getValueByRow(row, "LEN");
var str_TYPE = "";
str_TYPE = dt.getValueByRow(row, "TYPE");
if (str_TYPE.toUpperCase() != "Time".toUpperCase()) return (true);
if (i_name == -1)
return (false);
var _value;
if ($j("[name='" + _element_name + "_s']").size() > 0) {
var ss = $j("[name='" + _element_name + "_s']").val();
var ss_reg = /[0-9][0-9]/;
if (parseInt(ss, 10) < 0 || parseInt(ss, 10) >= 60 || (!ss_reg.test(ss))) {
var err_row = new Array();
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, locales[l_key].clsForm.time_err1);
return (false);
}
}
if (get_element_value(_element_name + "_h") != "" && get_element_value(_element_name + "_m") != "")
_value = get_element_value(_element_name + "_h") + ":" + get_element_value(_element_name + "_m");
else {
if (get_element_value(_element_name + "_h") != "" || get_element_value(_element_name + "_m") != "") {
var err_row = new Array();
if (len == "3")
var str_msg = locales[l_key].clsForm.time_err2;
else
var str_msg = locales[l_key].clsForm.time_err3;
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
return (false);
}
else
_value = "";
}
if (_value == "")
return (false);
if (str_TYPE.toUpperCase() == "Time".toUpperCase()) {
var str_hour = "";
var str_min = "";
var str_time = "";
if ((len == "3") ? false : _value.length != 5 || _value.indexOf(":") == -1) {
var err_row = new Array();
if (len == "3")
var str_msg = locales[l_key].clsForm.time_err2;
else
var str_msg = locales[l_key].clsForm.time_err3;
that.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
return (false);
}
if (len == "3") {
str_hour = get_element_value(_element_name + "_h");
str_min = get_element_value(_element_name + "_m");
}
else {
str_hour = _value.Left(2);
str_min = _value.Right(2);
}
if (isInteger(str_hour) == false || isInteger(str_min) == false) {
var err_row = new Array();
var str_msg = locales[l_key].clsForm.time_err4;
that.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
return (false);
}
if (parseInt(str_hour, 10) < 0 || parseInt(str_hour, 10) > ((len == 3) ? 744 : 23)
|| parseInt(str_min, 10) < 0 || parseInt(str_min, 10) > 59
) {
var err_row = new Array();
if (len == "3")
var str_msg = locales[l_key].clsForm.time_err4 + "『" + _value + "』, 不可超過 744 小時";
else
var str_msg = locales[l_key].clsForm.time_err4 + "『" + _value + "』";
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
return (false);
}
}
}
this.check_datetime = function (row, isDetail, detailRow) {
if (typeof (isDetail) == "undefined")
var isDetail = false;
var dt = this.dt;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var i_name = dt.find("TYPE");
var str_TYPE = "";
if (i_name == -1)
return (false);
if (_value == "")
return (false);
str_TYPE = dt.getValueByRow(row, "TYPE");
if (str_TYPE.toUpperCase() == "DateTime".toUpperCase()) {
var str_year = "";
var str_month = "";
var str_day = "";
var str_time = "";
var str_date = "";
if (_value.length != 19) {
str_year = _value.Left(10).Right(4);
str_mon = _value.Left(5).Right(2);
str_day = _value.Left(2);
str_time = _value.Right(9);
str_date = str_year + "/" + str_mon + "/" + str_day + str_time;
} else {
str_date = _value;
}
if (isDate(str_date) == false) {
var err_row = new Array();
var str_msg = locales[l_key].clsForm.date_time_err1;
that.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
}
}
}
this.check_Integer = function (row, isDetail, detailRow)
{
if (typeof(isDetail) == "undefined")
var isDetail = false;
var dt = that.dt;
if (isDetail)
var _element_name = dt.getValueByRow(row, "ELE_NAME") + "_" + detailRow.toString();
else
var _element_name = dt.getValueByRow(row, "ELE_NAME");
var _value = get_element_value(_element_name);
var i_name = dt.find("TYPE");
var str_TYPE = "";
if (i_name == -1)
return (false);
if (_value == "")
return (false);
str_TYPE = dt.getValueByRow(row, "TYPE");
if (str_TYPE.toUpperCase() == "Integer".toUpperCase())
{
if (isInteger(_value) == false)
{
var err_row = new Array();
var str_msg = locales[l_key].clsForm.integer_err1;
this.flg_error = true;
err_row.push(row);
err_row.push(_element_name);
err_row.push(_value);
err_row.push(str_msg);
if (TABS.length > 0) flg_error_tab = dt.getValueByRow(row, "TABS");
that.error_msg.push(err_row);
that.set_message(_element_name, str_msg);
}
}
}
this.getDataInput = function ()
{
var dt = that.dt
var dt_input = new DataTable();
var field_name = new Array();
var field_value = new Array();
for (var row = 0; row < dt.MaxRow(); row++)
{
var str_name = dt.getValueByRow(row, "NAME");
var ele_name = dt.getValueByRow(row, "ELE_NAME");
var ele_value = get_element_value(ele_name);
field_name.push(str_name);
field_value.push(ele_value);
}
dt_input.create(field_name, null, 1);
for (var col = 0; col < field_name.length; col++)
{
dt_input.setValue(field_name[col], field_value[col]);
}
return (dt_input);
}
// Added by thomas for detail
this.getDataInputDetail = function (t_dt, dt_schema, detail_row, form_mode) {
var dt = dt_schema;
var dt_input = new DataTable();
var field_name = new Array();
var field_value = new Array();
// inital Fieldvalue
if (detail_row == -1) {
for (var i = 0; i <= t_dt.getFieldCount() - 1; i++) {
field_value.push("");
}
t_dt.AddRow(field_value);
}
for (var row = 0; row < dt.MaxRow(); row++) {
var str_name = dt.getValueByRow(row, "NAME");
var ele_name = dt.getValueByRow(row, "ELE_NAME");
if (form_mode == 1 && detail_row == -1) // Detail Edit Mode
ele_value = "";
else
ele_value = get_element_value(ele_name);
if (t_dt.SearchFieldName(str_name) >= 0) {
if (detail_row == -1) {
var ele_type = dt.getValueByRow(row, "TYPE");
if (ele_type.toUpperCase() == "TIME") {
var _h = Format(parseInt(ele_value) / 60, "00").split(".");
var _m = Format(parseInt(ele_value) % 60, "00");
t_dt.setValue(str_name, ele_value);
t_dt.setValue("m" + str_name, _h[0] + ':' + _m);
}
if (dt.getValueByRow(row, "ELE_TYPE").toUpperCase() == "ASYNC_SELECT") {
var ele_label_name = str_name + "_LABEL";
try {
t_dt.setValue(ele_label_name, get_element_value("index_textbox." + ele_name + ".label"));
} catch (e) {
}
}
t_dt.setValue(str_name, ele_value);
} else {
var ele_type = dt.getValueByRow(row, "TYPE");
if (ele_type.toUpperCase() == "TIME") {
var _h = Format(parseInt(ele_value) / 60, "00").split(".");
var _m = Format(parseInt(ele_value) % 60, "00");
t_dt.setValueByRow(detail_row, "m" + str_name, _h[0] + ':' + _m);
}
if (dt.getValueByRow(row, "ELE_TYPE").toUpperCase() == "ASYNC_SELECT") {
var ele_label_name = str_name + "_LABEL";
try {
t_dt.setValueByRow(detail_row, ele_label_name, get_element_value("index_textbox." + dt.getValueByRow(row, "ELE_NAME") + ".label"));
} catch (e) {
}
}
t_dt.setValueByRow(detail_row, str_name, ele_value);
}
}
}
return (t_dt);
}
this.fillDetailKey = function (master_detail_key_list, dt_master, dt_detail)
{
var keys = master_detail_key_list.split(",")
for (var row = 0; row < dt_detail.MaxRow(); row++)
{
for (var col = 0; col < keys.length; col++)
{
dt_detail.setValueByRow(row, keys[col], dt_master.getValue(keys[col]));
}
}
}
this.getDataDifferent = function ()
{
var dt = that.dt
var dt_diff = new DataTable();
var field_name = new Array();
var field_value = new Array();
for (var row = 0; row < dt.MaxRow(); row++)
{
var str_key = dt.getValueByRow(row, "KEY");
var str_name = dt.getValueByRow(row, "NAME");
var str_value = dt.getValueByRow(row, "ELE_VALUE");
var ele_name = dt.getValueByRow(row, "ELE_NAME");
var ele_value = get_element_value(ele_name);
if (str_value != ele_value || str_key == "1")
{
field_name.push(str_name);
field_value.push(ele_value);
}
}
dt_diff.create(field_name, null, 1);
for (var col = 0; col < field_name.length; col++)
{
dt_diff.setValue(field_name[col], field_value[col]);
}
return (dt_diff);
}
this.getKeyValue = function ()
{
var dt = this.dt
var dt_key = new DataTable();
var field_name = new Array();
var field_value = new Array();
for (var row = 0; row < dt.MaxRow(); row++)
{
var str_name = dt.getValueByRow(row, "NAME");
var str_key = dt.getValueByRow(row, "KEY");
var ele_name = dt.getValueByRow(row, "ELE_NAME");
var ele_value = get_element_value(ele_name);
if (str_key == "1")
{
field_name.push(str_name);
field_value.push(ele_value);
}
}
dt_key.create(field_name, null, 1);
for (var col = 0; col < field_name.length; col++)
{
dt_key.setValue(field_name[col], field_value[col]);
}
return (dt_key);
}
this.load_DATA_ListItem = function(data)
{
var dt = new DataTable();
dt.setFieldName("Value,Label".split(","));
dt.setFieldType("String,String".split(","));
var row_values = new Array();
var rows = data.split("^");
for (var i = 0 ; i < rows.length; i++) {
var cols = rows[i].split("|");
row_values.push(cols);
}
dt.setFieldValue(row_values);
return (dt);
}
// cache : true | false : 是否cache dt
this.load_SYS_ListItem = function(ListItem_SN, str_page_name, req_name, str_ele_list, str_option, cache) {
var isServerCache = "0";
var isLocalCache = "0";
if (typeof (server_list_cache) != "undefined" && server_list_cache != "0") isServerCache = "1";
if (typeof (local_list_cache) != "undefined" && local_list_cache != "0") isLocalCache = "1";
var str_url = str_page_name + "?AJAX=1&do_action=ajax_get_SYS_ListItem&ListItem_SN=%ListItem_SN%&req_name=%req_name%&CACHE=" + ((isServerCache == "1") ? "1" : 0)
var str_result = "";
var dt = new DataTable();
if (typeof (cache) == "undefined")
var cache = is_list_cached;
else
cache = is_list_cached;
str_url = str_url.ReplaceAll("%ListItem_SN%", ListItem_SN);
str_url = str_url.ReplaceAll("%req_name%", req_name);
str_url += str_option;
//alert(str_url + "\n" + str_ele_list);
//if ( ListItem_SN == "LI-H1-0026") debugger;
if (cache || isServerCache == "1") {
if (str_ele_list != "")
var t = str_ele_list.split(",");
else
var t = [];
var key = str_option.split("=")[1];
for (var i = 0; i < t.length; i++) key += get_element_value(t[i]).toString();
if (list_cache[key] != null) return (list_cache[key]);
}
if (isServerCache == "1") str_url += "&KEY=" + encodeURI( key);
if (isLocalCache == "1") {
// str_result = dt.connect(str_url, str_ele_list, true);
str_result = dt.connect(str_url, str_ele_list); // no implement because str_ele_list problem.
}
else
str_result = dt.connect(str_url, str_ele_list);
if (cache) list_cache[key] = clone(dt);
return (dt);
}
}