Bom dia, estou precisando de ajuda para preencher os meses entre datas.
Busco o período que tem datas para cada usuário e distribuo nos meses de cada ano nos meses correspondentes a cada data conforme figura Exemplo 1.
O meu problema é o seguinte, preciso preencher os meses entre cada data com o mês anterior ao da nova data como mostra na figura Exemplo2 mas não estou conseguindo.
Alguém pode me ajudar?
Segue abaixo meu script:
TipoProjetoDto tipoProjetoDto = new TipoProjetoDto();
TiposProjetosDao tipo_proj = new TiposProjetosDao();
List<TipoProjetoDto> listaTipoProjetos = null;
FabCompDto fabCompDto = new FabCompDto();
FabCompDao fab_comp = new FabCompDao();
List<FabCompDto> listaFabComp = null;
NegocioDto negocioDto = new NegocioDto();
NegociosDao negocio = new NegociosDao();
List<NegocioDto> listaNegocio = null;
CategoriaDto categoriaDto = new CategoriaDto();
CategoriasDao categoria = new CategoriasDao();
List<CategoriaDto> listaCategoria = (List<CategoriaDto>) categoria.find(null,"1",100);
ProjetoDto ProjetoDto = new ProjetoDto();
ProjetosDao proj = new ProjetosDao();
List<ProjetoDto> listaProjeto = null;
SimuladorProjetoDao simuladorDao = new SimuladorProjetoDao();
ArrayList<String> anos = (ArrayList<String>) simuladorDao.verifica_anos();
ArrayList<Date> datas = null;
ArrayList<String[]> datateste = new ArrayList<String[]>();
Integer[] meses = {1,2,3,4,5,6,7,8,9,10,11,12} ;
%>
<div id="nova_pauta" style="width:100%;">
<table border="0" align="center" class="tablesorter list proj_list">
<thead>
<tr>
<th rowspan="2">Nome</th>
<%
int cols = 0;
for (String ano : anos){
cols = 12;
List<SimuladorProjetoDto> colunas = (List<SimuladorProjetoDto>) simuladorDao.conta_datas("YEAR(dt_tollgate)='"+ano+"'");
datas = (ArrayList<Date>) simuladorDao.verifica_datas("YEAR(dt_tollgate)='"+ano+"'");
for(Date data: datas){
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(data);
Integer m = cal.get(Calendar.MONTH);
m = m + 1;
String[] temp0 = {String.valueOf(m)};
datateste1.add(temp0);
}
%>
<th colspan="<%=cols%>"><%=ano%></th>
<%}%>
</tr>
<tr>
<%
String mes = "";
for (String ano : anos){
for (Integer mesInt: meses){
if (mesInt == 1){
mes = "Jan";
}
if (mesInt == 2){
mes = "Fev";
}
if (mesInt == 3){
mes = "Mar";
}
if (mesInt == 4){
mes = "Abr";
}
if (mesInt == 5){
mes = "Mai";
}
if (mesInt == 6){
mes = "Jun";
}
if (mesInt == 7){
mes = "Jul";
}
if (mesInt == 8){
mes = "Ago";
}
if (mesInt == 9){
mes = "Set";
}
if (mesInt == 10){
mes = "Out";
}
if (mesInt == 11){
mes = "Nov";
}
if (mesInt == 12){
mes = "Dez";
}
%>
<th><%=mes%></th>
<%}} %>
</tr>
</thead>
<tbody>
<%
List<SimuladorProjetoDto> listaProjTollgatePrazo = (List<SimuladorProjetoDto>) request.getAttribute("listaProjTollgatePrazo");
List<SimuladorProjetoDto> listaProjTollgate = (List<SimuladorProjetoDto>) request.getAttribute("listaProjTollgate");
for (SimuladorProjetoDto base : listaProjTollgatePrazo){
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(base.getDt_tollgate());
Integer m = cal.get(Calendar.MONTH);
m = m + 1;
Integer y = cal.get(Calendar.YEAR);
String[] temp = {base.getRef_cod_projeto().toString(), m.toString(), y.toString(), base.getDt_tollgate().toString()};
datateste.add(temp);
}
for (SimuladorProjetoDto base : listaProjTollgate){
%>
<tr>
<td style="text-align: center;">
<%listaProjeto = (List<ProjetoDto>) proj.find("cod_projeto="+base.getRef_cod_projeto()+"","1",100);%>
<%if (!listaProjeto.isEmpty()){%><%=listaProjeto.iterator().next().getNm_projeto()%><%}%>
</td>
<%
for (String ano : anos){
for(Integer dt: meses){
String n = "";
String f = "";
for(String[] atual: datateste){
if(base.getRef_cod_projeto().toString().equals(atual[0]) && dt.toString().equals(atual[1]) && ano.equals(atual[2])){
n=atual[1];
}
}
out.println("<td align='center'>" + n + "</td>");
}
}
} %>
</tr>
</tbody>
</table>
<br class="clear" />
</div>
Desde já agradeço
Marcos