Melhorias no Grafico de Gantt Dia a Dia

Gráfico de Gantt

Melhorias:

  1. Acrescentasse na quebra o dia ficando assim -> ANO -> MÊS -> DIA
  2. Ter a opção de alterar o TITULO DO GRAFICO.
  3. Conseguir alterar a ordem de exibição conforme a consulta PAI.
  4. Ter a opção nativa de iniciar a aplicação nele, sem precisar implementar o codigo javascript no envento.
  5. Poder ter uma quebra, onde eu quero ver a linha de tempo agrupado por uma quebra, exemplo: QUEBRA POR DESENVOLVEDORES VS PROJETOS.

De todas, Acrescentando a linha do tempo (DIA) já ajuda muito.

Regis, não sei se para vc seria uma opção…
Eu desisti de usar grafico Gant no SC…

Estou agora gerando o XML para “openproject” que está 10x melhor que usar Gant pelo SC.

########################

sc_lookup(dataset,“SELECT dbo.tblObra.obra
FROM dbo.PlanilhaOrcamentoTCPO INNER JOIN
dbo.tblObra ON dbo.PlanilhaOrcamentoTCPO.idObra = dbo.tblObra.idObra
WHERE (dbo.PlanilhaOrcamentoTCPO.idObra = {idObra})”);

$_titulo = {dataset[0][0]};

$arquivo = “Orcamento.xml”;//DAMOS UM NOME AO ARQUIVO A SER GERADO

$ponteiro = fopen($arquivo, "w");//CRIA O ARQUIVO E ABRE PARA EDIÇÃO

fwrite($ponteiro, "<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?>");
fwrite($ponteiro, "<Project xmlns='http://schemas.microsoft.com/project'>");


	//conteúdo do cabeçado do projeto padrão OPENPROJ E MICROSOFT PROJECT
				
			$conteudo = "<Name>$_titulo</Name>";//Nome do Projeto
				$conteudo .= "<Title>$_titulo</Title>";//Título do Projeto
				$conteudo .= "<Manager>{engenheiro}</Manager>";//Identifica o Engenheiro Responsável pelo Orçamento
				$conteudo .= "<ScheduleFromStart>1</ScheduleFromStart>";//valor estático
				$conteudo .= "<StartDate>{data_licitacao}T08:00:00</StartDate>";//Data e Hora inicial
				$conteudo .= "<FinishDate>{data_licitacao}T17:00:00</FinishDate>";//Data e Hora final
				$conteudo .= "<FYStartDate>1</FYStartDate>";
				$conteudo .= "<CriticalSlackLimit>0</CriticalSlackLimit>";
				$conteudo .= "<CurrencyDigits>2</CurrencyDigits>";
				$conteudo .= "<CurrencySymbol>$</CurrencySymbol>";
				$conteudo .= "<CurrencySymbolPosition>0</CurrencySymbolPosition>";
				$conteudo .= "<CalendarUID>1</CalendarUID>";
				$conteudo .= "<DefaultStartTime>08:00:00</DefaultStartTime>";
				$conteudo .= "<DefaultFinishTime>17:00:00</DefaultFinishTime>";
				$conteudo .= "<MinutesPerDay>480</MinutesPerDay>";
				$conteudo .= "<MinutesPerWeek>2400</MinutesPerWeek>";
			$conteudo .= "<DaysPerMonth>20</DaysPerMonth>";
				$conteudo .= "<DefaultTaskType>0</DefaultTaskType>";
			$conteudo .= "<DefaultFixedCostAccrual>2</DefaultFixedCostAccrual>";
			$conteudo .= "<DefaultStandardRate>10</DefaultStandardRate>";
				$conteudo .= "<DefaultOvertimeRate>15</DefaultOvertimeRate>";
				$conteudo .= "<DurationFormat>7</DurationFormat>";
				$conteudo .= "<WorkFormat>2</WorkFormat>";
				$conteudo .= "<EditableActualCosts>0</EditableActualCosts>";
				$conteudo .= "<HonorConstraints>0</HonorConstraints>";
				$conteudo .= "<EarnedValueMethod>0</EarnedValueMethod>";
				$conteudo .= "<InsertedProjectsLikeSummary>0</InsertedProjectsLikeSummary>";
				$conteudo .= "<MultipleCriticalPaths>0</MultipleCriticalPaths>";
				$conteudo .= "<NewTasksEffortDriven>0</NewTasksEffortDriven>";
				$conteudo .= "<NewTasksEstimated>1</NewTasksEstimated>";
				$conteudo .= "<SplitsInProgressTasks>0</SplitsInProgressTasks>";
				$conteudo .= "<SpreadActualCost>0</SpreadActualCost>";
				$conteudo .= "<SpreadPercentComplete>0</SpreadPercentComplete>";
				$conteudo .= "<TaskUpdatesResource>1</TaskUpdatesResource>";
				$conteudo .= "<FiscalYearStart>0</FiscalYearStart>";
				$conteudo .= "<WeekStartDay>1</WeekStartDay>";
				$conteudo .= "<MoveCompletedEndsBack>0</MoveCompletedEndsBack>";
				$conteudo .= "<MoveRemainingStartsBack>0</MoveRemainingStartsBack>";
				$conteudo .= "<MoveRemainingStartsForward>0</MoveRemainingStartsForward>";
				$conteudo .= "<MoveCompletedEndsForward>0</MoveCompletedEndsForward>";
				$conteudo .= "<BaselineForEarnedValue>0</BaselineForEarnedValue>";
				$conteudo .= "<AutoAddNewResourcesAndTasks>1</AutoAddNewResourcesAndTasks>";
			$conteudo .= "<CurrentDate>{data_criacao}</CurrentDate>";
				$conteudo .= "<MicrosoftProjectServerURL>1</MicrosoftProjectServerURL>";
				$conteudo .= "<Autolink>1</Autolink>";
				$conteudo .= "<NewTaskStartDate>0</NewTaskStartDate>";
				$conteudo .= "<DefaultTaskEVMethod>0</DefaultTaskEVMethod>";
				$conteudo .= "<ProjectExternallyEdited>0</ProjectExternallyEdited>";
				$conteudo .= "<ActualsInSync>0</ActualsInSync>";
				$conteudo .= "<RemoveFileProperties>0</RemoveFileProperties>";
				$conteudo .= "<AdminProject>0</AdminProject>";
	
	
