//==============================================================================
//
// TOBESOFT Co., Ltd.
// Copyright 2014 TOBESOFT Co., Ltd.
// All Rights Reserved.
//
// NOTICE: TOBESOFT permits you to use, modify, and distribute this file
// in accordance with the terms of the license agreement accompanying it.
//
// Readme URL: http://www.nexacro.co.kr/legal/nexacro-public-license-readme-1.0.html
//
//==============================================================================
if (!nexacro.Dataset) {
nexacro._getXMLTagData = function (xmlStr, parse_pos, startTag, endTag) {
var start_pos = xmlStr.indexOf(startTag, parse_pos);
if (start_pos > -1) {
var data_pos = start_pos + startTag.length;
var end_pos = xmlStr.indexOf(endTag, data_pos);
if (end_pos > -1) {
var str = xmlStr.substring(data_pos, end_pos);
return [str, "", start_pos, end_pos + endTag.length];
}
else {
var str = xmlStr.substring(data_pos);
return [str, "", start_pos, xmlStr.length];
}
}
return null;
};
nexacro._getXMLTagData2 = function (xmlStr, parse_pos, startTag, endTag) {
var start_pos = xmlStr.indexOf(startTag, parse_pos);
if (start_pos > -1) {
var attr;
var attr_pos = start_pos + startTag.length;
var data_pos = xmlStr.indexOf(">", attr_pos);
if (data_pos < 0) {
return null;
}
else if (data_pos > 0 && xmlStr.charAt(data_pos - 1) == '/') {
attr = xmlStr.substring(attr_pos, data_pos - 1).trim();
return ["", attr, start_pos, data_pos];
}
else {
attr = xmlStr.substring(attr_pos, data_pos).trim();
}
data_pos++;
var end_pos = xmlStr.indexOf(endTag, data_pos);
if (end_pos > -1) {
var str = xmlStr.substring(data_pos, end_pos);
return [str, attr, start_pos, end_pos + endTag.length];
}
else {
var str = xmlStr.substring(data_pos);
return [str, attr, start_pos, xmlStr.length];
}
}
return null;
};
nexacro._getXMLTagData3 = function (xmlStr, parse_pos, startTag, endTag) {
var start_pos = xmlStr.indexOf(startTag, parse_pos);
if (start_pos > -1) {
var start_pos2 = start_pos + startTag.length;
if (xmlStr.charAt(start_pos2) == " ") {
var attr;
var attr_pos = start_pos2 + 1;
var data_pos = xmlStr.indexOf(">", attr_pos);
if (data_pos < 0) {
return null;
}
else if (data_pos > 0 && xmlStr.charAt(data_pos - 1) == '/') {
attr = xmlStr.substring(attr_pos, data_pos - 1).trim();
return ["", attr, start_pos, data_pos];
}
else {
attr = xmlStr.substring(attr_pos, data_pos).trim();
}
data_pos++;
var end_pos = xmlStr.indexOf(endTag, data_pos);
if (end_pos > -1) {
var str = xmlStr.substring(data_pos, end_pos);
return [str, attr, start_pos, end_pos + endTag.length];
}
else {
var str = xmlStr.substring(data_pos);
return [str, attr, start_pos, xmlStr.length];
}
}
else if (xmlStr.charAt(start_pos2) == "/") {
start_pos2 = start_pos2 + 1;
if (xmlStr.charAt(start_pos2) == ">") {
return ["", "", start_pos, start_pos2];
}
}
else {
if (xmlStr.charAt(start_pos + 1) == ">") {
start_pos = start_pos + 1;
}
var data_pos = start_pos + startTag.length;
var end_pos = xmlStr.indexOf(endTag, data_pos);
if (end_pos > -1) {
var str = xmlStr.substring(data_pos, end_pos);
return [str, "", start_pos, end_pos + endTag.length];
}
else {
var str = xmlStr.substring(data_pos);
return [str, "", start_pos, xmlStr.length];
}
}
}
return null;
};
nexacro._getXMLTagData4 = function (xmlStr, parse_pos, startTag) {
var start_pos = xmlStr.indexOf(startTag, parse_pos);
if (start_pos > -1) {
var attr_pos = start_pos + startTag.length;
var end_pos = xmlStr.indexOf("/>", attr_pos);
if (end_pos > -1) {
var attr = xmlStr.substring(attr_pos, end_pos).trim();
return ["", attr, attr_pos, end_pos + 2];
}
else {
var attr = xmlStr.substring(attr_pos).trim();
return ["", attr, attr_pos, xmlStr.length];
}
}
return null;
};
nexacro._getXMLAttributeID = function (attrStr) {
var attr_pos = attrStr.indexOf("id=\"");
if (attr_pos > -1) {
var data_pos = attr_pos + 4;
var end_pos = attrStr.indexOf("\"", data_pos);
if (end_pos > -1) {
return attrStr.substring(data_pos, end_pos);
}
return "";
}
return null;
};
nexacro._getXMLAttributeType = function (attrStr) {
var attr_pos = attrStr.indexOf("type=\"");
if (attr_pos > -1) {
var data_pos = attr_pos + 6;
var end_pos = attrStr.indexOf("\"", data_pos);
if (end_pos > -1) {
return attrStr.substring(data_pos, end_pos);
}
return "";
}
return null;
};
nexacro._getXMLAttributeData = function (attrStr, attrid) {
var attr_pos = attrStr.indexOf(attrid + "=\"");
if (attr_pos > -1) {
var data_pos = attr_pos + attrid.length + 2;
var end_pos = attrStr.indexOf("\"", data_pos);
if (end_pos > -1) {
return attrStr.substring(data_pos, end_pos);
}
return "";
}
return null;
};
nexacro.Date = function (year, month, day, hours, minutes, seconds, milliseconds) {
if (year == null) {
this._timecheck = true;
this.date = new Date();
}
else if (month == null && typeof year == "string") {
this._timecheck = true;
this.date = new Date(year);
}
else if (day == null) {
year = (parseInt(year, 10) | 0);
month = (parseInt(month, 10) | 0);
this.date = new Date(year, month);
if (year <= 99 && year >= 0) {
this.date.setFullYear(year);
}
}
else if (hours == null) {
year = (parseInt(year, 10) | 0);
month = (parseInt(month, 10) | 0);
day = (parseInt(day, 10) | 0);
this.date = new Date(year, month, day);
if (year <= 99 && year >= 0) {
this.date.setFullYear(year);
}
}
else if (minutes == null) {
this._timecheck = true;
year = (parseInt(year, 10) | 0);
month = (parseInt(month, 10) | 0);
day = (parseInt(day, 10) | 0);
hours = (parseInt(hours, 10) | 0);
this.date = new Date(year, month, day, hours);
if (year <= 99 && year >= 0) {
this.date.setFullYear(year);
}
}
else if (seconds == null) {
this._timecheck = true;
year = (parseInt(year, 10) | 0);
month = (parseInt(month, 10) | 0);
day = (parseInt(day, 10) | 0);
hours = (parseInt(hours, 10) | 0);
minutes = (parseInt(minutes, 10) | 0);
this.date = new Date(year, month, day, hours, minutes);
if (year <= 99 && year >= 0) {
this.date.setFullYear(year);
}
}
else if (milliseconds == null) {
this._timecheck = true;
year = (parseInt(year, 10) | 0);
month = (parseInt(month, 10) | 0);
day = (parseInt(day, 10) | 0);
hours = (parseInt(hours, 10) | 0);
minutes = (parseInt(minutes, 10) | 0);
seconds = (parseInt(seconds, 10) | 0);
this.date = new Date(year, month, day, hours, minutes, seconds);
if (year <= 99 && year >= 0) {
this.date.setFullYear(year);
}
}
else {
this._timecheck = true;
year = (parseInt(year, 10) | 0);
month = (parseInt(month, 10) | 0);
day = (parseInt(day, 10) | 0);
hours = (parseInt(hours, 10) | 0);
minutes = (parseInt(minutes, 10) | 0);
seconds = (parseInt(seconds, 10) | 0);
milliseconds = (parseInt(milliseconds, 10) | 0);
this.date = new Date(year, month, day, hours, minutes, seconds, milliseconds);
if (year <= 99 && year >= 0) {
this.date.setFullYear(year);
}
}
return;
};
var _pDate = nexacro._createPrototype(nexacro.Object, nexacro.Date);
nexacro.Date.prototype = _pDate;
_pDate._type_name = "Date";
_pDate.getFullYear = function () {
return this.date.getFullYear();
};
_pDate.setFullYear = function (year, month, day) {
if (day != null) {
this.date.setFullYear(year, month, day);
}
else if (month != null) {
this.date.setFullYear(year, month);
}
else {
this.date.setFullYear(year);
}
};
_pDate.getYear = function () {
return this.date.getYear();
};
_pDate.setYear = function (year, month, day) {
if (day != null) {
this.date.setYear(year, month, day);
}
else if (month != null) {
this.date.setYear(year, month);
}
else {
this.date.setYear(year);
}
};
_pDate.getMonth = function () {
return this.date.getMonth();
};
_pDate.setMonth = function (month, day) {
if (day == null) {
this.date.setMonth(month);
}
else {
this.date.setMonth(month, day);
}
};
_pDate.getDate = function () {
return this.date.getDate();
};
_pDate.setDate = function (day) {
this.date.setDate(day);
};
_pDate.getDay = function () {
return this.date.getDay();
};
_pDate.getHours = function () {
return this.date.getHours();
};
_pDate.setHours = function (hour, min, sec, millisec) {
if (millisec != null) {
this.date.setHours(hour, min, sec, millisec);
}
else if (sec != null) {
this.date.setHours(hour, min, sec);
}
else if (min != null) {
this.date.setHours(hour, min);
}
else {
this.date.setHours(hour);
}
};
_pDate.getMinutes = function () {
return this.date.getMinutes();
};
_pDate.setMinutes = function (min, sec, millisec) {
if (millisec != null) {
this.date.setMinutes(min, sec, millisec);
}
else if (sec != null) {
this.date.setMinutes(min, sec);
}
else {
this.date.setMinutes(min);
}
};
_pDate.getSeconds = function () {
return this.date.getSeconds();
};
_pDate.setSeconds = function (sec, millisec) {
if (millisec != null) {
this.date.setSeconds(sec, millisec);
}
else {
this.date.setSeconds(sec);
}
};
_pDate.getMilliseconds = function () {
return this.date.getMilliseconds();
};
_pDate.setMilliseconds = function (millisec) {
this.date.setMilliseconds(millisec);
};
_pDate.getTime = function () {
return this.date.getTime();
};
_pDate.setTime = function (millisec) {
this.date.setTime(millisec);
};
_pDate.getTimezoneOffset = function () {
return this.date.getTimezoneOffset();
};
_pDate.getUTCFullYear = function () {
return this.date.getUTCFullYear();
};
_pDate.setUTCFullYear = function (year, month, day) {
if (day != null) {
this.date.setUTCFullYear(year, month, day);
}
else if (month != null) {
this.date.setUTCFullYear(year, month);
}
else {
this.date.setUTCFullYear(year);
}
};
_pDate.getUTCMonth = function () {
return this.date.getUTCMonth();
};
_pDate.setUTCMonth = function (month, day) {
if (day == null) {
this.date.setUTCMonth(month);
}
else {
this.date.setUTCMonth(month, day);
}
};
_pDate.getUTCDate = function () {
return this.date.getUTCDate();
};
_pDate.setUTCDate = function (day) {
this.date.setUTCDate(day);
};
_pDate.getUTCDay = function () {
return this.date.getUTCDay();
};
_pDate.getUTCHours = function () {
return this.date.getUTCHours();
};
_pDate.setUTCHours = function (hour, min, sec, millisec) {
if (millisec != null) {
this.date.setUTCHours(hour, min, sec, millisec);
}
else if (sec != null) {
this.date.setUTCHours(hour, min, sec);
}
else if (min != null) {
this.date.setUTCHours(hour, min);
}
else {
this.date.setUTCHours(hour);
}
};
_pDate.getUTCMinutes = function () {
return this.date.getUTCMinutes();
};
_pDate.setUTCMinutes = function (min, sec, millisec) {
if (millisec != null) {
this.date.setUTCMinutes(min, sec, millisec);
}
else if (sec != null) {
this.date.setUTCMinutes(min, sec);
}
else {
this.date.setUTCMinutes(min);
}
};
_pDate.getUTCSeconds = function () {
return this.date.getUTCSeconds();
};
_pDate.setUTCSeconds = function (sec, millisec) {
if (millisec == null) {
this.date.setUTCSeconds(sec);
}
else {
this.date.setUTCSeconds(sec, millisec);
}
};
_pDate.getUTCMilliseconds = function () {
return this.date.getUTCMilliseconds();
};
_pDate.setUTCMilliseconds = function (millisec) {
this.date.setUTCMilliseconds(millisec);
};
_pDate.parse = function (datestring) {
return this.date.parse(datestring);
};
_pDate.UTC = function (year, month, day, hours, minutes, seconds, ms) {
return this.date.UTC(year, month, day, hours, minutes, seconds, ms);
};
_pDate.valueOf = function () {
return this.toString();
};
_pDate.toGMTString = function () {
return this.date.toGMTString();
};
_pDate.toDateString = function () {
return this.date.toDateString();
};
_pDate.toTimeString = function () {
return this.date.toTimeString();
};
_pDate.toLocaleDateString = function (locale) {
var locale_info = nexacro.Locale.getLocaleInfo(locale);
var format_string = this.getLocaleFormatString(locale, locale_info.date_format);
return format_string;
};
_pDate.toLocaleTimeString = function (locale) {
var locale_info = nexacro.Locale.getLocaleInfo(locale);
var format_string = this.getLocaleFormatString(locale, locale_info.time_format);
return format_string;
};
_pDate.toString = function () {
var y = this.getFullYear();
var m = this.getMonth() + 1;
var d = this.getDate();
var h = this.getHours();
var min = this.getMinutes();
var sec = this.getSeconds();
var millisec = this.getMilliseconds();
y = y !== null ? this.toZeroDigitString(y, 4) : "0000";
m = m !== null ? this.toZeroDigitString(m, 2) : m;
d = d !== null ? this.toZeroDigitString(d, 2) : d;
h = h !== null ? this.toZeroDigitString(h, 2) : h;
min = min !== null ? this.toZeroDigitString(min, 2) : min;
sec = sec !== null ? this.toZeroDigitString(sec, 2) : sec;
millisec = millisec !== null ? this.toZeroDigitString(millisec, 3) : millisec;
if (this._timecheck) {
return "" + y + m + d + h + min + sec + millisec;
}
else {
return "" + y + m + d;
}
};
_pDate.toLocaleString = function (locale) {
var locale_info = nexacro.Locale.getLocaleInfo(locale);
var format_string = this.getLocaleFormatString(locale, locale_info.date_time_format);
return format_string;
};
_pDate.toUTCString = function () {
return this.date.toUTCString();
};
_pDate.toZeroDigitString = function (v, d) {
var zero = "";
v = v.toString();
if (v.length < d) {
for (var i = 0; i < d - v.length; i++) {
zero += "0";
}
}
return zero + v;
};
_pDate.getLocaleFormatString = function (locale, format, bLTRMark) {
var locale_info = nexacro.Locale.getLocaleInfo(locale);
var format_string = format;
format_string = format_string.replace(/%r/g, locale_info.time_format_ampm);
format_string = format_string.replace(/%x/g, locale_info.date_format);
format_string = format_string.replace(/%X/g, locale_info.time_format);
format_string = format_string.replace(/%T/g, "%H:%M:%S");
if (bLTRMark === true) {
format_string = format_string.replace(/%Y/g, "\u200E%Y");
format_string = format_string.replace(/%y/g, "\u200E%y");
format_string = format_string.replace(/%d/g, "\u200E%d");
format_string = format_string.replace(/%e/g, "\u200E%e");
}
format_string = format_string.replace(/%a/g, this.toLocaleWeekDayString(locale, "short"));
format_string = format_string.replace(/%A/g, this.toLocaleWeekDayString(locale, "long"));
format_string = format_string.replace(/%b/g, this.toLocaleMonthString(locale, "short"));
format_string = format_string.replace(/%B/g, this.toLocaleMonthString(locale, "long"));
format_string = format_string.replace(/%p/g, this.toLocaleAMPMString(locale));
format_string = format_string.replace(/%y/g, this.getYear());
format_string = format_string.replace(/%Y/g, this.getFullYear());
format_string = format_string.replace(/%n/g, this.getMonth() + 1);
format_string = format_string.replace(/%m/g, nexacro._toString(this.getMonth() + 1).padLeft(2, "0"));
format_string = format_string.replace(/%d/g, nexacro._toString(this.getDate()).padLeft(2, "0"));
format_string = format_string.replace(/%e/g, this.getDate());
format_string = format_string.replace(/%H/g, this.getHours());
format_string = format_string.replace(/%l/g, this.getHours());
format_string = format_string.replace(/%I/g, this.getHours());
format_string = format_string.replace(/%M/g, this.getMinutes());
format_string = format_string.replace(/%S/g, this.getSeconds());
format_string = format_string.replace(/\\a/g, "a");
format_string = format_string.replace(/\\m/g, "m");
format_string = format_string.replace(/\\d/g, "d");
return format_string;
};
_pDate.toLocaleWeekDayString = function (locale, option) {
var locale_info = nexacro.Locale.getLocaleInfo(locale);
var day = this.getDay();
var weekday_string = "";
switch (option) {
case "short":
{
weekday_string = locale_info.weekday_names_short[day];
}
break;
case "narrow":
{
weekday_string = locale_info.weekday_names_narrow[day];
}
break;
case "long":
default:
{
weekday_string = locale_info.weekday_names_long[day];
}
break;
}
return weekday_string;
};
_pDate.toLocaleMonthString = function (locale, option) {
var locale_info = nexacro.Locale.getLocaleInfo(locale);
var month = this.getMonth();
var month_string = "";
switch (option) {
case "short":
{
month_string = locale_info.month_names_short[month];
}
break;
case "narrow":
{
month_string = locale_info.month_names_narrow[month];
}
break;
case "long":
default:
{
month_string = locale_info.month_names_long[month];
}
break;
}
return month_string;
};
_pDate.toLocaleAMPMString = function (locale) {
var locale_info = nexacro.Locale.getLocaleInfo(locale);
var hours = this.getHours();
var ampm_string = "";
if ((hours % 12) % 2) {
ampm_string = locale_info.ampm[1];
if (!ampm_string) {
ampm_string = "PM";
}
}
else {
ampm_string = locale_info.ampm[0];
if (!ampm_string) {
ampm_string = "AM";
}
}
return ampm_string;
};
delete _pDate;
nexacro.DataUtils =
{
_undefined_type : 0,
_string_type : 1,
_int_type : 2,
_float_type : 3,
_bicdecimal_type : 4,
_dete_type : 5,
_time_type : 6,
_datetime_type : 7,
_bolb_type : 8,
_variant_type : 9,
_typecodes :
{
"1" : 1,
"2" : 2,
"3" : 3,
"4" : 4,
"5" : 5,
"6" : 6,
"7" : 7,
"8" : 8,
"9" : 9,
"string" : 1,
"int" : 2,
"float" : 3,
"double" : 3,
"decimal" : 3,
"bigdecimal" : 4,
"date" : 5,
"time" : 6,
"datetime" : 7,
"blob" : 8,
"variant" : 9
},
_typeint :
{
"string" : 1,
"int" : 2,
"float" : 3,
"double" : 3,
"decimal" : 4,
"bigdecimal" : 4,
"date" : 5,
"time" : 6,
"datetime" : 7,
"blob" : 8,
"variant" : 9
},
_typenames : ["undefined", "STRING", "INT", "DOUBLE", "BIGDECIMAL", "DATE", "TIME", "DATETIME", "BLOB", "VARIANT"
],
_default_sizes : [8, 32, 4, 8, 16, 6, 9, 17, 256, 0
],
_default_values : [undefined, "", 0, 0.0, 0.0, null, null, null, null, null
],
_boolean_values :
{
"false" : false,
"False" : false,
"FALSE" : false,
"no" : false,
"No" : false,
"NO" : false,
"n" : false,
"N" : false,
"off" : false,
"Off" : false,
"OFF" : false,
"0" : false,
"true" : true,
"True" : true,
"TRUE" : true,
"yes" : true,
"Yes" : true,
"YES" : true,
"y" : true,
"Y" : true,
"on" : true,
"On" : true,
"ON" : true,
"1" : true
},
_init_date : new Date(0),
_max_milliseconds : 100000000 * 24 * 60 * 60 * 1000,
_min_milliseconds : -100000000 * 24 * 60 * 60 * 1000,
getDefaultValue : function (type) {
return nexacro.DataUtils._default_values[type.toLowerCase()];
},
getDefaultSize : function (type) {
return nexacro.DataUtils._default_sizes[type.toLowerCase()];
},
toTypeCode : function (type) {
var n = nexacro.DataUtils._typeint[type.toLowerCase()];
return (n == null) ? 0 : n;
},
toTypeName : function (type) {
var n = nexacro.DataUtils._typenames[type];
return (n == null) ? "undefined" : n;
},
findDataType : function (value) {
if ((typeof value) == "object") {
return (value instanceof Date) ? 7 : 0;
}
var n = nexacro.DataUtils._typenames[value];
return (n == null) ? 0 : n;
},
isBinary : function (type) {
return (type == 12);
},
toString : function (value) {
if (value == null) {
return value;
}
if (value instanceof Date) {
return this._formatDateTime(value);
}
return value.toString();
},
toStringFromText : function (value) {
return value;
},
toStringFromXMLText : function (value) {
return nexacro._decodeXml(value);
},
toTextFromString : function (value) {
return value;
},
toXMLTextFromString : function (value) {
return nexacro._encodeXml(value);
},
toInt : function (value) {
if (value == null) {
return undefined;
}
else if (value === "" || isNaN(+value)) {
return "";
}
else {
return (value | 0);
}
},
toIntFromText : function (value) {
if (value == null) {
return undefined;
}
else if (value === "" || isNaN(+value)) {
return "";
}
else {
return (value | 0);
}
},
toTextFromInt : function (value) {
return (value == null) ? undefined : value + "";
},
toBoolean : function (value) {
if (typeof value == "string") {
value = this._boolean_values[value];
}
return (value ? true : false);
},
toBooleanFromText : function (value) {
value = this._boolean_values[value];
return (value ? true : false);
},
toTextFromBoolean : function (value) {
return (value == null) ? value : value + "";
},
toFloat : function (value) {
if (value == null) {
return undefined;
}
else if (value === "" || isNaN(+value)) {
return "";
}
else {
return (+value);
}
},
toFloatFromText : function (value) {
if (value == null) {
return undefined;
}
else if (value === "" || isNaN(+value)) {
return "";
}
else {
return (+value);
}
},
toTextFromFloat : function (value) {
return (value == null) ? undefined : (value + "");
},
toNumber : function (value) {
if (value == null) {
return undefined;
}
else if (value === "" || isNaN(+value)) {
return "";
}
else {
return (+value);
}
},
toNumberFromText : function (value) {
if (value == null) {
return undefined;
}
else if (value === "" || isNaN(+value)) {
return "";
}
else {
return (+value);
}
},
toTextFromNumber : function (value) {
return (value == null) ? undefined : (value + "");
},
toDecimal : function (value) {
if (value == null) {
return undefined;
}
else if (value === "" || isNaN(+value)) {
return "";
}
else if (value instanceof Date) {
return new nexacro.Decimal(value.getTime());
}
return (isFinite(value)) ? new nexacro.Decimal(value) : "";
},
toDecimalFromText : function (value) {
if (value == null) {
return undefined;
}
else if (value === "" || isNaN(+value)) {
return undefined;
}
else {
return new nexacro.Decimal(value);
}
},
toTextFromDecimal : function (value) {
return (value == null) ? undefined : value.toString();
},
toDate : function (value) {
if (value == null) {
return undefined;
}
else if (value === "") {
return "";
}
if ((typeof value) == "string") {
return nexacro.DataUtils._parseDateTime(value, "DATE");
}
if (value instanceof Date) {
return nexacro.DataUtils._datetimeToDate(value);
}
if ((typeof value) == "number" && nexacro.DataUtils._isValidTime(value)) {
return nexacro.DataUtils._datetimeToDate(new Date(value));
}
if (value instanceof nexacro.Date) {
return value;
}
return null;
},
toDateFromText : function (value) {
if (value === undefined) {
return undefined;
}
return (value == "") ? null : nexacro.DataUtils._parseDateTime(value, "DATE");
},
toTextFromDate : function (value) {
return (value == null) ? null : nexacro.DataUtils._formatDate(value);
},
toTime : function (value) {
if (value == null || value == "") {
return null;
}
if ((typeof value) == "string") {
return nexacro.DataUtils._parseDateTime(value, "TIME");
}
if (value instanceof Date) {
return nexacro.DataUtils._datetimeToTime(value);
}
if ((typeof value) == "number" && nexacro.DataUtils._isValidTime(value)) {
return nexacro.DataUtils._datetimeToTime(new Date(value));
}
if (value instanceof nexacro.Date) {
return value;
}
return null;
},
toTimeFromText : function (value) {
if (value === undefined) {
return undefined;
}
return (value == "") ? null : nexacro.DataUtils._parseDateTime(value, "TIME");
},
toTextFromTime : function (value) {
if (value === null) {
return null;
}
if (value === undefined) {
return undefined;
}
if (value == "") {
return "";
}
return nexacro.DataUtils._formatTime(value);
},
toDateTime : function (value) {
if (value == null) {
return undefined;
}
if (value === "") {
return "";
}
if ((typeof value) == "string") {
if (isNaN(+value)) {
return "";
}
return nexacro.DataUtils._parseDateTime(value, "DATETIME");
}
if (value instanceof Date) {
return nexacro.DataUtils._datetimeToTime(value);
}
if ((typeof value) == "number" && nexacro.DataUtils._isValidTime(value)) {
return nexacro.DataUtils._datetimeToTime(new Date(value));
}
if (value instanceof nexacro.Date) {
return value;
}
return null;
},
toDateTimeFromText : function (value) {
if (value === undefined) {
return undefined;
}
return (value == "") ? null : nexacro.DataUtils._parseDateTime(value, "DATETIME");
},
toTextFromDateTime : function (value) {
if (value === null) {
return null;
}
if (value === undefined) {
return undefined;
}
if (value == "") {
return "";
}
return nexacro.DataUtils._formatDateTime(value);
},
toBlob : function (value) {
return value;
},
toBlobFromText : function (value) {
return value;
},
toTextFromBlob : function (value) {
return value;
},
toVariant : function (value) {
return value;
},
toVariantFromText : function (value) {
return value;
},
toTextFromVariant : function (value) {
return (value == null) ? value : (value + "");
},
convert : function (value, type) {
switch (type) {
case 1:
return this.toString(value);
case 2:
return this.toInt(value);
case 3:
return this.toFloat(value);
case 4:
return this.toDecimal(value);
case 5:
return this.toDate(value);
case 6:
return this.toTime(value);
case 7:
return this.toDateTime(value);
case 8:
return this.toBlob(value);
default:
return this.toVariant(value);
}
return "";
},
_datetimeToDate : function (datetime) {
datetime.setHours(0);
datetime.setMinutes(0);
datetime.setSeconds(0);
datetime.setMilliseconds(0);
return datetime;
},
_datetimeToTime : function (datetime) {
datetime.setFullYear(0);
datetime.setMonth(0);
datetime.setDate(1);
return datetime;
},
_parseDateTime : function (str, cType) {
str = str.trim();
cType = cType.toUpperCase();
switch (cType) {
case "DATETIME":
var year = str.substring(0, 4);
var month = str.substring(4, 6);
var date = str.substring(6, 8);
var hour = str.substring(8, 10);
var minute = str.substring(10, 12);
var second = str.substring(12, 14);
var millisecond = str.substring(14, 16);
return nexacro.DataUtils._toDateTime(year, month, date, hour, minute, second, millisecond);
case "DATE":
var year = str.substring(0, 4);
var month = str.substring(4, 6);
var date = str.substring(6, 8);
return nexacro.DataUtils._toDate(year, month, date);
case "TIME":
var hour = str.substring(0, 2);
var minute = str.substring(2, 4);
var second = str.substring(4, 6);
var millisecond = str.substring(6, 9);
return nexacro.DataUtils._toTime(hour, minute, second, millisecond);
}
return "";
},
_formatDate : function (datetime) {
if (!datetime) {
return undefined;
}
return this._leftPad(datetime.getFullYear() * 10000 + (datetime.getMonth() + 1) * 100 + datetime.getDate(), 8);
},
_formatTime : function (datetime) {
if (!datetime) {
return undefined;
}
var millsecond = "";
var ms = datetime.getMilliseconds();
millsecond = this._leftPad(ms, 3);
return this._leftPad(datetime.getHours() * 10000 + datetime.getMinutes() * 100 + datetime.getSeconds(), 6) + millsecond;
},
_formatDateTime : function (datetime) {
if (isNaN(datetime)) {
return undefined;
}
var yyyymmdd = this._leftPad(datetime.getFullYear() * 10000 + (datetime.getMonth() + 1) * 100 + datetime.getDate(), 8);
var millsecond = "";
var ms = datetime.getMilliseconds();
millsecond = this._leftPad(ms, 3);
var hhmiss = this._leftPad(datetime.getHours() * 10000 + datetime.getMinutes() * 100 + datetime.getSeconds(), 6) + millsecond;
return yyyymmdd + hhmiss;
},
_toDate : function (year, month, date) {
var val = new nexacro.Date(year, month - 1, date);
return ((+val) != (+val)) ? undefined : val;
},
_toTime : function (hour, minute, second, millisecond) {
var val = new nexacro.Date(0, 0, 1, hour, minute, second, millisecond);
return ((+val) != (+val)) ? undefined : val;
},
_toDateTime : function (year, month, date, hour, minute, second, millisecond) {
var val = new nexacro.Date(year, month - 1, date, hour, minute, second, millisecond);
return ((+val) != (+val)) ? undefined : val;
},
_isValidTime : function (time) {
return (time <= this._MAX_MILLISECONDS && time >= this._MIN_MILLISECONDS);
},
_leftPad : function (value, count) {
value = value + "";
var padcnt = count - value.length;
switch (padcnt) {
case 0:
return value;
case 1:
return "0" + value;
case 2:
return "00" + value;
case 3:
return "000" + value;
case 4:
return "0000" + value;
case 5:
return "00000" + value;
}
return value;
}
};
nexacro.ExprParser = function () {
this.output = [];
this._itemidx = -1;
this._itempos = 0;
this._prevtype = -1;
};
_pExprParser = nexacro._createPrototype(nexacro.Object, nexacro.ExprParser);
nexacro.ExprParser.prototype = _pExprParser;
_pExprParser.whitespace = nexacro._gen_arrmap("\n\r\t ".split(''));
_pExprParser.wordchars = nexacro._gen_arrmap("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$".split(''));
_pExprParser.punct = nexacro._gen_arrmap("+ - * / % & ++ -- = += -= *= /= %= == === != <> !== > < >= <= >> << >>> >>>= >>= <<= && &= | || ! !! , : ? ^ ^= |= ::".split(' '));
_pExprParser.line_starters = nexacro._gen_arrmap("continue,try,throw,return,var,if,switch,case,default,for,while,break,function".split(','));
_pExprParser.regexp_hanja = /[\u2E80-\u2EFF]|[\u31C0-\u31EF]|[\u3200-\u32FF]|[\u3400-\u4DBF]|[\u4E00-\u9FBF]|[\uF900-\uFAFF]/;
_pExprParser.regexp_nipon = /[\u3040-\u309F]|[\u30A0-\u30FF]|[\u31F0-\u31FF]/;
_pExprParser.regexp_hangul = /[ㄱ-ㅎ]|[ㅏ-ㅣ]|[가-힣]/;
_pExprParser.regexp_num = /^[0-9]+[Ee]$/;
_pExprParser.is_ternary_op = function () {
var level = 0, colon_count = 0;
var output = this.output;
var i = output.length - 1;
function is_ternary_op_loop () {
if (i >= 0) {
switch (output[i]) {
case ':':
if (level === 0) {
colon_count++;
}
break;
case '?':
if (level === 0) {
if (colon_count === 0) {
return true;
}
else {
colon_count--;
}
}
break;
case '{':
if (level === 0) {
return false;
}
level--;
break;
case '(':
case '[':
level--;
break;
case ')':
case ']':
case '}':
level++;
break;
}
i--;
return false;
}
return true;
}
while (true) {
if (is_ternary_op_loop()) {
break;
}
if (is_ternary_op_loop()) {
break;
}
if (is_ternary_op_loop()) {
break;
}
if (is_ternary_op_loop()) {
break;
}
if (is_ternary_op_loop()) {
break;
}
if (is_ternary_op_loop()) {
break;
}
if (is_ternary_op_loop()) {
break;
}
if (is_ternary_op_loop()) {
break;
}
if (is_ternary_op_loop()) {
break;
}
if (is_ternary_op_loop()) {
break;
}
}
};
_pExprParser.append = function (text, type) {
var output = this.output;
var cnt = output.length;
if (type == 2 && this._prevtype == 2) {
output[cnt - 1].tok += text;
return;
}
if (type == 10) {
if (this._prevtype == 2) {
output[cnt - 1].tok += text;
return;
}
else if (cnt == 0) {
output[cnt] = {
type : 2,
tok : text,
pos : -1
};
this._prevtype = 1;
return;
}
}
else if (type == 4) {
this._itempos = 0;
}
else if (type == 5 && this._prevtype == 0) {
output[cnt - 1].type = 1;
this._itempos = 0;
}
var tok_item = {
type : type,
tok : text,
pos : this._itempos
};
output[cnt] = tok_item;
if (type == 10 && this._prevtype == 0) {
if (this._itempos >= 0) {
this._itempos++;
}
}
else if (type == 5 || type == 7 || type == 9) {
this._itempos = 0;
}
else if (type == 6 || type == 8) {
this._itempos = -1;
}
this._prevtype = type;
};
_pExprParser.tokenizeExpr = function (expr_str) {
this.input = expr_str;
var output = this.output;
var last_word = "";
var last_text = "";
var prev_last_text = "";
var last_type = -1;
var src = expr_str + "";
var src_len = src.length;
var cur_pos = 0;
if (cur_pos >= src_len) {
return 0;
}
while (true) {
if (cur_pos >= src_len) {
return output.length;
}
var c;
var tok = src.charAt(cur_pos);
cur_pos++;
while (tok in this.whitespace) {
if (cur_pos >= src_len) {
return output.length;
;
}
tok = src.charAt(cur_pos);
cur_pos++;
}
if (tok in this.wordchars || this.regexp_hangul.test(tok) || this.regexp_hanja.test(tok) || this.regexp_nipon.test(tok)) {
if (cur_pos < src_len) {
c = src.charAt(cur_pos);
while (c in this.wordchars || this.regexp_hangul.test(c) || this.regexp_hanja.test(c) || this.regexp_nipon.test(c)) {
tok += c;
cur_pos++;
if (cur_pos >= src_len) {
break;
}
c = src.charAt(cur_pos);
}
}
if (cur_pos < src_len && this.regexp_num.test(tok) && (c === '-' || c === '+')) {
var sign = src.charAt(cur_pos);
cur_pos += 1;
this.parse_pos = cur_pos;
c = src.charAt(cur_pos);
while (c in this.wordchars || this.regexp_hangul.test(c) || this.regexp_hanja.test(c) || this.regexp_nipon.test(c)) {
tok += c;
cur_pos++;
if (cur_pos >= src_len) {
break;
}
c = src.charAt(cur_pos);
}
this.append(tok, 3);
continue;
}
if (tok == 'in') {
this.append(tok, 4);
}
else {
var fval = parseFloat(tok);
if (isFinite(fval)) {
this.append(tok, 2);
}
else {
this.append(tok, 0);
}
}
continue;
}
if (tok == '(') {
this.append(tok, 5);
continue;
}
if (tok == ')') {
this.append(tok, 6);
continue;
}
if (tok == '[') {
this.append(tok, 7);
continue;
}
if (tok == ']') {
this.append(tok, 8);
continue;
}
if (tok == ',') {
this.append(tok, 9);
continue;
}
if (tok == '{') {
this.append(tok, 10);
continue;
}
if (tok == '}') {
this.append(tok, 11);
continue;
}
if (tok == ';') {
this.append(tok, 12);
continue;
}
if (tok == "'" || tok == '"') {
while (cur_pos < src_len) {
var sep = tok;
var esc = false;
c = src.charAt(cur_pos);
tok += c;
cur_pos++;
while (esc || c != sep) {
if (!esc) {
esc = (c == '\\');
}
else {
esc = false;
}
c = src.charAt(cur_pos);
tok += c;
cur_pos++;
if (cur_pos >= src_len) {
break;
}
}
if (c == sep) {
this.append(tok, 3);
break;
}
return -1;
}
continue;
}
if (tok == '/') {
c = src.charAt(cur_pos);
if (c == '*') {
tok += c;
cur_pos++;
while (cur_pos < src_len) {
c = src.charAt(cur_pos);
tok += c;
cur_pos++;
if (c == '*') {
if (cur_pos >= src_len) {
break;
}
c = src.charAt(cur_pos);
tok += c;
cur_pos++;
if (c == '/') {
continue;
}
}
}
return -1;
}
if (c == '/') {
tok += c;
cur_pos++;
c = src.charAt(cur_pos);
while (cur_pos < src_len) {
c = src.charAt(cur_pos);
if (c == "\r" || c == "\n") {
cur_pos += 1;
continue;
;
}
tok += c;
cur_pos++;
}
continue;
}
if (nexacro._indexOf([-1, 4, 5, 7, 9], output._prevtype) >= 0) {
while (cur_pos < src_len) {
var esc = false;
var in_char_class = false;
c = src.charAt(cur_pos);
tok += c;
cur_pos++;
while (esc || in_char_class || c != '/') {
if (!esc) {
esc = (c == '\\');
if (c == '[') {
in_char_class = true;
}
else if (c == ']') {
in_char_class = false;
}
}
else {
esc = false;
}
c = src.charAt(cur_pos);
tok += c;
cur_pos++;
}
if (c != '/') {
return -1;
}
c = src.charAt(cur_pos);
while (cur_pos < src_len && (c in this.wordchars || this.regexp_hangul.test(tok) || this.regexp_hanja.test(tok) || this.regexp_nipon.test(tok))) {
tok += c;
cur_pos++;
c = src.charAt(cur_pos);
}
this.append(tok, 3);
break;
}
continue;
}
}
if (tok in this.punct) {
while (cur_pos < src_len) {
c = src.charAt(cur_pos);
if ((tok + c) in this.punct) {
tok += c;
cur_pos++;
}
else {
break;
}
}
if (tok.charAt(0) == '=') {
if (tok != '==' && tok != '===') {
if (cur_pos >= src_len) {
return -1;
}
}
}
this.append(tok, 4);
continue;
}
if (tok == '.') {
this.append(tok, 10);
continue;
}
return -1;
}
};
_pExprParser.makeSubExpr = function (ds, from, to) {
var str = "";
var output = this.output;
var len = output.length;
var colinfos = ds.colinfos;
var constinfos = ds._constVars;
var id;
var i = from;
function makeSubExpr_loop (pthis) {
if (i < to) {
var item = output[i];
if (i != 0 && item.type == 4) {
str += ' ';
str += item.tok;
str += ' ';
}
else {
var new_name = "";
if (item.type == 0 && item.pos == 0) {
var id = item.tok;
if ((colinfos != undefined && id in colinfos) || (constinfos != undefined && id in constinfos)) {
if (i < (to - 1) && output[i + 1].type == 7) {
var bcnt = 0;
var j;
for (j = i + 2; j < to; j++) {
if (output[j].type == 7) {
bcbt++;
}
if (output[j].type == 8) {
if (bcnt == 0) {
break;
}
else {
bcnt--;
}
}
}
if (j < to && j > (i + 2)) {
var substr = pthis.makeSubExpr(ds, i + 2, j);
if (substr != null) {
str += "dataset.getColumn(" + substr + ", '" + id + "')";
i = j;
}
else {
return undefined;
}
}
else {
return undefined;
}
}
else {
str += "dataset.getColumn(rowidx, '" + id + "')";
}
}
else if (id == "new") {
str += id + " ";
}
else {
str += id;
}
}
else {
str += item.tok;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (makeSubExpr_loop(this)) {
break;
}
if (makeSubExpr_loop(this)) {
break;
}
if (makeSubExpr_loop(this)) {
break;
}
if (makeSubExpr_loop(this)) {
break;
}
if (makeSubExpr_loop(this)) {
break;
}
if (makeSubExpr_loop(this)) {
break;
}
if (makeSubExpr_loop(this)) {
break;
}
if (makeSubExpr_loop(this)) {
break;
}
if (makeSubExpr_loop(this)) {
break;
}
if (makeSubExpr_loop(this)) {
break;
}
}
return str;
};
_pExprParser.makeExpr = function (ds, expr_str) {
var ret = this.tokenizeExpr(expr_str);
var str = this.makeSubExpr(ds, 0, this.output.length);
return str;
};
_pExprParser.makeSubEval = function (ds, from, to) {
var str = "";
var output = this.output;
var len = output.length;
var id;
var i = from;
function makeSubEval_loop () {
if (i < to) {
var item = output[i];
if (i != 0 && item.type == 4) {
str += ' ';
str += item.tok;
str += ' ';
}
else {
var new_name = "";
if (item.type == 0 && item.pos == 0) {
var id = item.tok;
if (id == "var") {
}
else {
str += id;
}
}
else if (item.type == 1 && item.pos == 0) {
var id = item.tok;
str += id;
}
else {
str += item.tok;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (makeSubEval_loop()) {
break;
}
if (makeSubEval_loop()) {
break;
}
if (makeSubEval_loop()) {
break;
}
if (makeSubEval_loop()) {
break;
}
if (makeSubEval_loop()) {
break;
}
if (makeSubEval_loop()) {
break;
}
if (makeSubEval_loop()) {
break;
}
if (makeSubEval_loop()) {
break;
}
if (makeSubEval_loop()) {
break;
}
if (makeSubEval_loop()) {
break;
}
}
return str;
};
_pExprParser.makeEval = function (ds, expr_str) {
var ret = this.tokenizeExpr(expr_str);
var str = this.makeSubEval(ds, 0, this.output.length);
return str;
};
delete _pExprParser;
nexacro.VariableList = function () {
nexacro.Collection.call(this);
};
var _pVariableList = nexacro._createPrototype(nexacro.Collection, nexacro.VariableList);
nexacro.VariableList.prototype = _pVariableList;
_pVariableList._type_name = "VariableList";
_pVariableList._updateID = function (idx, newID) {
var colinfo = this[idx];
if (colinfo != newID) {
colinfo = newID;
this[idx] = colinfo;
}
return this.update_id(idx, newID);
};
_pVariableList.deleteItem = function (id) {
return this.delete_item(id);
};
delete _pVariableList;
nexacro.DSColumnInfo = function (id, strtype, type, size, prop, sumtext, idx) {
this.id = id;
this.name = id;
this.type = strtype;
this.ntype = type;
this.size = size;
this.prop = prop;
this.sumtext = sumtext;
this._index = idx;
switch (type) {
case 1:
this._toText = nexacro.DataUtils.toTextFromString;
this._fromText = nexacro.DataUtils.toStringFromText;
this._fromVal = nexacro.DataUtils.toString;
this._toXMLText = nexacro.DataUtils.toXMLTextFromString;
this._fromXMLText = nexacro.DataUtils.toStringFromXMLText;
break;
case 2:
this._toText = nexacro.DataUtils.toTextFromInt;
this._fromText = nexacro.DataUtils.toIntFromText;
this._fromVal = nexacro.DataUtils.toInt;
this._toXMLText = nexacro.DataUtils.toTextFromInt;
this._fromXMLText = nexacro.DataUtils.toIntFromText;
break;
case 3:
this._toText = nexacro.DataUtils.toTextFromFloat;
this._fromText = nexacro.DataUtils.toFloatFromText;
this._fromVal = nexacro.DataUtils.toFloat;
this._toXMLText = nexacro.DataUtils.toTextFromFloat;
this._fromXMLText = nexacro.DataUtils.toFloatFromText;
break;
case 4:
this._toText = nexacro.DataUtils.toTextFromDecimal;
this._fromText = nexacro.DataUtils.toDecimalFromText;
this._fromVal = nexacro.DataUtils.toDecimal;
this._toXMLText = nexacro.DataUtils.toTextFromDecimal;
this._fromXMLText = nexacro.DataUtils.toDecimalFromText;
break;
case 5:
this._toText = nexacro.DataUtils.toTextFromDate;
this._fromText = nexacro.DataUtils.toDateFromText;
this._fromVal = nexacro.DataUtils.toDate;
this._toXMLText = nexacro.DataUtils.toTextFromDate;
this._fromXMLText = nexacro.DataUtils.toDateFromText;
break;
case 6:
this._toText = nexacro.DataUtils.toTextFromTime;
this._fromText = nexacro.DataUtils.toTimeFromText;
this._fromVal = nexacro.DataUtils.toTime;
this._toXMLText = nexacro.DataUtils.toTextFromTime;
this._fromXMLText = nexacro.DataUtils.toTimeFromText;
break;
case 7:
this._toText = nexacro.DataUtils.toTextFromDateTime;
this._fromText = nexacro.DataUtils.toDateTimeFromText;
this._fromVal = nexacro.DataUtils.toDateTime;
this._toXMLText = nexacro.DataUtils.toTextFromDateTime;
this._fromXMLText = nexacro.DataUtils.toDateTimeFromText;
break;
case 8:
this._toText = nexacro.DataUtils.toTextFromBlob;
this._fromText = nexacro.DataUtils.toBlobFromText;
this._fromVal = nexacro.DataUtils.toBlob;
this._toXMLText = nexacro.DataUtils.toTextFromBlob;
this._fromXMLText = nexacro.DataUtils.toBlobFromText;
break;
default:
this._toText = nexacro.DataUtils.toTextFromvariant;
this._fromText = nexacro.DataUtils.toVariantFromText;
this._fromVal = nexacro.DataUtils.toVariant;
this._toXMLText = nexacro.DataUtils.toTextFromvariant;
this._fromXMLText = nexacro.DataUtils.toVariantFromText;
break;
}
};
var _pDSColumnInfo = nexacro._createPrototype(nexacro.Object, nexacro.DSColumnInfo);
nexacro.DSColumnInfo.prototype = _pDSColumnInfo;
_pDSColumnInfo._type_name = "DSColumnInfo";
_pDSColumnInfo.set_size = function (v) {
v = parseInt(v) | 0;
if (this.size != v) {
if (!((+v) != (+v))) {
this.size = v;
}
}
};
_pDSColumnInfo.set_type = function (v) {
v = nexacro._toString(v);
if (this.type != v) {
this.type = v;
this.ntype = nexacro.DataUtils._typeint[v.toLowerCase()];
}
};
_pDSColumnInfo.set_prop = function (v) {
v = nexacro._toString(v);
if (this.prop != v) {
this.prop = v;
}
};
_pDSColumnInfo.set_sumtext = function (v) {
v = nexacro._toString(v);
if (this.sumtext != v) {
this.sumtext = v;
}
};
delete _pDSColumnInfo;
nexacro.DSColumnInfoList = function () {
nexacro.Collection.apply(this);
};
var _pDSColumnInfoList = nexacro._createPrototype(nexacro.Collection, nexacro.DSColumnInfoList);
nexacro.DSColumnInfoList.prototype = _pDSColumnInfoList;
_pDSColumnInfoList._type_name = "DSColumnInfoList";
_pDSColumnInfoList._updateID = function (idx, newID) {
var colinfo = this[idx];
if (colinfo.id != newID) {
colinfo.set_id(newID);
this[idx] = colinfo;
}
return this.update_id(idx, newID);
};
_pDSColumnInfoList.deleteItem = function (id) {
return this.delete_item(id);
};
delete _pDSColumnInfoList;
nexacro.DSColChangeEventInfo = function (obj, id, row, col, colidx, columnid, oldvalue, newvalue) {
this.id = this.eventid = id || "oncolumnchanged";
this.fromobject = this.fromreferenceobject = obj;
this.row = row;
this.col = col;
this.colidx = colidx;
this.columnid = columnid;
this.oldvalue = oldvalue;
this.newvalue = newvalue;
};
var _pDSColChangeEventInfo = nexacro._createPrototype(nexacro.Event, nexacro.DSColChangeEventInfo);
nexacro.DSColChangeEventInfo.prototype = _pDSColChangeEventInfo;
_pDSColChangeEventInfo._type_name = "DSColChangeEventInfo";
delete _pDSColChangeEventInfo;
nexacro.DSLoadEventInfo = function (obj, id, errorcode, errormsg, reason) {
this.id = this.eventid = id || "onload";
this.fromobject = this.fromreferenceobject = obj;
this.errorcode = errorcode;
this.errormsg = errormsg;
this.reason = reason;
};
var _pDSLoadEventInfo = nexacro._createPrototype(nexacro.Event, nexacro.DSLoadEventInfo);
nexacro.DSLoadEventInfo.prototype = _pDSLoadEventInfo;
_pDSLoadEventInfo._type_name = "DSLoadEventInfo";
delete _pDSLoadEventInfo;
nexacro.DSRowPosChangeEventInfo = function (obj, id, oldRow, newRow, reason) {
this.id = this.eventid = id || "onrowposchanged";
this.fromobject = this.fromreferenceobject = obj;
this.newrow = newRow;
this.oldrow = oldRow;
this.reason = reason;
};
var _pDSRowPosChangeEventInfo = nexacro._createPrototype(nexacro.Event, nexacro.DSRowPosChangeEventInfo);
nexacro.DSRowPosChangeEventInfo.prototype = _pDSRowPosChangeEventInfo;
_pDSRowPosChangeEventInfo._type_name = "DSRowPosChangeEventInfo";
delete _pDSRowPosChangeEventInfo;
nexacro.DSRowsetChangeEventInfo = function (obj, id, row, count, reason) {
this.id = this.eventid = id || "onrowsetchanged";
this.fromobject = this.fromreferenceobject = obj;
this.row = row;
this.count = count;
this.reason = reason;
};
var _pDSRowsetChangeEventInfo = nexacro._createPrototype(nexacro.Event, nexacro.DSRowsetChangeEventInfo);
nexacro.DSRowsetChangeEventInfo.prototype = _pDSRowsetChangeEventInfo;
_pDSRowsetChangeEventInfo._type_name = "DSRowsetChangeEventInfo";
delete _pDSRowsetChangeEventInfo;
nexacro.Dataset = function (id, parent) {
this.id = this.name = id;
if (parent) {
this.parent = parent;
}
this.colinfos = new nexacro.DSColumnInfoList();
this.colcount = 0;
this.constcount = 0;
this.rowcount = 0;
this.rowposition = -1;
this.loadstatus = false;
this.enableevent = true;
this.updatecontrol = true;
this.keystring = "";
this.filterstr = "";
this.loadkeymode = "keep";
this.loadfiltermode = "keep";
this.reversesubsum = false;
this.arguments = "";
this.firefirstcount = 0;
this.firenextcount = 0;
this.useclientlayout = false;
this._event_list = {
"onload" : 1,
"cancolumnchange" : 1,
"oncolumnchanged" : 1,
"onvaluechanged" : 1,
"canrowposchange" : 1,
"onrowposchanged" : 1,
"onrowsetchanged" : 1
};
this._constVars = new nexacro.VariableList();
this._rawRecords = [];
this._viewRecords = this._rawRecords;
this._deletedRecords = [];
this._onworkcompleted = new nexacro.EventListener("onworkcompleted");
this._keycols = [];
this._keycols.max_keylevel = 0;
this._exprFuncs = {
};
this._defaultKeyStr = "";
this._defaultFilterStr = "";
this._eventstat = true;
this._deleteRows = [];
};
var _pDataset = nexacro._createPrototype(nexacro.EventSinkObject, nexacro.Dataset);
nexacro.Dataset.prototype = _pDataset;
_pDataset._type_name = "Dataset";
_pDataset._isData = true;
nexacro.Dataset.LOADMODE_KEEP = 0;
nexacro.Dataset.LOADMODE_RESET = 1;
nexacro.Dataset._LOADMODE_ENUM =
{
"keep" : 0,
"reset" : 1
};
_pDataset.on_created = function () {
};
_pDataset.destroy = function () {
if (this.colinfos) {
this.colinfos.clear();
delete this.colinfos;
this.colinfos = null;
}
if (this._constVars) {
this._constVars.clear();
delete this._constVars;
this._constVars = null;
}
if (this._onworkcompleted) {
this._onworkcompleted._clearAll();
delete this._onworkcompleted;
this._onworkcompleted = null;
}
this._rawRecords = null;
this._viewRecords = null;
this._deletedRecords = null;
this._keycols = null;
this._deleteRows = null;
this._event_list = null;
this._exprFuncs = null;
nexacro.EventSinkObject.prototype.destroy.call(this);
};
_pDataset.set_name = function (v) {
this.id = this.name = v;
};
_pDataset.set_enableevent = function (v) {
v = nexacro._toBoolean(v);
if (this.enableevent != v) {
this.enableevent = v;
this._eventstat = (v && !this.loadstatus);
if (v) {
this.on_fire_onrowsetchanged(-1, -1, 41);
if (this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", this.rowposition, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
}
}
};
_pDataset.set_updatecontrol = function (v) {
this.updatecontrol = nexacro._toBoolean(v);
};
_pDataset.set_rowposition = function (v) {
v = parseInt(v, 10) | 0;
if (isFinite(v)) {
this._setRowPosition(v);
}
return this.rowposition;
};
_pDataset.colinfos = null;
_pDataset.set_keystring = function (v) {
v = v ? v.toString() : "";
this.keystring = v;
this.on_apply_keystring();
return this.keystring;
};
_pDataset.on_apply_keystring = function () {
this.updateSortGroup(this.keystring, true);
};
_pDataset.set_filterstr = function (v) {
var str = v.toString();
if (str != this.filterstr) {
this.filter(str);
}
return this.filterstr;
};
_pDataset.set_loadkeymode = function (v) {
if (this.loadkeymode != v) {
this.loadkeymode = v;
}
};
_pDataset.set_loadfiltermode = function (v) {
if (this.loadfiltermode != v) {
this.loadfiltermode = v;
}
};
_pDataset.set_reversesubsum = function (v) {
v = nexacro._toBoolean(v);
if (this.reversesubsum != v) {
this.reversesubsum = v;
this.on_apply_reversesubsum();
}
};
_pDataset.on_apply_reversesubsum = function () {
if (this.keystring) {
this.updateSortGroup(this.keystring);
}
};
_pDataset.set_useclientlayout = function (v) {
if (v == false || v == 0 || v == "false") {
this.useclientlayout = false;
}
else {
this.useclientlayout = true;
}
};
_pDataset.on_fire_onload = function (errcode, errmsg, reason) {
var event = this.onload;
if (event && event._has_handlers) {
var evt = new nexacro.DSLoadEventInfo(this, "onload", errcode, errmsg, reason);
event._fireEvent(this, evt);
}
};
_pDataset.on_fire_onrowsetchanged = function (row, count, reason) {
var event = this.onrowsetchanged;
if (event && event._has_handlers) {
var evt = new nexacro.DSRowsetChangeEventInfo(this, "onrowsetchanged", row, count, reason);
event._fireEvent(this, evt);
}
};
_pDataset.on_fire_canrowposchange = function (evt) {
var event = this.canrowposchange;
if (event && event._has_handlers) {
evt.eventid = "canrowposchange";
var ret = event._fireCheckEvent(this, evt);
if (ret === undefined) {
ret = true;
}
ret = nexacro._toBoolean(ret);
if (ret) {
this.rowposition = evt.newrow;
}
return ret;
}
return true;
};
_pDataset.on_fire_onrowposchanged = function (evt) {
var event = this.onrowposchanged;
if (event && event._has_handlers) {
evt.eventid = "onrowposchanged";
event._fireEvent(this, evt);
}
};
_pDataset.on_fire_cancolumnchange = function (evt) {
var event = this.cancolumnchange;
if (event && event._has_handlers) {
if (!event._firestat) {
evt.eventid = "cancolumnchange";
event._firestat = true;
var ret = event._fireCheckEvent(this, evt);
event._firestat = false;
return (ret == undefined) ? true : ret;
}
else if (event._firestat) {
}
else {
return false;
}
}
return true;
};
_pDataset.on_fire_oncolumnchanged = function (evt) {
var event = this.oncolumnchanged;
if (event && event._has_handlers) {
if (!event._firestat) {
event._firestat = true;
evt.eventid = "oncolumnchanged";
event._fireEvent(this, evt);
event._firestat = false;
}
else {
evt.eventid = "oncolumnchanged";
event._fireEvent(this, evt, true);
}
}
};
_pDataset.on_fire_onvaluechanged = function (evt) {
var event = this.onvaluechanged;
if (event && event._has_handlers) {
evt.eventid = "onvaluechanged";
event._fireEvent(this, evt);
}
};
_pDataset.clear = function () {
var oldpos = this.rowposition;
var _count = this.rowcount;
this._clearAll();
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 24);
if (oldpos >= 0 && oldpos == this.rowposition) {
this._forcesetRowPosition(-1, 51);
}
}
else {
this.rowposition = -1;
}
return _count;
};
_pDataset.getColCount = function () {
return this.colcount;
};
_pDataset.getConstCount = function () {
return this._constVars.length;
};
_pDataset.getRowCount = function () {
return this._viewRecords.length;
};
_pDataset.getDeletedRowCount = function () {
return this._deletedRecords.length;
};
_pDataset.getDeletedRowset = function () {
return this._deletedRecords;
};
_pDataset.addConstColumn = function (id, value) {
var idx = this._addConstColumn(id, value);
if (idx >= 0 && this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 34);
}
return idx;
};
_pDataset.addColumn = function (id, type, size) {
var idx = this._addColumn(id, type, size);
if (idx >= 0) {
this._clearAllExprs();
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 34);
}
}
return idx;
};
_pDataset.addColumnInfo = function (id, colinfo) {
var idx = this._addColumnInfo(id, colinfo);
if (idx >= 0) {
this._clearAllExprs();
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 34);
}
}
return idx;
};
_pDataset.appendColList = function (collist) {
var cnt = this._appendColList(collist);
if (cnt > 0) {
this._clearAllExprs();
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 34);
}
}
return cnt;
};
_pDataset.deleteColumn = function (id) {
var deleted = this._deleteColumn(id);
if (deleted) {
this._clearAllExprs();
var ColCnt = this._constVars.length + this.colinfos.length;
var oldRowPos = this.rowposition;
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 34);
if (ColCnt == 0 && oldRowPos >= 0) {
this._forcesetRowPosition(-1, 51);
}
}
else if (ColCnt == 0 && oldRowPos >= 0) {
this.rowposition = -1;
}
}
return deleted;
};
_pDataset.getColID = function (idx) {
if ((+idx) != (+idx)) {
idx = 0;
}
if (idx >= this.colinfos.length) {
return this._constVars.get_id(idx - this.colinfos.length);
}
else {
return this.colinfos.get_id(idx);
}
};
_pDataset.getConstColID = function (idx) {
if ((+idx) != (+idx)) {
idx = 0;
}
return this._constVars.get_id(idx);
};
_pDataset.getColumnInfo = function (idx) {
if (typeof (idx) == "string") {
if (this.colinfos.indexOf(idx) > -1) {
return this.colinfos[idx];
}
}
else {
if ((+idx) != (+idx) || idx == undefined) {
idx = 0;
}
return (this.colinfos[idx] == undefined) ? null : this.colinfos[idx];
}
return null;
};
_pDataset.updateColID = function (idx, newID) {
if (typeof (idx) == "string") {
if (this.colinfos.indexOf(idx) > -1) {
idx = this.colinfos.indexOf(idx);
}
else if (this._constVars.indexOf(idx) > -1) {
return this.updateConstColID(idx, newID);
}
else {
return -1;
}
}
else {
if ((+idx) != (+idx) || idx == undefined) {
idx = 0;
}
if (!this.colinfos[idx]) {
var constCol = idx - this.colinfos.length;
if (this._constVars[constCol]) {
return this.updateConstColID(constCol, newID);
}
else {
return -1;
}
}
}
var updated = this.colinfos._updateID(idx, newID);
if (updated && this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 34);
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", this.rowposition, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
return idx;
}
return -1;
};
_pDataset.updateConstColID = function (idx, newID) {
if (typeof (idx) == "string") {
if (this._constVars.indexOf(idx) > -1) {
idx = this._constVars.indexOf(idx);
}
else {
return -1;
}
}
else {
if ((+idx) != (+idx) || idx == undefined) {
idx = 0;
}
if (!this._constVars[idx]) {
return -1;
}
}
var updated = this._constVars._updateID(idx, newID);
if (updated && this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 34);
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", this.rowposition, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
return idx;
}
return -1;
};
_pDataset.addRow = function () {
if (this.colinfos.length <= 0) {
return -1;
}
var rtype = this.updatecontrol ? 2 : 1;
var idx = this._appendRow(rtype);
if (idx >= 0) {
var oldpos = this.rowposition;
if (this._eventstat) {
this.on_fire_onrowsetchanged(idx, 1, 12);
}
if (oldpos == this.rowposition) {
this._setRowPosition(idx, undefined, 51);
}
}
return idx;
};
_pDataset.insertRow = function (row) {
if (row < 0) {
return row;
}
var rtype = this.updatecontrol ? 2 : 1;
var idx = this._insertRow(row, rtype);
if (idx >= 0 && this._eventstat) {
var oldpos = this.rowposition;
this.on_fire_onrowsetchanged(idx, 1, 12);
if (oldpos == this.rowposition) {
this._setRowPosition(idx, undefined, 51, true);
}
}
return idx;
};
_pDataset.deleteRow = function (row) {
if ((+row) != (+row)) {
row = 0;
}
else {
if (row < 0 || row >= this.rowcount) {
return false;
}
}
var idx = this._deleteRow(row);
if (idx >= 0) {
if (this._eventstat) {
var oldpos = this.rowposition;
this.on_fire_onrowsetchanged(idx, 1, 20);
var setpos = this.rowposition;
if (oldpos == setpos) {
if (setpos > idx) {
this._setRowPosition(setpos - 1, undefined, 52);
}
else if (setpos == idx) {
if (this.rowcount == 0) {
this._forcesetRowPosition(-1, 51);
}
else {
if (setpos == this.rowcount) {
this._forcesetRowPosition(this.rowcount - 1, 51);
}
else {
this._setRowPosition(setpos, undefined, 53, true);
}
}
}
}
}
else {
var oldpos = this.rowposition;
var setpos = this.rowposition;
if (setpos > idx) {
this.rowposition = setpos - 1;
}
else if (setpos == idx) {
if (this.rowcount == 0) {
this.rowposition = -1;
}
else {
if (setpos == this.rowcount) {
this.rowposition = this.rowcount - 1;
}
}
}
}
}
return idx >= 0 ? true : false;
};
_pDataset.moveRow = function (oldrow, newrow) {
if ((+oldrow) != (+oldrow)) {
oldrow = 0;
}
else {
if (oldrow < 0 || oldrow >= this.rowcount) {
return -1;
}
}
if ((+newrow) != (+newrow)) {
newrow = 0;
}
else {
if (newrow < 0) {
return -1;
}
}
var idx = this._moveRow(oldrow, newrow);
if (idx >= 0 && this._eventstat) {
var oldpos = this.rowposition;
var from, cnt;
if (oldrow > newrow) {
from = newrow;
cnt = (oldrow - newrow + 1);
}
else {
from = oldrow;
cnt = (newrow - oldrow + 1);
}
this.on_fire_onrowsetchanged(from, cnt, 32);
if (oldpos == this.rowposition) {
if (oldpos == oldrow) {
this._setRowPosition(newrow, undefined, 52);
}
else if (oldrow > newrow && oldpos >= newrow && oldpos < oldrow) {
this._setRowPosition(oldpos + 1, undefined, 52);
}
else if (oldrow < newrow && oldpos > oldrow && oldpos < newrow) {
this._setRowPosition(oldpos - 1, undefined, 52);
}
}
}
return idx;
};
_pDataset.exchangeRow = function (row1, row2) {
if ((+row1) != (+row1)) {
row1 = 0;
}
else {
if (row1 < 0 || row1 >= this.rowcount) {
return false;
}
}
if ((+row2) != (+row2)) {
row2 = 0;
}
else {
if (row2 < 0 || row2 >= this.rowcount) {
return false;
}
}
if (this._exchangeRow(row1, row2) && this._eventstat) {
var oldpos = this.rowposition;
this.on_fire_onrowsetchanged(row1, 1, 33);
this.on_fire_onrowsetchanged(row2, 1, 33);
if (oldpos == this.rowposition) {
if (oldpos == row1) {
this._setRowPosition(row2, undefined, 52);
}
else if (oldpos == row2) {
this._setRowPosition(row1, undefined, 52);
}
}
return true;
}
return false;
};
_pDataset.deleteAll = function () {
var oldpos = this.rowposition;
var cnt = this._deleteAll();
if (cnt > 0 && this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 22);
if (oldpos == this.rowposition) {
this._forcesetRowPosition(-1, 51);
}
}
return cnt;
};
_pDataset.clearData = function () {
var oldpos = this.rowposition;
var cnt = this._clearData();
if (cnt > 0 && this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 23);
if (oldpos >= 0 && oldpos == this.rowposition) {
this._forcesetRowPosition(-1, 51);
}
}
else {
this.rowposition = -1;
}
return cnt;
};
_pDataset.deleteMultiRows = function (del_rows) {
if (typeof (del_rows) != "object") {
return 0;
}
var oldpos = this.rowposition;
var newrowData = this._viewRecords[oldpos];
del_rows.sort(function (l, r) {
return l - r;
});
var cnt = this._deleteMultiRows(del_rows);
if (cnt > 0) {
this.rowcount -= cnt;
var oldIdx = -1;
if (newrowData != null) {
oldIdx = nexacro._indexOf(this._viewRecords, newrowData);
}
if (this._eventstat) {
this._deleteRows = del_rows;
this.on_fire_onrowsetchanged(-1, cnt, 20);
if (oldpos == this.rowposition) {
if (oldpos > oldIdx) {
if (this.rowcount <= 0) {
this._forcesetRowPosition(-1, 51);
}
else if (oldIdx == -1) {
if (oldpos < this.rowcount) {
this._setRowPosition(oldpos, undefined, 53);
if (this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", this.rowposition, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
}
else {
this._forcesetRowPosition(-1, 51);
}
}
else {
this._setRowPosition(oldIdx, undefined, 52);
}
}
}
}
else {
this.rowposition = oldIdx;
}
}
return cnt;
};
_pDataset.filterRow = function (row) {
if ((+row) != (+row)) {
row = 0;
}
else {
if (row < 0 || row >= this.rowcount) {
return;
}
}
var oldpos = this.rowposition;
var flag = this._filterRow(row);
if (flag) {
if (this._eventstat) {
this.on_fire_onrowsetchanged(row, 1, 31);
if (oldpos == this.rowposition) {
if (oldpos > row) {
this._setRowPosition(oldpos - 1, undefined, 52);
}
else if (oldpos == row) {
if (this.rowcount == 0) {
this._forcesetRowPosition(-1, 51);
}
else {
if (oldpos == this.rowcount) {
this._forcesetRowPosition(this.rowcount - 1, 51);
}
else {
this._setRowPosition(oldpos, undefined, 53);
}
}
}
}
}
else {
if (oldpos > row) {
this.rowposition = (oldpos - 1);
}
else if (oldpos == row) {
if (oldpos > this.rowcount) {
oldpos = this.rowcount - 1;
}
this.rowposition = oldpos;
}
}
}
};
_pDataset.getRowType = function (row) {
if ((+row) != (+row)) {
row = 0;
}
else {
if (row < 0 || row >= this.rowcount) {
return 0;
}
}
var view = this._viewRecords;
return view[row]._rtype;
};
_pDataset.getRowLevel = function (row) {
if ((+row) != (+row)) {
row = 0;
}
else {
if (row < 0 || row >= this.rowcount) {
return 0;
}
}
var view = this._viewRecords;
return view[row]._level;
};
_pDataset.getGroupRangeStart = function (row) {
if ((+row) != (+row)) {
row = 0;
}
else {
if (row < 0 || row >= this.rowcount) {
return -1;
}
}
var view = this._viewRecords;
if (view[row]._rtype == 16) {
return view[row]._grpstart;
}
else {
return row;
}
};
_pDataset.getGroupRangeCount = function (row) {
if ((+row) != (+row)) {
row = 0;
}
else {
if (row < 0 || row >= this.rowcount) {
return 0;
}
}
var view = this._viewRecords;
if (view[row]._rtype == 16) {
return view[row]._grpend - view[row]._grpstart;
}
else {
return 1;
}
};
_pDataset.setRowType = function (row, type) {
if ((+row) != (+row)) {
row = 0;
}
else {
if (row < 0 || row >= this.rowcount) {
return false;
}
}
var view = this._viewRecords;
if (type == null || this.updatecontrol == true) {
return false;
}
var newtype = -1;
switch (type) {
case 0:
case 1:
case 2:
case 4:
case 8:
case 16:
newtype = type;
break;
default:
switch (type.toString().toUpperCase()) {
case 'E':
newtype = 0;
break;
case 'I':
newtype = 2;
break;
case 'U':
newtype = 4;
break;
case 'D':
newtype = 8;
break;
case 'G':
newtype = 16;
break;
default:
newtype = 1;
break;
}
}
if (newtype == -1) {
return false;
}
if (view[row]._rtype != newtype) {
if (view[row]._rtype == 4) {
if (view[row]._orgrow) {
delete view[row]["_orgrow"];
}
}
if (newtype == 4) {
var orgrowData = [];
var cnt = view[row].length;
for (var i = 0; i < cnt; i++) {
orgrowData[i] = view[row][i];
}
view[row]._orgrow = orgrowData;
}
}
view[row]._rtype = newtype;
if (this.enableevent) {
this.on_fire_onrowsetchanged(row, 1, 40);
}
return true;
};
_pDataset.getConstColumn = function (id) {
if (typeof (id) == "string") {
if (this._constVars.indexOf(id) > -1) {
return this._constVars.get_item(id);
}
}
else {
if ((+id) != (+id) || id == undefined) {
id = 0;
}
return this._constVars.get_item(id);
}
};
_pDataset.getColumn = function (row, col) {
if ((+row) != (+row)) {
row = 0;
}
var nrow = row;
var colinfo;
if (typeof (col) != "string") {
if ((+col) != (+col) || col == undefined) {
col = 0;
}
colinfo = this.colinfos[col];
if (colinfo == null) {
if (typeof (col) == "number") {
col -= this.colinfos.length;
}
return this._constVars[col];
}
}
else {
if (this.colinfos.indexOf(col) > -1) {
colinfo = this.colinfos[col];
}
else if (this._constVars.indexOf(col) > -1) {
return this._constVars[col];
}
else {
return;
}
}
var rowData = this._viewRecords[nrow];
if (rowData == null) {
return undefined;
}
var rtnVal = rowData[colinfo._index];
if ((colinfo.type == "datetime" || colinfo.type == "DATETIME") && rtnVal) {
return rtnVal;
}
return rowData[colinfo._index];
};
_pDataset.getColumnSet = function (row, col, pivotidx) {
return null;
};
_pDataset.getOrgColumn = function (row, col) {
if ((+row) != (+row)) {
row = 0;
}
if (typeof (col) == "string") {
if (this.colinfos.indexOf(col) > -1) {
}
else if (this._constVars.indexOf(col) > -1) {
return this._constVars[col];
}
else {
return;
}
}
else {
if ((+col) != (+col) || col == undefined) {
col = 0;
}
}
var colinfo = this.colinfos[col];
if (colinfo == undefined) {
return;
}
var rowData = this._viewRecords[row];
if (rowData == null) {
return undefined;
}
return rowData._orgrow ? rowData._orgrow[colinfo._index] : rowData[colinfo._index];
};
_pDataset.getDeletedColumn = function (row, col) {
row = parseInt(row, 10) | 0;
if ((+row) != (+row)) {
row = 0;
}
if (row < 0 || row >= this._deletedRecords.length) {
return undefined;
}
row += 1;
var i;
var len = this._rawRecords.length;
var rowData;
for (i = 0; i < len && row > 0; i++) {
if (this._rawRecords[i]._rtype == 8) {
rowData = this._rawRecords[i];
row--;
}
}
if (typeof (col) == "string") {
if (this.colinfos.indexOf(col) > -1) {
col = this.colinfos.indexOf(col);
}
else {
return;
}
}
else {
if ((+col) != (+col) || col == undefined) {
col = 0;
}
}
if (rowData == null) {
return undefined;
}
return rowData[col];
};
_pDataset.setConstColumn = function (id, value) {
var varList = this._constVars;
var idx;
var conidx = varList.indexOf(id);
if (typeof (id) == "string") {
if (conidx < 0 || conidx == undefined) {
return false;
}
else {
idx = conidx;
}
}
else {
if ((+id) != (+id) || id == undefined) {
id = 0;
}
if (id < 0 || id >= varList.length) {
return false;
}
else {
idx = id;
}
}
if (this._eventstat && ((this.cancolumnchange && this.cancolumnchange._has_handlers) || (this.oncolumnchanged && this.oncolumnchanged._has_handlers) || (this.onvaluechanged && this.onvaluechanged._has_handlers))) {
var oldVal = varList[idx];
if (value == oldVal) {
return false;
}
var colid = varList.get_id(idx);
var evt = new nexacro.DSColChangeEventInfo(this, "cancolumnchange", -1, idx + this.colinfos.length, -1, colid, oldVal, value);
if (this.on_fire_cancolumnchange(evt)) {
value = evt.newvalue;
if (value != oldVal) {
varList.set_item(idx, value);
this.on_fire_oncolumnchanged(evt);
this.on_fire_onvaluechanged(evt);
return true;
}
}
return false;
}
else {
varList.set_item(idx, value);
return true;
}
};
_pDataset.setColumn = function (row, col, value) {
return this._setColumn(row, col, value, null);
};
_pDataset._setColumn = function (row, col, value, fail) {
var nrow = row;
if ((+nrow) != (+nrow)) {
nrow = 0;
}
else {
if (nrow < 0 || nrow >= this.rowcount) {
return false;
}
}
if (typeof (col) == "string") {
if (this.colinfos.indexOf(col) > -1) {
col = this.colinfos.indexOf(col);
}
else if (this._constVars.indexOf(col) > -1) {
return this.setConstColumn(col, value);
}
else {
return false;
}
}
else {
if ((+col) != (+col) || col == undefined) {
col = 0;
}
if (!this.colinfos[col]) {
var constCol = col - this.colinfos.length;
if (this._constVars[constCol]) {
return this.setConstColumn(constCol, value);
}
else {
return false;
}
}
}
var colinfo = this.colinfos[col];
colinfo._index = col;
var rowData = this._viewRecords[nrow];
if (rowData != null) {
if (this._eventstat && ((this.cancolumnchange && this.cancolumnchange._has_handlers) || (this.oncolumnchanged && this.oncolumnchanged._has_handlers) || (this.onvaluechanged && this.onvaluechanged._has_handlers))) {
var oldVal = rowData[colinfo._index];
var fromval = colinfo._fromVal(value);
var coltype = this._getColumnType(col);
if (oldVal === fromval) {
return false;
}
if (coltype >= 4 && coltype <= 7) {
if (coltype == 4) {
if (fromval && oldVal && oldVal.hi == fromval.hi && oldVal.lo == fromval.lo) {
return false;
}
}
else {
if (fromval && oldVal && oldVal.getTime() == fromval.getTime()) {
return false;
}
}
}
var evt = new nexacro.DSColChangeEventInfo(this, "cancolumnchange", nrow, colinfo._index, -1, colinfo.id, oldVal, fromval);
if (this.on_fire_cancolumnchange(evt)) {
fromval = colinfo._fromVal(evt.newvalue);
if (this._updateColumn(nrow, rowData, colinfo._index, fromval)) {
evt.newvalue = fromval;
this.on_fire_oncolumnchanged(evt);
this.on_fire_onvaluechanged(evt);
return true;
}
}
else {
if (fail) {
fail.status = "cancolumnchange";
}
}
}
else {
fromval = colinfo._fromVal(value);
this._updateColumn(nrow, rowData, colinfo._index, fromval);
return true;
}
}
return false;
};
_pDataset.copyRow = function (torow, srcds, fromrow, strcolinfo) {
if (srcds == null) {
return false;
}
if ((+torow) != (+torow)) {
torow = 0;
}
if ((+fromrow) != (+fromrow)) {
fromrow = 0;
}
if (torow < 0 || torow >= this.rowcount) {
return false;
}
if (srcds._type_name != "Dataset") {
return false;
}
if (fromrow < 0 || fromrow >= srcds.rowcount) {
return false;
}
var srcinfos = srcds.colinfos;
var destinfos = this.colinfos;
var destData = this._viewRecords[torow];
if (strcolinfo != null && strcolinfo.length > 0) {
var cols = strcolinfo == "" ? destinfos : strcolinfo.split(',');
var len = cols.length;
var i = 0;
function copyRow_loop (pthis) {
if (i < len) {
var colids = cols[i].split('=');
var cLen = colids.length;
for (var j = 0; j < cLen; j++) {
colids[j] = colids[j].trim();
}
var src_colId, dst_colId;
if (cLen == 2) {
src_colId = colids[1];
dst_colId = colids[0];
var src_idx = srcinfos.indexOf(src_colId);
var dst_idx = destinfos.indexOf(dst_colId);
if (src_idx >= 0 && dst_idx >= 0) {
var value = destinfos[dst_idx]._fromVal(srcds.getColumn(fromrow, src_idx));
pthis._updateColumn(torow, destData, dst_idx, value);
}
}
i++;
return false;
}
return true;
}
while (true) {
if (copyRow_loop(this)) {
break;
}
if (copyRow_loop(this)) {
break;
}
if (copyRow_loop(this)) {
break;
}
if (copyRow_loop(this)) {
break;
}
if (copyRow_loop(this)) {
break;
}
if (copyRow_loop(this)) {
break;
}
if (copyRow_loop(this)) {
break;
}
if (copyRow_loop(this)) {
break;
}
if (copyRow_loop(this)) {
break;
}
if (copyRow_loop(this)) {
break;
}
}
}
else {
var srcData = srcds._viewRecords[fromrow];
var len = srcinfos.length;
var i = 0;
function copyRow_loop2 (pthis) {
if (i < len) {
var srcinfo = srcinfos[i];
var idx = destinfos.indexOf(srcinfo.id);
if (idx != null) {
var value = destinfos[idx]._fromVal(srcData[srcinfo._index]);
pthis._updateColumn(torow, destData, idx, value);
}
i++;
return false;
}
return true;
}
while (true) {
if (copyRow_loop2(this)) {
break;
}
if (copyRow_loop2(this)) {
break;
}
if (copyRow_loop2(this)) {
break;
}
if (copyRow_loop2(this)) {
break;
}
if (copyRow_loop2(this)) {
break;
}
if (copyRow_loop2(this)) {
break;
}
if (copyRow_loop2(this)) {
break;
}
if (copyRow_loop2(this)) {
break;
}
if (copyRow_loop2(this)) {
break;
}
if (copyRow_loop2(this)) {
break;
}
}
}
if (this._eventstat && ((this.oncolumnchanged && this.oncolumnchanged._has_handlers) || (this.onvaluechanged && this.onvaluechanged._has_handlers))) {
var evt = new nexacro.DSColChangeEventInfo(this, "oncolumnchanged", torow, -1, -1, "", undefined, "");
this.on_fire_oncolumnchanged(evt);
this.on_fire_onvaluechanged(evt);
}
return true;
};
_pDataset.filter = function (strkey) {
if (strkey != null) {
var str = strkey.toString();
this.filterstr = str;
this._filterFn = null;
if (!this.loadstatus && this._rawRecords.length > 0) {
var view = this._viewRecords;
var oldpos = this.rowposition;
var oldrowdata = view[oldpos];
this._reFilter();
this._resetSortGroup();
var newpos = nexacro._indexOf(this._viewRecords, oldrowdata);
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, -1, 31);
if (oldpos == this.rowposition) {
if (this.rowcount) {
if (newpos == -1) {
this._forcesetRowPosition(-1, 51);
}
else if (oldpos >= 0 && oldpos != newpos) {
this._setRowPosition(newpos, undefined, 52);
}
else {
this._forcesetRowPosition(newpos, 51);
}
}
else {
this._forcesetRowPosition(-1, 51);
}
}
}
else {
this.rowposition = newpos;
}
}
else if (!this.loadstatus) {
this._defaultFilterStr = str;
}
return true;
}
return false;
};
_pDataset.updateSortGroup = function (strkey, apply_method) {
var retn = true;
if (arguments.length < 2) {
if (strkey) {
strkey = strkey.toString();
this.keystring = strkey;
}
else {
if (!this.keystring) {
retn = false;
}
}
}
else {
if (!apply_method) {
retn = false;
}
}
if (retn) {
var isReset = false;
if (this.keystring == "" || this.keystring == "S:" || this.keystring == "G:") {
isReset = true;
}
if (this.keystring && !isReset) {
var view = this._viewRecords;
var oldpos = this.rowposition;
var oldrowdata = view[oldpos];
this._clearKeyCols();
if (!this.loadstatus && this._rawRecords.length > 0) {
this._resetSortGroup();
}
}
else {
this._deleteAllGroupData();
var view = this._viewRecords;
var oldpos = this.rowposition;
var oldrowdata = view[oldpos];
this._clearKeyCols();
if (!this.loadstatus && this._rawRecords.length > 0) {
this._viewRecords = this._rawRecords;
this._reFilter();
}
}
var newpos = nexacro._indexOf(this._viewRecords, oldrowdata);
if (this.enableevent) {
this.on_fire_onrowsetchanged(-1, -1, 30);
if (oldpos == this.rowposition) {
if (oldpos >= 0 && oldpos != newpos) {
this._setRowPosition(newpos, undefined, 52);
}
}
}
else {
this.rowposition = newpos;
}
}
return retn;
};
_pDataset.copyData = function (srcds, isFiltered) {
if (!srcds || srcds._type_name != "Dataset") {
return -1;
}
isFiltered = nexacro._toBoolean(isFiltered);
var oldpos = this.rowposition;
var bFilter = (this.filterstr != null && this.filterstr != "") ? true : false;
var bResetSort = (this.keystring == "" || this.keystring == "S:" || this.keystring == "G:") ? true : false;
this._clearAll();
this._copyData(srcds, isFiltered);
var bFireSort = !this.loadstatus && this._rawRecords.length > 0;
var bFireFilter = !this.loadstatus && this._rawRecords.length > 0;
this._eventstat = !this.loadstatus && this.enableevent;
if (bFilter) {
var str = this.filterstr.toString();
this.filterstr = str;
this._filterFn = null;
}
if (bResetSort) {
this._deleteAllGroupData();
this._clearKeyCols();
if (bFireFilter && bFireSort) {
this._viewRecords = this._rawRecords;
}
}
if (bFireFilter && bFireSort) {
this._reFilter();
this._resetSortGroup();
}
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, this.rowcount, 11);
}
if (oldpos == this.rowposition) {
if (this.rowcount > 0) {
if (oldpos != 0) {
this._setRowPosition(0, undefined, 51);
}
else if (this.id != srcds.id) {
this.rowposition = -1;
this._setRowPosition(oldpos, undefined, 53);
}
else {
if (this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", 0, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
}
}
else if (oldpos > -1) {
this._forcesetRowPosition(-1, 51);
}
}
this.loadstatus = false;
this._eventstat = this.enableevent;
return this.rowcount;
};
_pDataset.mergeData = function (srcds) {
if (!srcds || srcds._type_name != "Dataset") {
return -1;
}
var cnt = 0;
if (srcds._rawRecords.length > 0) {
var oldloadstatus = this.loadstatus;
this.loadstatus = true;
this._eventstat = !this.loadstatus && this.enableevent;
cnt = this._mergeData(srcds);
this.loadstatus = oldloadstatus;
this._eventstat = !this.loadstatus && this.enableevent;
var oldpos = this.rowposition;
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, cnt, 13);
}
if (oldpos == this.rowposition && oldpos == -1 && cnt > 0) {
this._setRowPosition(0, undefined, 51);
}
this.loadstatus = false;
this._eventstat = this.enableevent;
}
return this.rowcount;
};
_pDataset.appendData = function (srcds, chkcol, bupdateconst) {
if (!srcds || srcds._type_name != "Dataset") {
return -1;
}
if (srcds._viewRecords.length > 0) {
var oldloadstatus = this.loadstatus;
this.loadstatus = true;
this._eventstat = !this.loadstatus && this.enableevent;
this._appendData(srcds, chkcol, bupdateconst);
this.loadstatus = oldloadstatus;
this._eventstat = !this.loadstatus && this.enableevent;
var oldpos = this.rowposition;
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, this.rowcount, 12);
}
if (oldpos == this.rowposition && oldpos == -1 && this.rowcount > 0) {
this._setRowPosition(0, undefined, 51);
}
this.loadstatus = false;
this._eventstat = this.enableevent;
return this.rowcount;
}
return 0;
};
_pDataset.loadFromDOM = function (doc, bClear) {
if (bClear == null) {
bClear = true;
}
bClear = nexacro._toBoolean(bClear);
if (doc != null) {
this._bWorkingstatus = true;
var dsDOM;
if (doc.nodeName == "Dataset") {
dsDOM = doc;
}
else {
var datasets = doc.getElementsByTagName("Dataset");
dsDOM = datasets[0];
}
var curIdx = 0;
if (bClear && this.firefirstcount > 0) {
curIdx = this._loadFromDOM(dsDOM, curIdx, this.firefirstcount, this.useclientlayout, bClear);
if (this.firefirstcount == this.rowcount) {
this._reFilter();
this._resetSortGroup();
this.on_fire_onload(0, "", 1);
this._forcesetRowPosition(0, 51);
this.rowposition = 0;
curIdx = this._loadFromDOM(dsDOM, curIdx, -1, this.useclientlayout, false);
}
}
else {
curIdx = this._loadFromDOM(dsDOM, curIdx, -1, this.useclientlayout, bClear);
}
if (this.colinfos) {
this._reFilter();
this._resetSortGroup();
}
if (this._eventstat) {
this.on_fire_onload(0, "", bClear ? 0 : 12);
if (this._viewRecords && this._viewRecords.length > 0) {
this._forcesetRowPosition(0, 51);
}
else {
this._forcesetRowPosition(-1, 51);
}
}
else if (this._viewRecords && this._viewRecords.length > 0) {
this.rowposition = 0;
}
this._bWorkingstatus = false;
return this.rowcount;
}
};
_pDataset.loadFromXMLStr = function (xmlStr, bClear) {
if (bClear == null) {
bClear = true;
}
bClear = nexacro._toBoolean(bClear);
this._bWorkingstatus = true;
if (xmlStr) {
this._bWorkingstatus = true;
if (bClear && this.firefirstcount > 0) {
var xml_parse_pos = this._loadFromXMLStr(xmlStr, 0, this.firefirstcount, this.useclientlayout, bClear);
if (this.firefirstcount == this.rowcount) {
this._reFilter();
this._resetSortGroup();
this.on_fire_onload(0, "", 1);
this._forcesetRowPosition(0, 51);
this.rowposition = 0;
xml_parse_pos = this._loadFromXMLStr(xmlStr, xml_parse_pos, -1, this.useclientlayout, false);
}
}
else {
xml_parse_pos = this._loadFromXMLStr(xmlStr, 0, -1, this.useclientlayout, bClear);
}
if (this.colinfos) {
this._reFilter();
this._resetSortGroup();
}
if (this._eventstat) {
this.on_fire_onload(0, "", bClear ? 0 : 12);
if (this._viewRecords && this._viewRecords.length > 0) {
this._forcesetRowPosition(0, 51);
}
else {
this._forcesetRowPosition(-1, 51);
}
}
else if (this._viewRecords && this._viewRecords.length > 0) {
this.rowposition = 0;
}
this._bWorkingstatus = false;
return this.rowcount;
}
};
_pDataset.loadXML = function (strxml, bClear) {
return this.loadFromXMLStr(strxml, bClear);
};
_pDataset.loadFromPPXArray = function (ppxLine, lineCnt, curIdx, bClear) {
if (bClear == null) {
bClear = true;
}
bClear = nexacro._toBoolean(bClear);
if (ppxLine) {
this._bWorkingstatus = true;
while (ppxLine[curIdx].charAt(0) != "D") {
curIdx++;
}
if (curIdx < lineCnt) {
curIdx++;
var ppxColLines = this._getColLinesFromPPXLines(ppxLine, curIdx);
curIdx += ppxColLines.length;
if (bClear && this.firefirstcount > 0) {
curIdx = this._loadFromPPXArray(ppxColLines, ppxLine, curIdx, this.firefirstcount, this.useclientlayout, bClear);
if (this.firefirstcount == this.rowcount) {
this._reFilter();
this._resetSortGroup();
this.on_fire_onload(0, "", 1);
this._forcesetRowPosition(0, 51);
this.rowposition = 0;
curIdx = this._loadFromPPXArray(ppxColLines, ppxLine, curIdx, -1, this.useclientlayout, false);
}
}
else {
curIdx = this._loadFromPPXArray(ppxColLines, ppxLine, curIdx, -1, this.useclientlayout, bClear);
}
if (this.colinfos) {
this._reFilter();
this._resetSortGroup();
}
if (this._eventstat) {
this.on_fire_onload(0, "", bClear ? 0 : 12);
if (this._viewRecords && this._viewRecords.length > 0) {
this._forcesetRowPosition(0, 51);
}
else {
this._forcesetRowPosition(-1, 51);
}
}
else if (this._viewRecords && this._viewRecords.length > 0) {
this.rowposition = 0;
}
}
this._bWorkingstatus = false;
return curIdx;
}
};
_pDataset._saveXML = function (id, type, depth, bUseOrgColStrings) {
if (!depth) {
depth = 0;
}
var saveId = (id ? id : this.id);
var saveType = "N";
switch (type) {
case "A":
case "a":
case "all":
case "All":
saveType = "A";
break;
case "U":
case "u":
case "update":
case "Update":
saveType = "U";
break;
case "N":
case "n":
case "normal":
case "Normal":
saveType = "N";
break;
case "V":
case "v":
case "view":
case "View":
saveType = "V";
break;
}
var i;
var n;
var list = [];
this.__writeXMLData(list, "", depth++);
if (this._constVars.length + this.colinfos.length) {
this.__writeXMLData(list, "", depth++);
n = this._constVars.length;
i = 0;
function saveXML_constcol_loop (pthis) {
if (i < n) {
var colId = pthis._constVars.get_id(i);
var colVal = pthis._constVars[i];
if (colVal) {
pthis.__writeXMLData(list, "", depth);
}
else {
pthis.__writeXMLData(list, "", depth);
}
i++;
return false;
}
return true;
}
while (true) {
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
if (saveXML_constcol_loop(this)) {
break;
}
}
n = this.colinfos.length;
i = 0;
function saveXML_colinfo_loop (pthis) {
if (i < n) {
var colinfo = pthis.colinfos[i];
var colId = colinfo.id;
var colType = colinfo.type ? colinfo.type : nexacro.DataUtils.toTypeName(colinfo.ntype);
var colSize = colinfo.size;
var colProp = colinfo.prop;
if (colProp == "NONE" || colProp == null || (typeof colProp) == "number" || colProp == "") {
pthis.__writeXMLData(list, "", depth);
}
else {
pthis.__writeXMLData(list, "", depth);
}
i++;
return false;
}
return true;
}
while (true) {
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
if (saveXML_colinfo_loop(this)) {
break;
}
}
this.__writeXMLData(list, "", --depth);
}
else {
this.__writeXMLData(list, "", depth);
}
n = 0;
var rawRecords = this._rawRecords;
if (rawRecords) {
n = rawRecords.length;
}
var viewRec = this._viewRecords;
var viewcount = viewRec ? viewRec.length : 0;
if (n) {
this.__writeXMLData(list, "", depth++);
var rowData;
if (saveType == "A") {
i = 0;
function saveXML_row_loop1 (pthis) {
if (i < n) {
rowData = rawRecords[i];
if (rowData._rtype == 1 || rowData._rtype == 2 || rowData._rtype == 4 || rowData._rtype == 8) {
pthis.__writeXMLCrudRow(list, rowData, depth, bUseOrgColStrings);
}
i++;
return false;
}
return true;
}
while (true) {
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
if (saveXML_row_loop1(this)) {
break;
}
}
}
else if (saveType == "U") {
i = 0;
function saveXML_row_loop2 (pthis) {
if (i < n) {
rowData = rawRecords[i];
if (rowData._rtype == 2 || rowData._rtype == 4 || rowData._rtype == 8) {
pthis.__writeXMLCrudRow(list, rowData, depth, bUseOrgColStrings);
}
i++;
return false;
}
return true;
}
while (true) {
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
if (saveXML_row_loop2(this)) {
break;
}
}
}
else if (saveType == "V") {
i = 0;
function saveXML_row_loop4 (pthis) {
if (i < viewcount) {
rowData = viewRec[i];
pthis.__writeXMLNormalRow(list, rowData, depth, bUseOrgColStrings);
i++;
return false;
}
return true;
}
while (true) {
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
if (saveXML_row_loop4(this)) {
break;
}
}
}
else {
i = 0;
function saveXML_row_loop3 (pthis) {
if (i < n) {
rowData = rawRecords[i];
if (rowData._rtype == 1 || rowData._rtype == 2 || rowData._rtype == 4) {
pthis.__writeXMLNormalRow(list, rowData, depth, bUseOrgColStrings);
}
i++;
return false;
}
return true;
}
while (true) {
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
if (saveXML_row_loop3(this)) {
break;
}
}
}
this.__writeXMLData(list, "", --depth);
}
else {
this.__writeXMLData(list, "", depth);
this.__writeXMLData(list, "", depth);
}
this.__writeXMLData(list, "", --depth);
return list.join("\n");
};
_pDataset.saveXML = function (id, type, depth) {
return this._saveXML(id, type, depth, true);
};
_pDataset.loadFromSSVArray = function (ssvLine, lineCnt, curIdx, bClear) {
if (bClear == null) {
bClear = true;
}
bClear = nexacro._toBoolean(bClear);
if (ssvLine) {
this._bWorkingstatus = true;
while (ssvLine[curIdx].substring(0, 7) != "Dataset") {
curIdx++;
}
if (curIdx < lineCnt) {
curIdx++;
var ssvColLines = this._getColLinesFromSSVLines(ssvLine, curIdx);
curIdx += ssvColLines.length;
if (bClear && this.firefirstcount > 0) {
curIdx = this._loadFromSSVArray(ssvColLines, ssvLine, curIdx, this.firefirstcount, this.useclientlayout, bClear);
if (this.firefirstcount == this.rowcount) {
this._reFilter();
this._resetSortGroup();
this.on_fire_onload(0, "", 1);
this._forcesetRowPosition(0, 51);
this.rowposition = 0;
curIdx = this._loadFromSSVArray(ssvColLines, ssvLine, curIdx, -1, this.useclientlayout, false);
}
}
else {
curIdx = this._loadFromSSVArray(ssvColLines, ssvLine, curIdx, -1, this.useclientlayout, bClear);
}
if (this.colinfos) {
this._reFilter();
this._resetSortGroup();
}
if (this._eventstat) {
this.on_fire_onload(0, "", bClear ? 0 : 12);
if (this._viewRecords && this._viewRecords.length > 0) {
this._forcesetRowPosition(0, 51);
}
}
else if (this._viewRecords && this._viewRecords.length > 0) {
this.rowposition = 0;
}
}
this._bWorkingstatus = false;
return curIdx;
}
};
_pDataset.loadSSV = function (strssv, bClear) {
var _rs_ = String.fromCharCode(30);
if (strssv) {
var ssvLine = strssv.split(_rs_);
if (ssvLine.length) {
this.loadFromSSVArray(ssvLine, bClear);
}
}
return this.rowcount;
};
_pDataset.saveSSV = function (id, type) {
var _rs_ = String.fromCharCode(30);
var _cs_ = String.fromCharCode(31);
var saveId = this.id;
if (id && id.length > 0) {
saveId = id;
}
var saveType = "N";
switch (type) {
case "A":
case "a":
case "all":
case "All":
saveType = "A";
break;
case "U":
case "u":
case "update":
case "Update":
saveType = "U";
break;
}
var i;
var n;
var list = [];
this.__writeData(list, "Dataset:" + saveId + _rs_);
n = this._constVars.length;
if (n > 0) {
i = 0;
this.__writeData(list, "_Const_" + _cs_);
function saveSSV_constcol_loop (pthis) {
if (i < n) {
var colId = pthis._constVars.get_id(i);
var colVal = pthis._constVars[i];
if (colVal) {
if (i == (n - 1)) {
pthis.__writeData(list, _cs_ + colId + "=" + colVal + _rs_);
}
else {
pthis.__writeData(list, _cs_ + colId + "=" + colVal + _cs_);
}
}
else {
if (i == (n - 1)) {
pthis.__writeData(list, _cs_ + colId + "=" + _rs_);
}
else {
pthis.__writeData(list, _cs_ + colId + "=" + _cs_);
}
}
i++;
return false;
}
return true;
}
while (true) {
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
if (saveSSV_constcol_loop(this)) {
break;
}
}
}
n = this.colinfos.length;
if (n > 0) {
this.__writeData(list, "_RowType_" + _cs_);
i = 0;
function saveSSV_colinfo_loop (pthis) {
if (i < n) {
var colinfo = pthis.colinfos[i];
var colId = colinfo.id;
var colType = colinfo.type ? colinfo.type : nexacro.DataUtils.toTypeName(colinfo.ntype);
var colSize = colinfo.size;
if (colSize) {
if (i == (n - 1)) {
pthis.__writeData(list, colId + ":" + colType + "(" + colSize + ")" + _rs_);
}
else {
pthis.__writeData(list, colId + ":" + colType + "(" + colSize + ")" + _cs_);
}
}
else {
if (i == (n - 1)) {
pthis.__writeData(list, colId + ":" + colType + _rs_);
}
else {
pthis.__writeData(list, colId + ":" + colType + _cs_);
}
}
i++;
return false;
}
return true;
}
while (true) {
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
}
}
else {
this.__writeData(list, "_RowType_" + _rs_);
}
n = 0;
var rawRecords = this._rawRecords;
if (rawRecords) {
n = rawRecords.length;
}
if (n) {
var rowData;
if (saveType == "A") {
i = 0;
function saveSSV_row_loop1 (pthis) {
if (i < n) {
rowData = rawRecords[i];
if (rowData._rtype == 1 || rowData._rtype == 2 || rowData._rtype == 4 || rowData._rtype == 8) {
pthis.__writeSSVCrudRow(list, rowData);
}
i++;
return false;
}
return true;
}
while (true) {
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
if (saveSSV_row_loop1(this)) {
break;
}
}
}
else if (saveType == "U") {
i = 0;
function saveSSV_row_loop2 (pthis) {
if (i < n) {
rowData = rawRecords[i];
if (rowData._rtype == 2 || rowData._rtype == 4 || rowData._rtype == 8) {
pthis.__writeSSVCrudRow(list, rowData);
}
i++;
return false;
}
return true;
}
while (true) {
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
if (saveSSV_row_loop2(this)) {
break;
}
}
}
else {
i = 0;
function saveSSV_row_loop3 (pthis) {
if (i < n) {
rowData = rawRecords[i];
if (rowData._rtype == 1 || rowData._rtype == 2 || rowData._rtype == 4) {
pthis.__writeSSVNormalRow(list, rowData);
}
i++;
return false;
}
return true;
}
while (true) {
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
if (saveSSV_row_loop3(this)) {
break;
}
}
}
}
list.push(_rs_);
return list.join("");
};
_pDataset.loadFromCSVArray = function (csvLine, lineCnt, curIdx, bClear) {
if (bClear == null) {
bClear = true;
}
bClear = nexacro._toBoolean(bClear);
if (csvLine) {
this._bWorkingstatus = true;
while (csvLine[curIdx].substring(0, 7) != "Dataset") {
curIdx++;
}
if (curIdx < lineCnt) {
curIdx++;
var csvColLine = csvLine[curIdx++];
if (bClear && this.firefirstcount > 0) {
curIdx = this._loadFromCSVArray(csvColLine, csvLine, curIdx, this.firefirstcount, this.useclientlayout, bClear);
if (this.firefirstcount == this.rowcount) {
this._reFilter();
this._resetSortGroup();
this.on_fire_onload(0, "", 1);
this._forcesetRowPosition(0, 51);
this.rowposition = 0;
curIdx = this._loadFromCSVArray(csvColLine, csvLine, curIdx, -1, this.useclientlayout, false);
}
}
else {
curIdx = this._loadFromCSVArray(csvColLine, csvLine, curIdx, -1, this.useclientlayout, bClear);
}
if (this.colinfos) {
this._reFilter();
this._resetSortGroup();
}
if (this._eventstat) {
this.on_fire_onload(0, "", bClear ? 0 : 12);
if (this._viewRecords && this._viewRecords.length > 0) {
this._forcesetRowPosition(0, 51);
}
}
else if (this._viewRecords && this._viewRecords.length > 0) {
this.rowposition = 0;
}
}
this._bWorkingstatus = false;
return curIdx;
}
};
_pDataset.loadCSV = function (strcsv, bClear) {
if (strcsv) {
var csvLine = strcsv.split(/\r\n|\n/);
if (csvLine.length) {
this.loadFromCSVArray(csvLine, csvLine.length, 0, bClear);
}
}
return this.rowcount;
};
_pDataset.saveCSV = function (id) {
var saveId = this.id;
if (id && id.length > 0) {
saveId = id;
}
var i;
var n;
var list = [];
this.__writeData(list, "Dataset:" + saveId + "\r\n");
n = this.colinfos.length;
if (n > 0) {
i = 0;
function saveSSV_colinfo_loop (pthis) {
if (i < n) {
var colinfo = pthis.colinfos[i];
var colId = colinfo.id;
var colType = colinfo.type ? colinfo.type : nexacro.DataUtils.toTypeName(colinfo.ntype);
var colSize = colinfo.size;
if (colSize) {
if (i == (n - 1)) {
pthis.__writeData(list, colId + ":" + colType + "(" + colSize + ")\r\n");
}
else {
pthis.__writeData(list, colId + ":" + colType + "(" + colSize + "),");
}
}
else {
if (i == (n - 1)) {
pthis.__writeData(list, colId + ":" + colType + "\r\n");
}
else {
pthis.__writeData(list, colId + ":" + colType + ",");
}
}
i++;
return false;
}
return true;
}
while (true) {
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
if (saveSSV_colinfo_loop(this)) {
break;
}
}
}
else {
this.__writeData(list, "\r\n");
}
n = 0;
var rawRecords = this._rawRecords;
if (rawRecords) {
n = rawRecords.length;
}
if (n) {
var rowData;
i = 0;
function saveCSV_row_loop (pthis) {
if (i < n) {
rowData = rawRecords[i];
if (rowData._rtype == 1 || rowData._rtype == 2 || rowData._rtype == 4) {
pthis.__writeCSVRowData(list, rowData);
}
i++;
return false;
}
return true;
}
while (true) {
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
if (saveCSV_row_loop(this)) {
break;
}
}
}
list.push("\r\n");
return list.join("");
};
_pDataset.loadBin = function (binData) {
if (binData) {
var ssvdata = nexacro._convertDatasetBINToSSV(binData);
if (ssvdata) {
return this.loadSSV(ssvdata);
}
}
return this.rowcount;
};
_pDataset.saveBin = function (id, strSaveType) {
var ssvdata = this.saveSSV(id, strSaveType);
if (ssvdata) {
return nexacro._convertDatasetSSVToBIN(ssvdata);
}
return ssvdata;
};
_pDataset.applyChange = function () {
var rawDatas = this._rawRecords;
var len = rawDatas.length;
var i = len - 1;
function applyChange_loop () {
if (i >= 0) {
var rowData = rawDatas[i];
if (rowData._rtype == 0 || rowData._rtype == 8) {
rawDatas.splice(i, 1);
}
else {
rowData._rtype = 1;
if (rowData._orgrow) {
delete rowData["_orgrow"];
}
}
i--;
return false;
}
return true;
}
while (true) {
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
if (applyChange_loop()) {
break;
}
}
this._deletedRecords = [];
if (this.enableevent) {
this.on_fire_onrowsetchanged(-1, len, 40);
}
};
_pDataset.reset = function () {
this.loadstatus = true;
this._eventstat = !this.loadstatus && this.enableevent;
var oldpos = this.rowposition;
var rawDatas = this._rawRecords;
var len = rawDatas.length;
var i = len - 1;
function reset_loop () {
if (i >= 0) {
var rowData = rawDatas[i];
if (rowData._rtype == 0 || rowData._rtype == 2) {
rawDatas.splice(i, 1);
}
else if (rowData._rtype == 4) {
rowData._rtype = 1;
if (rowData._orgrow) {
var cnt = rowData.length;
for (var j = 0; j < cnt; j++) {
rowData[j] = rowData._orgrow[j];
}
delete rowData["_orgrow"];
}
}
else if (rowData._rtype == 8) {
rowData._rtype = 1;
}
i--;
return false;
}
return true;
}
while (true) {
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
if (reset_loop()) {
break;
}
}
if (this._viewRecords != this._rawRecords) {
this._viewRecords.splice(0, this._viewRecords.length);
}
this._viewRecords = this._rawRecords;
this._reFilter();
this._deletedRecords.splice(0, this._deletedRecords.length);
this.loadstatus = false;
this._eventstat = this.enableevent;
this.rowcount = this._viewRecords.length;
if (this._eventstat) {
this._bWorkingstatus = true;
this.on_fire_onload(0, "", 2);
if (this.rowposition >= this.rowcount && this.rowcount > 0) {
this._forcesetRowPosition(0, 51);
}
else {
this._forcesetRowPosition(this.rowposition, 51);
}
this._bWorkingstatus = false;
}
};
_pDataset.assign = function (srcds) {
if (!srcds || srcds._type_name != "Dataset") {
return -1;
}
this._eventstat = this.enableevent;
var oldpos = this.rowposition;
this._clearAll();
this._assign(srcds);
if (this.filterstr) {
this.filter(this.filterstr);
}
if (this.keystring) {
this.on_apply_keystring();
}
if (this._eventstat) {
this.on_fire_onrowsetchanged(-1, this.rowcount, 10);
}
if (oldpos == this.rowposition) {
if (this.rowcount > 0) {
if (oldpos != 0) {
this._setRowPosition(0, undefined, 51);
}
else if (this.id != srcds.id) {
this.rowposition = -1;
this._setRowPosition(oldpos, undefined, 53);
}
else {
if (this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", 0, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
}
}
else if (oldpos > -1) {
this._forcesetRowPosition(-1, 51);
}
}
return this.rowcount;
};
_pDataset.identifyExpr = function (expr) {
if (typeof (expr) != "string") {
return expr;
}
expr = expr + "";
var ex = expr.substr(0, 4).toUpperCase();
if (ex == "EXPR" || ex == "BIND") {
var exp = expr.substr(4).trim();
if (/^expr(\s*):|^bind(\s*):/.test(expr)) {
expr = exp.substr(1);
}
else {
expr = exp.substring(1, exp.length - 1);
}
var parser = new nexacro.ExprParser();
var conv_expr = parser.makeExpr(this, expr);
var exprfn = nexacro._createInlineFunc(conv_expr, ["currow", "rowidx", "comp", "dataset"]);
if (exprfn) {
expr = exprfn.call(null, this.rowposition, this.rowposition, this, this);
}
}
return expr;
};
_pDataset.lookup = function (expr, cmpval, outcol) {
var view = this._viewRecords;
var start = 0;
var end = view.length;
expr = this.identifyExpr(expr);
var row = this.findRow(expr, cmpval, start, end);
return (row == -1) ? undefined : this.getColumn(row, outcol);
};
_pDataset.lookupAs = function (expr, cmpval, outcol) {
var saveRec = this._viewRecords.slice(0, this._viewRecords.length);
var view = this._viewRecords = this._rawRecords.slice(0, this._rawRecords.length);
var start = 0;
var end = view.length;
expr = this.identifyExpr(expr);
var row = this.findRowAs(expr, cmpval, start, end);
var rtn = (row == -1) ? undefined : this.getColumn(row, outcol);
this._viewRecords = saveRec.slice(0, this._rawRecords.length);
return rtn;
};
_pDataset.findRow = function (expr, cmpval, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end, 4);
var v;
var constIdx = -1;
var idx = -1;
if (typeof (expr) == "string") {
idx = this.colinfos.indexOf(expr);
if (idx == undefined) {
constIdx = this._constVars.indexOf(expr);
}
if (!((+expr) != (+expr))) {
return -1;
}
}
else {
if ((+expr) != (+expr) || expr == undefined) {
expr = 0;
}
if (expr > -1 && expr < this.colcount) {
var infosLen = this.colinfos.length;
if (expr < infosLen) {
idx = expr;
}
else {
constIdx = expr - infosLen;
}
}
else {
return -1;
}
}
if (idx >= 0) {
return this._findRow(idx, cmpval, start, end);
}
if (constIdx >= 0) {
v = this._constVars[constIdx];
if (v == cmpval && end > 0) {
return start;
}
else {
return -1;
}
}
var fn = this._exprFuncs[expr];
if (fn == null) {
fn = this._exprFuncs[expr] = this._createExprFunc(expr);
}
if (typeof fn != "function") {
return -1;
}
var i = start;
function findRow_loop (pthis) {
if (i < end) {
var rowData = view[i];
if (pthis._checkRowData(rowData)) {
v = fn.call(this, i, i, null, pthis);
if (v == cmpval) {
return true;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
if (findRow_loop(this)) {
break;
}
}
return (i < end) ? i : -1;
};
_pDataset.findRowExpr = function (expr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end);
var fn = this._exprFuncs[expr];
if (fn == null) {
fn = this._exprFuncs[expr] = this._createExprFunc(expr);
}
if (typeof fn != "function") {
return -1;
}
var i = start;
function findRowExpr_loop (pthis) {
if (i < end) {
var rowData = view[i];
if (pthis._checkRowData(rowData)) {
var v = fn.call(pthis, i, i, null, pthis);
if (v) {
return true;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
if (findRowExpr_loop(this)) {
break;
}
}
return (i < end) ? i : -1;
};
_pDataset.findRowAs = function (expr, cmpval, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end, 4);
var v;
var constIdx = -1;
var idx = -1;
if (typeof (expr) == "string") {
idx = this.colinfos.indexOf(expr);
if (idx == undefined || idx < 0) {
constIdx = this._constVars.indexOf(expr);
}
if (!((+expr) != (+expr))) {
return -1;
}
}
else {
if ((+expr) != (+expr) || expr == undefined) {
expr = 0;
}
if (expr > -1 && expr < this.colcount) {
var infosLen = this.colinfos.length;
if (expr < infosLen) {
idx = expr;
}
else {
constIdx = expr - infosLen;
}
}
else {
return -1;
}
}
if (idx >= 0) {
return this._findRowAs(idx, cmpval, start, end);
}
if (constIdx >= 0) {
v = this._constVars[constIdx];
if (this._isLike(v, cmpval) && end > 0) {
return 0;
}
else {
return -1;
}
}
var fn = this._exprFuncs[expr];
if (fn == null) {
fn = this._exprFuncs[expr] = this._createExprFunc(expr);
}
if (typeof fn != "function") {
return -1;
}
var i = start;
function findRowAs_loop (pthis) {
if (i < end) {
var rowData = view[i];
if (pthis._checkRowData(rowData)) {
v = fn.call(pthis, i, i, null, pthis);
if (pthis._isLike(v, cmpval)) {
return true;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
if (findRowAs_loop(this)) {
break;
}
}
return (i < end) ? i : -1;
};
_pDataset.getSum = function (expr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end);
var v = parseFloat(expr);
if (isFinite(v)) {
return v * this._getCount(start, end, -1);
}
var idx = this._constVars.indexOf(expr);
if (idx >= 0) {
v = this._constVars[idx];
if ((typeof v) == "number") {
return v * this._getCount(start, end, -1);
}
else if (v instanceof nexacro.Decimal) {
var sum = new nexacro.Decimal(this._getCount(start, end, -1));
sum.mulDecimal(v);
return sum.isNaN() ? 0 : sum;
}
else {
return 0;
}
}
var idx = this.colinfos.indexOf(expr);
if (idx >= 0) {
return this._getSum(idx, start, end, -1, this._getColumnType(idx));
}
var fn = this._exprFuncs[expr];
if (fn == null) {
fn = this._exprFuncs[expr] = this._createExprFunc(expr);
}
if (typeof fn != "function") {
return 0;
}
var sum = 0;
var addsum;
var i = start;
function getSum_loop (pthis) {
if (i < end) {
if (pthis._checkRowData(view[i])) {
addsum = fn.call(pthis, i, i, null, pthis);
if ((sum instanceof nexacro.Decimal) == false) {
if ((addsum instanceof nexacro.Decimal) == false) {
sum += (+addsum);
}
else {
sum = new nexacro.Decimal(sum);
sum.addDecimal(addsum);
}
}
else {
if ((addsum instanceof nexacro.Decimal) == false) {
sum.addDouble(addsum);
}
else {
sum.addDecimal(addsum);
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
if (getSum_loop(this)) {
break;
}
}
if (sum instanceof nexacro.Decimal) {
return sum.isNaN() ? 0 : sum;
}
return (+sum) != (+sum) ? 0 : sum;
};
_pDataset.getMin = function (expr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end);
var v = parseFloat(expr);
if (isFinite(v)) {
return v;
}
var idx = this._constVars.indexOf(expr);
if (idx >= 0) {
return this._constVars[idx];
}
var idx = this.colinfos.indexOf(expr);
if (idx >= 0) {
return this._getMin(idx, start, end, -1, this._getColumnType(idx));
}
var fn = this._exprFuncs[expr];
if (fn == null) {
fn = this._exprFuncs[expr] = this._createExprFunc(expr);
}
if (typeof fn != "function") {
return undefined;
}
var min = undefined;
var i = start;
function getMin_loop (pthis) {
if (i < end) {
if (pthis._checkRowData(view[i])) {
v = fn.call(pthis, i, i, null, pthis);
if (min == null) {
min = v;
}
else if ((v instanceof nexacro.Decimal) == false) {
if (v != null && v < min) {
min = v;
}
}
else if (v != null) {
var minDec = new nexacro.Decimal(min);
if ((v.hi < minDec.hi) || (v.hi == minDec.hi && v.lo < minDec.lo)) {
min = v;
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
if (getMin_loop(this)) {
break;
}
}
if (min instanceof nexacro.Decimal) {
return min.isNaN() ? undefined : min;
}
return (+min) != (+min) ? undefined : min;
};
_pDataset.getMax = function (expr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end);
var v = parseFloat(expr);
if (isFinite(v)) {
return v;
}
var idx = this._constVars.indexOf(expr);
if (idx >= 0) {
return this._constVars[idx];
}
var idx = this.colinfos.indexOf(expr);
if (idx >= 0) {
return this._getMax(idx, start, end, -1, this._getColumnType(idx));
}
var fn = this._exprFuncs[expr];
if (fn == null) {
fn = this._exprFuncs[expr] = this._createExprFunc(expr);
}
if (typeof fn != "function") {
return undefined;
}
var max = undefined;
var i = start;
function getMax_loop (pthis) {
if (i < end) {
if (pthis._checkRowData(view[i])) {
v = fn.call(pthis, i, i, null, pthis);
if (max == null) {
max = v;
}
else if ((v instanceof nexacro.Decimal) == false) {
if (v != null && v > max) {
max = v;
}
}
else if (v != null) {
var maxDec = new nexacro.Decimal(max);
if ((v.hi > maxDec.hi) || (v.hi == maxDec.hi && v.lo > maxDec.lo)) {
max = v;
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
if (getMax_loop(this)) {
break;
}
}
if (max instanceof nexacro.Decimal) {
return max.isNaN() ? undefined : max;
}
return (+max) != (+max) ? undefined : max;
};
_pDataset.getAvg = function (expr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end);
var v = parseFloat(expr);
if (isFinite(v)) {
return v;
}
var idx = this._constVars.indexOf(expr);
if (idx >= 0) {
v = this._constVars[idx];
if (((typeof v) == "number") || (v instanceof nexacro.Decimal)) {
return v;
}
else {
return Infinity;
}
}
var idx = this.colinfos.indexOf(expr);
if (idx >= 0) {
return this._getAvg(idx, start, end, -1, this._getColumnType(idx));
}
var fn = this._exprFuncs[expr];
if (fn == null) {
fn = this._exprFuncs[expr] = this._createExprFunc(expr);
}
if (typeof fn != "function") {
return Infinity;
}
var cnt = 0;
var sum = 0;
var i = start;
function getAvg_loop (pthis) {
if (i < end) {
if (pthis._checkRowData(view[i])) {
v = fn.call(pthis, i, i, null, pthis);
if (v != null) {
cnt++;
if ((sum instanceof nexacro.Decimal) == false) {
if ((v instanceof nexacro.Decimal) == false) {
sum += (+v);
}
else {
sum = new nexacro.Decimal(sum);
sum.addDecimal(v);
}
}
else {
if ((v instanceof nexacro.Decimal) == false) {
sum.addDouble(v);
}
else {
sum.addDecimal(v);
}
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
if (getAvg_loop(this)) {
break;
}
}
if (cnt == 0) {
return Infinity;
}
if (sum instanceof nexacro.Decimal) {
sum.divDouble(cnt);
}
else {
sum = sum / cnt;
}
return sum;
};
_pDataset.getCaseCount = function (cmpExpr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
if (!end || end < 0 || end > view.length) {
end = view.length;
}
var v = parseFloat(cmpExpr);
if (isFinite(v)) {
return this._getCount(start, end, -1);
}
var idx = this._constVars.indexOf(cmpExpr);
if (idx >= 0) {
return this._getCount(start, end, -1);
}
var idx = this.colinfos.indexOf(cmpExpr);
if (idx >= 0) {
return this._getCount(start, end, -1);
}
var cmpFn = this._exprFuncs[cmpExpr];
if (cmpFn == null) {
cmpFn = this._exprFuncs[cmpExpr] = this._createExprFunc(cmpExpr);
}
if (typeof cmpFn != "function") {
return 0;
}
var cnt = 0;
var cmp = null;
for (var i = start; i < end; i++) {
if (this._checkRowData(view[i])) {
cmp = cmpFn.call(this, i, i, null, this);
if (cmp === true) {
cnt++;
}
}
}
return cnt;
};
_pDataset.getCaseSum = function (cmpExpr, valExpr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end, 4);
var v = parseFloat(valExpr);
if (isFinite(v)) {
return v * this.getCaseCount(cmpExpr, start, end);
}
var idx = this._constVars.indexOf(valExpr);
if (idx >= 0) {
v = this._constVars[idx];
if ((typeof v) == "number") {
return v * this.getCaseCount(cmpExpr, start, end);
}
else if (v instanceof nexacro.Decimal) {
var sum = new nexacro.Decimal(this.getCaseCount(cmpExpr, start, end));
sum.mulDecimal(v);
return sum.isNaN() ? 0 : sum;
}
else {
return 0;
}
}
var idx = this.colinfos.indexOf(valExpr);
if (idx >= 0) {
return this._getCaseSum(cmpExpr, idx, start, end, -1, this._getColumnType(idx));
}
var valFn = this._exprFuncs[valExpr];
if (valFn == null) {
valFn = this._exprFuncs[valExpr] = this._createExprFunc(valExpr);
}
if (typeof valFn != "function") {
return 0;
}
var cmpFn = this._exprFuncs[cmpExpr];
if (cmpFn == null) {
cmpFn = this._exprFuncs[cmpExpr] = this._createExprFunc(cmpExpr);
}
if (typeof cmpFn != "function") {
return 0;
}
var sum = 0;
var addsum;
var cmp = null;
var i = start;
function getCaseSum_loop (pthis) {
if (i < end) {
if (pthis._checkRowData(view[i])) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
addsum = valFn.call(pthis, i, i, null, pthis);
if ((sum instanceof nexacro.Decimal) == false) {
if ((addsum instanceof nexacro.Decimal) == false) {
sum += (+addsum);
}
else {
sum = new nexacro.Decimal(sum);
sum.addDecimal(addsum);
}
}
else {
if ((addsum instanceof nexacro.Decimal) == false) {
sum.addDouble(addsum);
}
else {
sum.addDecimal(addsum);
}
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
if (getCaseSum_loop(this)) {
break;
}
}
if (sum instanceof nexacro.Decimal) {
return sum.isNaN() ? 0 : sum;
}
return (+sum) != (+sum) ? 0 : sum;
};
_pDataset.getCaseMin = function (cmpExpr, valExpr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end, 4);
var v = parseFloat(valExpr);
if (isFinite(v)) {
return v;
}
var idx = this._constVars.indexOf(valExpr);
if (idx >= 0) {
return this._constVars[idx];
}
var idx = this.colinfos.indexOf(valExpr);
if (idx >= 0) {
return this._getCaseMin(cmpExpr, idx, start, end, -1, this._getColumnType(idx));
}
var valFn = this._exprFuncs[valExpr];
if (valFn == null) {
valFn = this._exprFuncs[valExpr] = this._createExprFunc(valExpr);
}
if (typeof valFn != "function") {
return undefined;
}
var cmpFn = this._exprFuncs[cmpExpr];
if (cmpFn == null) {
cmpFn = this._exprFuncs[cmpExpr] = this._createExprFunc(cmpExpr);
}
if (typeof cmpFn != "function") {
return undefined;
}
var min = undefined;
var cmp = null;
var i = start;
function getCaseMin_loop (pthis) {
if (i < end) {
if (pthis._checkRowData(view[i])) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
v = valFn.call(pthis, i, i, null, pthis);
if (min == null) {
min = v;
}
else if ((v instanceof nexacro.Decimal) == false) {
if (v != null && v < min) {
min = v;
}
}
else if (v != null) {
var minDec = new nexacro.Decimal(min);
if ((v.hi < minDec.hi) || (v.hi == minDec.hi && v.lo < minDec.lo)) {
min = v;
}
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
if (getCaseMin_loop(this)) {
break;
}
}
if (min instanceof nexacro.Decimal) {
return min.isNaN() ? undefined : min;
}
return (+min) != (+min) ? undefined : min;
};
_pDataset.getCaseMax = function (cmpExpr, valExpr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end, 4);
var v = parseFloat(valExpr);
if (isFinite(v)) {
return v;
}
var idx = this._constVars.indexOf(valExpr);
if (idx >= 0) {
return this._constVars[idx];
}
var idx = this.colinfos.indexOf(valExpr);
if (idx >= 0) {
return this._getCaseMax(cmpExpr, idx, start, end, -1, this._getColumnType(idx));
}
var valFn = this._exprFuncs[valExpr];
if (valFn == null) {
valFn = this._exprFuncs[valExpr] = this._createExprFunc(valExpr);
}
if (typeof valFn != "function") {
return undefined;
}
var cmpFn = this._exprFuncs[cmpExpr];
if (cmpFn == null) {
cmpFn = this._exprFuncs[cmpExpr] = this._createExprFunc(cmpExpr);
}
if (typeof cmpFn != "function") {
return undefined;
}
var max = undefined;
var cmp = null;
var i = start;
function getCaseMax_loop (pthis) {
if (i < end) {
if (pthis._checkRowData(view[i])) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
v = valFn.call(pthis, i, i, null, pthis);
if (max == null) {
max = v;
}
else if ((v instanceof nexacro.Decimal) == false) {
if (v != null && v > max) {
max = v;
}
}
else if (v != null) {
var maxDec = new nexacro.Decimal(max);
if ((v.hi > maxDec.hi) || (v.hi == maxDec.hi && v.lo > maxDec.lo)) {
max = v;
}
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
if (getCaseMax_loop(this)) {
break;
}
}
if (max instanceof nexacro.Decimal) {
return max.isNaN() ? undefined : max;
}
return (+max) != (+max) ? undefined : max;
};
_pDataset.getCaseAvg = function (cmpExpr, valExpr, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
end = this._endIdx(arguments.length, end, 4);
var v = parseFloat(valExpr);
if (isFinite(v)) {
return v;
}
var idx = this._constVars.indexOf(valExpr);
if (idx >= 0) {
v = this._constVars[idx];
if (((typeof v) == "number") || (v instanceof nexacro.Decimal)) {
return v;
}
else {
return Infinity;
}
}
var idx = this.colinfos.indexOf(valExpr);
if (idx >= 0) {
return this._getCaseAvg(cmpExpr, idx, start, end, -1, this._getColumnType(idx));
}
var valFn = this._exprFuncs[valExpr];
if (valFn == null) {
valFn = this._exprFuncs[valExpr] = this._createExprFunc(valExpr);
}
if (typeof valFn != "function") {
return Infinity;
}
var cmpFn = this._exprFuncs[cmpExpr];
if (cmpFn == null) {
cmpFn = this._exprFuncs[cmpExpr] = this._createExprFunc(cmpExpr);
}
if (typeof cmpFn != "function") {
return Infinity;
}
var cnt = 0;
var sum = 0;
var cmp = null;
var i = start;
function getCaseAvg_loop (pthis) {
if (i < end) {
if (pthis._checkRowData(view[i])) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
v = valFn.call(pthis, i, i, null, pthis);
if (v != null) {
cnt++;
if ((sum instanceof nexacro.Decimal) == false) {
if ((v instanceof nexacro.Decimal) == false) {
sum += (+v);
}
else {
sum = new nexacro.Decimal(sum);
sum.addDecimal(v);
}
}
else {
if ((v instanceof nexacro.Decimal) == false) {
sum.addDouble(v);
}
else {
sum.addDecimal(v);
}
}
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
if (getCaseAvg_loop(this)) {
break;
}
}
if (cnt == 0) {
return Infinity;
}
if (sum instanceof nexacro.Decimal) {
sum.divDouble(cnt);
}
else {
sum = sum / cnt;
}
return sum;
};
_pDataset.getCountNF = function (v) {
var noDelRec = this._getNotDelRec();
var colIdx = -1;
var colId = "";
if (v) {
if (typeof (v) == "string") {
colIdx = this.colinfos.indexOf(v);
if (!(colIdx >= 0)) {
return 0;
}
}
else if (typeof (v) == "number") {
colIdx = v;
colId = this.colinfos.get_id(colIdx);
if (!colId) {
return 0;
}
}
else {
return 0;
}
var currentView = this._viewRecords;
this._viewRecords = noDelRec;
this._checkRowData = this._checkRawRowData;
var start = 0;
var end = this._rawRecords.length;
var value = this._getCount(start, end, -1, colIdx, true);
this._checkRowData = this._checkViewRowData;
this._viewRecords = currentView;
return value;
}
return noDelRec.length;
};
_pDataset.getSumNF = function (expr, start, end) {
return this._calcNFData(this.getSum, expr, start, end);
};
_pDataset.getMinNF = function (expr, start, end) {
return this._calcNFData(this.getMin, expr, start, end);
};
_pDataset.getMaxNF = function (expr, start, end) {
return this._calcNFData(this.getMax, expr, start, end);
};
_pDataset.getAvgNF = function (expr, start, end) {
return this._calcNFData(this.getAvg, expr, start, end);
};
_pDataset.findMaxLengthRow = function (colid, start, end) {
var view = this._viewRecords;
if ((+start) != (+start)) {
start = 0;
}
if (!start || start < 0) {
start = 0;
}
if (!end || end > view.length) {
end = view.length;
}
var v = parseInt(colid) | 0;
if (isFinite(v)) {
if (v >= 0) {
return this._findMaxLengthRow(v, start, end);
}
else {
return -1;
}
}
var idx = this._constVars.indexOf(colid);
if (idx >= 0) {
return (this._constVars[idx]) ? this._constVars[idx].toString().length : 0;
}
var idx = this.colinfos.indexOf(colid);
if (idx >= 0) {
return this._findMaxLengthRow(idx, start, end);
}
return -1;
};
_pDataset.findMaxLengthRowNF = function (colid, start, end) {
return this._calcNFData(this.findMaxLengthRow, colid, start, end);
};
_pDataset._endIdx = function (arguLen, end, mode) {
var len = this._viewRecords.length;
if (mode) {
switch (arguLen) {
case 1:
return 0;
case 4:
if (end < 0 || end >= len) {
return len;
}
if ((+end) != (+end)) {
return 0;
}
return end;
default:
return len;
}
}
else {
if (arguLen == 3) {
if (end < 0 || end > len) {
return len;
}
if ((+end) != (+end)) {
return 0;
}
return end;
}
return len;
}
};
_pDataset._clearAllExprs = function () {
this._exprFuncs = null;
this._exprFuncs = {
};
};
_pDataset._clearAll = function () {
this.colinfos = null;
var cnt = this.rowcount;
this.colinfos = new nexacro.DSColumnInfoList();
this._constVars = new nexacro.VariableList();
this._rawRecords.splice(0, this._rawRecords.length);
if (this._viewRecords != this._rawRecords) {
this._viewRecords.splice(0, this._viewRecords.length);
}
this._deletedRecords.splice(0, this._deletedRecords.length);
this._viewRecords = null;
this._rawRecords = null;
this._deletedRecords = null;
this._rawRecords = [];
this._deletedRecords = [];
this._viewRecords = this._rawRecords;
this.colcount = 0;
this.constcount = 0;
this.rowcount = 0;
this._keycols.splice(0, this._keycols.length);
this._keycols.max_keylevel = 0;
if (this.loadkeymode.toLowerCase() == "reset") {
this.keystring = this._defaultKeyStr;
}
if (this.loadfiltermode.toLowerCase() == "reset") {
this.filterstr = this._defaultFilterStr;
}
this._filterFn = null;
this._clearAllExprs();
return cnt;
};
_pDataset._clearData = function () {
var cnt = this.rowcount;
this._rawRecords.splice(0, this._rawRecords.length);
if (this._viewRecords != this._rawRecords) {
this._viewRecords.splice(0, this._viewRecords.length);
}
this._viewRecords = this._rawRecords;
this._deletedRecords.splice(0, this._deletedRecords.length);
this._deletedRecords = null;
this._deletedRecords = [];
this.rowcount = 0;
return cnt;
};
_pDataset._forcesetRowPosition = function (newpos, reason) {
if (newpos < 0 || newpos >= this.rowcount) {
newpos = -1;
}
var oldpos = this.rowposition;
if (newpos != oldpos && newpos < this.rowcount) {
if (this.canrowposchange && this.canrowposchange._has_handlers && oldpos != -1) {
var evt = new nexacro.DSRowPosChangeEventInfo(this, "canrowposchange", oldpos, newpos, reason);
var ret = this.on_fire_canrowposchange(evt);
if (ret == false) {
return;
}
}
if (this.onrowposchanged && this.onrowposchanged._has_handlers) {
var evt = new nexacro.DSRowPosChangeEventInfo(this, "onrowposchanged", oldpos, newpos, reason);
this.rowposition = newpos;
this.on_fire_onrowposchanged(evt);
}
else {
this.rowposition = newpos;
}
}
if (this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", newpos, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
};
_pDataset._setRowPosition = function (newpos, v, reason, value_update) {
if (newpos < 0 || newpos >= this.rowcount) {
newpos = -1;
}
var oldpos = this.rowposition;
if (newpos != oldpos) {
if ((this.canrowposchange && this.canrowposchange._has_handlers) || (this.onrowposchanged && this.onrowposchanged._has_handlers)) {
var evt = new nexacro.DSRowPosChangeEventInfo(this, "canrowposchange", oldpos, newpos, reason);
if (this.canrowposchange && this.canrowposchange._has_handlers && this._eventstat && v === undefined
&& (oldpos >= -1)) {
var ret = this.on_fire_canrowposchange(evt);
if (ret == false) {
return;
}
if (newpos != evt.newrow) {
newpos = evt.newrow;
}
if (newpos >= 0 || newpos < this.rowcount) {
this.rowposition = newpos;
if (newpos != oldpos) {
if (this.onrowposchanged && this.onrowposchanged._has_handlers) {
this.on_fire_onrowposchanged(evt);
}
if (this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", this.rowposition, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
}
}
}
else {
if (newpos >= 0 || newpos < this.rowcount) {
this.rowposition = newpos;
if (this._eventstat) {
if (this.onrowposchanged && this.onrowposchanged._has_handlers) {
this.on_fire_onrowposchanged(evt);
}
if (this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", this.rowposition, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
}
}
}
}
else {
this.rowposition = newpos;
if (this._eventstat && this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", this.rowposition, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
}
}
else if (value_update) {
if (this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", this.rowposition, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
}
return this.rowposition;
};
_pDataset._splitKeyCols = function (str) {
var arr = [];
var plus, minus;
if (str.charAt(0) != '+' && str.charAt(0) != '-') {
str = '+' + str;
}
plus = str.indexOf('+');
minus = str.indexOf('-');
var pos = (plus >= 0 && minus >= 0) ? (minus < plus ? minus : plus) : (plus > minus ? plus : minus);
var arrLength = 0;
while (pos >= 0) {
plus = str.indexOf('+', pos + 1);
minus = str.indexOf('-', pos + 1);
var nextpos = (plus >= 0 && minus >= 0) ? (minus < plus ? minus : plus) : (plus > minus ? plus : minus);
if (nextpos < 0) {
arr[arrLength] = str.substr(pos);
arrLength++;
}
else {
arr[arrLength] = str.substr(pos, nextpos - pos);
arrLength++;
}
pos = nextpos;
}
delete arrLength;
return arr;
};
_pDataset._clearKeyCols = function () {
this._keycols.splice(0, this._keycols.length);
this._keycols.max_keylevel = 0;
};
_pDataset._parseKeyCols = function () {
var keyColLength = this._keycols.length;
if (keyColLength > 0) {
return keyColLength;
}
var str = this.keystring;
if (str.length > 0) {
var level = 0;
var keys = str.split(',');
var i = keys.length - 1;
function _parseKeyCols_loop (pthis) {
if (i >= 0) {
var key = keys[i].trim();
if (key.length == 0) {
i--;
return false;
}
var colonpos = key.indexOf(':');
if (colonpos <= 0 || (key.charAt(0) != 'S' && key.charAt(0) != 's')) {
level++;
}
var keys2;
if (colonpos >= 0) {
keys2 = pthis._splitKeyCols(key.substr(colonpos + 1));
}
else {
keys2 = pthis._splitKeyCols(key);
}
var j = keys2.length - 1;
function _parseKeyCols_loop2 () {
if (j >= 0) {
var key2 = keys2[j].trim();
if (key2.length == 0) {
j--;
return false;
}
var colid;
var colidx = -1;
var descending = false;
if (key2.charAt(0) == '-') {
colid = key2.substr(1);
colidx = pthis.colinfos.indexOf(colid);
descending = true;
}
else if (key2.charAt(0) == '+') {
colid = key2.substr(1);
colidx = pthis.colinfos.indexOf(colid);
descending = false;
}
else {
colid = key2;
colidx = pthis.colinfos.indexOf(colid);
descending = false;
}
if (colidx >= 0) {
pthis._keycols[keyColLength] =
{
level : level,
colid : colid,
colidx : colidx,
descending : descending
};
keyColLength++;
}
j--;
return false;
}
return true;
}
while (true) {
if (_parseKeyCols_loop2()) {
break;
}
if (_parseKeyCols_loop2()) {
break;
}
if (_parseKeyCols_loop2()) {
break;
}
if (_parseKeyCols_loop2()) {
break;
}
if (_parseKeyCols_loop2()) {
break;
}
if (_parseKeyCols_loop2()) {
break;
}
if (_parseKeyCols_loop2()) {
break;
}
if (_parseKeyCols_loop2()) {
break;
}
if (_parseKeyCols_loop2()) {
break;
}
if (_parseKeyCols_loop2()) {
break;
}
}
i--;
return false;
}
return true;
}
while (true) {
if (_parseKeyCols_loop(this)) {
break;
}
if (_parseKeyCols_loop(this)) {
break;
}
if (_parseKeyCols_loop(this)) {
break;
}
if (_parseKeyCols_loop(this)) {
break;
}
if (_parseKeyCols_loop(this)) {
break;
}
if (_parseKeyCols_loop(this)) {
break;
}
if (_parseKeyCols_loop(this)) {
break;
}
if (_parseKeyCols_loop(this)) {
break;
}
if (_parseKeyCols_loop(this)) {
break;
}
if (_parseKeyCols_loop(this)) {
break;
}
}
}
this._keycols.max_keylevel = level;
return keyColLength;
};
_pDataset._getLocale = function () {
var locale = nexacro.System.locale;
var _parent = this;
while (_parent) {
if (_parent._locale) {
locale = _parent._locale;
break;
}
_parent = _parent.parent;
}
if (locale.indexOf("_") > -1) {
locale = locale.substr(0, 2);
}
return locale;
};
_pDataset._createSortFunc = function () {
var _keys = this._keycols;
var _keycnt = _keys.length;
var _locale = this._getLocale();
var pThis = this;
return function (a, b) {
for (var i = _keycnt - 1; i >= 0; i--) {
var key = _keys[i];
var value1 = a[key.colidx];
var value2 = b[key.colidx];
var cmp = 0;
if ((value1 instanceof nexacro.Decimal) == false) {
if (value1 != null) {
if (value1 != value2) {
if (value2 != null) {
if ((value2 instanceof nexacro.Decimal) == false) {
if (pThis.colinfos[key.colidx].type == "STRING") {
cmp = value1.localeCompare(value2, _locale);
}
else {
cmp = (value1 > value2 ? 1 : -1);
}
}
else {
cmp = ((value1.hi > value2.hi || (value1.hi >= value2.hi && value1.lo > value2.lo)) ? 1 : -1);
}
}
else {
cmp = 1;
}
}
else {
cmp = 0;
}
}
else if (value1 != value2) {
cmp = -1;
}
else {
cmp = 0;
}
}
else {
if (value2 != null) {
cmp = (value1.hi == value2.hi && value1.lo == value2.lo) ? 0 : ((value1.hi > value2.hi || (value1.hi >= value2.hi && value1.lo > value2.lo)) ? 1 : -1);
}
else {
cmp = 1;
}
}
if (cmp != 0) {
return (key.descending) ? -cmp : cmp;
}
}
return (a._rawidx > b._rawidx) ? 1 : -1;
};
};
_pDataset._sortData = function () {
var view = this._viewRecords;
if (view.length > 0) {
if (this._viewRecords == this._rawRecords) {
view = this._viewRecords = this._rawRecords.slice(0, this._rawRecords.length);
}
var cmpfn = this._createSortFunc();
view.sort(cmpfn);
}
};
_pDataset._deleteAllGroupData = function () {
var view = this._viewRecords;
var cnt = view.length;
var i = cnt - 1;
function _deleteAllGroupData_loop () {
if (i >= 0) {
if (view[i]._level > 0) {
view.splice(i, 1);
}
i--;
return false;
}
return true;
}
while (true) {
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
if (_deleteAllGroupData_loop()) {
break;
}
}
};
_pDataset._calcGroupData = function (grpData, col_levels) {
var cols = this.colinfos;
var colcnt = cols.length;
var grpStart = grpData._grpstart;
var grpEnd = grpData._grpend;
var lvl = grpData._level;
var keyData = this._viewRecords[grpStart];
var col = 0;
function _calcGroupData_loop (pthis) {
if (col < colcnt) {
var colprop = cols[col].prop;
if (colprop && colprop.length > 0) {
colprop = colprop.toLowerCase();
}
switch (colprop) {
case "count":
grpData[col] = pthis._getCount(grpStart, grpEnd, -1);
break;
case "sum":
grpData[col] = pthis._getSum(col, grpStart, grpEnd, -1);
break;
case "max":
grpData[col] = pthis._getMax(col, grpStart, grpEnd, -1);
break;
case "min":
grpData[col] = pthis._getMin(col, grpStart, grpEnd, -1);
break;
case "avg":
grpData[col] = pthis._getAvg(col, grpStart, grpEnd, -1);
break;
case "text":
grpData[col] = cols[col].sumtext;
break;
case "key":
grpData[col] = keyData[col];
break;
default:
if (col_levels[col] >= lvl) {
grpData[col] = keyData[col];
}
else {
switch (cols[col].ntype) {
case 2:
case 3:
case 4:
grpData[col] = pthis._getSum(col, grpStart, grpEnd, -1, cols[col].ntype);
break;
default:
grpData[col] = cols[col].sumtext;
break;
}
}
break;
}
col++;
return false;
}
return true;
}
while (true) {
if (_calcGroupData_loop(this)) {
break;
}
if (_calcGroupData_loop(this)) {
break;
}
if (_calcGroupData_loop(this)) {
break;
}
if (_calcGroupData_loop(this)) {
break;
}
if (_calcGroupData_loop(this)) {
break;
}
if (_calcGroupData_loop(this)) {
break;
}
if (_calcGroupData_loop(this)) {
break;
}
if (_calcGroupData_loop(this)) {
break;
}
if (_calcGroupData_loop(this)) {
break;
}
if (_calcGroupData_loop(this)) {
break;
}
}
};
_pDataset._createGroupData = function () {
var keys = this._keycols;
var maxlevel = keys.max_keylevel;
var view = this._viewRecords;
if (maxlevel == 0 || this._viewRecords.length == 0) {
return;
}
var level_idx = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
var keycnt = keys.length;
var col_levels = [];
var j = 0;
function _createGroupData_init_loop () {
if (j < keycnt) {
col_levels[keys[j].colidx] = keys[j].level;
j++;
return false;
}
return true;
}
while (true) {
if (_createGroupData_init_loop()) {
break;
}
if (_createGroupData_init_loop()) {
break;
}
if (_createGroupData_init_loop()) {
break;
}
if (_createGroupData_init_loop()) {
break;
}
if (_createGroupData_init_loop()) {
break;
}
if (_createGroupData_init_loop()) {
break;
}
if (_createGroupData_init_loop()) {
break;
}
if (_createGroupData_init_loop()) {
break;
}
if (_createGroupData_init_loop()) {
break;
}
if (_createGroupData_init_loop()) {
break;
}
}
var grpstart, grpend;
var cnt = this._viewRecords.length;
var prevData = this._viewRecords[0];
var curData, grpData;
var chklvl, iskey;
var idx = 1;
function _createGroupData_loop (pthis) {
if (idx < cnt) {
curData = pthis._viewRecords[idx];
chklvl = 0;
var k = keycnt - 1;
function _createGroupData_chk_loop () {
if (k >= 0) {
if (keys[k].level == 0) {
k--;
return false;
}
if (curData[keys[k].colidx] instanceof nexacro.Decimal && prevData[keys[k].colidx] instanceof nexacro.Decimal) {
if (!curData[keys[k].colidx].isEqual(prevData[keys[k].colidx])) {
chklvl = keys[k].level;
return true;
}
}
else if (curData[keys[k].colidx] != prevData[keys[k].colidx]) {
chklvl = keys[k].level;
return true;
}
k--;
return false;
}
return true;
}
while (true) {
if (_createGroupData_chk_loop()) {
break;
}
if (_createGroupData_chk_loop()) {
break;
}
if (_createGroupData_chk_loop()) {
break;
}
if (_createGroupData_chk_loop()) {
break;
}
if (_createGroupData_chk_loop()) {
break;
}
if (_createGroupData_chk_loop()) {
break;
}
if (_createGroupData_chk_loop()) {
break;
}
if (_createGroupData_chk_loop()) {
break;
}
if (_createGroupData_chk_loop()) {
break;
}
}
if (chklvl != 0) {
var lvl = 1;
function _createGroupData_grp_loop () {
if (lvl <= chklvl) {
grpData = [];
grpData._level = lvl;
grpstart = level_idx[lvl];
grpend = idx;
grpData._grpstart = grpstart;
grpData._grpend = grpend;
grpData._rtype = 16;
pthis._calcGroupData(grpData, col_levels);
if (pthis.reversesubsum) {
view.splice(grpstart, 0, grpData);
}
else {
view.splice(grpend, 0, grpData);
}
grpData = null;
cnt++;
idx++;
lvl++;
return false;
}
return true;
}
while (true) {
if (_createGroupData_grp_loop()) {
break;
}
if (_createGroupData_grp_loop()) {
break;
}
if (_createGroupData_grp_loop()) {
break;
}
if (_createGroupData_grp_loop()) {
break;
}
if (_createGroupData_grp_loop()) {
break;
}
if (_createGroupData_grp_loop()) {
break;
}
if (_createGroupData_grp_loop()) {
break;
}
if (_createGroupData_grp_loop()) {
break;
}
if (_createGroupData_grp_loop()) {
break;
}
if (_createGroupData_grp_loop()) {
break;
}
}
prevData = curData;
lvl = 1;
function _createGroupData_lastgrp_loop () {
if (lvl <= chklvl) {
level_idx[lvl] = idx;
lvl++;
return false;
}
return true;
}
while (true) {
if (_createGroupData_lastgrp_loop()) {
break;
}
if (_createGroupData_lastgrp_loop()) {
break;
}
if (_createGroupData_lastgrp_loop()) {
break;
}
if (_createGroupData_lastgrp_loop()) {
break;
}
if (_createGroupData_lastgrp_loop()) {
break;
}
if (_createGroupData_lastgrp_loop()) {
break;
}
if (_createGroupData_lastgrp_loop()) {
break;
}
if (_createGroupData_lastgrp_loop()) {
break;
}
if (_createGroupData_lastgrp_loop()) {
break;
}
if (_createGroupData_lastgrp_loop()) {
break;
}
}
}
idx++;
return false;
}
return true;
}
while (true) {
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
if (_createGroupData_loop(this)) {
break;
}
}
var lvl = 1;
var viewLength = view.length;
function _createGroupData_last_loop (pthis) {
if (lvl <= maxlevel) {
grpData = [];
grpData._level = lvl;
grpstart = level_idx[lvl];
grpend = viewLength;
grpData._grpstart = grpstart;
grpData._grpend = grpend;
grpData._rtype = 16;
pthis._calcGroupData(grpData, col_levels);
if (pthis.reversesubsum) {
view.splice(grpstart, 0, grpData);
}
else {
view[viewLength] = grpData;
}
viewLength++;
lvl++;
grpData = null;
return false;
}
return true;
}
while (true) {
if (_createGroupData_last_loop(this)) {
break;
}
if (_createGroupData_last_loop(this)) {
break;
}
if (_createGroupData_last_loop(this)) {
break;
}
if (_createGroupData_last_loop(this)) {
break;
}
if (_createGroupData_last_loop(this)) {
break;
}
if (_createGroupData_last_loop(this)) {
break;
}
if (_createGroupData_last_loop(this)) {
break;
}
if (_createGroupData_last_loop(this)) {
break;
}
if (_createGroupData_last_loop(this)) {
break;
}
if (_createGroupData_last_loop(this)) {
break;
}
}
delete viewLength;
};
_pDataset._resetSortGroup = function () {
var oldpos = this.rowposition;
if (this.rowposition == -1) {
var oldpos = 0;
}
var oldrowdata = this._viewRecords[oldpos];
if (this._parseKeyCols() > 0 && this._rawRecords.length > 0) {
if (this._rawRecords != this._viewRecords) {
if (this._viewRecords.length == 0) {
oldrowdata = null;
return false;
}
this._deleteAllGroupData();
}
else {
this._viewRecords = null;
this._viewRecords = this._rawRecords.slice(0, this._rawRecords.length);
}
this._sortData();
this._createGroupData();
this.rowcount = this._viewRecords.length;
}
oldrowdata = null;
return false;
};
_pDataset._adjustGroupRowData = function (row) {
var keys = this._keycols;
if (keys.max_keylevel == 0) {
return false;
}
var keycnt = keys.length;
var col_levels = [];
var j = 0;
function _adjustGroupRowData_init_loop () {
if (j < keycnt) {
col_levels[keys[j].colidx] = keys[j].level;
j++;
return false;
}
return true;
}
while (true) {
if (_adjustGroupRowData_init_loop()) {
break;
}
if (_adjustGroupRowData_init_loop()) {
break;
}
if (_adjustGroupRowData_init_loop()) {
break;
}
if (_adjustGroupRowData_init_loop()) {
break;
}
if (_adjustGroupRowData_init_loop()) {
break;
}
if (_adjustGroupRowData_init_loop()) {
break;
}
if (_adjustGroupRowData_init_loop()) {
break;
}
if (_adjustGroupRowData_init_loop()) {
break;
}
if (_adjustGroupRowData_init_loop()) {
break;
}
if (_adjustGroupRowData_init_loop()) {
break;
}
}
var view = this._viewRecords;
var cnt = view.length;
var grpData;
var i = row;
function _adjustGroupRowData_loop (pthis) {
if (i < cnt) {
grpData = view[i];
if (grpData && grpData._rtype == 16 && grpData._grpend >= row) {
grpData._grpend--;
if (grpData._grpstart <= row) {
if (grpData._grpend <= grpData._grpstart) {
view.splice(i, 1);
i--;
}
else {
pthis._calcGroupData(grpData, col_levels);
}
}
else {
grpData._grpstart--;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
if (_adjustGroupRowData_loop(this)) {
break;
}
}
col_levels = null;
return true;
};
_pDataset._updateGroupRowData = function (row) {
var keys = this._keycols;
if (keys.max_keylevel == 0) {
return false;
}
var keycnt = keys.length;
var col_levels = [];
var j = 0;
function _updateGroupRowData_init_loop () {
if (j < keycnt) {
col_levels[keys[j].colidx] = keys[j].level;
j++;
return false;
}
return true;
}
while (true) {
if (_updateGroupRowData_init_loop()) {
break;
}
if (_updateGroupRowData_init_loop()) {
break;
}
if (_updateGroupRowData_init_loop()) {
break;
}
if (_updateGroupRowData_init_loop()) {
break;
}
if (_updateGroupRowData_init_loop()) {
break;
}
if (_updateGroupRowData_init_loop()) {
break;
}
if (_updateGroupRowData_init_loop()) {
break;
}
if (_updateGroupRowData_init_loop()) {
break;
}
if (_updateGroupRowData_init_loop()) {
break;
}
if (_updateGroupRowData_init_loop()) {
break;
}
}
var view = this._viewRecords;
var cnt = view.length;
var grpData;
var i = row;
function _updateGroupRowData_loop (pthis) {
if (i < cnt) {
grpData = view[i];
if (grpData._rtype == 16 && grpData._grpstart <= row && grpData._grpend >= row) {
pthis._calcGroupData(grpData, col_levels);
}
i++;
return false;
}
return true;
}
while (true) {
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
if (_updateGroupRowData_loop(this)) {
break;
}
}
col_levels = null;
return true;
};
_pDataset._removeEmptyRows = function () {
var raw = this._rawRecords;
var cnt = raw.length;
var i = cnt - 1;
function _removeEmptyRows_rm_loop () {
if (i >= 0) {
if (raw[i]._rtype == 0) {
raw.splice(i, 1);
}
i--;
return false;
}
return true;
}
while (true) {
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
if (_removeEmptyRows_rm_loop()) {
break;
}
}
cnt = raw.length;
var i = 0;
function _removeEmptyRows_adj_loop () {
if (i < cnt) {
raw[i]._rawidx = i;
i++;
return false;
}
return true;
}
while (true) {
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
if (_removeEmptyRows_adj_loop()) {
break;
}
}
};
_pDataset._reFilter = function () {
var view;
if (this.filterstr.length > 0) {
view = this._viewRecords;
if (view != this._rawRecords) {
view.splice(0, view.length);
}
view = this._viewRecords = this._getNotDelRec();
if (this._filterFn == null) {
var filterFn = this._createExprFunc(this.filterstr);
if (typeof filterFn == "function") {
this._filterFn = filterFn;
}
}
if (this._filterFn) {
var exprfn = this._filterFn;
var cnt = view.length;
var flag;
var i = cnt - 1;
function _reFilter_loop (pthis) {
if (i >= 0) {
flag = exprfn.call(pthis, i, i, null, pthis);
if (!flag || view[i]._rtype == 8) {
view.splice(i, 1);
}
i--;
return false;
}
return true;
}
while (true) {
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
if (_reFilter_loop(this)) {
break;
}
}
}
}
else {
view = this._viewRecords;
if (view != this._rawRecords) {
view.splice(0, view.length);
}
this._viewRecords = this._getNotDelRec();
}
view = null;
this.rowcount = this._viewRecords.length;
};
_pDataset._getConstColIndex = function (id) {
return this._constVars.indexOf(id);
};
_pDataset._getDataColIndex = function (id) {
return this.colinfos.indexOf(id);
};
_pDataset._addConstColumn = function (id, value, type) {
if (id in this.colinfos) {
return -1;
}
if (id in this._constVars) {
var preval = this._constVars.get_item(id);
if (value != preval) {
this._constVars.set_item(id, value);
return this._constVars.indexOf(id);
}
else {
return -1;
}
}
if (type) {
type = nexacro.DataUtils._typecodes[type.toLowerCase()];
value = nexacro.DataUtils.convert(value, type);
}
this.constcount++;
this.colcount++;
return this._constVars.add(id, value);
};
_pDataset._addColumn = function (id, strtype, size, prop, text) {
if ((id in this.colinfos) || (id in this._constVars)) {
return -1;
}
var type;
if (strtype == undefined) {
type = 1;
strtype = "STRING";
}
else {
type = nexacro.DataUtils._typeint[strtype.toLowerCase()];
}
if (type == null) {
type = 1;
}
if ((+size) != (+size)) {
size = 256;
}
var idx = this.colinfos.length;
var newcolinfo = new nexacro.DSColumnInfo(id, strtype, type, size, prop, text, idx);
this.colcount++;
return this.colinfos.add(id, newcolinfo);
};
_pDataset._addColumnInfo = function (id, colinfo) {
if ((id in this.colinfos) || (id in this._constVars)) {
return -1;
}
var idx = this.colinfos.length;
var newcolinfo = new nexacro.DSColumnInfo(id, colinfo.type, colinfo.ntype, colinfo.size, colinfo.prop, colinfo.sumtext, idx);
this.colcount++;
return this.colinfos.add(id, newcolinfo);
};
_pDataset._appendColList = function (collist) {
if (collist._type_name == "DSColumnInfoList") {
var len = collist.length;
var cnt = 0;
var idx = this.colinfos.length;
if (len > 0) {
var i = 0;
function _appendColList_loop (pthis) {
if (i < len) {
var colinfo = collist[i];
var id = colinfo.id;
if ((id in pthis.colinfos) || (id in pthis._constVars)) {
i++;
return false;
}
var newcolinfo = new nexacro.DSColumnInfo(id, colinfo.type, colinfo.ntype, colinfo.size, colinfo.prop, colinfo.sumtext, idx);
pthis.colinfos.add(id, newcolinfo);
idx++;
cnt++;
i++;
return false;
}
return true;
}
while (true) {
if (_appendColList_loop(this)) {
break;
}
if (_appendColList_loop(this)) {
break;
}
if (_appendColList_loop(this)) {
break;
}
if (_appendColList_loop(this)) {
break;
}
if (_appendColList_loop(this)) {
break;
}
if (_appendColList_loop(this)) {
break;
}
if (_appendColList_loop(this)) {
break;
}
if (_appendColList_loop(this)) {
break;
}
if (_appendColList_loop(this)) {
break;
}
if (_appendColList_loop(this)) {
break;
}
}
if (cnt > 0) {
this.colcount += cnt;
}
}
return cnt;
}
return 0;
};
_pDataset._deleteColumn = function (id) {
if (this.updatecontrol) {
return false;
}
var varList = this._constVars;
var colList = this.colinfos;
if (typeof (id) == "string") {
var vv = varList.indexOf(id);
if (colList.indexOf(id) > -1) {
id = colList.indexOf(id);
}
else if (varList.indexOf(id) > -1) {
id = varList.indexOf(id) + colList.length;
}
else {
return false;
}
}
else {
if ((+id) != (+id) || id == undefined) {
id = 0;
}
}
if (this.colinfos.deleteItem(id) > -1) {
this.colcount--;
return true;
}
else {
if (varList.deleteItem(id - this.colinfos.length) > -1) {
this.constcount--;
this.colcount--;
return true;
}
}
return false;
};
_pDataset._appendRow = function (rtype) {
var rowData = [];
rowData._rawidx = this._rawRecords.length;
rowData._level = 0;
rowData._rtype = rtype;
this._rawRecords[rowData._rawidx] = rowData;
var viewRecLength = this._viewRecords.length;
if (this._rawRecords != this._viewRecords) {
this._viewRecords[viewRecLength] = rowData;
viewRecLength++;
}
this.rowcount = viewRecLength;
rowData = null;
delete viewRecLength;
return this.rowcount - 1;
};
_pDataset._insertRow = function (row, rtype) {
var view = this._viewRecords;
if (row >= view.length) {
return this._appendRow(rtype);
}
if (this._rawRecords == view) {
view = this._viewRecords = this._rawRecords.slice(0, this._rawRecords.length);
}
var rowData = [];
rowData._rawidx = this._rawRecords.length;
rowData._rtype = rtype;
rowData._level = 0;
var rawRecords = this._rawRecords;
var rawRecords_len = rawRecords.length;
var deleted = 0;
for (var i = 0; i < rawRecords_len; i++) {
if (rawRecords[i]._rtype == 8) {
deleted++;
}
if (i == row + deleted) {
break;
}
}
this._rawRecords.splice(row + deleted, 0, rowData);
view.splice(row, 0, rowData);
this._removeEmptyRows();
this.rowcount = this._viewRecords.length;
rowData = null;
return row;
};
_pDataset._deleteRow = function (row) {
if (!((+row) != (+row))) {
row = parseInt(row) | 0;
}
if (row < 0) {
return -1;
}
var view = this._viewRecords;
if (row >= view.length) {
return -1;
}
if (this._rawRecords == view) {
view = this._viewRecords = this._rawRecords.slice(0, this._rawRecords.length);
}
var rowData = view[row];
if (rowData) {
var delRecLength = this._deletedRecords.length;
if (this.updatecontrol) {
if (rowData._rtype == 1) {
rowData._rtype = 8;
this._deletedRecords[delRecLength] = rowData;
delRecLength++;
view.splice(row, 1);
}
else if (rowData._rtype == 2) {
rowData._rtype = 0;
this._removeEmptyRows();
view.splice(row, 1);
}
else if (rowData._rtype == 4) {
var orgData = rowData._orgrow;
var colcnt = this.colinfos.length;
for (var col = 0; col < colcnt; col++) {
rowData[col] = orgData[col];
}
delete rowData._orgrow;
this._deletedRecords[delRecLength] = rowData;
delRecLength++;
view.splice(row, 1);
rowData._rtype = 8;
}
else if (rowData._rtype == 16) {
rowData._rtype = 0;
this._removeEmptyRows();
view.splice(row, 1);
}
else {
return -1;
}
}
else {
rowData._rtype = 0;
this._removeEmptyRows();
view.splice(row, 1);
}
this._adjustGroupRowData(row);
this.rowcount = this._viewRecords.length;
}
return row;
};
_pDataset._moveRow = function (oldrow, newrow) {
var view = this._viewRecords;
if (this._rawRecords.length <= 0) {
return -1;
}
if (oldrow >= view.length || newrow >= view.length || oldrow == newrow) {
return -1;
}
if (this._rawRecords == view) {
view = this._viewRecords = this._rawRecords.slice(0, this._rawRecords.length);
}
var rowTmp = this._rawRecords[oldrow];
this._rawRecords.splice(oldrow, 1);
this._rawRecords.splice(newrow, 0, rowTmp);
rowTmp = view[oldrow];
view.splice(oldrow, 1);
view.splice(newrow, 0, rowTmp);
return newrow;
};
_pDataset._exchangeRow = function (row1, row2) {
var view = this._viewRecords;
if (this._rawRecords.length <= 0) {
return -1;
}
if (row1 >= view.length || row2 >= view.length || row1 == row2) {
return false;
}
if (this._rawRecords == view) {
view = this._viewRecords = this._rawRecords.slice(0, this._rawRecords.length);
}
var rowTmp = this._rawRecords[row1];
this._rawRecords[row1] = view[row2];
this._rawRecords[row2] = rowTmp;
rowTmp = view[row1];
view[row1] = view[row2];
view[row2] = rowTmp;
return true;
};
_pDataset._deleteAll = function () {
var view = this._viewRecords;
var cnt = view.length;
var emptycnt = 0;
var row = 0;
var delRecLength = this._deletedRecords.length;
var updateCon = this.updatecontrol;
var delRecords = this._deletedRecords;
function _deleteAll_loop (pthis) {
if (row < cnt) {
var rowData = view[row];
if (updateCon) {
if (rowData._rtype == 1) {
rowData._rtype = 8;
delRecords[delRecLength] = rowData;
delRecLength++;
}
else if (rowData._rtype == 2) {
rowData._rtype = 0;
emptycnt++;
}
else if (rowData._rtype == 4) {
var orgData = rowData._orgrow;
var colcnt = pthis.colinfos.length;
for (var col = 0; col < colcnt; col++) {
rowData[col] = orgData[col];
}
delete rowData._orgrow;
rowData._rtype = 8;
delRecords[delRecLength] = rowData;
delRecLength++;
}
}
else {
rowData._rtype = 0;
emptycnt++;
}
row++;
return false;
}
return true;
}
while (true) {
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
if (_deleteAll_loop(this)) {
break;
}
}
if (this._rawRecords == this._viewRecords) {
this._viewRecords = [];
}
else {
this._viewRecords.splice(0, this._viewRecords.length);
}
if (emptycnt > 0) {
this._removeEmptyRows();
}
this.rowcount = 0;
return cnt;
};
_pDataset._deleteMultiRows = function (del_rows) {
var view = this._viewRecords;
if (this._rawRecords == view) {
view = this._viewRecords = this._rawRecords.slice(0, this._rawRecords.length);
}
var deleted = this._deletedRecords;
var cnt = view.length;
var newView = [];
var delcnt = 0;
var rowData;
var delRowData;
var row = 0;
var delRow = -1;
var delRecLength = deleted.length;
var nViewLength = 0;
function _deleteMultiRows_loop (pthis) {
if (row < cnt) {
delRow = del_rows[delcnt];
rowData = view[row];
delRowData = view[delRow];
if (rowData == delRowData) {
if (pthis.updatecontrol) {
if (rowData._rtype == 1) {
rowData._rtype = 8;
deleted[delRecLength] = rowData;
delRecLength++;
delcnt++;
}
else if (rowData._rtype == 2) {
rowData._rtype = 0;
pthis._removeEmptyRows();
delcnt++;
}
else if (rowData._rtype == 4) {
var orgData = rowData._orgrow;
var colcnt = pthis.colinfos.length;
for (var col = 0; col < colcnt; col++) {
rowData[row] = orgData[col];
}
delete rowData._orgrow;
rowData._rtype = 8;
deleted[delRecLength] = rowData;
delRecLength++;
delcnt++;
}
}
else {
rowData._rtype = 0;
pthis._removeEmptyRows();
view.splice(row, 1);
cnt--;
row--;
delcnt++;
}
}
else {
newView[nViewLength] = rowData;
nViewLength++;
}
row++;
return false;
}
return true;
}
while (true) {
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
if (_deleteMultiRows_loop(this)) {
break;
}
}
delete delRecLength;
delete nViewLength;
if (delcnt > 0) {
if (this._rawRecords != this._viewRecords) {
this._viewRecords.splice(0, this._viewRecords.length);
}
this._viewRecords = newView;
}
newView = null;
return delcnt;
};
_pDataset._filterRow = function (row) {
var view = this._viewRecords;
if (row >= view.length) {
return false;
}
if (this._rawRecords == view) {
view = this._viewRecords = this._rawRecords.slice(0, this._rawRecords.length);
}
view.splice(row, 1);
this._adjustGroupRowData(row);
this.rowcount = this._viewRecords.length;
return true;
};
_pDataset._updateColumn = function (row, rowData, idx, value) {
var oldVal = rowData[idx];
if (oldVal === value || rowData._rtype == 16) {
return false;
}
if (rowData._rtype == 1 && this.updatecontrol) {
var orgrowData = [];
var len = rowData.length;
var i = 0;
function _updateColumn_loop () {
if (i < len) {
orgrowData[i] = rowData[i];
i++;
return false;
}
return true;
}
while (true) {
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
if (_updateColumn_loop()) {
break;
}
}
rowData._orgrow = orgrowData;
rowData._rtype = 4;
orgrowData = null;
}
else if (rowData._rtype == 4 && this.updatecontrol) {
if (rowData._orgrow) {
var cnt = this.colinfos.length;
rowData[idx] = value;
if (rowData._orgcolstrings) {
rowData._orgcolstrings[idx] = value;
}
var _rtypechange = true;
for (var j = 0; j < cnt; j++) {
if (!(rowData[j] == "" && rowData._orgrow[j] == undefined)) {
if (rowData[j] instanceof nexacro.Decimal && rowData._orgrow[j] instanceof nexacro.Decimal) {
if (rowData[j].isEqual(rowData._orgrow[j]) == false) {
_rtypechange = false;
break;
}
}
else if (rowData[j] instanceof nexacro.Date && rowData._orgrow[j] instanceof nexacro.Date) {
if (rowData[j].valueOf() != rowData._orgrow[j].valueOf()) {
_rtypechange = false;
break;
}
}
else if (rowData[j] != rowData._orgrow[j]) {
_rtypechange = false;
break;
}
}
}
if (_rtypechange == true) {
delete rowData["_orgrow"];
rowData._rtype = 1;
}
}
}
rowData[idx] = value;
if (rowData._orgcolstrings) {
rowData._orgcolstrings[idx] = value;
}
this._updateGroupRowData(row);
return true;
};
_pDataset._setLayout = function (ds) {
this.colinfos = ds.colinfos;
this._constVars = ds._constVars;
};
_pDataset._setRawData = function (rawData, deletedData) {
this._rawRecords = rawData;
this._viewRecords = this._rawRecords;
this._deletedRecords = deletedData;
};
_pDataset._createExprFunc = function (expr_str) {
var parser = new nexacro.ExprParser();
var conv_expr = parser.makeExpr(this, expr_str);
var exprfn = nexacro._createInlineFunc(conv_expr, ["currow", "rowidx", "comp", "dataset"]);
return exprfn;
};
_pDataset._getColumnSize = function (col) {
if ((+col) != (+col)) {
if (this.colinfos[col]) {
return this.colinfos[col].size;
}
else if (this._conVars[col]) {
return this._colVars[col].size;
}
else {
return undefined;
}
}
else {
if (col < 0 || col >= this.colcount) {
return undefined;
}
var cLen = this.colinfos.length;
if (this.colinfos[col]) {
return this.colinfos[col].size;
}
else {
return this._colVars[col - cLen].size;
}
}
};
_pDataset._getColumnType = function (idx) {
if (idx in this.colinfos) {
return this.colinfos[idx].ntype;
}
if (idx in this._constVars) {
var val = this._constVars[idx];
var type = (typeof val);
if (type == "number") {
return 2;
}
return nexacro.DataUtils._typecodes[type];
}
};
_pDataset._isConstColumn = function (col) {
if ((+col) != (+col)) {
if (this._constVars[col]) {
return true;
}
else {
return false;
}
}
else {
var cLen = this.colinfos.length;
if (col < this.colcount && col >= cLen) {
return true;
}
else {
return false;
}
}
};
_pDataset._copyConstColList = function (constVars) {
if (constVars._type_name == "VariableList") {
var len = constVars.length;
var cnt = 0;
var idx = this._constVars.length;
if (len > 0) {
var i = 0;
function _copyConstColList_loop (pthis) {
if (i < len) {
var id = constVars.get_id(i);
if ((id in pthis.colinfos) || (id in pthis._constVars)) {
i++;
return false;
}
pthis._constVars.add(id, constVars[i]);
idx++;
cnt++;
i++;
return false;
}
return true;
}
while (true) {
if (_copyConstColList_loop(this)) {
break;
}
if (_copyConstColList_loop(this)) {
break;
}
if (_copyConstColList_loop(this)) {
break;
}
if (_copyConstColList_loop(this)) {
break;
}
if (_copyConstColList_loop(this)) {
break;
}
if (_copyConstColList_loop(this)) {
break;
}
if (_copyConstColList_loop(this)) {
break;
}
if (_copyConstColList_loop(this)) {
break;
}
if (_copyConstColList_loop(this)) {
break;
}
if (_copyConstColList_loop(this)) {
break;
}
}
if (cnt > 0) {
this.count += cnt;
this.constcount += cnt;
}
}
return cnt;
}
return 0;
};
_pDataset._copyRowList = function (srcRecords) {
var len = srcRecords.length;
var cnt = 0;
var idx = this._rawRecords.length;
var viewRecLength = this._viewRecords.length;
var rawRecLength = this._rawRecords.length;
var i = 0;
function _copyRowList_loop (pthis) {
if (i < len) {
var srcData = srcRecords[i];
var level = srcData._level;
var rtype = srcData._rtype;
if ((level == 0) && (rtype == 1 || rtype == 2 || rtype == 4)) {
var rowData = [];
rowData._level = 0;
rowData._rawidx = idx;
rowData._rtype = 1;
var count = srcData.length;
for (var j = 0; j < count; j++) {
rowData[j] = srcData[j];
}
if (pthis._rawRecords != pthis._viewRecords) {
pthis._viewRecords[viewRecLength] = rowData;
viewRecLength++;
}
pthis._rawRecords[rawRecLength] = rowData;
rawRecLength++;
rowData = null;
}
srcData = null;
idx++;
cnt++;
i++;
return false;
}
return true;
}
while (true) {
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
if (_copyRowList_loop(this)) {
break;
}
}
delete rawRecLength;
delete viewRecLength;
return cnt;
};
_pDataset._copyData = function (srcds, isFiltered) {
if (this.name == undefined) {
this.id = this.name = srcds.id;
}
this._copyConstColList(srcds._constVars);
this._appendColList(srcds.colinfos);
if (isFiltered == true) {
if (srcds._viewRecords.length > 0) {
this._copyRowList(srcds._viewRecords);
}
}
else {
if (srcds._rawRecords.length > 0) {
this._copyRowList(srcds._rawRecords);
}
}
this.constcount = this._constVars.length;
this.colcount = this.colinfos.length + this.constcount;
this.rowcount = this._viewRecords.length;
};
_pDataset._mergeData = function (srcds) {
var len = srcds._rawRecords.length;
var cnt = 0;
var start = this._rawRecords.length;
var idx = start;
var count = this.colinfos.length;
var viewRecLength = this._viewRecords.length;
var rawRecLength = this._rawRecords.length;
var i = 0;
function _mergeData_loop (pthis) {
if (i < len) {
var srcData = srcds._rawRecords[i];
var level = srcData._level;
var rtype = srcData._rtype;
if ((level == 0) && (rtype == 1 || rtype == 2 || rtype == 4)) {
var rowData = [];
rowData._level = 0;
rowData._rawidx = idx;
rowData._rtype = 1;
if (pthis._rawRecords != pthis._viewRecords) {
pthis._viewRecords[viewRecLength] = rowData;
viewRecLength++;
}
pthis._rawRecords[rawRecLength] = rowData;
rawRecLength++;
for (var j = 0; j < count; j++) {
var id = pthis.colinfos.get_id(j);
var srcidx = srcds.colinfos.indexOf(id);
if (srcidx != null) {
rowData[j] = pthis.colinfos[j]._fromVal(srcData[srcidx]);
}
}
idx++;
cnt++;
}
i++;
return false;
}
return true;
}
while (true) {
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
if (_mergeData_loop(this)) {
break;
}
}
delete viewRecLength;
delete rawRecLength;
if (cnt > 0) {
this.rowcount += cnt;
}
return cnt;
};
_pDataset._appendConstColList = function (constVars, chkcol) {
if (constVars._type_name == "VariableList") {
var len = this._constVars.length;
var cnt = 0;
var mincount = Math.min(len, constVars.length);
if (len > 0) {
if (chkcol) {
var i = 0;
function _appendConstColList_loop (pthis) {
if (i < len) {
var id = pthis._constVars.get_id(i);
var srcidx = constVars.indexOf(id);
if (srcidx != null) {
pthis._constVars.set_item(i, constVars[srcidx]);
cnt++;
}
i++;
return false;
}
return true;
}
while (true) {
if (_appendConstColList_loop(this)) {
break;
}
if (_appendConstColList_loop(this)) {
break;
}
if (_appendConstColList_loop(this)) {
break;
}
if (_appendConstColList_loop(this)) {
break;
}
if (_appendConstColList_loop(this)) {
break;
}
if (_appendConstColList_loop(this)) {
break;
}
if (_appendConstColList_loop(this)) {
break;
}
if (_appendConstColList_loop(this)) {
break;
}
if (_appendConstColList_loop(this)) {
break;
}
if (_appendConstColList_loop(this)) {
break;
}
}
}
else {
var i = 0;
function _appendConstColList_loop2 (pthis) {
if (i < mincount) {
pthis._constVars.set_item(i, constVars[i]);
cnt++;
i++;
return false;
}
return true;
}
while (true) {
if (_appendConstColList_loop2(this)) {
break;
}
if (_appendConstColList_loop2(this)) {
break;
}
if (_appendConstColList_loop2(this)) {
break;
}
if (_appendConstColList_loop2(this)) {
break;
}
if (_appendConstColList_loop2(this)) {
break;
}
if (_appendConstColList_loop2(this)) {
break;
}
if (_appendConstColList_loop2(this)) {
break;
}
if (_appendConstColList_loop2(this)) {
break;
}
if (_appendConstColList_loop2(this)) {
break;
}
if (_appendConstColList_loop2(this)) {
break;
}
}
}
}
return cnt;
}
return 0;
};
_pDataset._appendRowList = function (srcds, chkcol) {
var len = srcds._viewRecords.length;
var cnt = 0;
var idx = this._rawRecords.length;
var count = this.colinfos.length;
var mincount = Math.min(count, srcds._rawRecords[0].length);
var viewRecLength = this._viewRecords.length;
var rawRecLength = this._rawRecords.length;
var i = 0;
function _appendRowList_loop (pthis) {
if (i < len) {
var srcData = srcds._viewRecords[i];
var level = srcData._level;
var rtype = srcData._rtype;
if ((level == 0) && (rtype == 1 || rtype == 2 || rtype == 4)) {
var rowData = [];
rowData._level = 0;
rowData._rawidx = idx;
rowData._rtype = 1;
if (chkcol == true || chkcol == "true") {
var j = 0;
function _appendRowList_loop2 () {
if (j < count) {
var id = pthis.colinfos.get_id(j);
var srcidx = srcds.colinfos.indexOf(id);
if (srcidx != null) {
rowData[j] = nexacro.DataUtils.convert(srcData[srcidx], pthis.colinfos[j].ntype);
}
j++;
return false;
}
return true;
}
while (true) {
if (_appendRowList_loop2()) {
break;
}
if (_appendRowList_loop2()) {
break;
}
if (_appendRowList_loop2()) {
break;
}
if (_appendRowList_loop2()) {
break;
}
if (_appendRowList_loop2()) {
break;
}
if (_appendRowList_loop2()) {
break;
}
if (_appendRowList_loop2()) {
break;
}
if (_appendRowList_loop2()) {
break;
}
if (_appendRowList_loop2()) {
break;
}
if (_appendRowList_loop2()) {
break;
}
}
}
else {
var j = 0;
function _appendRowList_loop3 () {
if (j < mincount) {
rowData[j] = nexacro.DataUtils.convert(srcData[j], pthis.colinfos[j].ntype);
j++;
return false;
}
return true;
}
while (true) {
if (_appendRowList_loop3()) {
break;
}
if (_appendRowList_loop3()) {
break;
}
if (_appendRowList_loop3()) {
break;
}
if (_appendRowList_loop3()) {
break;
}
if (_appendRowList_loop3()) {
break;
}
if (_appendRowList_loop3()) {
break;
}
if (_appendRowList_loop3()) {
break;
}
if (_appendRowList_loop3()) {
break;
}
if (_appendRowList_loop3()) {
break;
}
if (_appendRowList_loop3()) {
break;
}
}
}
if (pthis._rawRecords != pthis._viewRecords) {
pthis._viewRecords[viewRecLength] = rowData;
viewRecLength++;
}
pthis._rawRecords[rawRecLength] = rowData;
rawRecLength++;
}
idx++;
cnt++;
i++;
return false;
}
return true;
}
while (true) {
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
if (_appendRowList_loop(this)) {
break;
}
}
delete viewRecLength;
delete rawRecLength;
return cnt;
};
_pDataset._appendData = function (srcds, chkcol, bupdateconst) {
if (this.colcount == 0) {
this._appendColList(srcds.colinfos);
if (bupdateconst == true) {
this._copyConstColList(srcds._constVars);
}
}
else {
if (bupdateconst == true && srcds._constVars.length > 0) {
this._appendConstColList(srcds._constVars, chkcol);
}
}
if (srcds._viewRecords.length > 0) {
this._appendRowList(srcds, chkcol);
}
this.constcount = this._constVars.length;
this.colcount = this.colinfos.length + this.constcount;
this.rowcount = this._viewRecords.length;
};
_pDataset._bWorkingstatus = false;
_pDataset._endLoad = function (errorcode, errormsg, reason) {
this._bWorkingstatus = true;
this._reFilter();
this._resetSortGroup();
if (this._eventstat) {
this.on_fire_onload(errorcode, errormsg, reason);
if (this._viewRecords && this._viewRecords.length > 0) {
var newpos = 0;
if (newpos >= this.rowcount) {
newpos = -1;
}
var oldpos = this.rowposition;
if (newpos != oldpos) {
if (this.onrowposchanged && this.onrowposchanged._has_handlers) {
var evt = new nexacro.DSRowPosChangeEventInfo(this, "onrowposchanged", oldpos, newpos, 51);
if (newpos >= 0 || newpos < this.rowcount) {
this.rowposition = newpos;
if (newpos != oldpos) {
this.on_fire_onrowposchanged(evt);
}
}
}
else {
this.rowposition = newpos;
}
}
if (this.onvaluechanged && this.onvaluechanged._has_handlers) {
var evt = new nexacro.DSColChangeEventInfo(this, "onvaluechanged", this.rowposition, -1, -1, "", undefined, undefined);
this.on_fire_onvaluechanged(evt);
}
}
}
else if (this._viewRecords.length > 0) {
this.rowposition = 0;
}
this._bWorkingstatus = false;
};
if (nexacro.Browser == "IE" && nexacro.BrowserVersion < 9) {
_pDataset._setContents = function (contents) {
var strxml = "" + contents + "";
if (strxml.length) {
var doc = nexacro._parseXMLDocument(strxml);
if (doc) {
if (doc.nodeName == "Dataset") {
this._loadFromDOM(doc);
}
else {
var datasets = doc.getElementsByTagName("Dataset");
this._loadFromDOM(datasets[0]);
}
this.rowposition = -1;
}
doc = null;
}
this.updateSortGroup();
if (this.parent && (this.parent != application && this.parent._is_form == false)) {
this.on_created();
}
};
}
else {
_pDataset._setContents = function (contents) {
if (contents.length) {
this._loadFromXMLStr(contents);
this.rowposition = -1;
}
this.updateSortGroup();
if (this.parent && (this.parent != application && this.parent._is_form == false)) {
this.on_created();
}
};
}
_pDataset._loadFromDOM = function (dsDOM, curIdx, loadCnt, bOrgLayout, bClear) {
this.loadstatus = true;
this._eventstat = !this.loadstatus && this.enableevent;
if (bClear) {
if (bOrgLayout) {
this._clearData();
}
else {
this._clearAll();
}
}
if (dsDOM == null) {
this.loadstatus = false;
this._eventstat = this.enableevent;
return 0;
}
if (!curIdx) {
curIdx = 0;
}
if (!loadCnt) {
loadCnt = -1;
}
this._setColInfoFromDOM(dsDOM, bOrgLayout);
curIdx = this._loadRecordFromDOM(dsDOM, curIdx, loadCnt);
var viewRecords = this._viewRecords;
var delRecords = this._deletedRecords;
var rawRecords = this._rawRecords;
if (delRecords.length > 0) {
viewRecords = this._viewRecords = [];
var len = rawRecords.length;
var viewRecLength = viewRecords.length;
var i = 0;
function _loadFromDOM_delrow_loop () {
if (i < len) {
_currowData = rawRecords[i];
if (_currowData._rtype != 8) {
viewRecords[viewRecLength] = _currowData;
viewRecLength++;
}
i++;
return false;
}
return true;
}
while (true) {
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
if (_loadFromDOM_delrow_loop()) {
break;
}
}
}
this.constcount = this._constVars.length;
this.colcount = this.colinfos.length + this.constcount;
this.rowcount = viewRecords.length;
this.loadstatus = false;
this._eventstat = this.enableevent;
viewRecords = null;
delRecords = null;
rawRecords = null;
return curIdx;
};
_pDataset._setColInfoFromDOM = function (dsDOM, bOrgLayout) {
var i, col, colIdx, len, cnt, orgcnt, _rowElems, _colElems, _rowElem, _orgrowElems, _orgrowElem, _colElem, _colMap, id, type;
if (bOrgLayout) {
;
}
else {
_colElems = dsDOM.getElementsByTagName("ConstColumn");
len = (_colElems ? _colElems.length : 0);
i = 0;
function _loadFromDOM_const_loop (pthis) {
if (i < len) {
_colElem = _colElems[i];
id = _colElem.getAttribute("id");
if (id.length) {
pthis._addConstColumn(id, _colElem.getAttribute("value"), _colElem.getAttribute("type"));
}
i++;
return false;
}
return true;
}
while (true) {
if (_loadFromDOM_const_loop(this)) {
break;
}
if (_loadFromDOM_const_loop(this)) {
break;
}
if (_loadFromDOM_const_loop(this)) {
break;
}
if (_loadFromDOM_const_loop(this)) {
break;
}
if (_loadFromDOM_const_loop(this)) {
break;
}
if (_loadFromDOM_const_loop(this)) {
break;
}
if (_loadFromDOM_const_loop(this)) {
break;
}
if (_loadFromDOM_const_loop(this)) {
break;
}
if (_loadFromDOM_const_loop(this)) {
break;
}
if (_loadFromDOM_const_loop(this)) {
break;
}
}
_colElems = dsDOM.getElementsByTagName("Column");
len = (_colElems ? _colElems.length : 0);
i = 0;
function _loadFromDOM_col_loop (pthis) {
if (i < len) {
_colElem = _colElems[i];
id = _colElem.getAttribute("id");
if (id.length) {
pthis._addColumn(id, _colElem.getAttribute("type"), _colElem.getAttribute("size"), _colElem.getAttribute("prop"), _colElem.getAttribute("sumtext"));
}
i++;
return false;
}
return true;
}
while (true) {
if (_loadFromDOM_col_loop(this)) {
break;
}
if (_loadFromDOM_col_loop(this)) {
break;
}
if (_loadFromDOM_col_loop(this)) {
break;
}
if (_loadFromDOM_col_loop(this)) {
break;
}
if (_loadFromDOM_col_loop(this)) {
break;
}
if (_loadFromDOM_col_loop(this)) {
break;
}
if (_loadFromDOM_col_loop(this)) {
break;
}
if (_loadFromDOM_col_loop(this)) {
break;
}
if (_loadFromDOM_col_loop(this)) {
break;
}
if (_loadFromDOM_col_loop(this)) {
break;
}
}
_colElems = null;
}
};
_pDataset._loadRecordFromDOM = function (dsDOM, curIdx, loadCnt) {
var colList = this.colinfos;
var curCol;
var _rowElems, _colElems;
_rowElems = dsDOM.getElementsByTagName("Row");
var cnt = (_rowElems ? _rowElems.length : 0);
var rawRecords = this._rawRecords;
var delRecords = this._deletedRecords;
var rawRecLength = rawRecords.length;
var delRecLength = delRecords.length;
var colCnt = colList.length;
function _loadFromDOM_row_loop () {
if (curIdx < cnt) {
var _currowData = new Array(colCnt);
_currowData._rawidx = curIdx;
_currowData._level = 0;
var _colInfo;
for (var icheck = 0; icheck < colCnt; icheck++) {
_colInfo = colList[icheck];
if (_colInfo.ntype >= 4 && _colInfo.ntype <= 7) {
_currowData[_colInfo._index] = null;
}
}
_rowElem = _rowElems[curIdx];
type = _rowElem.getAttribute("type");
if (type == null) {
_currowData._rtype = 1;
}
else if (type.charAt(0) == 'I' || type.charAt(0) == 'i') {
_currowData._rtype = 2;
}
else if (type.charAt(0) == 'U' || type.charAt(0) == 'u') {
_currowData._rtype = 4;
}
else if (type.charAt(0) == 'D' || type.charAt(0) == 'd') {
_currowData._rtype = 8;
}
else {
_currowData._rtype = 1;
}
_colElems = _rowElem.getElementsByTagName("Col");
len = (_colElems ? _colElems.length : 0);
var _textElem;
for (j = 0; j < len; j++) {
_colElem = _colElems[j];
id = _colElem.getAttribute("id");
curCol = colList[id];
if (curCol) {
_textElem = _colElem.firstChild;
if (_textElem) {
_currowData[curCol._index] = curCol._fromText(_textElem.nodeValue);
}
else {
_currowData[curCol._index] = "";
}
}
}
_colElems = null;
if (_currowData._rtype == 4) {
_orgrowElems = _rowElem.getElementsByTagName("OrgRow");
orgcnt = (_orgrowElems ? _orgrowElems.length : 0);
if (orgcnt) {
var _orgrowData = new Array(colCnt);
for (var iicheck = 0; iicheck < colCnt; iicheck++) {
if (colList[iicheck].ntype >= 4 && colList[iicheck].ntype <= 7) {
_orgrowData[colList[iicheck]._index] = null;
}
}
_colElems = _orgrowElems[0].getElementsByTagName("Col");
len = (_colElems ? _colElems.length : 0);
for (j = 0; j < len; j++) {
_colElem = _colElems[j];
id = _colElem.getAttribute("id");
curCol = colList[id];
if (curCol) {
_textElem = _colElem.firstChild;
if (_textElem) {
_orgrowData[curCol._index] = curCol._fromText(_textElem.nodeValue);
}
}
}
_currowData._orgrow = _orgrowData;
}
}
if (_currowData._rtype == 8) {
delRecords[delRecLength] = _currowData;
delRecLength++;
}
rawRecords[rawRecLength] = _currowData;
rawRecords[rawRecLength]._orgcolstrings = _currowData;
rawRecLength++;
curIdx++;
_currowData = null;
if (loadCnt > 0 && (rawRecLength - delRecLength) == loadCnt) {
return true;
}
return false;
}
return true;
}
while (true) {
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
if (_loadFromDOM_row_loop()) {
break;
}
}
_rowElems = null;
_colElems = null;
rawRecords = null;
delRecords = null;
delete rawRecLength;
delete delRecLength;
return curIdx;
};
_pDataset._setColInfoFromXMLStr = function (xmlStr) {
var xml_parse_pos = 0;
var colInfo = nexacro._getXMLTagData(xmlStr, xml_parse_pos, "", "");
if (colInfo) {
xml_parse_pos = colInfo[3];
var colinfoData = colInfo[0];
var const_parse_pos = 0;
function _loadFromXMLStr_const_loop (pthis) {
var constVar = nexacro._getXMLTagData2(colinfoData, const_parse_pos, "");
if (constVar == null) {
return true;
}
const_parse_pos = constVar[3];
var attrStr = constVar[1];
var id = nexacro._getXMLAttributeID(attrStr);
var value = nexacro._getXMLAttributeData(attrStr, "value");
if (id.length) {
var type = nexacro._getXMLAttributeType(attrStr);
pthis._addConstColumn(id, nexacro._decodeXml(value), type);
}
return false;
}
while (true) {
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
if (_loadFromXMLStr_const_loop(this)) {
break;
}
}
var colinfo_parse_pos = 0;
function _loadFromXMLStr_col_loop (pthis) {
var colInfo = nexacro._getXMLTagData4(colinfoData, colinfo_parse_pos, " -1) {
function _loadFromXMLStr_row_loop () {
var rowData;
var attrStr;
var rowInfo = nexacro._getXMLTagData3(xmlStr, xml_parse_pos, "");
if (rowInfo == null) {
return true;
}
xml_parse_pos = rowInfo[3];
rowData = rowInfo[0];
attrStr = rowInfo[1];
var _currowData = new Array(colCnt);
_currowData._rawidx = rowidx;
_currowData._level = 0;
_currowData._orgcolstrings = [];
for (var i = 0; i < colCnt; i++) {
if (colList[i].ntype >= 4 && colList[i].ntype <= 7) {
_currowData[colList[i]._index] = undefined;
}
}
rowidx++;
if (attrStr) {
var type = nexacro._getXMLAttributeType(attrStr);
if (!type) {
_currowData._rtype = 1;
}
else {
var typeChar = type.charAt(0);
if (typeChar == 'I' || typeChar == 'i') {
_currowData._rtype = 2;
}
else if (typeChar == 'U' || typeChar == 'u') {
_currowData._rtype = 4;
}
else if (typeChar == 'D' || typeChar == 'd') {
_currowData._rtype = 8;
}
else {
_currowData._rtype = 1;
}
}
}
else {
_currowData._rtype = 1;
}
if (_currowData._rtype == 4) {
var orgRowInfo = nexacro._getXMLTagData(rowData, 0, "", "");
if (orgRowInfo) {
rowData = rowData.substring(0, orgRowInfo[2]) + rowData.substring(orgRowInfo[3]);
var orgData = orgRowInfo[0];
var _orgrowData = new Array(colCnt);
for (var ii = 0; ii < colCnt; ii++) {
if (colList[ii].ntype >= 4 && colList[ii].ntype <= 7) {
_orgrowData[colList[ii]._index] = null;
}
}
var org_parse_pos = 0;
function _loadFromXMLStr_colvalue_loop2 () {
var colInfo = nexacro._getXMLTagData2(orgData, org_parse_pos, "");
if (colInfo == null) {
return true;
}
org_parse_pos = colInfo[3];
var attrStr = colInfo[1];
var id = nexacro._getXMLAttributeID(attrStr);
var curCol = colList[id];
if (curCol) {
_orgrowData[curCol._index] = curCol._fromXMLText(colInfo[0]);
}
return false;
}
while (true) {
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
if (_loadFromXMLStr_colvalue_loop2()) {
break;
}
}
_currowData._orgrow = _orgrowData;
}
}
var row_parse_pos = 0;
function _loadFromXMLStr_colvalue_loop () {
if (rowData) {
var colInfo = nexacro._getXMLTagData2(rowData, row_parse_pos, "");
if (colInfo == null) {
return true;
}
row_parse_pos = colInfo[3];
var attrStr = colInfo[1];
var id = nexacro._getXMLAttributeID(attrStr);
var curCol = colList[id];
if (curCol) {
_currowData[curCol._index] = curCol._fromXMLText(colInfo[0]);
_currowData._orgcolstrings[curCol._index] = _currowData[curCol._index];
}
return false;
}
return true;
}
while (true) {
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
if (_loadFromXMLStr_colvalue_loop()) {
break;
}
}
if (_currowData._rtype == 8) {
delRecords[delRecLength] = _currowData;
delRecLength++;
}
rawRecords[rawRecLength] = _currowData;
rawRecLength++;
rowData = null;
attrStr = null;
rowInfo = null;
_currowData = null;
if (loadCnt > 0 && (rawRecLength - delRecLength) == loadCnt) {
return true;
}
return false;
}
while (true) {
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
if (_loadFromXMLStr_row_loop()) {
break;
}
}
}
rawRecords = null;
delRecords = null;
return xml_parse_pos;
};
_pDataset._loadFromXMLStr = function (xmlStr, xml_parse_pos, loadCnt, bOrgLayout, bClear) {
this.loadstatus = true;
this._eventstat = !this.loadstatus && this.enableevent;
if (!xml_parse_pos) {
xml_parse_pos = 0;
}
if (!loadCnt) {
loadCnt = -1;
}
if (bClear) {
if (bOrgLayout) {
this._clearData();
}
else {
this._clearAll();
}
}
if (!xmlStr) {
this.loadstatus = false;
this._eventstat = this.enableevent;
return 0;
}
if (bOrgLayout) {
if (xml_parse_pos <= 0) {
xml_parse_pos = xmlStr.indexOf("");
if (xml_parse_pos > -1) {
xml_parse_pos += 6;
}
}
}
else {
if (xml_parse_pos <= 0) {
xml_parse_pos = this._setColInfoFromXMLStr(xmlStr);
xml_parse_pos = xmlStr.indexOf("", xml_parse_pos);
if (xml_parse_pos > -1) {
xml_parse_pos += 6;
}
}
}
if (xml_parse_pos > -1) {
xml_parse_pos = this._loadRecordFromXMLStr(xmlStr, xml_parse_pos, loadCnt);
}
var viewRecords = this._viewRecords;
var rawRecords = this._rawRecords;
var delRecords = this._deletedRecords;
var colList = this.colinfos;
if (delRecords.length > 0) {
viewRecords = this._viewRecords = [];
var rowCnt = rawRecords.length;
var viewRecLength = viewRecords.length;
var i = 0;
function _loadFromXMLStr_delrow_loop () {
if (i < rowCnt) {
var _currowData = rawRecords[i];
if (_currowData._rtype != 8) {
viewRecords[viewRecLength] = _currowData;
viewRecLength++;
}
i++;
return false;
}
return true;
}
while (true) {
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
if (_loadFromXMLStr_delrow_loop()) {
break;
}
}
}
else {
this._viewRecords = this._rawRecords;
}
this.constcount = this._constVars.length;
this.colcount = colList.length + this.constcount;
this.rowcount = viewRecords.length;
this.loadstatus = false;
this._eventstat = this.enableevent;
viewRecords = null;
rawRecords = null;
delRecords = null;
colList = null;
return xml_parse_pos;
};
_pDataset._loadFromPPXArray = function (ppxColLines, ppxLines, curIdx, loadCnt, bOrgLayout, bClear) {
var _cs_ = String.fromCharCode(31);
this.loadstatus = true;
this._eventstat = !this.loadstatus && this.enableevent;
if (bClear) {
if (bOrgLayout) {
this._clearData();
}
else {
this._clearAll();
}
}
if (!ppxColLines || ppxColLines.length == 0) {
this.loadstatus = false;
this._eventstat = this.enableevent;
return curIdx;
}
this._setColInfoFromPPXLines(ppxColLines, bOrgLayout);
curIdx = this._loadRecordFromPPXLines(ppxLines, curIdx, loadCnt);
var delRecords_len = this._deletedRecords.length;
if (delRecords_len) {
var viewRecords = this._viewRecords = [];
var rawRecords = this._rawRecords;
len = rawRecords.length;
var viewRecLength = viewRecords.length;
var i = 0;
function _loadFromPPXArray_delrow_loop () {
if (i < len) {
var _currowData = rawRecords[i];
if (_currowData._rtype != 8) {
viewRecords[viewRecLength] = _currowData;
viewRecLength++;
}
i++;
return false;
}
return true;
}
while (true) {
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
if (_loadFromPPXArray_delrow_loop()) {
break;
}
}
}
else {
this._viewRecords = this._rawRecords;
}
this.constcount = this._constVars.length;
this.colcount = this.colinfos.length + this.constcount;
this.rowcount = this._viewRecords.length;
this.loadstatus = false;
this._eventstat = this.enableevent;
return curIdx;
};
_pDataset._getColLinesFromPPXLines = function (ppxLines, curIdx) {
var lineCnt = ppxLines.length;
var idx = curIdx;
while (true) {
var type = ppxLines[idx].charAt(0);
if (idx < lineCnt && (type == "C" || type == "V")) {
idx++;
}
else {
break;
}
}
return ppxLines.slice(curIdx, idx);
};
_pDataset._setColInfoFromPPXLines = function (colLines, bOrgLayout) {
var _cs_ = String.fromCharCode(31);
var _convertFn = null;
var lineCnt = colLines.length;
var idx = 0;
if (!bOrgLayout) {
function _setColInfoFromPPXLines_loop (pthis) {
if (idx < lineCnt) {
var curStr = colLines[idx];
var curType = curStr.charAt(0);
if (curType == 'V') {
var valArr = curStr.split(_cs_);
pthis._addConstColumn(valArr[1], valArr[3], valArr[2]);
idx++;
return false;
}
else if (curType == 'C') {
var valArr = curStr.split(_cs_);
pthis._addColumn(valArr[1], valArr[2], valArr[3], valArr[4], valArr[5]);
idx++;
return false;
}
return true;
}
return true;
}
while (true) {
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
if (_setColInfoFromPPXLines_loop(this)) {
break;
}
}
}
};
_pDataset._loadRecordFromPPXLines = function (ppxLines, curIdx, loadCnt) {
var _cs_ = String.fromCharCode(31);
var colList = this.colinfos;
var rawRecords = this._rawRecords;
var delRecords = this._deletedRecords;
var rawRecLength = rawRecords.length;
var delRecLength = delRecords.length;
var colCnt = colList.length;
var lineCnt = ppxLines.length;
var rowidx = 0;
if (curIdx < lineCnt) {
function _loadRecordFromPPXLines_row_loop () {
if (curIdx < lineCnt) {
var curStr = ppxLines[curIdx];
var curType = curStr.charAt(0);
if (curType == 'n' || curType == 'i' || curType == 'u' || curType == 'd') {
var _currowData = new Array(colCnt);
_currowData._rawidx = rowidx;
_currowData._level = 0;
rowidx++;
if (curType == 'i') {
_currowData._rtype = 2;
}
else if (curType == 'u') {
_currowData._rtype = 4;
}
else if (curType == 'd') {
_currowData._rtype = 8;
}
else {
_currowData._rtype = 1;
}
}
else if (curType == 'o') {
curIdx++;
return false;
}
else {
return true;
}
var valArr = curStr.split(_cs_);
var valCnt = valArr.length;
var j = 1;
for (var i = 0; i < valArr.length; i++) {
if (valArr[i] == String.fromCharCode(3)) {
valArr[i] = undefined;
}
}
function _loadRecordFromPPXLines_colvalue_loop () {
if (j < valCnt) {
var id = valArr[j];
var curCol = colList[id];
if (curCol) {
_currowData[curCol._index] = curCol._fromText(valArr[j + 1]);
}
j += 2;
return false;
}
return true;
}
while (true) {
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
if (_loadRecordFromPPXLines_colvalue_loop()) {
break;
}
}
if (_currowData._rtype == 8) {
delRecords[delRecLength] = _currowData;
delRecLength++;
}
rawRecords[rawRecLength] = _currowData;
rawRecords[rawRecLength]._orgcolstrings = _currowData;
rawRecLength++;
curIdx++;
if (loadCnt > 0 && (rawRecLength - delRecLength) == loadCnt) {
return true;
}
return false;
}
return true;
}
while (true) {
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
if (_loadRecordFromPPXLines_row_loop()) {
break;
}
}
}
colList = null;
rawRecords = null;
delRecords = null;
return curIdx;
};
_pDataset._TABS = ["", "\t", "\t\t", "\t\t\t", "\t\t\t\t", "\t\t\t\t\t", "\t\t\t\t\t\t", "\t\t\t\t\t\t\t"];
_pDataset.__writeXMLData = function (list, str, depth) {
list.push(this._TABS[depth] + str);
};
_pDataset.__writeXMLNormalRow = function (list, rowData, depth, bUseOrgColStrings) {
this.__writeXMLData(list, "", depth++);
this.__writeXMLRowData(list, rowData, depth, bUseOrgColStrings);
this.__writeXMLData(list, "
", --depth);
};
_pDataset.__writeXMLCrudRow = function (list, rowData, depth, bUseOrgColStrings) {
var buffer = "";
this.__writeXMLData(list, buffer, depth++);
this.__writeXMLRowData(list, rowData, depth);
if (rowData._rtype == 4 && rowData._orgrow) {
this.__writeXMLData(list, "", depth++);
this.__writeXMLRowData(list, rowData._orgrow, depth, bUseOrgColStrings);
this.__writeXMLData(list, "", --depth);
}
this.__writeXMLData(list, "
", --depth);
};
_pDataset.__writeXMLRowData = function (list, rowData, depth, bUseOrgColStrings) {
var n = this.colinfos.length;
var id;
var value;
var i = 0;
function __writeColData_loop (pthis) {
if (i < n) {
id = pthis.colinfos[i].id;
if (rowData._orgcolstrings && !!bUseOrgColStrings) {
value = rowData._orgcolstrings[i];
}
else {
value = pthis.colinfos[i]._toXMLText(rowData[i]);
}
if (value != null) {
if (value.length == 0) {
pthis.__writeXMLData(list, "", depth);
}
else {
pthis.__writeXMLData(list, "" + value + "", depth);
}
}
i++;
return false;
}
return true;
}
while (true) {
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
if (__writeColData_loop(this)) {
break;
}
}
};
_pDataset.__MakeDataConvertFunc = function () {
var colinfos = this.colinfos;
var colLen = colinfos.length;
var expr = "(function () { return function (arr) { ";
for (var idx = 0; idx < colLen; idx++) {
var colinfo = colinfos[idx];
switch (colinfo.ntype) {
case 1:
break;
case 2:
expr += "arr[" + idx + "] = nexacro.DataUtils.toIntFromText(arr[" + idx + "]); ";
break;
case 3:
expr += "arr[" + idx + "] = nexacro.DataUtils.toFloatFromText(arr[" + idx + "]); ";
break;
case 4:
expr += "arr[" + idx + "] = nexacro.DataUtils.toDecimalFromText(arr[" + idx + "]); ";
break;
case 5:
expr += "arr[" + idx + "] = nexacro.DataUtils.toDateFromText(arr[" + idx + "]); ";
break;
case 6:
expr += "arr[" + idx + "] = nexacro.DataUtils.toTimeFromText(arr[" + idx + "]); ";
break;
case 7:
expr += "arr[" + idx + "] = nexacro.DataUtils.toDateTimeFromText(arr[" + idx + "]); ";
break;
case 8:
expr += "arr[" + idx + "] = nexacro.DataUtils.toBlobFromText(arr[" + idx + "]); ";
break;
default:
expr += "arr[" + idx + "] = nexacro.DataUtils.toTextFromvariant(arr[" + idx + "]); ";
break;
}
}
expr += "return arr; }; })();";
return nexacro._executeEvalStr(expr);
};
_pDataset.__ssvMakeDataMappingFunc = function (strColInfo) {
var _cs_ = String.fromCharCode(31);
var idMap = {
};
var colArr = strColInfo.split(_cs_);
var colCnt = colArr.length;
for (var i = 1; i < colCnt; i++) {
var colItem = colArr[i].split(":");
var id = colItem[0];
idMap[id] = i - 1;
}
var colinfos = this.colinfos;
var colLen = colinfos.length;
var expr = "(function () { return function (arr) { return [";
for (var i = 0; i < colLen; i++) {
var colinfo = colinfos[i];
var idx = idMap[colinfo.id];
if (idx != null) {
switch (colinfo.ntype) {
case 1:
expr += "arr[" + idx + "]";
break;
case 2:
expr += "nexacro.DataUtils.toIntFromText(arr[" + idx + "])";
break;
case 3:
expr += "nexacro.DataUtils.toFloatFromText(arr[" + idx + "])";
break;
case 4:
expr += "nexacro.DataUtils.toDecimalFromText(arr[" + idx + "])";
break;
case 5:
expr += "nexacro.DataUtils.toDateFromText(arr[" + idx + "])";
break;
case 6:
expr += "nexacro.DataUtils.toTimeFromText(arr[" + idx + "])";
break;
case 7:
expr += "nexacro.DataUtils.toDateTimeFromText(arr[" + idx + "])";
break;
case 8:
expr += "nexacro.DataUtils.toBlobFromText(arr[" + idx + "])";
break;
default:
expr += "nexacro.DataUtils.toTextFromvariant(arr[" + idx + "])";
break;
}
}
if (i != (colLen - 1)) {
expr += ",";
}
}
idMap = null;
expr += "]; }; })();";
return nexacro._executeEvalStr(expr);
};
_pDataset.__ssvSetConstColInfo = function (strColInfo) {
var _cs_ = String.fromCharCode(31);
var colArr = strColInfo.split(_cs_);
var colCnt = colArr.length;
var i = 0;
function __ssvSetConstColInfo_loop (pthis) {
if (i < colCnt) {
var colItem = colArr[i].split("=");
var colInfo = colItem[0];
if (colInfo && colInfo != "_Const_") {
var value = colItem[1];
var colInfoArr = colInfo.split(":");
var id = colInfoArr[0];
var type = colInfoArr[1];
if (type) {
var bSIdx = type.indexOf("(");
if (bSIdx > -1) {
type = type.substring(0, bSIdx);
}
}
pthis._addConstColumn(id, value, type);
}
i++;
return false;
}
return true;
}
while (true) {
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
if (__ssvSetConstColInfo_loop(this)) {
break;
}
}
};
_pDataset.__ssvSetColInfo = function (strColInfo) {
var _cs_ = String.fromCharCode(31);
var colCnt = 0;
var colArr = strColInfo.split(_cs_);
var colCnt = colArr.length;
var i = 0;
function __ssvSetColInfo_loop (pthis) {
if (i < colCnt) {
var colItem = colArr[i].split(":");
var id = colItem[0];
var type, size;
if (id && id != "_RowType_") {
var colInfo = colItem[1];
if (colInfo) {
var sidx = colInfo.indexOf("(");
if (sidx > -1) {
type = colInfo.substring(0, sidx).toUpperCase();
size = colInfo.substring(sidx + 1, colInfo.indexOf(")", sidx + 1)) | 0;
}
else {
type = colInfo;
}
}
else {
type = "STRING";
size = 256;
}
pthis._addColumn(id, type, size, colItem[2], colItem[3]);
}
i++;
return false;
}
return true;
}
while (true) {
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
if (__ssvSetColInfo_loop(this)) {
break;
}
}
return colCnt;
};
_pDataset._loadFromSSVArray = function (ssvColLines, ssvLines, curIdx, loadCnt, bOrgLayout, bClear) {
var _cs_ = String.fromCharCode(31);
this.loadstatus = true;
this._eventstat = !this.loadstatus && this.enableevent;
if (bClear) {
if (bOrgLayout) {
this._clearData();
}
else {
this._clearAll();
}
}
var _convertFn = this._setColInfoFromSSVLines(ssvColLines, bOrgLayout);
if (!_convertFn) {
this.loadstatus = false;
this._eventstat = this.enableevent;
return curIdx;
}
curIdx = this._loadRecordFromSSVLines(ssvLines, curIdx, loadCnt, _convertFn);
var delRecords_len = this._deletedRecords.length;
if (delRecords_len) {
var viewRecords = this._viewRecords = [];
var rawRecords = this._rawRecords;
len = rawRecords.length;
var viewRecLength = viewRecords.length;
var i = 0;
function _loadFromSSVArray_viewRecords_loop () {
if (i < len) {
var _currowData = rawRecords[i];
if (_currowData._rtype != 8) {
viewRecords[viewRecLength] = _currowData;
viewRecLength++;
}
i++;
return false;
}
return true;
}
while (true) {
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
if (_loadFromSSVArray_viewRecords_loop()) {
break;
}
}
}
else {
this._viewRecords = this._rawRecords;
}
this.constcount = this._constVars.length;
this.colcount = this.colinfos.length + this.constcount;
this.rowcount = this._viewRecords.length;
this.loadstatus = false;
this._eventstat = this.enableevent;
return curIdx;
};
_pDataset._getColLinesFromSSVLines = function (ssvLines, curIdx) {
var lineCnt = ssvLines.length;
var idx = curIdx;
if (idx < lineCnt && ssvLines[idx].substring(0, 7) == "_Const_") {
idx++;
}
if (idx < lineCnt && ssvLines[idx].substring(0, 9) == "_RowType_") {
idx++;
}
return ssvLines.slice(curIdx, idx);
};
_pDataset._setColInfoFromSSVLines = function (colLines, bOrgLayout) {
if (!colLines || colLines.length == 0) {
return null;
}
var _convertFn = null;
var lineCnt = colLines.length;
var idx = 0;
if (bOrgLayout) {
while (idx < lineCnt && colLines[idx].substring(0, 9) != "_RowType_") {
idx++;
}
if (idx > lineCnt) {
return null;
}
_convertFn = this.__ssvMakeDataMappingFunc(colLines[idx]);
}
else {
if (idx < lineCnt && colLines[idx].substring(0, 7) == "_Const_") {
this.__ssvSetConstColInfo(colLines[idx]);
idx++;
}
if (idx > lineCnt) {
return null;
}
if (idx < lineCnt && colLines[idx].substring(0, 9) == "_RowType_") {
this.__ssvSetColInfo(colLines[idx]);
idx++;
}
if (idx > lineCnt) {
return null;
}
_convertFn = this.__MakeDataConvertFunc();
}
return _convertFn;
};
_pDataset._loadRecordFromSSVLines = function (ssvLines, curIdx, loadCnt, convertFn) {
var _cs_ = String.fromCharCode(31);
var _ud_ = String.fromCharCode(3);
var rawRecords = this._rawRecords;
var delRecords = this._deletedRecords;
var rawRecLength = rawRecords.length;
var delRecLength = delRecords.length;
var lineCnt = ssvLines.length;
function _loadRecordFromSSVLines_loop () {
if (curIdx < lineCnt) {
var curLine = ssvLines[curIdx];
if (curLine == "") {
curIdx++;
return true;
}
var _currowData = curLine.split(_cs_);
type = _currowData[0];
_currowData.shift();
for (var i = 0; i < _currowData.length; i++) {
if (_currowData[i] == _ud_) {
_currowData[i] = undefined;
}
}
_currowData = convertFn(_currowData);
_currowData._rawidx = rawRecLength;
_currowData._level = 0;
if (type == null) {
_currowData._rtype = 1;
}
else {
var typeChar = type.charAt(0);
if (typeChar == 'I' || typeChar == 'i') {
_currowData._rtype = 2;
}
else if (typeChar == 'U' || typeChar == 'u') {
_currowData._rtype = 4;
}
else if (typeChar == 'D' || typeChar == 'd') {
_currowData._rtype = 8;
}
else {
_currowData._rtype = 1;
}
}
if (_currowData._rtype == 4) {
if (curIdx < (lineCnt - 1) && (ssvLines[curIdx + 1].charAt(0) == 'O' || ssvLines[curIdx + 1].charAt(0) == 'o')) {
var _orgrowData = ssvLines[curIdx + 1].split(_cs_);
_orgrowData.shift();
_orgrowData = convertFn(_orgrowData);
_currowData._orgrow = _orgrowData;
}
}
else if (_currowData._rtype == 8) {
delRecords[delRecLength] = _currowData;
delRecLength++;
}
rawRecords[rawRecLength] = _currowData;
rawRecords[rawRecLength]._orgcolstrings = _currowData;
rawRecLength++;
curIdx++;
if (loadCnt > 0 && (rawRecLength - delRecLength) == loadCnt) {
return true;
}
return false;
}
return true;
}
while (true) {
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
if (_loadRecordFromSSVLines_loop()) {
break;
}
}
return curIdx;
};
_pDataset.__writeData = function (list, str) {
list.push(str);
};
_pDataset.__getRowTypeChar = function (_rtype) {
var rtnVal = null;
switch (_rtype) {
case 1:
rtnVal = "N";
break;
case 2:
rtnVal = "I";
break;
case 4:
rtnVal = "U";
break;
case 8:
rtnVal = "D";
break;
case -1:
rtnVal = "O";
break;
}
return rtnVal;
};
_pDataset.__writeSSVNormalRow = function (list, rowData) {
this.__writeSSVRowData(list, "N", rowData);
};
_pDataset.__writeSSVCrudRow = function (list, rowData) {
this.__writeSSVRowData(list, this.__getRowTypeChar(rowData._rtype), rowData);
if (rowData._rtype == 4 && rowData._orgrow) {
this.__writeSSVRowData(list, this.__getRowTypeChar(-1), rowData._orgrow);
}
};
_pDataset.__writeSSVRowData = function (list, type, rowData) {
var _rs_ = String.fromCharCode(30);
var _cs_ = String.fromCharCode(31);
this.__writeData(list, type + _cs_);
var n = this.colinfos.length;
var i = 0;
function __writeSSVColData_loop (pthis) {
if (i < n) {
var value = pthis.colinfos[i]._toText(rowData[i]);
if (value === undefined) {
value = String.fromCharCode(3);
}
if (value != null) {
if (i == (n - 1)) {
pthis.__writeData(list, value + _rs_);
}
else {
pthis.__writeData(list, value + _cs_);
}
}
else {
if (i == (n - 1)) {
pthis.__writeData(list, _rs_);
}
else {
pthis.__writeData(list, _cs_);
}
}
i++;
return false;
}
return true;
}
while (true) {
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
if (__writeSSVColData_loop(this)) {
break;
}
}
};
nexacro.__splitCSVRowData = function (strRow, base_colCnt) {
var colArr = strRow.split(",");
var colCnt = colArr.length;
var i = 0;
function __splitCSVRowData_loop1 () {
if (i < colCnt) {
var colStr = colArr[i];
var ch = colStr.charAt(0);
if (ch == "\"" || ch == "\'") {
while (colStr[colStr.length - 1] != ch) {
if (i <= colCnt) {
colStr += "," + colArr.splice(i + 1, 1);
colCnt--;
}
else {
break;
}
}
colArr[i] = nexacro._unQuoteStr(colStr);
}
i++;
return false;
}
return true;
}
while (true) {
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
if (__splitCSVRowData_loop1()) {
break;
}
}
return colArr;
};
_pDataset.__csvMakeDataMappingFunc = function (colArr, colCnt) {
var idMap = {
};
for (var i = 0; i < colCnt; i++) {
var colItem = colArr[i].split(":");
var id = colItem[0];
idMap[id] = i;
}
var colinfos = this.colinfos;
var colLen = colinfos.length;
var expr = "(function () { return function (arr) { return [";
for (var i = 0; i < colLen; i++) {
var colinfo = colinfos[i];
var idx = idMap[colinfo.id];
if (idx != null) {
switch (colinfo.ntype) {
case 1:
expr += "arr[" + idx + "]";
break;
case 2:
expr += "nexacro.DataUtils.toIntFromText(arr[" + idx + "])";
break;
case 3:
expr += "nexacro.DataUtils.toFloatFromText(arr[" + idx + "])";
break;
case 4:
expr += "nexacro.DataUtils.toDecimalFromText(arr[" + idx + "])";
break;
case 5:
expr += "nexacro.DataUtils.toDateFromText(arr[" + idx + "])";
break;
case 6:
expr += "nexacro.DataUtils.toTimeFromText(arr[" + idx + "])";
break;
case 7:
expr += "nexacro.DataUtils.toDateTimeFromText(arr[" + idx + "])";
break;
case 8:
expr += "nexacro.DataUtils.toBlobFromText(arr[" + idx + "])";
break;
default:
expr += "nexacro.DataUtils.toTextFromvariant(arr[" + idx + "])";
break;
}
}
if (i != (colLen - 1)) {
expr += ",";
}
}
expr += "]; }; })();";
idMap = null;
return nexacro._executeEvalStr(expr);
};
_pDataset.__csvSetColInfo = function (strColInfo) {
var _cs_ = String.fromCharCode(31);
var colArr = strColInfo.split(",");
var colCnt = colArr.length;
var i = 0;
function __csvSetColInfo_loop (pthis) {
if (i < colCnt) {
var colItem = colArr[i].split(":");
var id = colItem[0];
var type, size;
if (id) {
var colInfo = colItem[1];
if (colInfo) {
var sidx = colInfo.indexOf("(");
if (sidx > -1) {
type = colInfo.substring(0, sidx).toUpperCase();
size = colInfo.substring(sidx + 1, colInfo.indexOf(")", sidx + 1)) | 0;
}
else {
type = colInfo.toUpperCase();
}
}
else {
type = "STRING";
size = 256;
}
pthis._addColumn(id, type, size, colItem[2], colItem[3]);
}
i++;
return false;
}
return true;
}
while (true) {
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
if (__csvSetColInfo_loop(this)) {
break;
}
}
return colCnt;
};
_pDataset._loadFromCSVArray = function (csvColLine, csvLines, curIdx, loadCnt, bOrgLayout, bClear) {
this.loadstatus = true;
this._eventstat = !this.loadstatus && this.enableevent;
if (bClear) {
if (bOrgLayout) {
this._clearData();
}
else {
this._clearAll();
}
}
var _convertFn = this._setColInfoFromCSVLine(csvColLine, bOrgLayout);
if (!_convertFn) {
this.loadstatus = false;
this._eventstat = this.enableevent;
return curIdx;
}
var curIdx = this._loadRecordFromCSVLines(csvLines, curIdx, loadCnt, _convertFn);
var delRecords_len = this._deletedRecords.length;
if (delRecords_len) {
var viewRecords = this._viewRecords = [];
var rawRecords = this._rawRecords;
len = rawRecords.length;
var viewRecLength = viewRecords.length;
var i = 0;
function _loadFromCSVArray_delrow_loop () {
if (i < len) {
var _currowData = rawRecords[i];
if (_currowData._rtype != 8) {
viewRecords[viewRecLength] = _currowData;
viewRecLength++;
}
i++;
return false;
}
return true;
}
while (true) {
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
if (_loadFromCSVArray_delrow_loop()) {
break;
}
}
}
else {
this._viewRecords = this._rawRecords;
}
this.constcount = this._constVars.length;
this.colcount = this.colinfos.length + this.constcount;
this.rowcount = this._viewRecords.length;
this.loadstatus = false;
this._eventstat = this.enableevent;
return curIdx;
};
_pDataset._setColInfoFromCSVLine = function (csvColLine, bOrgLayout) {
if (!csvColLine || csvColLine.length == 0) {
return null;
}
var _convertFn = null;
if (bOrgLayout) {
var colArr = csvColLine.split(",");
csvColCnt = colArr.length;
_convertFn = this.__csvMakeDataMappingFunc(colArr, csvColCnt);
}
else {
csvColCnt = this.__csvSetColInfo(csvColLine);
_convertFn = this.__MakeDataConvertFunc();
}
return _convertFn;
};
_pDataset._loadRecordFromCSVLines = function (csvLines, curIdx, loadCnt, convertFn) {
var rawRecords = this._rawRecords;
var delRecords = this._deletedRecords;
var rawRecLength = rawRecords.length;
var delRecLength = delRecords.length;
var lineCnt = csvLines.length;
function _loadRecordFromCSVLines_loop () {
if (curIdx < lineCnt) {
var curLine = csvLines[curIdx];
if (curLine == "") {
curIdx++;
return true;
}
var _currowData = nexacro.__splitCSVRowData(curLine, csvColCnt);
_currowData = convertFn(_currowData);
_currowData._rawidx = rawRecLength;
_currowData._level = 0;
_currowData._rtype = 1;
rawRecords[rawRecLength] = _currowData;
rawRecords[rawRecLength]._orgcolstrings = _currowData;
rawRecLength++;
curIdx++;
if (loadCnt > 0 && rawRecLength == loadCnt) {
return true;
}
return false;
}
return true;
}
while (true) {
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
if (_loadRecordFromCSVLines_loop()) {
break;
}
}
return curIdx;
};
_pDataset.__writeCSVRowData = function (list, rowData) {
var n = this.colinfos.length;
var i = 0;
function __writeCSVColData_loop (pthis) {
if (i < n) {
var colinfo = pthis.colinfos[i];
var value = colinfo._toText(rowData[i]);
if (value != null) {
if (colinfo.ntype == 1) {
if (i == (n - 1)) {
pthis.__writeData(list, nexacro._quoteStr(value) + "\r\n");
}
else {
pthis.__writeData(list, nexacro._quoteStr(value) + ",");
}
}
else {
if (i == (n - 1)) {
pthis.__writeData(list, value + "\r\n");
}
else {
pthis.__writeData(list, value + ",");
}
}
}
else {
if (i == (n - 1)) {
pthis.__writeData(list, "\r\n");
}
else {
pthis.__writeData(list, ",");
}
}
i++;
return false;
}
return true;
}
while (true) {
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
if (__writeCSVColData_loop(this)) {
break;
}
}
};
_pDataset._assignRowList = function (srcRecords) {
var len = srcRecords.length;
var idx = this._rawRecords.length;
var cnt = 0;
var delRecLength = this._deletedRecords.length;
var viewRecLength = this._viewRecords.length;
var rawRecLength = this._rawRecords.length;
var i = 0;
function _assignRowList_loop (pthis) {
if (i < len) {
var srcData = srcRecords[i];
var level = srcData._level;
var rtype = srcData._rtype;
if (level == 0) {
var rowData = [];
rowData._level = level;
rowData._rawidx = idx;
rowData._rtype = rtype;
var count = srcData.length;
var j = 0;
function _assignRowList_loop2 () {
if (j < count) {
rowData[j] = srcData[j];
j++;
return false;
}
return true;
}
while (true) {
if (_assignRowList_loop2()) {
break;
}
if (_assignRowList_loop2()) {
break;
}
if (_assignRowList_loop2()) {
break;
}
if (_assignRowList_loop2()) {
break;
}
if (_assignRowList_loop2()) {
break;
}
if (_assignRowList_loop2()) {
break;
}
if (_assignRowList_loop2()) {
break;
}
if (_assignRowList_loop2()) {
break;
}
if (_assignRowList_loop2()) {
break;
}
if (_assignRowList_loop2()) {
break;
}
}
if (srcData._orgrow) {
var srcOrgData = srcData._orgrow;
var rowOrgData = [];
rowOrgData._level = srcOrgData._level;
rowOrgData._rawidx = idx;
rowOrgData._rtype = srcOrgData._rtype;
var count = srcOrgData.length;
var j = 0;
function _assignRowList_loop3 () {
if (j < count) {
rowOrgData[j] = srcOrgData[j];
j++;
return false;
}
return true;
}
while (true) {
if (_assignRowList_loop3()) {
break;
}
if (_assignRowList_loop3()) {
break;
}
if (_assignRowList_loop3()) {
break;
}
if (_assignRowList_loop3()) {
break;
}
if (_assignRowList_loop3()) {
break;
}
if (_assignRowList_loop3()) {
break;
}
if (_assignRowList_loop3()) {
break;
}
if (_assignRowList_loop3()) {
break;
}
if (_assignRowList_loop3()) {
break;
}
if (_assignRowList_loop3()) {
break;
}
}
rowData._orgrow = rowOrgData;
}
if (rtype == 8) {
pthis._deletedRecords[delRecLength] = rowData;
delRecLength++;
}
if (rtype == 1 || rtype == 2 || rtype == 4) {
if (pthis._rawRecords != pthis._viewRecords) {
pthis._viewRecords[viewRecLength] = rowData;
viewRecLength++;
}
}
else {
if (pthis._rawRecords == pthis._viewRecords) {
pthis._viewRecords = pthis._rawRecords.slice(0, pthis._rawRecords.length);
viewRecLength = pthis._viewRecords.length;
}
}
pthis._rawRecords[rawRecLength] = rowData;
rawRecLength++;
idx++;
cnt++;
}
i++;
return false;
}
return true;
}
while (true) {
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
if (_assignRowList_loop(this)) {
break;
}
}
delete delRecLength;
delete viewRecLength;
delete rawRecLength;
return cnt;
};
_pDataset._assign = function (srcds) {
this._copyConstColList(srcds._constVars);
this._appendColList(srcds.colinfos);
this._assignRowList(srcds._rawRecords);
this.constcount = this._constVars.length;
this.colcount = this.colinfos.length + this.constcount;
this.rowcount = this._viewRecords.length;
};
_pDataset._isLike = function (value, cmpval) {
if (value == cmpval) {
return true;
}
else if (value && nexacro._isString(cmpval)) {
if (cmpval.length == 0) {
return false;
}
if (value.slice(0, cmpval.length) == cmpval) {
return true;
}
}
return false;
};
_pDataset._findRow = function (colidx, cmpval, start, end) {
var view = this._viewRecords;
var rowData;
var i = start;
function _findRow_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
if (rowData[colidx] == cmpval) {
return true;
}
else if (rowData[colidx] instanceof nexacro.Decimal && cmpval instanceof nexacro.Decimal) {
if (rowData[colidx].isEqual(cmpval)) {
return true;
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
if (_findRow_loop(this)) {
break;
}
}
return (i < end) ? i : -1;
};
_pDataset._findRowAs = function (colidx, cmpval, start, end) {
var view = this._viewRecords;
var rowData;
var i = start;
function _findRowAs_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
if (pthis._isLike(rowData[colidx], cmpval)) {
return true;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
if (_findRowAs_loop(this)) {
break;
}
}
return (i < end) ? i : -1;
};
_pDataset._checkViewRowData = function (rowData) {
return (rowData._level == 0);
};
_pDataset._checkRawRowData = function (rowData) {
var level = rowData._level;
var rtype = rowData._rtype;
return ((level == 0) && (rtype == 1 || rtype == 2 || rtype == 4));
};
_pDataset._getNotDelRec = function () {
var noDelRec = this._rawRecords.slice(0, this._rawRecords.length);
var tLen = noDelRec.length - 1;
for (var i = tLen; i > -1; i--) {
if (noDelRec[i]._rtype == 8) {
noDelRec.splice(i, 1);
}
}
return noDelRec;
};
_pDataset._checkRowData = _pDataset._checkViewRowData;
_pDataset._getCount = function (start, end, pivotidx, colIdx, bExcludeNull) {
var view = this._viewRecords;
var rowData, colData;
var cnt = 0;
var i = start;
function _getCount_loop (pthis) {
if (i < end) {
if (i == view.length) {
return true;
}
rowData = view[i];
if (pthis._checkRowData(rowData)) {
if (bExcludeNull == true) {
colData = rowData[colIdx];
if (colData) {
cnt++;
}
}
else {
cnt++;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
if (_getCount_loop(this)) {
break;
}
}
return cnt;
};
_pDataset._getSum = function (colidx, start, end, pivotidx, coltype) {
var view = this._viewRecords;
var rowData;
var sum = 0;
var i = start;
if (coltype == 1 || coltype == 8) {
return 0;
}
if (coltype != 4) {
function _getSum_loop (pthis) {
if (i < end) {
rowData = view[i];
if (rowData._rtype == 16) {
i++;
return false;
}
var v = rowData[colidx];
if (!nexacro._isNumber(v)) {
if (!v) {
v = 0;
}
else {
v = parseInt(v, 10);
}
}
if (pthis._checkRowData(rowData)) {
sum += (+v);
}
i++;
return false;
}
return true;
}
while (true) {
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
if (_getSum_loop(this)) {
break;
}
}
}
else {
sum = new nexacro.Decimal;
function _getSumDecimal_loop (pthis) {
if (i < end) {
rowData = view[i];
if ((rowData[colidx] != null) && (rowData[colidx] != "") && (rowData[colidx] != undefined) && pthis._checkRowData(rowData)) {
sum.addDecimal(rowData[colidx]);
}
i++;
return false;
}
return true;
}
while (true) {
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
if (_getSumDecimal_loop(this)) {
break;
}
}
}
if (sum instanceof nexacro.Decimal) {
return sum.isNaN() ? 0 : sum;
}
return (+sum) != (+sum) ? 0 : sum;
};
_pDataset._getMin = function (colidx, start, end, pivotidx, coltype) {
var view = this._viewRecords;
var rowData;
var min = undefined;
var i = start;
if (coltype != 4) {
function _getMin_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
if (min == null || rowData[colidx] < min) {
min = rowData[colidx];
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
if (_getMin_loop(this)) {
break;
}
}
}
else {
var v;
function _getMinDecimal_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData) && rowData[colidx] != null) {
v = rowData[colidx];
if (min == null || v.hi < min.hi || (v.hi == min.hi && v.lo < min.lo)) {
min = v;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
if (_getMinDecimal_loop(this)) {
break;
}
}
}
if (min instanceof nexacro.Decimal) {
return min.isNaN() ? undefined : min;
}
return (+min) != (+min) ? undefined : min;
};
_pDataset._getMax = function (colidx, start, end, pivotidx, coltype) {
var view = this._viewRecords;
var rowData;
var max = undefined;
var i = start;
if (coltype != 4) {
function _getMax_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
if (max == null || rowData[colidx] > max) {
max = rowData[colidx];
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
if (_getMax_loop(this)) {
break;
}
}
}
else {
function _getMaxDecimal_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData) && rowData[colidx] != null) {
var v = rowData[colidx];
if (max == null || v.hi > max.hi || (v.hi == max.hi && v.lo > max.lo)) {
max = v;
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
if (_getMaxDecimal_loop(this)) {
break;
}
}
}
if (max instanceof nexacro.Decimal) {
return max.isNaN() ? undefined : max;
}
else if (coltype == 1) {
return (max) != (max) ? undefined : max;
}
return (+max) != (+max) ? undefined : max;
};
_pDataset._getAvg = function (colidx, start, end, pivotidx, coltype) {
var view = this._viewRecords;
var rowData;
var cnt = 0;
var sum = 0;
var i = start;
if (coltype != 4) {
function _getAvg_loop (pthis) {
if (i < end) {
rowData = view[i];
if (nexacro._isNumber(rowData[colidx]) && pthis._checkRowData(rowData)) {
cnt++;
sum += (+rowData[colidx]);
}
i++;
return false;
}
return true;
}
while (true) {
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
if (_getAvg_loop(this)) {
break;
}
}
}
else {
sum = new nexacro.Decimal;
function _getAvgDecimal_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
if ((rowData[colidx] instanceof nexacro.Decimal)) {
cnt++;
sum.addDecimal(rowData[colidx]);
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
if (_getAvgDecimal_loop(this)) {
break;
}
}
}
if (cnt == 0) {
return Infinity;
}
if (sum instanceof nexacro.Decimal) {
sum.divDouble(cnt);
}
else {
sum = sum / cnt;
}
return sum;
};
_pDataset._getCaseSum = function (cmpExpr, colidx, start, end, pivotidx, coltype) {
var cmpFn = this._exprFuncs[cmpExpr];
if (cmpFn == null) {
cmpFn = this._exprFuncs[cmpExpr] = this._createExprFunc(cmpExpr);
}
if (typeof cmpFn != "function") {
return 0;
}
var view = this._viewRecords;
var rowData;
var sum = 0;
var cmp = null;
var i = start;
if (coltype != 4) {
function _getCaseSum_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
if ((rowData[colidx] != null) && (rowData[colidx] != "") && (rowData[colidx] != undefined)) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
sum += (+rowData[colidx]);
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
if (_getCaseSum_loop(this)) {
break;
}
}
}
else {
sum = new nexacro.Decimal;
function _getCaseSumDecimal_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
if ((rowData[colidx] != null) && (rowData[colidx] != "") && (rowData[colidx] != undefined)) {
if (rowData[colidx] != null) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
sum.addDecimal(rowData[colidx]);
}
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
if (_getCaseSumDecimal_loop(this)) {
break;
}
}
}
if (sum instanceof nexacro.Decimal) {
return sum.isNaN() ? 0 : sum;
}
return (+sum) != (+sum) ? 0 : sum;
};
_pDataset._getCaseMin = function (cmpExpr, colidx, start, end, pivotidx, coltype) {
var cmpFn = this._exprFuncs[cmpExpr];
if (cmpFn == null) {
cmpFn = this._exprFuncs[cmpExpr] = this._createExprFunc(cmpExpr);
}
if (typeof cmpFn != "function") {
return undefined;
}
var view = this._viewRecords;
var rowData;
var min = undefined;
var cmp = null;
var i = start;
if (coltype != 4) {
function _getCaseMin_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
if (min == null || rowData[colidx] < min) {
min = rowData[colidx];
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
if (_getCaseMin_loop(this)) {
break;
}
}
}
else {
function _getCaseMinDecimal_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
if (rowData[colidx] != null) {
var v = rowData[colidx];
if (min == null || v.hi < min.hi || (v.hi == min.hi && v.lo < min.lo)) {
min = v;
}
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
if (_getCaseMinDecimal_loop(this)) {
break;
}
}
}
if (min instanceof nexacro.Decimal) {
return min.isNaN() ? undefined : min;
}
return (+min) != (+min) ? undefined : min;
};
_pDataset._getCaseMax = function (cmpExpr, colidx, start, end, pivotidx, coltype) {
var cmpFn = this._exprFuncs[cmpExpr];
if (cmpFn == null) {
cmpFn = this._exprFuncs[cmpExpr] = this._createExprFunc(cmpExpr);
}
if (typeof cmpFn != "function") {
return undefined;
}
var view = this._viewRecords;
var rowData;
var max = undefined;
var cmp = null;
var i = start;
if (coltype != 4) {
function _getCaseMax_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
if (max == null || rowData[colidx] > max) {
max = rowData[colidx];
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
if (_getCaseMax_loop(this)) {
break;
}
}
}
else {
function _getCaseMaxDecimal_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
if (rowData[colidx] != null) {
var v = rowData[colidx];
if (max == null || v.hi > max.hi || (v.hi == max.hi && v.lo > max.lo)) {
max = v;
}
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
if (_getCaseMaxDecimal_loop(this)) {
break;
}
}
}
if (max instanceof nexacro.Decimal) {
return max.isNaN() ? undefined : max;
}
return (+max) != (+max) ? undefined : max;
};
_pDataset._getCaseAvg = function (cmpExpr, colidx, start, end, pivotidx, coltype) {
var cmpFn = this._exprFuncs[cmpExpr];
if (cmpFn == null) {
cmpFn = this._exprFuncs[cmpExpr] = this._createExprFunc(cmpExpr);
}
if (typeof cmpFn != "function") {
return Number.NaN;
}
var view = this._viewRecords;
var rowData;
var cnt = 0;
var sum = 0;
var addsum;
var cmp = null;
var i = start;
if (coltype != 4) {
function _getCaseAvg_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
cnt++;
if (rowData[colidx]) {
sum += +rowData[colidx];
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
if (_getCaseAvg_loop(this)) {
break;
}
}
}
else {
function _getCaseAvgDecimal_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
cmp = cmpFn.call(pthis, i, i, null, pthis);
if (cmp === true) {
cnt++;
if (rowData[colidx]) {
addsum = rowData[colidx];
if ((sum instanceof nexacro.Decimal) == false) {
if ((addsum instanceof nexacro.Decimal) == false) {
sum += (+addsum);
}
else {
sum = new nexacro.Decimal(sum);
sum.addDecimal(addsum);
}
}
else {
if ((addsum instanceof nexacro.Decimal) == false) {
sum.addDouble(addsum);
}
else {
sum.addDecimal(addsum);
}
}
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
if (_getCaseAvgDecimal_loop(this)) {
break;
}
}
}
if (cnt == 0) {
return Infinity;
}
if (sum instanceof nexacro.Decimal) {
sum.divDouble(cnt);
}
else {
sum = sum / cnt;
}
return sum;
};
_pDataset._calcNFData = function (fn, expr, start, end) {
var currentView = this._viewRecords;
this._viewRecords = this._rawRecords;
this._checkRowData = this._checkRawRowData;
var value = "";
if (end === undefined) {
if (start === undefined) {
value = fn.call(this, expr);
}
else {
value = fn.call(this, expr, start);
}
}
else {
value = fn.call(this, expr, start, end);
}
this._checkRowData = this._checkViewRowData;
this._viewRecords = currentView;
return value;
};
_pDataset._findMaxLengthRow = function (colidx, start, end) {
var view = this._viewRecords;
var rowData;
var maxLen = undefined;
var maxRow = -1;
var i = start;
function _findMaxLengthRow_loop (pthis) {
if (i < end) {
rowData = view[i];
if (pthis._checkRowData(rowData)) {
if (rowData[colidx]) {
var len = rowData[colidx].toString().length;
if (maxLen == null || len > maxLen) {
maxLen = len;
maxRow = i;
}
}
}
i++;
return false;
}
return true;
}
while (true) {
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
if (_findMaxLengthRow_loop(this)) {
break;
}
}
return maxRow;
};
delete _pDataset;
nexacro.TransactionItem = function (path, context, svcid, inDatasetsParam, outDatasetsParam, argsParam, datatype, async, last_modified, version) {
nexacro.CommunicationItem.call(this, path, "data", false, last_modified, version);
this.context = context;
this.svcid = svcid;
this.inputDatasets = this._parseDSParam(inDatasetsParam);
this.outputDatasets = this._parseDSParam(outDatasetsParam);
this.parameters = this._parseVarParam(argsParam);
this.datatype = (!datatype ? 0 : datatype);
this._sendData = this._serializeData();
this._usewaitcursor = async && application.usewaitcursor;
this._remain_data = null;
this._progress_data = null;
this._progress_cnt = 0;
this._responseData = null;
this._has_firstcount_dataset = this._hasFirstCountDs();
if (nexacro.Browser == "IE" && nexacro.BrowserVersion < 8) {
this._check_responseXML = true;
}
else {
this._check_responseXML = false;
}
if ((!application._cookie_variables || application._cookie_variables.length == 0) && !this.parameters && !this.inputDatasets) {
this._http_method = "GET";
}
else {
this._http_method = "POST";
}
};
var _pTransactionItem = nexacro._createPrototype(nexacro.CommunicationItem, nexacro.TransactionItem);
nexacro.TransactionItem.prototype = _pTransactionItem;
_pTransactionItem._handle = null;
_pTransactionItem.callbackList = [];
_pTransactionItem.type = "data";
_pTransactionItem.bcache = false;
_pTransactionItem._type_name = "TransactionItem";
_pTransactionItem.on_start = function () {
if (this._usewaitcursor) {
this._showWaitCursor(this.context);
}
application._appendCommContext(this.context);
application.on_fire_oncommunication(application, 0);
};
_pTransactionItem.on_load_data = function (data, cookie, last_modified) {
var datasets = null;
var parameters = null;
var errorinfo;
var bcache = this.bcache;
var ret = null;
this._addCookieToGlobalVariable(cookie);
if (data && data._type_name == "DataCache") {
bcache = false;
errorinfo = data._loadData(this);
}
else {
if (this._protocol < 0) {
data = this.on_decrypt(data);
}
if (this._progress_data) {
this.on_progress_data(data, true);
errorinfo = this._progress_data._error_info;
if (bcache) {
var target_ds = null;
datasets = new nexacro.Collection();
for (var buff_ds in this._progress_data._datasets) {
if (this._progress_data._datasets[buff_ds]._isEnable) {
target_ds = this._progress_data._datasets[buff_ds]._target_ds;
datasets.add_item(target_ds.id, new nexacro._DataSetCache(target_ds.id, target_ds.colinfos, target_ds._constVars, target_ds._rawRecords));
}
}
this._progress_data._datasets = null;
parameters = this._progress_data._parameters;
}
}
else {
ret = this._deserializeData(data, 0);
if (bcache) {
parameters = ret[1];
datasets = ret[2];
}
errorinfo = ret[0];
}
}
if (bcache) {
var d_cache = nexacro._DataCacheList[this.path];
if (!d_cache) {
nexacro._DataCacheList[this.path] = new nexacro._DataCache(parameters, datasets, last_modified, this.version);
}
else {
d_cache.parameters = parameters;
d_cache.datasets = datasets;
d_cache.last_modified = last_modified ? last_modified : "";
d_cache.version = this.version;
}
d_cache = null;
}
parameters = null;
datasets = null;
data = null;
ret = null;
var errorcode = 0;
var errormsg = "SUCCESS";
if (errorinfo) {
errorcode = errorinfo[0];
errormsg = errorinfo[1];
errorinfo = null;
}
if (this._usewaitcursor) {
this._hideWaitCursor(this.context);
}
application._removeCommContext(this.context);
application.on_fire_oncommunication(application, 1);
var callbackList = this.callbackList;
var n = callbackList.length;
if (n > 0) {
var loadmanager = this.context._load_manager;
var dataitem = loadmanager ? loadmanager.getDataItem(this.svcid) : null;
if (dataitem) {
dataitem._is_cancel = undefined;
}
dataitem = null;
loadmanager = null;
for (var i = 0; i < n; i++) {
var item = callbackList[i];
var target = item.target;
if (target._is_alive != false) {
item.callback.call(target, this.svcid, errorcode, errormsg);
}
target = null;
item = null;
}
callbackList.splice(0, n);
}
this._handle = null;
};
_pTransactionItem.on_load_xmldom = function (xmldom, cookie, last_modified) {
this._addCookieToGlobalVariable(cookie);
var ret = this.__deserializeXML("", xmldom);
var errorcode = 0;
var errormsg = "SUCCESS";
var errorinfo = ret[0];
if (this.bcache) {
var d_cache = nexacro._DataCacheList[this.path];
if (!d_cache) {
nexacro._DataCacheList[this.path] = new nexacro._DataCache(ret[1], ret[2], last_modified, this.version);
}
else {
d_cache.parameters = ret[1];
d_cache.datasets = ret[2];
d_cache.last_modified = last_modified;
d_cache.version = this.version;
}
}
if (errorinfo) {
errorcode = errorinfo[0];
errormsg = errorinfo[1];
}
if (this._usewaitcursor) {
this._hideWaitCursor(this.context);
}
application._removeCommContext(this.context);
application.on_fire_oncommunication(application, 1);
var callbackList = this.callbackList;
var n = callbackList.length;
if (n > 0) {
for (var i = 0; i < n; i++) {
var item = callbackList[i];
var target = item.target;
if (target._is_alive != false) {
item.callback.call(target, this.svcid, errorcode, errormsg);
}
}
callbackList.splice(0, n);
}
this._handle = null;
};
_pTransactionItem.on_progress = nexacro._emptyFn;
_pTransactionItem.on_progress_data = function (data, bFinal) {
if (!this._progress_data) {
data = nexacro.trimLeft(data);
var data_type = this._getStreamType(data);
switch (data_type) {
case "CSV":
this._progress_data = new nexacro._ProgressDataCSV(this);
break;
case "SSV":
this._progress_data = new nexacro._ProgressDataSSV(this);
break;
case "PPX":
this._progress_data = new nexacro._ProgressDataPPX(this);
break;
case "XML":
this._progress_data = new nexacro._ProgressDataXML(this);
break;
default:
return;
}
}
this._progress_data._on_progress(data, bFinal);
};
_pTransactionItem.on_error = function (errstatus, fireerrorcode, returncode, locationurl) {
var callbackList = this.callbackList;
var n = callbackList.length;
var ret = false;
if (n > 0) {
for (var i = 0; i < n; i++) {
var item = callbackList[i];
var target = item.target;
if (target._is_alive != false) {
ret = item.callback.call(target, this.svcid, -1, "FAILED", fireerrorcode, returncode, this.path, locationurl);
if (ret) {
continue;
}
}
}
if (ret) {
return true;
}
}
var loadmanager = this.context._load_manager;
var dataitem = loadmanager ? loadmanager.getDataItem(this.svcid) : null;
var dataitem_handle = dataitem ? dataitem._handle : null;
if (dataitem && !dataitem._is_cancel) {
return;
}
callbackList.splice(0, n);
if (this._usewaitcursor) {
this._hideWaitCursor(this.context);
}
application._removeCommContext(this.context);
application.on_fire_oncommunication(application, 1);
this._handle = null;
};
_pTransactionItem._loadFromData = function (data) {
var ret = this._deserializeData(data, 0);
var errorcode = 0;
var errormsg = "SUCCESS";
var bcache = this.bcache;
errorinfo = ret[0];
if (errorinfo) {
errorcode = errorinfo[0];
errormsg = errorinfo[1];
}
if (bcache) {
var d_cache = nexacro._DataCacheList[this.path];
if (!d_cache) {
nexacro._DataCacheList[this.path] = new nexacro._DataCache(parameters, datasets, last_modified, this.version);
}
else {
d_cache.parameters = parameters;
d_cache.datasets = datasets;
d_cache.last_modified = last_modified ? last_modified : "";
d_cache.version = this.version;
}
}
if (bcache) {
var d_cache = nexacro._DataCacheList[this.path];
if (!d_cache) {
nexacro._DataCacheList[this.path] = new nexacro._DataCache(parameters, datasets, last_modified, this.version);
}
else {
d_cache.parameters = parameters;
d_cache.datasets = datasets;
d_cache.last_modified = last_modified ? last_modified : "";
d_cache.version = this.version;
}
}
var callbackList = this.callbackList;
var n = callbackList.length;
if (n > 0) {
for (var i = 0; i < n; i++) {
var item = callbackList[i];
var target = item.target;
if (target._is_alive != false) {
item.callback.call(target, this.svcid, errorcode, errormsg);
}
}
callbackList.splice(0, n);
}
this._handle = null;
};
_pTransactionItem._showWaitCursor = function (context) {
if (context) {
context._waitCursor(true, context);
if (application._refcommuni && application._refcommuni >= 0) {
application._refcommuni++;
}
else {
application._refcommuni = 0;
}
}
};
_pTransactionItem._hideWaitCursor = function (context) {
if (context) {
context._waitCursor(false, context);
if (application._refcommuni > 0) {
application._refcommuni--;
}
}
};
_pTransactionItem._parseDSParam = function (paramStr) {
if (!paramStr) {
return undefined;
}
var list = [];
var expr = /([a-zA-Z가-힣_$][a-zA-Z가-힣0-9_$]*)\s*=\s*([a-zA-Z가-힣_$][a-zA-Z가-힣0-9_$]*(?:\:[aAuUnN])?)/g;
var splitedParams = paramStr.match(expr);
if (!splitedParams || splitedParams.length == 0) {
return undefined;
}
var splitedParamCnt = splitedParams.length;
var listLength = 0;
for (var i = 0; i < splitedParamCnt; i++) {
var param = splitedParams[i].split("=");
var key = param[0].trim();
var value = param[1].trim();
var bduplicate = false;
for (var j = 0; j < i; j++) {
var checkparam = splitedParams[j].split("=");
var checkkey = checkparam[0].trim();
if (key == checkkey) {
bduplicate = true;
}
}
if (bduplicate) {
i++;
return false;
}
var type = "N";
var index = value.indexOf(":");
if (index > -1) {
type = value.substring(index + 1);
value = value.substring(0, index);
}
var paramObj = {
lval : key,
rval : value,
saveType : type
};
list.push(paramObj);
}
return list;
};
_pTransactionItem._parseVarParam = function (paramStr) {
if (!paramStr) {
return;
}
paramStr = paramStr.replace(/^\s*|\s*$/g, '');
if (paramStr.length == 0) {
return undefined;
}
var list = [];
var expr = /([a-zA-Z_][a-zA-Z0-9_]*)\s*="([^"]*)"|([a-zA-Z_][a-zA-Z0-9_]*)\s*='([^']*)'|([a-zA-Z_][a-zA-Z0-9_]*)\s*=([^ ]*)/g;
var splitedParams = paramStr.match(expr);
var splitedParamCnt = splitedParams.length;
for (var i = 0; i < splitedParamCnt; i++) {
var param = splitedParams[i].split("=");
var len = param.length;
var key = param[0].trim();
var value = param[1].trim();
for (var j = 2; j < len; j++) {
value = value + "=" + param[j].trim();
}
var type = "N";
var len = value.length;
if (len > 0) {
value = nexacro.stripQuote(value);
}
var paramObj = {
lval : key,
rval : value,
saveType : type
};
list.push(paramObj);
}
return list;
};
_pTransactionItem._serializeData = function () {
if (this.datatype == 1) {
return this.__serializeBIN();
}
else if (this.datatype == 2) {
return this.__serializeSSV();
}
else {
return this.__serializeXML();
}
};
_pTransactionItem.__serializeXML = function () {
var depth = 0;
var list = [];
var cookievar = application._cookie_variables;
this._writeData(list, "", depth);
this._writeData(list, "", depth++);
var argParamsCnt = 0;
var cookievarCnt = 0;
var argParams = this.parameters;
if (argParams) {
argParamsCnt = argParams.length;
}
if (cookievar) {
cookievarCnt = cookievar.length;
}
if (argParamsCnt > 0 || cookievarCnt > 0) {
this._writeData(list, "", depth++);
if (cookievarCnt) {
for (var i = 0; i < cookievarCnt; i++) {
var id = cookievar[i];
var val = application[id];
if (val && val.length) {
val = nexacro._encodeXml(val);
this._writeData(list, "" + val + "", depth);
}
else {
this._writeData(list, "", depth);
}
}
}
if (argParamsCnt > 0) {
for (var i = 0; i < argParamsCnt; i++) {
var id = argParams[i].lval;
var val = argParams[i].rval;
if (val && val.length) {
val = nexacro._encodeXml(val);
this._writeData(list, "" + val + "", depth);
}
else {
this._writeData(list, "", depth);
}
}
}
this._writeData(list, "", --depth);
}
else {
this._writeData(list, "", depth);
}
var datasetParams = this.inputDatasets;
if (datasetParams && datasetParams.length) {
var datasetCnt = datasetParams.length;
for (i = 0; i < datasetCnt; i++) {
var id = datasetParams[i].rval;
var ds = this.context._getDatasetObject(id);
if (ds) {
list.push(ds._saveXML(datasetParams[i].lval, datasetParams[i].saveType, depth, false));
}
}
}
this._writeData(list, "", --depth);
var rntVal;
if (argParamsCnt == 0 && cookievarCnt == 0 && (!datasetParams || datasetParams.length == 0)) {
rntVal = "";
}
else {
rntVal = list.join("\n");
}
return rntVal;
};
_pTransactionItem.__serializeSSV = function () {
var _rs_ = String.fromCharCode(30);
var _cs_ = String.fromCharCode(31);
var depth = 0;
var list = [];
var cookievar = application._cookie_variables;
var id, val, ds;
var listLength = 0;
list.push("SSV:utf-8" + _rs_);
var argParamsCnt = 0;
var cookievarCnt = 0;
var argParams = this.parameters;
if (argParams) {
argParamsCnt = argParams.length;
}
if (cookievar) {
cookievarCnt = cookievar.length;
}
if (cookievarCnt > 0) {
for (i = 0; i < cookievarCnt; i++) {
id = cookievar[i];
val = application[id];
if (val && val.length) {
val = val;
list.push(id + "=" + val + _rs_);
}
else {
list.push(id + "=" + _rs_);
}
}
}
if (argParamsCnt > 0) {
for (i = 0; i < argParamsCnt; i++) {
id = argParams[i].lval;
val = argParams[i].rval;
if (val) {
val = val;
list.push(id + "=" + val + _rs_);
}
else {
list.push(id + "=" + _rs_);
}
}
}
var datasetParams = this.inputDatasets;
if (datasetParams && datasetParams.length) {
var datasetCnt = datasetParams.length;
for (var i = 0; i < datasetCnt; i++) {
var id = datasetParams[i].rval;
var ds = this.context._getDatasetObject(id);
if (ds) {
list.push(ds.saveSSV(datasetParams[i].lval, datasetParams[i].saveType));
}
}
}
var rtnVal = list.join("");
return rtnVal;
};
_pTransactionItem.__serializeBIN = function () {
var ssvdata = this.__serializeSSV();
if (ssvdata) {
return nexacro._convertStreamSSVToBIN(ssvdata);
}
return "";
};
_pTransactionItem._deserializeData = function (strRecvData, bPending) {
if (!strRecvData) {
return [-1, "Stream Data is null!"];
}
strRecvData = strRecvData.trim();
var fstr = strRecvData.substring(0, 3);
if (fstr == "SSV") {
return this.__deserializeSSV(strRecvData);
}
else if (fstr == "CSV") {
return this.__deserializeCSV(strRecvData);
}
else if (fstr == "PPX") {
return this.__deserializePPX(strRecvData);
}
else {
return this.__deserializeXML(strRecvData);
}
};
_pTransactionItem._setParamter = function (id, val) {
var form = this.context;
if (id in form) {
if (typeof (form[id]) != "object") {
form[id] = val;
}
}
else {
if (application._existVariable(id)) {
application[id] = val;
}
}
};
_pTransactionItem._getDataset = function (id) {
var form = this.context;
var outDatasets = this.outputDatasets;
if (outDatasets && outDatasets.length) {
var outDataCnt = outDatasets.length;
for (var i = 0; i < outDataCnt; i++) {
var param = outDatasets[i];
if (param.rval == id) {
return form._getDatasetObject(param.lval);
}
}
}
};
_pTransactionItem._hasFirstCountDs = function () {
if (!this.outputDatasets) {
return false;
}
var outDataCnt = this.outputDatasets.length;
var form = this.context;
for (var i = 0; i < outDataCnt; i++) {
var param = this.outputDatasets[i];
var ds = form._getDatasetObject(param.lval);
if (ds) {
if (ds.firefirstcount > 0) {
return true;
}
}
}
return false;
};
_pTransactionItem.__deserializeXML = function (strRecvData, doc) {
var parameters = [];
var datasets = new nexacro.Collection();
var code = 0;
var message = "SUCCESS";
if (strRecvData.length > 0 && !this._check_responseXML) {
var fstr = strRecvData.substr(0, 10).toLowerCase();
if (fstr.indexOf("= 0) {
strRecvData = nexacro._replaceAll(strRecvData, """, "\"");
}
if (strRecvData.indexOf("'") >= 0) {
strRecvData = nexacro._replaceAll(strRecvData, "'", "\'");
}
doc = nexacro._parseXMLDocument(strRecvData);
}
if (doc.parseError && doc.parseError.errorCode != 0) {
message = "invalid nexacro communication format";
code = -1;
}
if (code <= -1) {
return [[code, message], parameters, datasets];
}
var form = this.context;
var errorinfo = [code, message];
var ret = nexacro._getCommDataFromDom(doc, this);
if (ret) {
var variable = ret[0];
var len = variable.length;
for (var i = 0; i < len; i++) {
if (variable[i].id == "ErrorCode") {
errorinfo[0] = variable[i].val;
}
else if (variable[i].id == "ErrorMsg") {
errorinfo[1] = variable[i].val;
}
if (this.bcache) {
parameters[parameters.length] = new nexacro._ParametersCache(variable[i].id, variable[i].val);
}
}
if (this.bcache) {
var dataset_list = ret[1];
len = dataset_list.length;
for (var i = 0; i < len; i++) {
datasets.add_item(dataset_list[i].id, new nexacro._DataSetCache(dataset_list[i].id, dataset_list[i].colinfos, dataset_list[i]._constVars, dataset_list[i]._rawRecords));
}
}
}
doc = null;
if (errorinfo[0] && errorinfo[0] <= -1) {
return [errorinfo, parameters, datasets];
}
var inDatasets = this.inputDatasets;
if (inDatasets && inDatasets.length) {
var inDataCnt = inDatasets.length;
for (var i = 0; i < inDataCnt; i++) {
var param = inDatasets[i];
var ds = form._getDatasetObject(param.rval);
if (ds) {
ds.applyChange();
}
}
}
return [errorinfo, parameters, datasets];
};
_pTransactionItem.__deserializeXMLFromStr = function (strRecvData) {
var parameters = [];
var datasets = new nexacro.Collection();
var code = 0;
var message = "SUCCESS";
if (!strRecvData) {
return [-1, "Stream Data is null!"];
}
var form = this.context;
var xml_parse_pos = strRecvData.indexOf(" -1) {
headerData = strRecvData.substring(0, xml_parse_pos);
}
else {
headerData = strRecvData;
}
var head_parse_pos = 0;
var paramsInfo = nexacro._getXMLTagData(headerData, head_parse_pos, "", "");
if (paramsInfo) {
var paramsData = paramsInfo[0];
head_parse_pos = paramsInfo[3];
var param_parse_pos = 0;
var varInfo = nexacro._getXMLTagData2(paramsData, param_parse_pos, "");
while (varInfo) {
param_parse_pos = varInfo[3];
var attrStr = varInfo[1];
var id = nexacro._getXMLAttributeID(attrStr);
if (id && id.length) {
var val = varInfo[0];
if (id == "ErrorCode") {
code = parseInt(val) | 0;
if (isFinite(code) == false) {
code = -1;
}
val = code;
}
else if (id == "ErrorMsg") {
val = nexacro._decodeXml(val);
message = val;
}
else if (id in form) {
if (typeof (form[id]) != "object") {
val = nexacro._decodeXml(val);
form[id] = val;
}
}
else {
if (application._existVariable(id)) {
val = nexacro._decodeXml(val);
application[id] = val;
}
}
if (this.bcache) {
parameters[parameters.length] = new nexacro._ParametersCache(id, val);
}
}
varInfo = nexacro._getXMLTagData2(paramsData, param_parse_pos, "");
}
}
if (code <= -1) {
return [[code, message], parameters, datasets];
}
var inDatasets = this.inputDatasets;
if (inDatasets && inDatasets.length) {
var inDataCnt = inDatasets.length;
for (var i = 0; i < inDataCnt; i++) {
var param = inDatasets[i];
var ds = form._getDatasetObject(param.rval);
if (ds) {
ds.applyChange();
}
}
}
var dsIds = {
};
var outDatasets = this.outputDatasets;
if (outDatasets && outDatasets.length) {
var outDataCnt = outDatasets.length;
for (var i = 0; i < outDataCnt; i++) {
var param = outDatasets[i];
if (dsIds[param.rval] == undefined) {
dsIds[param.rval] = param.lval;
}
}
}
if (xml_parse_pos >= -1) {
var datasetInfo = nexacro._getXMLTagData2(strRecvData, xml_parse_pos, "");
while (datasetInfo) {
xml_parse_pos = datasetInfo[3];
var attrStr = datasetInfo[1];
var remoteId = nexacro._getXMLAttributeID(attrStr);
if (remoteId && remoteId.length) {
var localId = dsIds[remoteId];
var ds = form._getDatasetObject(localId);
if (ds) {
ds.rowposition = -1;
ds.loadFromXMLStr(datasetInfo[0]);
if (this.bcache) {
datasets[localId] = new nexacro._DataSetCache(localId, ds.colinfos, ds._constVars, ds._rawRecords);
}
}
}
datasetInfo = nexacro._getXMLTagData2(strRecvData, xml_parse_pos, "");
}
}
dsIds = null;
return [[code, message], parameters, datasets];
};
nexacro._getCommDataFromDom = function (doc, target) {
var variablelist = [];
var paramElems = doc.getElementsByTagName("Parameter");
var code = 0;
if (paramElems && paramElems.length) {
var varCnt = paramElems.length;
for (var i = 0; i < varCnt; i++) {
var paramElem = paramElems[i];
var id = paramElem.getAttribute("id");
if (id && id.length) {
var val = (paramElem.textContent || (paramElem.firstChild ? paramElem.firstChild.nodeValue : ""));
if (id == "ErrorCode") {
code = parseInt(val) | 0;
if (isFinite(code) == false) {
code = -1;
}
variablelist.push({
id : id,
val : code
});
}
else if (id == "ErrorMsg") {
variablelist.push({
id : id,
val : val
});
}
else {
target._setParamter(id, val);
}
}
}
}
if (code <= -1) {
return [variablelist, null];
}
var datasetlist = [];
var datasets = doc.getElementsByTagName("Dataset");
if (datasets && datasets.length) {
var dataCnt = datasets.length;
for (var i = 0; i < dataCnt; i++) {
var remoteId = datasets[i].getAttribute("id");
if (remoteId && remoteId.length) {
var ds = target._getDataset(remoteId);
if (!ds) {
ds = new nexacro.Dataset(remoteId);
}
if (ds) {
ds.rowposition = -1;
ds.loadFromDOM(datasets[i]);
datasetlist.push(ds);
}
}
}
}
return [variablelist, datasetlist];
};
_pTransactionItem.__deserializePPX = function (strRecvData) {
var parameters = [];
var datasets = new nexacro.Collection();
var _rs_ = String.fromCharCode(30);
var _cs_ = String.fromCharCode(31);
var code = 0;
var message = "SUCCESS";
if (!strRecvData) {
return [-1, "Stream Data is null!"];
}
var form = this.context;
var ppxLines = strRecvData.split(_rs_);
var lineCnt = ppxLines.length;
curIdx = 1;
var curStr;
var curType;
for (; curIdx < lineCnt; curIdx++) {
curStr = ppxLines[curIdx];
curType = curStr.charAt(0);
if (curType == "P") {
var paramArr = curStr.split(_cs_);
var id = paramArr[1];
var val = paramArr[2];
if (val == String.fromCharCode(3)) {
val = undefined;
}
if (id == "ErrorCode") {
code = parseInt(val) | 0;
if (isFinite(code) == false) {
code = -1;
}
val = code;
}
else if (id == "ErrorMsg") {
message = paramArr[2];
}
else if (id in form) {
if (typeof (form[id]) != "object") {
form[id] = val;
}
}
else {
if (application._existVariable(id)) {
application[id] = val;
}
}
if (this.bcache) {
parameters[parameters.length] = new nexacro._ParametersCache(id, val);
}
}
else {
break;
}
}
if (code <= -1) {
ppxLines = null;
strRecvData = null;
return [[code, message], parameters, datasets];
}
var inDatasets = this.inputDatasets;
if (inDatasets && inDatasets.length) {
var inDataCnt = inDatasets.length;
for (var i = 0; i < inDataCnt; i++) {
var param = inDatasets[i];
var ds = form._getDatasetObject(param.rval);
if (ds) {
ds.applyChange();
}
}
}
inDatasets = null;
var dsIds = {
};
var outDatasets = this.outputDatasets;
if (outDatasets && outDatasets.length) {
var outDataCnt = outDatasets.length;
for (var i = 0; i < outDataCnt; i++) {
var param = outDatasets[i];
if (dsIds[param.rval] == undefined) {
dsIds[param.rval] = param.lval;
}
}
}
outDatasets = null;
function find_next_dataset_loop () {
if (curIdx < lineCnt) {
curStr = ppxLines[curIdx];
if (curStr.charAt(0) == "D") {
return true;
}
curIdx++;
return false;
}
return true;
}
while (curIdx < lineCnt) {
while (true) {
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
}
if (curIdx < lineCnt) {
var valArr = curStr.split(_cs_);
var remoteId = valArr[1];
if (remoteId && remoteId.length) {
var localId = dsIds[remoteId];
var ds = form._getDatasetObject(localId);
if (ds) {
ds.rowposition = -1;
curIdx = ds.loadFromPPXArray(ppxLines, lineCnt, curIdx, true);
if (this.bcache) {
datasets.add_item(localId, new nexacro._DataSetCache(localId, ds.colinfos, ds._constVars, ds._rawRecords));
}
}
else {
curIdx++;
}
ds = null;
}
else {
curIdx++;
}
}
}
ppxLines = null;
strRecvData = null;
return [[code, message], parameters, datasets];
};
_pTransactionItem.__deserializeSSV = function (strRecvData) {
var parameters = [];
var datasets = new nexacro.Collection();
;
var _rs_ = String.fromCharCode(30);
var _cs_ = String.fromCharCode(31);
var code = 0;
var message = "SUCCESS";
if (!strRecvData) {
return [-1, "Stream Data is null!"];
}
var form = this.context;
var ssvLines = strRecvData.split(_rs_);
var lineCnt = ssvLines.length;
var curIdx = 0;
curIdx++;
var curStr;
for (; curIdx < lineCnt; curIdx++) {
curStr = ssvLines[curIdx];
if (curStr.substring(0, 7) != "Dataset") {
var paramArr = curStr.split(_cs_);
var paramCnt = paramArr.length;
for (var i = 0; i < paramCnt; i++) {
var paramStr = paramArr[i];
var varInfo = paramStr;
var val = undefined;
var sep_pos = paramStr.indexOf("=");
if (sep_pos >= 0) {
varInfo = paramStr.substring(0, sep_pos);
val = paramStr.substring(sep_pos + 1);
if (val == String.fromCharCode(3)) {
val = undefined;
}
}
if (varInfo) {
var id = varInfo;
var sep_pos = varInfo.indexOf(":");
if (sep_pos >= 0) {
id = varInfo.substring(0, sep_pos);
}
if (id == "ErrorCode") {
code = parseInt(val) | 0;
if (isFinite(code) == false) {
code = -1;
}
val = code;
}
else if (id == "ErrorMsg") {
message = val;
}
else if (id in form) {
if (typeof (form[id]) != "object") {
form[id] = val;
}
}
else {
if (application._existVariable(id)) {
application[id] = val;
}
}
if (this.bcache) {
parameters[parameters.length] = new nexacro._ParametersCache(id, val);
}
}
}
}
else {
break;
}
}
if (code <= -1) {
return [[code, message], parameters, datasets];
}
var inDatasets = this.inputDatasets;
if (inDatasets && inDatasets.length) {
var inDataCnt = inDatasets.length;
for (var i = 0; i < inDataCnt; i++) {
var param = inDatasets[i];
var ds = form._getDatasetObject(param.rval);
if (ds) {
ds.applyChange();
}
}
}
var dsIds = {
};
var outDatasets = this.outputDatasets;
if (outDatasets && outDatasets.length) {
var outDataCnt = outDatasets.length;
for (var i = 0; i < outDataCnt; i++) {
var param = outDatasets[i];
if (dsIds[param.rval] == undefined) {
dsIds[param.rval] = param.lval;
}
}
}
function find_next_dataset_loop () {
if (curIdx < lineCnt) {
curStr = ssvLines[curIdx];
if (curStr.substring(0, 7) == "Dataset") {
return true;
}
curIdx++;
return false;
}
return true;
}
while (curIdx < lineCnt) {
while (true) {
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
}
if (curIdx < lineCnt) {
var sep_pos = curStr.indexOf(":");
if (sep_pos >= 0) {
var remoteId = curStr.substring(sep_pos + 1);
if (remoteId && remoteId.length) {
var localId = dsIds[remoteId];
var ds = form._getDatasetObject(localId);
if (ds) {
ds.rowposition = -1;
curIdx = ds.loadFromSSVArray(ssvLines, lineCnt, curIdx, true);
if (this.bcache) {
datasets.add_item(localId, new nexacro._DataSetCache(localId, ds.colinfos, ds._constVars, ds._rawRecords));
}
}
else {
curIdx++;
}
}
else {
curIdx++;
}
}
else {
curIdx++;
}
}
}
dsIds = null;
return [[code, message], parameters, datasets];
};
_pTransactionItem.__deserializeCSV = function (strRecvData) {
var parameters = [];
var datasets = new nexacro.Collection();
var code = 0;
var message = "SUCCESS";
if (!strRecvData) {
return [-1, "Stream Data is null!"];
}
var form = this.context;
var csvLines = strRecvData.split(/\r\n|\n/);
var lineCnt = csvLines.length;
var curIdx = 0;
curIdx++;
var varInfoArr, varInfo, id, val, pIdx;
var curStr;
for (; curIdx < lineCnt; curIdx++) {
curStr = csvLines[curIdx];
if (curStr.substring(0, 7) != "Dataset") {
var paramArr = curStr.split(",");
var paramCnt = paramArr.length;
for (var i = 0; i < paramCnt; i++) {
var paramStr = paramArr[i];
if (paramStr.charAt(0) == "\"" || paramStr.charAt(0) == "\'") {
paramStr = paramStr.substring(1, paramStr.length - 1);
}
var varInfo = paramStr;
var val = undefined;
var sep_pos = paramStr.indexOf("=");
if (sep_pos >= 0) {
varInfo = paramStr.substring(0, sep_pos);
val = paramStr.substring(sep_pos + 1);
}
if (varInfo) {
var id = varInfo;
var sep_pos = varInfo.indexOf(":");
if (sep_pos >= 0) {
id = varInfo.substring(0, sep_pos);
}
if (id == "ErrorCode") {
code = parseInt(val) | 0;
if (isFinite(code) == false) {
code = -1;
}
val = code;
}
else if (id == "ErrorMsg") {
message = val;
}
else if (id in form) {
if (typeof (form[id]) != "object") {
form[id] = val;
}
}
else {
if (application._existVariable(id)) {
application[id] = val;
}
}
if (this.bcache) {
parameters[parameters.length] = new nexacro._ParametersCache(id, val);
}
}
}
}
else {
break;
}
}
if (code <= -1) {
return [[code, message], parameters, datasets];
}
var inDatasets = this.inputDatasets;
if (inDatasets && inDatasets.length) {
var inDataCnt = inDatasets.length;
for (var i = 0; i < inDataCnt; i++) {
var param = inDatasets[i];
var ds = form._getDatasetObject(param.rval);
if (ds) {
ds.applyChange();
}
}
}
var dsIds = {
};
var outDatasets = this.outputDatasets;
if (outDatasets && outDatasets.length) {
var outDataCnt = outDatasets.length;
for (var i = 0; i < outDataCnt; i++) {
var param = outDatasets[i];
if (dsIds[param.rval] == undefined) {
dsIds[param.rval] = param.lval;
}
}
}
function find_next_dataset_loop () {
if (curIdx < lineCnt) {
curStr = csvLines[curIdx];
if (curStr.substring(0, 7) == "Dataset") {
return true;
}
curIdx++;
return false;
}
return true;
}
while (curIdx < lineCnt) {
while (true) {
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
if (find_next_dataset_loop()) {
break;
}
}
if (curIdx < lineCnt) {
var sep_pos = curStr.indexOf(":");
if (sep_pos >= 0) {
var remoteId = curStr.substring(sep_pos + 1);
if (remoteId && remoteId.length) {
var localId = dsIds[remoteId];
var ds = form._getDatasetObject(localId);
if (ds) {
ds.rowposition = -1;
curIdx = ds.loadFromCSVArray(csvLines, lineCnt, curIdx, true);
if (this.bcache) {
datasets.add_item(localId, new nexacro._DataSetCache(localId, ds.colinfos, ds._constVars, ds._rawRecords));
}
}
else {
curIdx++;
}
}
else {
curIdx++;
}
}
else {
curIdx++;
}
}
}
return [[code, message], parameters, datasets];
};
_pTransactionItem._TABS = ["", "\t", "\t\t", "\t\t\t", "\t\t\t\t", "\t\t\t\t\t", "\t\t\t\t\t\t"];
_pTransactionItem._writeData = function (list, str, depth) {
list[list.length] = this._TABS[depth] + str;
};
_pTransactionItem._dsUpdate = function (ds) {
if (ds) {
var dsCnt;
var viewRecords = ds._viewRecords;
var viewRecLength = viewRecords.length;
if (ds._deletedRecords.length > 0) {
viewRecords = ds._viewRecords = [];
var len = ds._rawRecords.length;
for (dsCnt = 0; dsCnt < len; dsCnt++) {
var _currowData = ds._rawRecords[dsCnt];
if (_currowData._rtype != 8) {
viewRecords[viewRecLength] = _currowData;
}
}
}
ds.colcount = ds.colinfos.length;
ds.rowcount = ds._viewRecords.length;
ds.loadstatus = false;
ds._eventstat = ds.enableevent;
ds._reFilter();
ds._resetSortGroup();
}
};
_pTransactionItem._dsOnload = function (ds, reason) {
if (ds) {
if (ds._viewRecords.length > 0) {
ds.rowposition = 0;
}
if (ds._eventstat) {
if (reason) {
ds.on_fire_onload(0, "", reason);
}
else {
ds.on_fire_onload(0, "", 0);
}
}
}
};
_pTransactionItem._getStreamType = function (strRecvData) {
if (!strRecvData) {
return null;
}
var data = nexacro.trimLeft(strRecvData);
var type = data.slice(0, 10).toUpperCase();
if (type.indexOf("CSV") == 0) {
return "CSV";
}
else if (type.indexOf("SSV") == 0) {
return "SSV";
}
else if (type.indexOf("PPX") == 0) {
return "PPX";
}
else if (type.indexOf("