Exemple #1
0
        private void Initialize()
        {
            dao04       = DAO_Pesquisa04.Instance;
            dao02       = DAO_Pesquisa02.Instance;
            dao03       = DAO_Pesquisa03.Instance;
            daoFiltro   = DAO_Filtro.Instance;
            daoDownload = DAO_Download.Instance;
            //dao07 = DAO_Pesquisa07.Instance;

            MessagingCenter.Subscribe <String>(this, "VerificarExibirDetalhes", (s) =>
            {
                VerificarExibirDetalhes();
            });

            CmdBaixar = new Command(() => {
                DownloadDados();
            });

            CmdDetalhes = new Command(() => {
                VisualizarDetalhes();
            });

            pesquisador = Utils.ObterPesquisadorLogado();

            Title    = pesquisador.razaosocial;
            SubTitle = pesquisador.nome;

            AdicionarControles();

            ObterItensFormulario();
        }
Exemple #2
0
        public DadosPesquisaUtil()
        {
            dao01     = DAO_Pesquisa01.Instance;
            dao06     = DAO_Pesquisa06.Instance;
            dao02     = DAO_Pesquisa02.Instance;
            dao03     = DAO_Pesquisa03.Instance;
            dao04     = DAO_Pesquisa04.Instance;
            daoFiltro = DAO_Filtro.Instance;

            listPesquisas = new List <CE_Pesquisa06>();
            listPerguntas = new List <CE_Pesquisa04>();

            ws = WSUtil.Instance;
        }
Exemple #3
0
        public ModalRespostaViewModel(ContentPage page, ModalResposta modalResposta, ItemArvoreFormularioViewModel itemViewModel)
        {
            this.page          = page;
            this.modalResposta = modalResposta;
            this.itemViewModel = itemViewModel;

            dao = DAO_Filtro.Instance;

            CmdCancelar = new Command(() =>
            {
                this.page.Navigation.PopModalAsync();
            });

            CmdConfirmar = new Command(() =>
            {
                DefinirFiltro();
            });

            CmdLimpar = new Command(() =>
            {
                LimparFiltro();
            });
        }
Exemple #4
0
        public Boolean TemFiltro()
        {
            DAO_Filtro dao = DAO_Filtro.Instance;

            return(dao.TemFiltro(idpesquisa04));
        }
