//锁定日历的天数
ArrayList<String> dates= new ArrayList<String>();
dates=getHisstaInfor(connection,context);
KeyedCollection datesKColl=new KeyedCollection();
String newDates[]=(String[])dates.toArray(new String[dates.size()]);
StringBuffer sb=new StringBuffer();
for(String str:newDates){
sb.append(str);
}
datesKColl.addDataField("hisstadates", sb.toString() );
System.out.println( newDates.toString());
datesKColl.setName("hisstaKcoll");
this.putDataElement2Context(datesKColl, context);
/**
*取得锁定日历盘的日期数组
*
* @return ArrayList<String>
* @throws ParseException
* @throws EMP Exception
*/
private ArrayList<String> getHisstaInfor(Connection connection,Context context)throws EMPException, ParseException {
TableModelDAO dao = this.getTableModelDAO(context);
ArrayList<String> strdates= new ArrayList<String>();
String conditionStr = "where state in('1','2') order by mainid asc";
List list1 = new ArrayList();
list1.add("mainid");
list1.add("attendstartd");
list1.add("attendendd");
list1.add("state");
IndexedCollection iColl = dao.queryList("YcomsAttendDateHissta", list1, conditionStr, connection);
if(iColl!=null&&iColl.size()>0){
for(int i=0;i<iColl.size();i++){
KeyedCollection kcoll=(KeyedCollection) iColl.get(i);
String startdate=String.valueOf(kcoll.getDataValue("attendstartd"));
String enddate=String.valueOf(kcoll.getDataValue("attendendd"));
Calendar startCalendar = DateUtil.converStrToCalendar(startdate);
Calendar endCalendar = DateUtil.converStrToCalendar(enddate);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
strdates.add("[");
strdates.add('"'+startdate+'"');
while(true){
startCalendar.add(Calendar.DAY_OF_MONTH, 1);
if((startCalendar.getTimeInMillis()) < (endCalendar.getTimeInMillis())){
strdates.add('"'+sdf.format(startCalendar.getTime())+'"');
}else{
break;
}
}
strdates.add('"'+enddate+'"');
strdates.add("]");
}
}
return strdates;
}