The code below generate in perform a SQL with error.
Dim obOrcTarefaPlan As OrcamentoTarefaPlanejamento ' Objeto principal oramento tarefa planejado.
Dim obColecao As CPersistentCollection ' Coleo de objetos a ser retornada.
Dim obRC As AToMSFramework.CMultiSummaryCriteria ' Critrio de recuperao com sumarizao.
Dim obCursor As AToMSFramework.CCursor ' Cursor com os objetos recuperados.
Dim obCC1 As AToMSFramework.CCriteriaCondition ' Condio.
Dim obCC2 As AToMSFramework.CCriteriaCondition ' Condio.
Dim inOrdemIndex As Integer ' ndice do atributo de ordenao.
Dim boAscend As Boolean ' Ordem ascendente.
Dim cuValor As Decimal ' Valor a ser somado.
obOrcTarefaPlan = New OrcamentoTarefaPlanejamento
obOrcTarefaPlan.AnoExercicio = New AnoExercicio
obRC = New AToMSFramework.CMultiSummaryCriteria
obRC.addObjectToJoin(obOrcTarefaPlan, Nothing, "")
obRC.addObjectToJoin(obOrcTarefaPlan.AnoExercicio, obOrcTarefaPlan, "AnoExercicio")
obCC1 = New AToMSFramework.CCriteriaCondition
obCC1.ClassMap = obOrcTarefaPlan.getClassMap(obOrcTarefaPlan) ' Define a classe da condio.
obCC1.addSelectEqualTo("TarefaOid", vstTarefaOid) ' Cria o critrio "igual a" para o identificador da tarefa.
obCC2 = New AToMSFramework.CCriteriaCondition
obCC2.ClassMap = obOrcTarefaPlan.getClassMap(obOrcTarefaPlan.AnoExercicio) ' Define a classe da condio.
obCC2.addSelectEqualTo("PeriodoPPAOid", vstPeriodoPPAOid) ' Cria o critrio "igual a" para o identificador do perodo PPA.
obCC1.addSubCriteria(obCC2, False)
obCC2 = Nothing
obRC.WhereCondition = obCC1 ' Define que o critrio a ser utilizado ser o definido anteriormente.
obCC1 = Nothing
obOrcTarefaPlan = Nothing
' Caso existam atributos de ordenao, adiciona um critrio de ordenao para cada atributo na coleo.
If Not IsNothing(vobOrdemCol) Then
For inOrdemIndex = 1 To vobOrdemCol.Count
boAscend = True
' Caso existam itens para determinar a ordem ascendente ou descendente.
If Not IsNothing(vobOrdemAscCol) Then
If inOrdemIndex <= vobOrdemAscCol.Count Then
' Caso a ordem seja descendente.
If Not vobOrdemAscCol(inOrdemIndex) Then
boAscend = False
End If
End If
End If
obRC.addOrderAttributeByAscend(vobOrdemCol(inOrdemIndex), boAscend)
Next
End If
SELECT SUM(t2.Val_Previsto), SUM(t2.Val_Aprovado), SUM(t2.Val_Outro_Recurso_Previsto) FROM (TESTE_SIGERE.dbo.tb_Orcamento_Tarefa_Planejamento as t1 LEFT JOIN TESTE_SIGERE.dbo.tb_Orcamento_Tarefa_Planejamento as t2 ON t1.OID_Ano_Exercicio = t2.Oid_Ano_Exercicio) WHERE ((tb_Orcamento_Tarefa_Planejamento.OID_Tarefa = '000004A00001' AND (tb_Ano_Exercicio.OID_Periodo_PPA = '000003750001'))) GROUP BY tb_Orcamento_Tarefa_Planejamento.OID_Tarefa, tb_Orcamento_Tarefa_Planejamento.OID_Categoria_Economica
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dears,
Please, help me with this problem:
The code below generate in perform a SQL with error.
Dim obOrcTarefaPlan As OrcamentoTarefaPlanejamento ' Objeto principal oramento tarefa planejado.
Dim obColecao As CPersistentCollection ' Coleo de objetos a ser retornada.
Dim obRC As AToMSFramework.CMultiSummaryCriteria ' Critrio de recuperao com sumarizao.
Dim obCursor As AToMSFramework.CCursor ' Cursor com os objetos recuperados.
Dim obCC1 As AToMSFramework.CCriteriaCondition ' Condio.
Dim obCC2 As AToMSFramework.CCriteriaCondition ' Condio.
Dim inOrdemIndex As Integer ' ndice do atributo de ordenao.
Dim boAscend As Boolean ' Ordem ascendente.
Dim cuValor As Decimal ' Valor a ser somado.
obOrcTarefaPlan = New OrcamentoTarefaPlanejamento
obOrcTarefaPlan.AnoExercicio = New AnoExercicio
obRC = New AToMSFramework.CMultiSummaryCriteria
obRC.addObjectToJoin(obOrcTarefaPlan, Nothing, "")
obRC.addObjectToJoin(obOrcTarefaPlan.AnoExercicio, obOrcTarefaPlan, "AnoExercicio")
obCC1 = New AToMSFramework.CCriteriaCondition
obCC1.ClassMap = obOrcTarefaPlan.getClassMap(obOrcTarefaPlan) ' Define a classe da condio.
obCC1.addSelectEqualTo("TarefaOid", vstTarefaOid) ' Cria o critrio "igual a" para o identificador da tarefa.
obCC2 = New AToMSFramework.CCriteriaCondition
obCC2.ClassMap = obOrcTarefaPlan.getClassMap(obOrcTarefaPlan.AnoExercicio) ' Define a classe da condio.
obCC2.addSelectEqualTo("PeriodoPPAOid", vstPeriodoPPAOid) ' Cria o critrio "igual a" para o identificador do perodo PPA.
obCC1.addSubCriteria(obCC2, False)
obCC2 = Nothing
obRC.WhereCondition = obCC1 ' Define que o critrio a ser utilizado ser o definido anteriormente.
obCC1 = Nothing
obOrcTarefaPlan = Nothing
' Caso existam atributos de ordenao, adiciona um critrio de ordenao para cada atributo na coleo.
If Not IsNothing(vobOrdemCol) Then
For inOrdemIndex = 1 To vobOrdemCol.Count
boAscend = True
' Caso existam itens para determinar a ordem ascendente ou descendente.
If Not IsNothing(vobOrdemAscCol) Then
If inOrdemIndex <= vobOrdemAscCol.Count Then
' Caso a ordem seja descendente.
If Not vobOrdemAscCol(inOrdemIndex) Then
boAscend = False
End If
End If
End If
obRC.addOrderAttributeByAscend(vobOrdemCol(inOrdemIndex), boAscend)
Next
End If
obRC.addGroupAttribute("TarefaOid")
obRC.addGroupAttribute("CategoriaEconomicaOid")
obRC.addSummaryField("ValorPrevisto", CMultiSummaryCriteria.SumMethod.Sum)
obRC.addSummaryField("ValorAprovado", CMultiSummaryCriteria.SumMethod.Sum)
obRC.addSummaryField("ValorPrevistoOutro", CMultiSummaryCriteria.SumMethod.Sum)
obCursor = obRC.perform ' Gerao do cursor.
The SQL:
SELECT SUM(t2.Val_Previsto), SUM(t2.Val_Aprovado), SUM(t2.Val_Outro_Recurso_Previsto) FROM (TESTE_SIGERE.dbo.tb_Orcamento_Tarefa_Planejamento as t1 LEFT JOIN TESTE_SIGERE.dbo.tb_Orcamento_Tarefa_Planejamento as t2 ON t1.OID_Ano_Exercicio = t2.Oid_Ano_Exercicio) WHERE ((tb_Orcamento_Tarefa_Planejamento.OID_Tarefa = '000004A00001' AND (tb_Ano_Exercicio.OID_Periodo_PPA = '000003750001'))) GROUP BY tb_Orcamento_Tarefa_Planejamento.OID_Tarefa, tb_Orcamento_Tarefa_Planejamento.OID_Categoria_Economica