Block.00/00

/*Respostas para a sessão de perguntas e respostas do Dashboards Livestream*/

People, colleagues, DataFlex, Q&A, Livestream
May 9, 2025

Nossa transmissão ao vivo sobre Dashboards no DataFlex foi repleta de insights, exemplos práticos e uma visão mais detalhada de como os dashboards ajudam você a transformar dados em ação.

Vocês fizeram ótimas perguntas! Algumas foram enviadas ao vivo, outras foram enviadas antecipadamente ou por e-mail. Reunimos todas elas, adicionamos alguns detalhes extras quando necessário e as compilamos neste artigo.

Curioso para saber o que os outros queriam saber ou perdeu parte da sessão de perguntas e respostas? Role para baixo e atualize-se! As respostas abaixo foram traduzidas para o português usando IA.

Vá para as respostas em inglês     Vá para as respostas em alemão

 

  • Você pode adicionar apenas controles DataFlex ao widget?
    Basicamente, qualquer coisa que você possa adicionar a uma aplicação web também é possível aqui. Você pode usar qualquer controle, tornar widgets cientes dos dados e até mesmo usar SQL direto em seus widgets. Qualquer coisa que funcione no DataFlex Web Framework também pode ser feita em um widget.
     
  • Como posso criar um Dashboard personalizado com widgets personalizados?
    Você também pode escrever código DataFlex para definir exatamente quais widgets deseja, onde eles devem aparecer no dashboard e como devem ser configurados. Ou pode simplesmente usar a interface visual: arraste os widgets para a tela, e eles automaticamente se tornarão parte da configuração. Você também pode definir uma configuração personalizada do dashboard preenchendo as estruturas de configuração em seu código. Há várias maneiras de construir e personalizar seu dashboard.
     
  • Como salvar as configurações dos widgets? Isso é feito apenas por meio de armazenamento local ou também no banco de dados?
    Adicionamos vários hooks ao framework de Dashboards, sendo os principais OnLoadConfiguration e OnSaveCustomConfiguration. Eles fornecem acesso à estrutura completa que define toda a configuração do dashboard. Isso inclui quais widgets ele contém, seu tamanho e posição, além das configurações.

    Você pode usar essa estrutura para, por exemplo, converter os dados para JSON e armazená-los em um campo de banco de dados vinculado a um usuário específico. Dessa forma, você pode facilmente vincular um dashboard personalizado a um usuário. Alternativamente, você pode salvar em um arquivo de configuração, há várias opções. Funciona de forma semelhante à forma como o WebList lida com sua configuração de layout personalizada.
     
  • Se você começar com armazenamento local, pode solicitar esses dados ao servidor caso mude para armazená-los no banco de dados?
    Sim, se você começar com armazenamento local, pode migrar a configuração para o servidor quando mudar para armazená-la no banco de dados. Por exemplo, trabalhando com versões. Na versão 1, as configurações de dashboard são armazenadas no armazenamento local, mas na versão 1.5, elas são movidas para o banco de dados. Quando o usuário fizer login, você pode rodar uma verificação de inicialização para transferir a configuração. Como as configurações dos widgets já são processadas através do código DataFlex, você pode conectar-se a esse processo para lidar com a migração.
     
  • Onde posso encontrar a demonstração usada na apresentação?
    Ela está na conta do GitHub do DataFlex.dev!
     
  • Quais tipos de gráficos posso usar nos dashboards?
    Estamos trabalhando em uma biblioteca de gráficos que permitirá integrar diferentes bibliotecas JavaScript de gráficos dentro do DataFlex Web Framework. Essencialmente, estamos criando um controle que pode hospedar esses gráficos, e forneceremos uma API genérica que funciona com várias bibliotecas, como Chart.js, HighCharts e Syncfusion Charts.

    Essa biblioteca estará disponível em breve e pode ser usada em Dashboards. Outra opção é o controle Web Drawing, onde o código DataFlex gera os gráficos para você, sem a necessidade de controles personalizados. Você também pode encontrar bibliotecas de gráficos nos fóruns, por exemplo:
  • Como mudar o tipo de gráfico?
    A biblioteca de gráficos usada no exemplo suporta vários tipos de gráficos. Planejamos lançar essa biblioteca em breve. Para mudar o tipo de gráfico, você pode modificar diretamente o valor na biblioteca através da API. Isso pode ser feito ajustando a configuração do widget. Você remodelaria ligeiramente o widget, mudaria o tipo de gráfico e os dados permaneceriam válidos, apenas exibidos em um formato diferente. O tipo de gráfico é controlado por uma propriedade específica.
     
  • Você pode usar Dashboards também em uma aplicação Windows?
    Sim, você pode usar o FlexTron para integrar controles web em uma aplicação Windows. Basta criar um contêiner cLocalWebControlHost em sua aplicação e colocar o cWebWidgetContainer dentro dele.
     
  • Os widgets também suportam o modo tablet de arrastar e soltar e personalização?
    Não, arrastar e soltar e reorganizar os dashboards por toque não são suportados. Isso está na nossa lista de desejos. Isso poderia ser feito programaticamente fornecendo uma interface alternativa. A configuração padrão do dashboard suporta responsividade usando WebSetResponsive.
     
  • Os widgets podem se comunicar com formatos de API?
    Dentro do DataFlex, você pode consumir vários tipos de APIs, incluindo web services e APIs do tipo C. Você definitivamente pode construir widgets que interagem com uma API, carregam dados dela e os exibem. Isso é totalmente suportado.
     
  • É possível usar SQL nos widgets?
    Sim, definitivamente! Também fizemos melhorias significativas na forma como as consultas SQL são tratadas e executadas no DataFlex. Você pode aproveitar ao máximo isso em seus widgets. Torne seus widgets cientes dos dados sem usar Data Dictionaries - SQL é uma opção.
     
  • Se você tiver mais de um contêiner de widget dentro de uma view, pode arrastar widgets de um contêiner para outro?
    O cWebWidgetContainer atualmente não pode atuar como uma fonte de arraste para o cWebDragDropHandler, apenas como um alvo de soltura. Colocaremos isso em nossa lista de desejos e veremos se conseguimos oferecer suporte a isso em uma revisão futura.
     
  • Se você tiver várias views com dashboards totalmente configurados e quiser adicionar um novo widget ao dashboard para que todos possam vê-lo, como você abordaria isso?
    Isso não é necessariamente parte do framework em si, mas o contêiner inclui lógica que permite pegar a configuração, remodelá-la e atualizá-la. Assim, na próxima vez que o dashboard for carregado, o widget estará lá. Você pode trabalhar com números de versão para a configuração do widget. Se você incrementar essa versão, ela invalida quaisquer configurações armazenadas e os usuários voltarão ao dashboard padrão. Se quiser adicionar um novo widget à configuração existente do dashboard, precisará escrever um código personalizado. Por exemplo, rodando uma verificação durante a inicialização para aplicar a configuração correta.
     
  • Se eu tiver a janela composta aberta no Studio e o designer a lidar bem, o designer também modelará corretamente se eu abri-la como um cWebGroup com objetos dentro?
    O designer procura uma meta tag chamada "component type", que é configurada para cWebWidget. É isso que o Studio pega para criar um modelo no designer. Você pode configurar isso na sua própria subclasse de cWebGroup, ou até mesmo na composição. É fácil de fazer, basta verificar a classe cWebWidget e ver quais meta tags estão configuradas. Você pode então adicionar essa meta tag à sua própria implementação composta, e isso deve funcionar.
     
  • Além dos widgets, quais são outros bons usos para classes compostas? Coisas que você deve ou não deve fazer?
    O que você não deve fazer - ainda não tenho certeza, pois é um recurso de linguagem de baixo nível com muitas possibilidades. Alguns clientes sugeriram que ele poderia ser usado para compartilhar estruturas de DDO entre diferentes views, o que poderia funcionar tecnicamente, mas o studio não detectaria isso. As classes compostas funcionam bem com o contêiner de objetos dinâmicos, que é para isso que foi projetado. Usar a classe composta é a abordagem natural.
     
  • O que vem a seguir para os Dashboards?
    Não há nada de grande diretamente sobre os Dashboards no momento, apenas alguns ajustes menores. No entanto, estamos realmente empolgados para ver o que você fará com esses dashboards. Em termos de grandes lançamentos de produtos, o Package Manager e o Technology Stack estão programados para transformar o cenário do desenvolvimento de aplicações web no DataFlex. 

 

Block.00/00

Veja as respostas do Q&A da Technology Stack Livestream

Perdeu nossa sessão ao vivo sobre para onde o DataFlex está caminhando? Não se preocupe, você ainda pode assistir ao Q&A completo! Fizemos um mergulho profundo na Technology Stack em evolução que está moldando o futuro do desenvolvimento DataFlex. Pronto para se atualizar ou conferir o que perdeu? Confira agora!

Ver respostas do Q&A da Technology Stack Livestream