Initial commit
This commit is contained in:
349
crystalreportviewers13/js/dt_param.js
Normal file
349
crystalreportviewers13/js/dt_param.js
Normal file
@@ -0,0 +1,349 @@
|
||||
|
||||
// TDC is to get DateTime format info for current locale
|
||||
function TDC() {
|
||||
var d=new Date(1970,0,0,0,0,0,0),d2=new Date(d),s1,s2,api=-1;
|
||||
d.setHours(10); d2.setHours(11);
|
||||
s1=d.toLocaleString(); s2=d2.toLocaleString();
|
||||
this.displayHour=(s1!=s2);
|
||||
d.setHours(0); d2.setHours(0);
|
||||
d.setMinutes(10); d2.setMinutes(11);
|
||||
this.displayMinute=(d.toLocaleString()!=d2.toLocaleString());
|
||||
d.setMinutes(0); d2.setMinutes(0);
|
||||
d.setSeconds(10); d2.setSeconds(11);
|
||||
this.displaySecond=(d.toLocaleString()!=d2.toLocaleString());
|
||||
d.setSeconds(0); d2.setSeconds(0);
|
||||
if (this.displayHour) {
|
||||
for (i=0; i<((s1.length<s2.length)?s1.length:s2.length); i++) {
|
||||
if (s1.charAt(i)!=s2.charAt(i)) {
|
||||
api=i-1; break;
|
||||
}
|
||||
}
|
||||
d.setHours(11); d2.setHours(23);
|
||||
s1=d.toLocaleString(); s2=d2.toLocaleString();
|
||||
this.twelveHourClock=(s1.substring(api,api+2)==s2.substring(api,api+2));
|
||||
this.displayAMPM=(s1!=s2);
|
||||
d.setHours(0); d2.setHours(0);
|
||||
d.setHours(9); d2.setHours(11);
|
||||
this.hourLeadZero=(d.toLocaleString().length==d2.toLocaleString().length);
|
||||
d.setHours(0); d2.setHours(0);
|
||||
} else {
|
||||
this.twelveHourClock=false;
|
||||
this.displayAMPM=false;
|
||||
this.hourLeadZero=false;
|
||||
}
|
||||
if (this.displayMinute) {
|
||||
d.setMinutes(9); d2.setMinutes(11);
|
||||
this.minuteLeadZero=(d.toLocaleString().length==d2.toLocaleString().length);
|
||||
d.setMinutes(0); d2.setMinutes(0);
|
||||
} else
|
||||
this.minuteLeadZero=false;
|
||||
if (this.displaySecond) {
|
||||
d.setSeconds(9); d2.setSeconds(11);
|
||||
this.secondLeadZero=(d.toLocaleString().length==d2.toLocaleString().length);
|
||||
d.setSeconds(0); d2.setSeconds(0);
|
||||
} else
|
||||
this.secondLeadZero=false;
|
||||
}
|
||||
|
||||
var TD = new TDC();
|
||||
|
||||
// create time editables, hour dropdown, minute dropdown, second dropdown, and am/pm dropdown
|
||||
function CreateTimeEditables(paramName, postFix, enabled, cssClass, style, hour, minute, second)
|
||||
{
|
||||
var properties = "";
|
||||
if (!enabled)
|
||||
{
|
||||
properties += " disabled='disabled' ";
|
||||
}
|
||||
|
||||
if (cssClass.length != 0)
|
||||
{
|
||||
properties += " class='";
|
||||
properties += cssClass;
|
||||
properties += "' ";
|
||||
}
|
||||
|
||||
if (style.length != 0)
|
||||
{
|
||||
properties += " style='";
|
||||
properties += style;
|
||||
properties += "' ";
|
||||
}
|
||||
|
||||
var time_sep_span = "";
|
||||
time_sep_span += "<span ";
|
||||
time_sep_span += properties;
|
||||
time_sep_span += ">";
|
||||
time_sep_span += L_TIME_SEPARATOR;
|
||||
time_sep_span += "</span>";
|
||||
|
||||
// There is no way to set the width of select boxes except by manipulating the text tags associated with <option>s.
|
||||
// You can add a margin by beginning and ending your option's text with a .
|
||||
var editablesHtml = "";
|
||||
if (TD.displayHour)
|
||||
{
|
||||
editablesHtml += "<SELECT ";
|
||||
editablesHtml += properties;
|
||||
editablesHtml += " name='";
|
||||
editablesHtml += paramName;
|
||||
editablesHtml += postFix;
|
||||
editablesHtml += "Hour'>";
|
||||
|
||||
var minHour;
|
||||
var maxHour;
|
||||
if (TD.twelveHourClock)
|
||||
{
|
||||
minHour = 1;
|
||||
maxHour = 12;
|
||||
}
|
||||
else
|
||||
{
|
||||
minHour = 0;
|
||||
maxHour = 23;
|
||||
}
|
||||
|
||||
for (i = minHour; i <= maxHour ; i++){
|
||||
editablesHtml += " <option value='";
|
||||
editablesHtml += i;
|
||||
editablesHtml += "'";
|
||||
|
||||
if (!TD.twelveHourClock)
|
||||
{
|
||||
if (i == hour)
|
||||
editablesHtml += " selected ";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (( hour == 0) && (i == 12))
|
||||
editablesHtml += " selected ";
|
||||
else if ((hour == 12) && (i == 12))
|
||||
editablesHtml += " selected ";
|
||||
else if ((hour > 12) && (i == hour - 12))
|
||||
editablesHtml += " selected ";
|
||||
else if (i == hour)
|
||||
editablesHtml += " selected ";
|
||||
}
|
||||
|
||||
if ((i < 10) && (TD.hourLeadZero))
|
||||
{
|
||||
editablesHtml += "> 0";
|
||||
}
|
||||
else
|
||||
{
|
||||
editablesHtml += "> ";
|
||||
|
||||
}
|
||||
editablesHtml += i;
|
||||
editablesHtml += " ";
|
||||
editablesHtml += "</option>\n";
|
||||
}
|
||||
|
||||
editablesHtml += " </SELECT>";
|
||||
}
|
||||
|
||||
if (TD.displayMinute)
|
||||
{
|
||||
if (editablesHtml.length != 0)
|
||||
{
|
||||
editablesHtml += time_sep_span;
|
||||
}
|
||||
|
||||
editablesHtml += "<SELECT ";
|
||||
editablesHtml += properties;
|
||||
editablesHtml += " name='";
|
||||
editablesHtml += paramName;
|
||||
editablesHtml += postFix;
|
||||
editablesHtml += "Minute'>";
|
||||
|
||||
|
||||
for (i = 0; i <= 59; i++){
|
||||
editablesHtml += " <option value='";
|
||||
editablesHtml += i;
|
||||
editablesHtml += "'";
|
||||
|
||||
if (i == minute)
|
||||
editablesHtml += " selected ";
|
||||
if ((i < 10) && (TD.minuteLeadZero))
|
||||
{
|
||||
|
||||
editablesHtml += "> 0";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
editablesHtml += "> ";
|
||||
}
|
||||
editablesHtml += i;
|
||||
editablesHtml += " ";
|
||||
editablesHtml += "</option>\n";
|
||||
}
|
||||
|
||||
editablesHtml += " </SELECT>";
|
||||
}
|
||||
|
||||
if (TD.displaySecond)
|
||||
{
|
||||
if (editablesHtml.length != 0)
|
||||
editablesHtml += time_sep_span;
|
||||
|
||||
editablesHtml += "<SELECT ";
|
||||
editablesHtml += properties;
|
||||
editablesHtml += " name='";
|
||||
editablesHtml += paramName;
|
||||
editablesHtml += postFix;
|
||||
editablesHtml += "Second'>";
|
||||
|
||||
|
||||
for (i = 0; i <= 59; i++){
|
||||
editablesHtml += " <option value='";
|
||||
editablesHtml += i;
|
||||
editablesHtml += "'";
|
||||
|
||||
if (i == second)
|
||||
editablesHtml += " selected ";
|
||||
|
||||
if ((i < 10) && (TD.secondLeadZero))
|
||||
editablesHtml += "> 0";
|
||||
else
|
||||
editablesHtml += "> ";;
|
||||
editablesHtml += i;
|
||||
editablesHtml += " ";
|
||||
editablesHtml += "</option>\n";
|
||||
}
|
||||
|
||||
editablesHtml += " </SELECT>";
|
||||
}
|
||||
|
||||
if (TD.twelveHourClock)
|
||||
{
|
||||
editablesHtml += "<SELECT ";
|
||||
editablesHtml += properties;
|
||||
editablesHtml += " name='";
|
||||
editablesHtml += paramName;
|
||||
editablesHtml += postFix;
|
||||
editablesHtml += "AMPM' >";
|
||||
editablesHtml += " <option value='0'";
|
||||
if (hour < 12)
|
||||
editablesHtml += " selected ";
|
||||
editablesHtml += "> ";
|
||||
editablesHtml += L_AM_DESIGNATOR;
|
||||
editablesHtml += "</option>\n";
|
||||
editablesHtml += " <option value='1'";
|
||||
if (hour >= 12)
|
||||
editablesHtml += " selected ";
|
||||
editablesHtml += "> ";
|
||||
editablesHtml += L_PM_DESIGNATOR;
|
||||
editablesHtml += "</option>\n";
|
||||
editablesHtml += " </SELECT>";
|
||||
}
|
||||
|
||||
return editablesHtml;
|
||||
}
|
||||
|
||||
// get Locale Date/Time
|
||||
// d: input Date
|
||||
// return only Date part if includeDate==true, and includeTime== false
|
||||
// return only Time part if includeDate==false and includeTime== true
|
||||
// return datetime string if includeDate==true and includeTime == true
|
||||
function GLDT(d, includeDate, includeTime) { // Get Locale Date/Time
|
||||
// Returns date/and or time from locale string.
|
||||
// Assumes that date appears before time in string.
|
||||
if (includeDate && includeTime) return d.toLocaleString();
|
||||
|
||||
var d2 = new Date(d);
|
||||
var ds;
|
||||
var ds2;
|
||||
var ml;
|
||||
d2.setMilliseconds(d.getMilliseconds()<=887 ? d.getMilliseconds()+111 : d.getMilliseconds() - 111);
|
||||
d2.setSeconds(d.getSeconds()<=49 ? d.getSeconds()+11 : d.getSeconds()-11);
|
||||
d2.setMinutes(d.getMinutes()<=49 ? d.getMinutes()+11 : d.getMinutes()-11);
|
||||
|
||||
// although TD.twelveHourClock could be true, but d.getHours will always get hours in 24
|
||||
// only the localized the date string will be in twelve hour clock
|
||||
// here we want d2's hour's first digit different from d1's hour's first digit
|
||||
// also if d1 is morning, d2 will be in afternoon, vice versa thus we get different strings for AM, and PM
|
||||
// because AM/PM could be before hours (eg. in Korean)
|
||||
if (TD.twelveHourClock)
|
||||
{
|
||||
var hour = d.getHours();
|
||||
if (hour == 0 || hour == 1 || hour == 10 || hour == 11)
|
||||
{
|
||||
d2.setHours(14);
|
||||
}
|
||||
else if (hour == 12 || hour == 13 || hour == 22 || hour == 23)
|
||||
{
|
||||
d2.setHours(2);
|
||||
}
|
||||
else if (hour < 12)
|
||||
{
|
||||
d2.setHours(13);
|
||||
}
|
||||
else
|
||||
{
|
||||
d2.setHours(1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
d2.setHours( d.getHours()<12 ? (d.getHours() == 1 ? 2 : d.getHours() + 12) : (d.getHours()<20 ? 20 : 11));
|
||||
}
|
||||
|
||||
ds = d.toLocaleString();
|
||||
|
||||
ds2 = d2.toLocaleString();
|
||||
|
||||
ml = ds.length < ds2.length ? ds.length : ds2.length ;
|
||||
for (i=0; i<ml; i++) {
|
||||
if (ds.charAt(i) != ds2.charAt(i))
|
||||
{
|
||||
// put the iterator back to the beginning of the word
|
||||
while (ds.charAt(i) != ' ') i--;
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (includeDate)
|
||||
return ds.substring(0, i-1);
|
||||
else if (includeTime)
|
||||
return ds.substring(i);
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
// construct localized datetime/date/time string
|
||||
// from DateTime(year, month, day, hour, minute, second)
|
||||
// or Date(year, month, day)
|
||||
// or Time(hour, minute, second)
|
||||
function NeutralDT2D(s) {
|
||||
var d="";
|
||||
var td = new Date();
|
||||
var a;
|
||||
if (s.indexOf("DateTime")!=-1) {
|
||||
a = s.replace("DateTime","").replace("(","").replace(")","").split(",") ;
|
||||
d = GLDT(new Date(a[0], a[1]-1, a[2], a[3], a[4], a[5], 0), true, true);
|
||||
} else if (s.indexOf("Date")!=-1) {
|
||||
a = s.replace("Date","").replace("(","").replace(")","").split(",") ;
|
||||
d = GLDT(new Date(a[0], a[1]-1, a[2], 0, 0, 0, 0), true, false);
|
||||
} else if (s.indexOf("Time")!=-1) {
|
||||
a = s.replace("Time","").replace("(","").replace(")","").split(",");
|
||||
d = GLDT(new Date(td.getYear(), td.getMonth(), td.getDate(), a[0], a[1], a[2]), false, true);
|
||||
}
|
||||
return d;
|
||||
}
|
||||
|
||||
function NeutralDT2Date(s){
|
||||
var d="";
|
||||
var td = new Date();
|
||||
var a;
|
||||
if (s.indexOf("DateTime")!=-1) {
|
||||
a = s.replace("DateTime","").replace("(","").replace(")","").split(",") ;
|
||||
return new Date(a[0], a[1]-1, a[2], a[3], a[4], a[5], 0);
|
||||
} else if (s.indexOf("Date")!=-1) {
|
||||
a = s.replace("Date","").replace("(","").replace(")","").split(",") ;
|
||||
return new Date(a[0], a[1]-1, a[2], 0, 0, 0, 0);
|
||||
} else if (s.indexOf("Time")!=-1) {
|
||||
a = s.replace("Time","").replace("(","").replace(")","").split(",");
|
||||
return new Date(td.getYear(), td.getMonth(), td.getDate(), a[0], a[1], a[2]);
|
||||
}
|
||||
return d;
|
||||
}
|
||||
Reference in New Issue
Block a user