Autor Tópico: Melhorias no Grafico de Gantt Dia a Dia  (Lida 504 vezes)

Régis Matos

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 632
  • Se a porta não se abrir, construa uma.
    • Email
Melhorias no Grafico de Gantt Dia a Dia
« Online: Agosto 07, 2015, 02:42:26 pm »
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.




Jean Matos

  • Expert
  • *****
  • Mensagens: 956
    • Gestão de Construtoras
    • Email
Re:Melhorias no Grafico de Gantt Dia a Dia
« Responder #1 Online: Agosto 09, 2015, 10:01:29 pm »
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, "<Tasks>");


//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
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 64 bits
Sistema Integrado de Gestão de Construtoras]WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775