Exemple #5
0
        public void CompartilharPDF(List <CE_Pesquisa04> perguntas)
        {
            if (Android.Support.V4.App.ActivityCompat.CheckSelfPermission(Android.App.Application.Context, Android.Manifest.Permission.WriteExternalStorage) != (int)Android.Content.PM.Permission.Granted)
            {
                Android.Support.V4.App.ActivityCompat.RequestPermissions(mainActivity, new string[] { Android.Manifest.Permission.WriteExternalStorage }, 0);

                return;
            }
            else
            {
                try
                {
                    Configuracao conf = ObterConfiguracao();
                    //String path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
                    String path       = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
                    String arquivoPDF = Path.Combine(path, "graficos.pdf");

                    DAO_Filtro       daoFiltro   = DAO_Filtro.Instance;
                    List <CE_Filtro> listFiltros = daoFiltro.ObterFiltrosPorPesquisa(perguntas[0].idpesquisa01);

                    List <CE_Pesquisa03> opcoes = new List <CE_Pesquisa03>();

                    foreach (var item in perguntas)
                    {
                        if (item.TemFiltro())
                        {
                            opcoes.AddRange(item.Opcoes);
                        }
                    }

                    perguntas = perguntas.Where(o => o.IsPergunta && o.selecionado).ToList();

                    FileStream fs       = new FileStream(arquivoPDF, FileMode.Create);
                    Document   document = new Document(PageSize.A4, 25, 25, 30, 30);
                    PdfWriter  writer   = PdfWriter.GetInstance(document, fs);

                    document.Open();

                    foreach (var pergunta in perguntas)
                    {
                        Paragraph paragrafo = new Paragraph();
                        paragrafo.Alignment = iTextSharp.text.Element.ALIGN_LEFT;

                        Phrase prCabecalho = new Phrase("Gráfico gerado em: " + String.Format("{0:dd/MM/yyyy HH:mm:ss}", DateTime.Now) + " \n", new iTextSharp.text.Font(iTextSharp.text.Font.HELVETICA, 15f, iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLACK));

                        paragrafo.Add(prCabecalho);

                        Table table = new Table(1);
                        table.Alignment = iTextSharp.text.Element.ALIGN_CENTER;
                        table.Width     = 100;

                        Phrase pr = new Phrase(pergunta.descricao + " (" + pergunta.Quantidade + ") \n\n", new iTextSharp.text.Font(iTextSharp.text.Font.HELVETICA, 18f, iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.WHITE));

                        iTextSharp.text.Cell cell = new iTextSharp.text.Cell(pr);
                        cell.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER;
                        cell.BackgroundColor     = iTextSharp.text.Color.BLUE;

                        table.AddCell(cell);

                        paragrafo.Add(table);

                        Paragraph pImg = new Paragraph();
                        pImg.Alignment = iTextSharp.text.Element.ALIGN_CENTER;

                        MemoryStream ms = new MemoryStream();

                        if (pergunta.GraficoPizza != null)
                        {
                            if (pergunta.TipoGrafico == 1 && pergunta.GraficoPizza.Width > 0)
                            {
                                ((MikePhil.Charting.Data.PieData)pergunta.GraficoPizza.Data).SetValueTextSize(conf.TamanhoFonteGrafico);
                                ((MikePhil.Charting.Components.Legend)pergunta.GraficoPizza.Legend).TextSize = conf.TamanhoFonteGrafico - 2;
                                pergunta.GraficoPizza.ChartBitmap.Compress(Android.Graphics.Bitmap.CompressFormat.Png, 0, ms);
                                iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(ms.ToArray());
                                img.ScalePercent(40f);
                                img.Alignment = iTextSharp.text.Element.ALIGN_CENTER;

                                pImg.Add(img);

                                paragrafo.Add(pImg);

                                document.Add(paragrafo);

                                ((MikePhil.Charting.Data.PieData)pergunta.GraficoPizza.Data).SetValueTextSize(15f);
                                ((MikePhil.Charting.Components.Legend)pergunta.GraficoPizza.Legend).TextSize = 15f;
                            }
                            else if (pergunta.TipoGrafico == 2 && pergunta.GraficoBarra.Width > 0)
                            {
                                pergunta.GraficoBarra.BarData.SetValueTextSize(conf.TamanhoFonteGrafico);
                                pergunta.GraficoBarra.ChartBitmap.Compress(Android.Graphics.Bitmap.CompressFormat.Png, 0, ms);
                                iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(ms.ToArray());
                                img.ScalePercent(40f);
                                img.Alignment = iTextSharp.text.Element.ALIGN_CENTER;
                                pImg.Add(img);

                                paragrafo.Add(pImg);

                                document.Add(paragrafo);

                                pergunta.GraficoBarra.BarData.SetValueTextSize(15f);
                            }
                        }
                        else
                        {
                            if (pergunta.TipoGrafico == 1 && pergunta.GraficoLinha.Width > 0)
                            {
                                pergunta.GraficoLinha.LineData.SetValueTextSize(conf.TamanhoFonteGrafico);
                                pergunta.GraficoLinha.ChartBitmap.Compress(Android.Graphics.Bitmap.CompressFormat.Png, 0, ms);
                                iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(ms.ToArray());
                                img.ScalePercent(40f);
                                img.Alignment = iTextSharp.text.Element.ALIGN_CENTER;

                                pImg.Add(img);

                                paragrafo.Add(pImg);

                                document.Add(paragrafo);

                                pergunta.GraficoLinha.LineData.SetValueTextSize(15f);
                            }
                            else if (pergunta.TipoGrafico == 2 && pergunta.GraficoBarra.Width > 0)
                            {
                                pergunta.GraficoBarra.BarData.SetValueTextSize(conf.TamanhoFonteGrafico);
                                pergunta.GraficoBarra.ChartBitmap.Compress(Android.Graphics.Bitmap.CompressFormat.Png, 0, ms);
                                iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(ms.ToArray());
                                img.ScalePercent(40f);
                                img.Alignment = iTextSharp.text.Element.ALIGN_CENTER;
                                pImg.Add(img);

                                paragrafo.Add(pImg);

                                document.Add(paragrafo);

                                pergunta.GraficoBarra.BarData.SetValueTextSize(15f);
                            }
                        }

                        ms.Close();

                        Paragraph paragrafoRodape = new Paragraph();
                        paragrafoRodape.Alignment = iTextSharp.text.Element.ALIGN_LEFT;

                        String filtro = "Filtros: ";

                        if (listFiltros.Count > 0)
                        {
                            for (int i = 0; i < listFiltros.Count; i++)
                            {
                                if (i != listFiltros.Count - 1)
                                {
                                    filtro += opcoes.FirstOrDefault(o => o.idpesquisa03 == listFiltros[i].idpesquisa03).descricao + ", ";
                                }
                                else
                                {
                                    filtro += opcoes.FirstOrDefault(o => o.idpesquisa03 == listFiltros[i].idpesquisa03).descricao;
                                }
                            }
                        }
                        else
                        {
                            filtro = "Filtros: Nenhum";
                        }

                        Phrase prRodape = new Phrase(filtro, new iTextSharp.text.Font(iTextSharp.text.Font.HELVETICA, 15f, iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLACK));

                        paragrafoRodape.Add(prRodape);

                        document.Add(paragrafoRodape);

                        document.NewPage();
                    }

                    document.Close();
                    writer.Close();
                    fs.Close();

                    var fileUri       = Android.Net.Uri.FromFile(new Java.IO.File(arquivoPDF));
                    var sharingIntent = new Intent();
                    sharingIntent.SetAction(Intent.ActionSend);
                    sharingIntent.SetType("application/pdf");
                    //sharingIntent.PutExtra(Intent.ExtraText, content);
                    sharingIntent.PutExtra(Intent.ExtraStream, fileUri);
                    //sharingIntent.AddFlags(ActivityFlags.GrantReadUriPermission);
                    Intent intent = Intent.CreateChooser(sharingIntent, "graficos.pdf");
                    intent.AddFlags(ActivityFlags.NewTask);
                    Android.App.Application.Context.StartActivity(intent);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }