";
this.dt = null;
this.col_list = null;
this.field_name_list = null;
this.get_field_list = function ()
{
var dt = this.dt;
var col_list = new Array();
var _field_list = new Array();
var str_template = this.str_template;
if (typeof(dt) == "undefined") {
this.field_name_list = "";
this.col_list = [];
return;
}
for (var col = 0; col < dt.getFieldCount(); col++)
{
var field_name = dt.getFieldName(col);
var target_name = "%" + field_name + "%";
if (str_template.indexOf(target_name) != -1
|| str_template.indexOf("%" + field_name + "_Source%") != -1 || field_name == "NO_NEW_LINE"
)
{
_field_list.push(field_name);
col_list.push(col);
}
}
this.field_name_list = _field_list;
this.col_list = col_list;
}
this.GetDataGrid = function ()
{
var i, strnum, j, rowCounter;
var dt = this.dt;
var strBuf = new StringBuilder();
var row, start, buf, strField, p_row;
var dt_row = 0, dt_col = 0;
var start_row = 0, end_row = 0;
var DataGrid = null;
var col_list = this.col_list;
var field_name_list = this.field_name_list;
var iGuid_row = 0;
var no_new_line_template = "
%namespace%.%FormName%.%ELE_NAME% | ";
var title = "";
var prev_td = false;
var top_tab_name ;
if (typeof(dt) == "undefined")
{
return "";
}
// no_new_line_template = no_new_line_template.ReplaceAll(
if (dt.getValue("TABS") == "")
{
j = 0;
rowCounter = 1;
start_row = 0;
end_row = dt.MaxRow();
DataGrid = this.str_template.split(this.str_split);
row = DataGrid.length - 3;
strBuf.Append("\n" + DataGrid[0]);
start = 2;
if (dt.getValue("ELE_NAME").indexOf("EditDetail") == 0 || dt.getValue("ELE_NAME").indexOf("AddNewDetail") == 0)
buf = "";
else
buf = DataGrid[1];
strBuf.Append("\n" + buf);
var next_no_new_line = false;
var no_td = "";
for (dt_row = start_row; dt_row < end_row; dt_row++)
{
buf = "";
p_row = j % row;
no_td = dt.getValueByRow(dt_row, "NO_TD");
var ele_type = dt.getValueByRow(dt_row, "ELE_TYPE");
var no_head = dt.getValueByRow(dt_row, "NO_HEAD");
var _class = dt.getValueByRow(dt_row, "CLASS");
var rowspan = dt.getValueByRow(dt_row, "ROWSPAN");
var ele_param = dt.getValueByRow(dt_row, "ELE_PARAM");
if (next_no_new_line)
{
if (no_td != "")
{
buf = (prev_td ? "" : "") + this.str_template_no_td;
}
else
{
if (dt.getValueByRow(dt_row, "WITH_HEAD") != "")
buf = this.str_template_with_head;
else
buf = this.str_template_no_new_line;
}
}
else
{
if (ele_type == "title") {
if (ele_param != "") {
buf = " | "
buf += ""
buf += "%TITLE% |
";
}
else
buf = " %TITLE% |
";
}
else if (ele_type == "hr") {
buf = "
|
"; }
else {
if (no_head != "")
{
buf = this.str_template_no_head ;
}
else
{
buf = DataGrid[start + p_row];
if (_class != "") {
buf = buf.ReplaceAll("class=\"editWindowColumn\"", "class=\"editWindowColumn %class%\"");
buf = buf.ReplaceAll("title=\"%ELE_MEMO_Source%\"\n", "title=\"%ELE_MEMO_Source%\" class=\"%class%\"\n ");
buf = buf.ReplaceAll(" XX : 用那個 buffer, YY : Colspan 數字
var marco_no = this.check_template_marco_no(buf);
var colspan_no = this.check_template_colspan(buf);
var colspan = "";
if (marco_no != -1)
{
if (colspan_no != -1)
{
colspan = "COLSPAN=" + colspan_no;
buf = buf.ReplaceAll("@@" + marco_no + "@@" + colspan_no + "@@", DataGrid[marco_no]);
}
else
buf = buf.ReplaceAll("@@" + marco_no + "@@", DataGrid[marco_no]);
}
// -------------------------------
if (buf.indexOf("%row%") != -1)
buf = buf.ReplaceAll("%row%", dt_row+1);
buf = buf.ReplaceAll("%COLSPAN%", colspan);
var no_line_colspan = dt.getValueByRow(dt_row, "COLSPAN") ;
if (no_line_colspan != "")
buf = buf.ReplaceAll("bgcolor=\"#FFFFFF\" id=", " COLSPAN=" + no_line_colspan + " bgcolor=\"#FFFFFF\" id=");
if (rowspan != "") buf = buf.ReplaceAll("\"%class%\"", "\"%class%\" rowspan=\"%rowspan%\"");
buf = buf.ReplaceAll("%colspan%", no_line_colspan);
buf = buf.ReplaceAll("%rowspan%",rowspan);
buf = buf.ReplaceAll("%class%", _class);
for (dt_col = 0; dt_col < col_list.length; dt_col++)
{
var FieldName = field_name_list[dt_col];
var _col = col_list[dt_col];
var _value = this.dt.getRowValueByCol(dt_row, _col);
if (FieldName == "NO_NEW_LINE")
{
if (_value != "")
{
if (next_no_new_line == false)
{
// buf = buf.ReplaceAll("bgcolor=\"#FFFFFF\" id=", "colspan=\"2\" bgcolor=\"#FFFFFF\" id=");
if (no_td != "")
buf = buf.ReplaceAll("", "");
buf = buf.ReplaceAll("
", "");
next_no_new_line = true;
}
}
else
{
if (next_no_new_line)
{
if (no_td != "")
buf += "";
buf += "";
next_no_new_line = false;
}
}
}
if (this.flg_show_html == 0) {
try {
_value = _value.ReplaceAll("&", "&");
_value = _value.ReplaceAll("<", "<");
_value = _value.ReplaceAll(">", ">");
_value = _value.ReplaceAll("\"", """);
}
catch (e) {}
}
if (this.flg_auto_breakline == 1) {
try {
_value = _value.ReplaceAll("\n", "
");
}
catch (e) {}
}
if (buf.indexOf("%" + FieldName + "_Source%") != -1) {
buf = buf.ReplaceAll("%" + FieldName + "_Source%", _value.Left(600).ReplaceAll("
", "\n"));
}
if (this.max_cols != -1 && _value.length > this.max_cols) {
_value = _value.Left(this.max_cols) + " ...";
}
// iGuid don't display
if (_value == "iGuid" && FieldName == "NAME")
{
iGuid_row = 1;
buf = buf.ReplaceAll("") < 0)
{
buf += "
";
};
strBuf.Append("\n" + buf);
iGuid_row = 0;
}
else
{
if (buf.indexOf("") == -1)
prev_td = false;
else
prev_td = true;
strBuf.Append("\n" + buf);
j += 1;
}
}
strBuf.Append("\n" + DataGrid[DataGrid.length-1]);
}
else
{
j = 0;
rowCounter = 1;
start_row = 0;
end_row = dt.MaxRow();
DataGrid = this.str_template.split(this.str_split);
row = DataGrid.length - 3;
//strBuf.Append("\n" + DataGrid[0]);
start = 2;
// buf = DataGrid[1];
// strBuf.Append("\n" + buf);
// 取得所有 TABS
var tabs = TABS;
var tabs_template = [];
var tabs_html = [];
var prefix = dt.getValue("TABS").split(".")[0];
top_tab_name = prefix + "_TOP";
for (var i = 0 ; i < tabs.length; i++)
{
k = prefix + "." + tabs[i];
if (i == 0)
tabs_template[k] = "" + DataGrid[0] + "%HTML%
";
else
tabs_template[k] = "" + DataGrid[0] + "%HTML%
";
tabs_html[k] = new StringBuilder();
}
tabs_template[top_tab_name] = "" + DataGrid[0] + "%HTML%
";
tabs_html[top_tab_name] = new StringBuilder();
var next_no_new_line = false;
var no_td = "";
var prev_td = false;
for (dt_row = start_row; dt_row < end_row; dt_row++)
{
var tab_name = dt.getValueByRow(dt_row, "TABS");
if (tab_name == "") tab_name = top_tab_name;
buf = "";
p_row = j % row;
no_td = dt.getValueByRow(dt_row, "NO_TD");
var ele_type = dt.getValueByRow(dt_row, "ELE_TYPE");
var no_head = dt.getValueByRow(dt_row, "NO_HEAD");
var _class = dt.getValueByRow(dt_row, "CLASS");
var rowspan = dt.getValueByRow(dt_row, "ROWSPAN");
var ele_param = dt.getValueByRow(dt_row, "ELE_PARAM");
if (next_no_new_line)
{
if (no_td != "")
{
buf = (prev_td ? "" : "") + this.str_template_no_td;
}
else
{
if (dt.getValueByRow(dt_row, "WITH_HEAD") != "")
buf = this.str_template_with_head;
else
buf = this.str_template_no_new_line;
}
}
else
{
if (ele_type == "title") {
if (ele_param != "") {
buf = " | "
buf += " %TITLE% |
";
}
else
buf = " %TITLE% |
";
}
else if (ele_type == "hr") {
buf = "
|
"; }
else
if (no_head != "")
{
buf = this.str_template_no_head ;
}
else
{
buf = DataGrid[start + p_row];
if (_class != "") {
buf = buf.ReplaceAll("class=\"editWindowColumn\"", "class=\"editWindowColumn %class%\"");
buf = buf.ReplaceAll("title=\"%ELE_MEMO_Source%\"\n", "title=\"%ELE_MEMO_Source%\" class=\"%class%\"\n ");
buf = buf.ReplaceAll(" XX : 用那個 buffer, YY : Colspan 數字
var marco_no = this.check_template_marco_no(buf);
var colspan_no = this.check_template_colspan(buf);
var colspan = "";
if (marco_no != -1)
{
if (colspan_no != -1)
{
colspan = "COLSPAN=" + colspan_no;
buf = buf.ReplaceAll("@@" + marco_no + "@@" + colspan_no + "@@", DataGrid[marco_no]);
}
else
buf = buf.ReplaceAll("@@" + marco_no + "@@", DataGrid[marco_no]);
}
// -------------------------------
if (buf.indexOf("%row%") != -1)
buf = buf.ReplaceAll("%row%", dt_row+1);
buf = buf.ReplaceAll("%COLSPAN%", colspan);
var no_line_colspan = dt.getValueByRow(dt_row, "COLSPAN") ;
if (no_line_colspan != "")
buf = buf.ReplaceAll("bgcolor=\"#FFFFFF\" id=", " COLSPAN=" + no_line_colspan + " bgcolor=\"#FFFFFF\" id=");
buf = buf.ReplaceAll("%colspan%", no_line_colspan);
if (rowspan != "") buf = buf.ReplaceAll("\"%class%\"", "\"%class%\" rowspan=\"%rowspan%\"");
buf = buf.ReplaceAll("%rowspan%", dt.getValueByRow(dt_row, "ROWSPAN"));
buf = buf.ReplaceAll("%class%", _class);
for (dt_col = 0; dt_col < col_list.length; dt_col++)
{
var FieldName = field_name_list[dt_col];
var _col = col_list[dt_col];
var _value = this.dt.getRowValueByCol(dt_row, _col);
if (FieldName == "NO_NEW_LINE")
{
if (_value != "")
{
if (next_no_new_line == false)
{
// buf = buf.ReplaceAll("bgcolor=\"#FFFFFF\" id=", "colspan=\"2\" bgcolor=\"#FFFFFF\" id=");
if (no_td != "")
buf = buf.ReplaceAll("", "");
buf = buf.ReplaceAll("
", "");
next_no_new_line = true;
}
}
else
{
if (next_no_new_line)
{
if (no_td != "")
buf += "";
buf += "";
next_no_new_line = false;
}
}
}
if (this.flg_show_html == 0) {
try {
_value = _value.ReplaceAll("&", "&");
_value = _value.ReplaceAll("<", "<");
_value = _value.ReplaceAll(">", ">");
_value = _value.ReplaceAll("\"", """);
}
catch (e) {}
}
if (this.flg_auto_breakline == 1) {
try {
_value = _value.ReplaceAll("\n", "
");
}
catch (e) {}
}
if (buf.indexOf("%" + FieldName + "_Source%") != -1) {
buf = buf.ReplaceAll("%" + FieldName + "_Source%", _value.Left(600).ReplaceAll("
", "\n"));
}
if (this.max_cols != -1 && _value.length > this.max_cols) {
_value = _value.Left(this.max_cols) + " ...";
}
// iGuid don't display
if (_value == "iGuid" && FieldName == "NAME")
{
iGuid_row = 1;
buf = buf.ReplaceAll("") < 0)
{
buf += "
";
};
tabs_html[tab_name].Append("\n" + buf);
iGuid_row = 0;
}
else
{
if (buf.indexOf("") == -1)
prev_td = false;
else
prev_td = true;
tabs_html[tab_name].Append("\n" + buf);
j += 1;
}
}
tabs_template[top_tab_name] = tabs_template[top_tab_name].ReplaceAll("%HTML%", tabs_html[top_tab_name].ToString() + "\n" + DataGrid[DataGrid.length-1] );
strBuf.Append(tabs_template[top_tab_name]);
if (tabs_html[top_tab_name]._buf.length > 0) strBuf.Append("\n
");
strBuf.Append("\n" + DataGrid[1]); // 設定 Tab 的畫面
for (var i = 0 ; i < tabs.length; i++)
{
var k = prefix + "." + tabs[i]
tabs_template[k] = tabs_template[k].ReplaceAll("%HTML%", tabs_html[k].ToString() + "\n" + DataGrid[DataGrid.length-1] );
strBuf.Append(tabs_template[k]);
}
// strBuf.Append("\n" + DataGrid[DataGrid.length-1]);
}
return(strBuf.ToString());
}
this.check_template_marco_no = function (str_template)
{
if (typeof(str_template) == "undefined") return -1;
if (str_template.indexOf("@@") != -1)
{
var t_array = str_template.split("@@");
if (t_array.length > 2)
return (t_array[1]);
else
return (-1);
}
else
return (-1);
}
this.check_template_colspan = function (str_template)
{
if (str_template.indexOf("@@") != -1)
{
var t_array = str_template.split("@@");
if (t_array.length > 3)
return (t_array[2]);
else
return (-1);
}
else
return (-1);
}
}
-->