fwrite($ponteiro, $conteudo);

fwrite($ponteiro, “”);

//busca as tarefas
sc_lookup(servicos,“SELECT dbo.tbl_composicao_componente.descricao AS composicao
FROM dbo.DetalheOrcamentoTCPO INNER JOIN
dbo.tbl_composicao_componente ON dbo.DetalheOrcamentoTCPO.cod_compos_compon = dbo.tbl_composicao_componente.cod_compos_compon
WHERE DetalheOrcamentoTCPO.idorcamentotcpo = {idorcamentotcpo}”);

$row = count({servicos});//conta quantas tarefas exitem na planilha

for($x=0;$x<$row;$x++){

	$_composicao	= {servicos[$x][0]};
	$_nivel = $x+1;
	$_tarefas = "<Task>";//registra as tarefas	
    $_tarefas .= "<UID>$_nivel</UID>";
        $_tarefas .= "<ID>$_nivel</ID>";
        $_tarefas .= "<Name>$_composicao</Name>";
        $_tarefas .= "<Type>0</Type>";
        $_tarefas .= "<IsNull>0</IsNull>";
        $_tarefas .= "<CreateDate>2015-03-09T10:18:00</CreateDate>";
        $_tarefas .= "<WBS/>";
        $_tarefas .= "<OutlineNumber>$_nivel</OutlineNumber>";
        $_tarefas .= "<OutlineLevel>1</OutlineLevel>";
        $_tarefas .= "<Priority>500</Priority>";
        $_tarefas .= "<Start>{data_licitacao}T08:00:00</Start>";
       	$_tarefas .= "<Finish>{data_licitacao}T17:00:00</Finish>";
        $_tarefas .= "<Duration>PT8H0M0S</Duration>";
        $_tarefas .= "<DurationFormat>7</DurationFormat>";
        $_tarefas .= "<Work>PT0H0M0S</Work>";
        $_tarefas .= "<ResumeValid>0</ResumeValid>";
        $_tarefas .= "<EffortDriven>1</EffortDriven>";
        $_tarefas .= "<Recurring>0</Recurring>";
        $_tarefas .= "<OverAllocated>0</OverAllocated>";
        $_tarefas .= "<Estimated>1</Estimated>";
       	$_tarefas .= "<Milestone>0</Milestone>";
        $_tarefas .= "<Summary>0</Summary>";
        $_tarefas .= "<Critical>1</Critical>";
        $_tarefas .= "<IsSubproject>0</IsSubproject>";
        $_tarefas .= "<IsSubprojectReadOnly>0</IsSubprojectReadOnly>";
        $_tarefas .= "<ExternalTask>0</ExternalTask>";
        $_tarefas .= "<StartVariance>0</StartVariance>";
        $_tarefas .= "<FinishVariance>0</FinishVariance>";
        $_tarefas .= "<WorkVariance>0</WorkVariance>";
        $_tarefas .= "<FreeSlack>0</FreeSlack>";
        $_tarefas .= "<TotalSlack>0</TotalSlack>";
        $_tarefas .= "<FixedCost>0</FixedCost>";
        $_tarefas .= "<FixedCostAccrual>2</FixedCostAccrual>";
        $_tarefas .= "<Cost>0</Cost>";
        $_tarefas .= "<OvertimeCost>0</OvertimeCost>";
        $_tarefas .= "<OvertimeWork>PT0H0M0S</OvertimeWork>";
        $_tarefas .= "<ActualDuration>PT0H0M0S</ActualDuration>";
        $_tarefas .= "<ActualCost>0</ActualCost>";
        $_tarefas .= "<ActualOvertimeCost>0</ActualOvertimeCost>";
        $_tarefas .= "<ActualWork>PT0H0M0S</ActualWork>";
        $_tarefas .= "<ActualOvertimeWork>PT0H0M0S</ActualOvertimeWork>";
        $_tarefas .= "<RegularWork>PT0H0M0S</RegularWork>";
        $_tarefas .= "<RemainingDuration>PT8H0M0S</RemainingDuration>";
        $_tarefas .= "<RemainingCost>0</RemainingCost>";
        $_tarefas .= "<RemainingWork>PT0H0M0S</RemainingWork>";
        $_tarefas .= "<RemainingOvertimeCost>0</RemainingOvertimeCost>";
        $_tarefas .= "<RemainingOvertimeWork>PT0H0M0S</RemainingOvertimeWork>";
        $_tarefas .= "<ACWP>0</ACWP>";
        $_tarefas .= "<CV>0</CV>";
        $_tarefas .= "<ConstraintType>0</ConstraintType>";
        $_tarefas .= "<CalendarUID>-1</CalendarUID>";
        $_tarefas .= "<ConstraintDate>{data_licitacao}T00:00:00</ConstraintDate>";
        $_tarefas .= "<LevelAssignments>0</LevelAssignments>";
        $_tarefas .= "<LevelingCanSplit>0</LevelingCanSplit>";
        $_tarefas .= "<LevelingDelay>0</LevelingDelay>";
        $_tarefas .= "<LevelingDelayFormat>5</LevelingDelayFormat>";
        $_tarefas .= "<IgnoreResourceCalendar>0</IgnoreResourceCalendar>";
        $_tarefas .= "<Notes/>";
        $_tarefas .= "<HideBar>0</HideBar>";
        $_tarefas .= "<Rollup>0</Rollup>";
        $_tarefas .= "<BCWS>0</BCWS>";
        $_tarefas .= "<BCWP>0</BCWP>";
        $_tarefas .= "<EarnedValueMethod>0</EarnedValueMethod>";
        $_tarefas .= "<ActualWorkProtected>PT0H0M0S</ActualWorkProtected>";
        $_tarefas .= "<ActualOvertimeWorkProtected>PT0H0M0S</ActualOvertimeWorkProtected>";
		$_tarefas .= "</Task>";//finaliza o registro de tarefas

fwrite($ponteiro, $_tarefas);//insere todas as tarefas

}

