private void GenerateInventarioEntryDetails(Document doc, GISADataset.RelacaoHierarquicaRow rhRow, float CurrentIndentCm)
        {
            string entry = "";

            Paragraph p;

            GisaDataSetHelper.GetFRDBaseDataAdapter(string.Format("WHERE IDNivel={0}", rhRow.ID), null, null).Fill(dataSet.FRDBase);
            GisaDataSetHelper.GetSFRDDatasProducaoDataAdapter(string.Format("INNER JOIN FRDBase ON SFRDDatasProducao.IDFRDBase=FRDBase.ID WHERE IDNivel={0}", rhRow.ID), null, null).Fill(dataSet.SFRDDatasProducao);
            GisaDataSetHelper.GetSFRDUFCotaDataAdapter(string.Format("INNER JOIN FRDBase ON SFRDUFCota.IDFRDBase=FRDBase.ID WHERE IDNivel={0}", rhRow.ID), null, null).Fill(dataSet.SFRDUFCota);
            //PersistencyHelper.cleanDeletedRows()
            foreach (GISADataset.FRDBaseRow frd in rhRow.NivelRowByNivelRelacaoHierarquica.GetFRDBaseRows())
            {
                if (frd.IDTipoFRDBase == (long)TipoFRDBase.FRDOIPublicacao)
                {
                    if (frd.GetSFRDDatasProducaoRows().Length > 0)
                    {
                        {
                            if (!frd.GetSFRDDatasProducaoRows()[0].IsInicioTextoNull() && frd.GetSFRDDatasProducaoRows()[0].InicioTexto.Length > 0)
                            {
                                entry += frd.GetSFRDDatasProducaoRows()[0].InicioTexto + ", ";
                            }
                            entry += GetInicioData(frd.GetSFRDDatasProducaoRows()[0]) + " - " + GetFimData(frd.GetSFRDDatasProducaoRows()[0]);
                            p      = new Paragraph(entry, this.BodyFont);
                            p.setIndentationLeft(CentimeterToPoint(CurrentIndentCm + 0.5f));
                            doc.add(p);
                        }
                    }
                    entry = frd.GetSFRDUFCotaRows()[0].Cota;
                    p     = new Paragraph(entry, this.BodyFont);
                    p.setIndentationLeft(CentimeterToPoint(CurrentIndentCm + 0.5f));
                    doc.add(p);
                    entry = Nivel.GetCodigoOfNivel(rhRow.NivelRowByNivelRelacaoHierarquica);
                    p     = new Paragraph(entry, this.BodyFont);
                    p.setIndentationLeft(CentimeterToPoint(CurrentIndentCm + 0.5f));
                    doc.add(p);
                }
            }
        }
        private void GenerateInventarioEntryDetails(Document doc, GISADataset.RelacaoHierarquicaRow rhRow, float CurrentIndentCm)
        {
            string    entry = string.Empty;
            Paragraph p;

            GISADataset.NivelRow n = rhRow.NivelRowByNivelRelacaoHierarquica;
            foreach (GISADataset.FRDBaseRow frd in rhRow.NivelRowByNivelRelacaoHierarquica.GetFRDBaseRows())
            {
                if (frd.IDTipoFRDBase == (long)TipoFRDBase.FRDOIPublicacao)
                {
                    entry = Nivel.GetCodigoOfNivel(n);
                    p     = new Paragraph(CentimeterToPoint(0.5F), entry, this.BodyFont);
                    p.setIndentationLeft(CentimeterToPoint(0));
                    doc.add(p);
                    entry = string.Format("{0}: {1}", rhRow.TipoNivelRelacionadoRow.Codigo, Nivel.GetDesignacao(n));
                    p     = new Paragraph(CentimeterToPoint(0.5F), entry, this.BodyFont);
                    p.setIndentationLeft(CentimeterToPoint(0.5F));
                    doc.add(p);
                    if (frd.GetSFRDDatasProducaoRows().Length > 0)
                    {
                        entry = "";
                        if (!frd.GetSFRDDatasProducaoRows()[0].IsInicioTextoNull() && frd.GetSFRDDatasProducaoRows()[0].InicioTexto.Length > 0)
                        {
                            entry += frd.GetSFRDDatasProducaoRows()[0].InicioTexto + ", ";
                        }
                        entry += GetInicioData(frd.GetSFRDDatasProducaoRows()[0]) + " - " + GetFimData(frd.GetSFRDDatasProducaoRows()[0]);
                        p      = new Paragraph(CentimeterToPoint(0.5F), entry, this.BodyFont);
                        p.setIndentationLeft(CentimeterToPoint(1F));
                        doc.add(p);
                    }
                    entry = "**Dimensão e suporte**";
                    if (entry.Length > 0)
                    {
                        p = new Paragraph(entry, this.BodyFont);
                        p.setIndentationLeft(CentimeterToPoint(1F));
                        doc.add(p);
                    }
                    entry = GetControloAutFormaAut(frd, new TipoNoticiaAut[] { TipoNoticiaAut.EntidadeProdutora });
                    //For Each idx As GISADataset.IndexFRDCARow In frd.GetIndexFRDCARows()
                    //    If idx.ControloAutRow.IDTipoNoticiaAut = TipoNoticiaAut.EntidadeProdutora Then
                    //        For Each cad As GISADataset.ControloAutDicionarioRow In idx.ControloAutRow.GetControloAutDicionarioRows
                    //            If cad.IDTipoControloAutForma = TipoControloAutForma.FormaAutorizada Then
                    //                If entry.Length > 0 Then entry += " / "
                    //                entry += cad.DicionarioRow.Termo
                    //            End If
                    //        Next
                    //    End If
                    //Next
                    if (entry.Length > 0)
                    {
                        p = new Paragraph(entry, this.BodyFont);
                        p.setIndentationLeft(CentimeterToPoint(1));
                        doc.add(p);
                    }
                    if (frd.GetSFRDContextoRows().Length == 1)
                    {
                        entry = frd.GetSFRDContextoRows()[0].HistoriaAdministrativa;
                        if (entry.Length > 0)
                        {
                            p = new Paragraph(entry, this.BodyFont);
                            p.setIndentationLeft(CentimeterToPoint(1));
                            doc.add(p);
                        }
                        entry = frd.GetSFRDContextoRows()[0].HistoriaCustodial;
                        if (entry.Length > 0)
                        {
                            p = new Paragraph(entry, this.BodyFont);
                            p.setIndentationLeft(CentimeterToPoint(1));
                            doc.add(p);
                        }
                        entry = frd.GetSFRDContextoRows()[0].FonteImediataDeAquisicao;
                        if (entry.Length > 0)
                        {
                            p = new Paragraph(entry, this.BodyFont);
                            p.setIndentationLeft(CentimeterToPoint(1));
                            doc.add(p);
                        }
                    }
                    entry = GetControloAutFormaAut(frd, new TipoNoticiaAut[] { TipoNoticiaAut.TipologiaInformacional });
                    //For Each idx As GISADataset.IndexFRDCARow In frd.GetIndexFRDCARows()
                    //    If idx.ControloAutRow.IDTipoNoticiaAut = TipoNoticiaAut.TipologiaInformacional Then
                    //        For Each cad As GISADataset.ControloAutDicionarioRow In idx.ControloAutRow.GetControloAutDicionarioRows
                    //            If cad.IDTipoControloAutForma = TipoControloAutForma.FormaAutorizada Then
                    //                If entry.Length > 0 Then entry += " / "
                    //                entry += cad.DicionarioRow.Termo
                    //            End If
                    //        Next
                    //    End If
                    //Next
                    if (entry.Length > 0)
                    {
                        p = new Paragraph(entry, this.BodyFont);
                        p.setIndentationLeft(CentimeterToPoint(1));
                        doc.add(p);
                    }
                    if (frd.GetSFRDConteudoEEstruturaRows().Length == 1)
                    {
                        entry = frd.GetSFRDConteudoEEstruturaRows()[0].ConteudoInformacional;
                        if (entry.Length > 0)
                        {
                            p = new Paragraph(entry, this.BodyFont);
                            p.setIndentationLeft(CentimeterToPoint(1));
                            doc.add(p);
                        }
                    }
                    if (frd.GetSFRDCondicaoDeAcessoRows().Length == 1)
                    {
                        entry = frd.GetSFRDCondicaoDeAcessoRows()[0].CondicaoDeReproducao;
                        if (entry.Length > 0)
                        {
                            p = new Paragraph(entry, this.BodyFont);
                            p.setIndentationLeft(CentimeterToPoint(1));
                            doc.add(p);
                        }
                    }
                    entry = GetControloAutFormaAut(frd, new TipoNoticiaAut[] { TipoNoticiaAut.Ideografico, TipoNoticiaAut.Onomastico, TipoNoticiaAut.ToponimicoGeografico });
                    //For Each idx As GISADataset.IndexFRDCARow In frd.GetIndexFRDCARows()
                    //    If idx.ControloAutRow.IDTipoNoticiaAut = TipoNoticiaAut.Ideografico Or idx.ControloAutRow.IDTipoNoticiaAut = TipoNoticiaAut.Onomastico Or idx.ControloAutRow.IDTipoNoticiaAut = TipoNoticiaAut.ToponimicoGeografico Then
                    //        For Each cad As GISADataset.ControloAutDicionarioRow In idx.ControloAutRow.GetControloAutDicionarioRows
                    //            If cad.IDTipoControloAutForma = TipoControloAutForma.FormaAutorizada Then
                    //                If entry.Length > 0 Then entry += " / "
                    //                entry += cad.DicionarioRow.Termo
                    //            End If
                    //        Next
                    //    End If
                    //Next
                    if (entry.Length > 0)
                    {
                        p = new Paragraph(entry, this.BodyFont);
                        p.setIndentationLeft(CentimeterToPoint(1));
                        doc.add(p);
                    }
                }
            }
        }