protected void GenerateInventarioEntryChildren(Document doc, GISADataset.RelacaoHierarquicaRow rhRow, float CurrentIndentCm) { GISADataset.RelacaoHierarquicaRow[] childRhRows; try { { dataSet.EnforceConstraints = false; GisaDataSetHelper.GetNivelDataAdapter(string.Format("WHERE ID IN (SELECT ID FROM RelacaoHierarquica WHERE IDUpper={0})", rhRow.ID), null, null).Fill(dataSet.Nivel); GisaDataSetHelper.GetRelacaoHierarquicaDataAdapter(string.Format("WHERE IDUpper={0}", rhRow.ID), null, null).Fill(dataSet.RelacaoHierarquica); //PersistencyHelper.cleanDeletedRows() childRhRows = Nivel.GetChildren(dataSet, rhRow.NivelRowByNivelRelacaoHierarquica); if (childRhRows.Length == 0) { return; // might not be correct. Was : Exit Sub } DoAddedEntries(childRhRows.Length); GisaDataSetHelper.GetNivelDesignadoDataAdapter(string.Format("WHERE ID IN (SELECT ID FROM RelacaoHierarquica WHERE IDUpper={0})", rhRow.ID), null, null).Fill(dataSet.NivelDesignado); GisaDataSetHelper.GetControloAutDataAdapter(string.Format("WHERE ID IN (SELECT NivelControloAut.IDControloAut FROM RelacaoHierarquica inner join NivelControloAut ON RelacaoHierarquica.ID=NivelControloAut.ID WHERE IDUpper={0})", rhRow.ID), null, null).Fill(dataSet.ControloAut); GisaDataSetHelper.GetNivelControloAutDataAdapter(string.Format("WHERE ID IN (SELECT ID FROM RelacaoHierarquica WHERE IDUpper={0})", rhRow.ID), null, null).Fill(dataSet.NivelControloAut); GisaDataSetHelper.GetDicionarioDataAdapter(string.Format("WHERE ID IN (SELECT IDDicionario FROM ControloAutDicionario INNER JOIN NivelControloAut ON ControloAutDicionario.IDControloAut=NivelControloAut.IDControloAut INNER JOIN RelacaoHierarquica ON NivelControloAut.ID=RelacaoHierarquica.ID WHERE IDUpper={0})", rhRow.ID), null, null).Fill(dataSet.Dicionario); GisaDataSetHelper.GetControloAutDicionarioDataAdapter(string.Format("WHERE IDControloAut IN (SELECT IDControloAut FROM NivelControloAut INNER JOIN RelacaoHierarquica ON NivelControloAut.ID=RelacaoHierarquica.ID WHERE IDUpper={0})", rhRow.ID), null, null).Fill(dataSet.ControloAutDicionario); string query = string.Format("WHERE FRDBase.IDTipoFRDBase=3 AND FRDBase.IDNivel IN (SELECT ID FROM RelacaoHierarquica WHERE IDUpper={0})", rhRow.ID); GisaDataSetHelper.GetFRDBaseDataAdapter(query, null, null).Fill(dataSet.FRDBase); GisaDataSetHelper.GetSFRDDatasProducaoDataAdapter(string.Format("INNER JOIN FRDBase ON SFRDDatasProducao.IDFRDBase=FRDBase.ID {0}", query), null, null).Fill(dataSet.SFRDDatasProducao); GisaDataSetHelper.GetSFRDUFCotaDataAdapter(string.Format("INNER JOIN FRDBase ON SFRDUFCota.IDFRDBase=FRDBase.ID {0}", query), null, null).Fill(dataSet.SFRDUFCota); GisaDataSetHelper.GetSFRDConteudoEEstruturaDataAdapter(string.Format("INNER JOIN FRDBase ON SFRDConteudoEEstrutura.IDFRDBase=FRDBase.ID {0}", query), null, null).Fill(dataSet.SFRDConteudoEEstrutura); GisaDataSetHelper.GetSFRDCondicaoDeAcessoDataAdapter(string.Format("INNER JOIN FRDBase ON SFRDCondicaoDeAcesso.IDFRDBase=FRDBase.ID {0}", query), null, null).Fill(dataSet.SFRDCondicaoDeAcesso); GisaDataSetHelper.GetSFRDContextoDataAdapter(string.Format("INNER JOIN FRDBase ON SFRDContexto.IDFRDBase=FRDBase.ID {0}", query), null, null).Fill(dataSet.SFRDContexto); GisaDataSetHelper.GetControloAutDataAdapter(string.Format("INNER JOIN IndexFRDCA ON ControloAut.ID=IndexFRDCA.IDControloAut INNER JOIN FRDBase ON IDFRDBase=FRDBase.ID {0}", query), null, null).Fill(dataSet.ControloAut); GisaDataSetHelper.GetIndexFRDCADataAdapter(string.Format("INNER JOIN FRDBase ON IDFRDBase=FRDBase.ID {0}", query), null, null).Fill(dataSet.IndexFRDCA); GisaDataSetHelper.GetDicionarioDataAdapter(string.Format("WHERE ID IN (SELECT IDDicionario FROM ControloAutDicionario INNER JOIN IndexFRDCA ON ControloAutDicionario.IDControloAut=IndexFRDCA.IDControloAut INNER JOIN FRDBase ON IndexFRDCA.IDFRDBase=FRDBase.ID {0})", query), null, null).Fill(dataSet.Dicionario); GisaDataSetHelper.GetControloAutDicionarioDataAdapter(string.Format("WHERE IDControloAut IN (SELECT IDControloAut FROM IndexFRDCA INNER JOIN FRDBase ON IndexFRDCA.IDFRDBase=FRDBase.ID {0})", query), null, null).Fill(dataSet.ControloAutDicionario); } } finally { { //PersistencyHelper.cleanDeletedRows() dataSet.EnforceConstraints = true; } } Array.Sort(childRhRows, new NivelSorter()); foreach (GISADataset.RelacaoHierarquicaRow childn in childRhRows) { GenerateInventarioEntry(doc, childn, CurrentIndentCm + 0.5f); } }