fwrite($ponteiro,"</Tasks>");//encerra a escrita das tarefas
fwrite($ponteiro,"<Resources>");

//busca recursos
sc_lookup(recursos,“SELECT tbl_composicao_componente.descricao, View_lista_mat_servicos.preco
FROM View_lista_mat_servicos INNER JOIN
tbl_composicao_componente ON View_lista_mat_servicos.CP = tbl_composicao_componente.cod_compos_compon
WHERE View_lista_mat_servicos.idorcamentotcpo = {idorcamentotcpo}”);

$rowr = count({recursos});//conta quantos recursos exitem na planilha

for($xr=0;$xr<$rowr;$xr++){

		$_item	= {recursos[$xr][0]};
		$_preco	= {recursos[$xr][1]};
	
   		$_recursos = "<Resource>";
        $_recursos .= "<UID>$xr</UID>";
        $_recursos .= "<ID>$xr</ID>";
        $_recursos .= "<Name>$_item</Name>";
        $_recursos .= "<IsNull>0</IsNull>";
        $_recursos .= "<Initials>E</Initials>";
        $_recursos .= "<Group/>";
        $_recursos .= "<EmailAddress/>";
        $_recursos .= "<MaxUnits>0.01000000000000000020816681711721685132943093776702880859375</MaxUnits>";
        $_recursos .= "<PeakUnits>1</PeakUnits>";
        $_recursos .= "<CanLevel>0</CanLevel>";
        $_recursos .= "<AccrueAt>3</AccrueAt>";
        $_recursos .= "<Work>PT0H0M0S</Work>";
        $_recursos .= "<RegularWork>PT0H0M0S</RegularWork>";
        $_recursos .= "<OvertimeWork>PT0H0M0S</OvertimeWork>";
        $_recursos .= "<ActualWork>PT0H0M0S</ActualWork>";
        $_recursos .= "<RemainingWork>PT0H0M0S</RemainingWork>";
        $_recursos .= "<ActualOvertimeWork>PT0H0M0S</ActualOvertimeWork>";
        $_recursos .= "<RemainingOvertimeWork>PT0H0M0S</RemainingOvertimeWork>";
        $_recursos .= "<StandardRate>0</StandardRate>";
        $_recursos .= "<StandardRateFormat>3</StandardRateFormat>";
        $_recursos .= "<Cost>$_preco</Cost>";
        $_recursos .= "<OvertimeRate>0</OvertimeRate>";
        $_recursos .= "<OvertimeRateFormat>3</OvertimeRateFormat>";
        $_recursos .= "<OvertimeCost>0</OvertimeCost>";
        $_recursos .= "<CostPerUse>0</CostPerUse>";
        $_recursos .= "<ActualCost>0</ActualCost>";
        $_recursos .= "<ActualOvertimeCost>0</ActualOvertimeCost>";
        $_recursos .= "<RemainingCost>0</RemainingCost>";
        $_recursos .= "<RemainingOvertimeCost>0</RemainingOvertimeCost>";
        $_recursos .= "<WorkVariance>0</WorkVariance>";
        $_recursos .= "<CostVariance>0</CostVariance>";
        $_recursos .= "<SV>0</SV>";
        $_recursos .= "<CV>0</CV>";
        $_recursos .= "<ACWP>0</ACWP>";
        $_recursos .= "<CalendarUID>18</CalendarUID>";
        $_recursos .= "<Notes/>";
        $_recursos .= "<BCWS>0</BCWS>";
        $_recursos .= "<BCWP>0</BCWP>";
        $_recursos .= "<IsGeneric>0</IsGeneric>";
        $_recursos .= "<IsInactive>0</IsInactive>";
        $_recursos .= "<IsEnterprise>0</IsEnterprise>";
        $_recursos .= "<ActualWorkProtected>PT0H0M0S</ActualWorkProtected>";
        $_recursos .= "<ActualOvertimeWorkProtected>PT0H0M0S</ActualOvertimeWorkProtected>";
    	$_recursos .= "</Resource>";
		fwrite($ponteiro, $_recursos);
}

fwrite($ponteiro,"</Resources>");

fwrite($ponteiro,"</Project>");//encerra a escrita no arquivo
fclose($ponteiro);//fecha o arquivo