brenoleite8/pivottable 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

brenoleite8/pivottable

Composer 安装命令:

composer require brenoleite8/pivottable

包简介

A PivotTable for use with Mad Builder or Adianti Framework.

README 文档

README

Adaptação da ferramenta PivotTable.js (https://pivottable.js.org/) para utilização no Adianti Framework e MadBuilder.

Obs: Está sendo utilizada a versão 2.23.0 do componente PivotTable.js.

Instalação

MadBuilder

Na aba "Composer packages" adicione:

brenoleite8/pivottable:dev-master

Adianti Framework

Navegue até o diretório raiz do projeto Adianti Framework usando o terminal:

cd /caminho/do/seu/projeto

Use o comando composer require para adicionar a biblioteca:

composer require brenoleite8/pivottable:dev-master

Utilização

No início da classe que irá utilizar a ferramenta, adicione :

use Brenoleite8\pivottable\BLPivotTable;

Utilize as classes BElement ou TElement para inserir a PivotTable.

Exemplo:

    <?php
    
    use Brenoleite8\pivottable\BLPivotTable;
    
    class PivotTableForm extends TPage
    {
        protected $form;
        private $formFields = [];
        private static $database = '';
        private static $activeRecord = '';
        private static $primaryKey = '';
        private static $formName = 'form_PivotTableForm';
    
        /**
         * Form constructor
         * @param $param Request
         */
        public function __construct( $param = null)
        {
            parent::__construct();
    
            if(!empty($param['target_container']))
            {
                $this->adianti_target_container = $param['target_container'];
            }
    
            // creates the form
            $this->form = new BootstrapFormBuilder(self::$formName);
            // define the form title
            $this->form->setFormTitle("PivotTable");
    
    
            $element_pivot = new BElement('div');
    
    
            $element_pivot->setSize('100%', 80);
    
            $element_pivot->id = 'element_pivot';
    
            $this->element_pivot = $element_pivot;
    
            // Obtém os dados do repositório
            TTransaction::open('db_ferramentas');
            $objects = VendasCompleta::all();
            TTransaction::close();
    
            // Configura a PivotTable
            $pivottable = new BLPivotTable();
            $pivottable->setRows(['pessoa']); // Campos exibidos como linhas
            $pivottable->setColumns(['mes']); // Campos exibidos como colunas
            $pivottable->setObjects($objects); // Dados carregados na tabela
            $pivottable->setAggregator('Soma');
            $pivottable->setValAggregator(['Valor Total']);
            $pivottable->setTypeTable('Mapa de Calor');
            $pivottable->setFieldNames([
                'venda_id'      => 'ID da Venda',
                'pessoa'        => 'Nome da Pessoa',
                'produto'       => 'Produto',
                'categoria'     => 'Categoria',
                'data_venda_br' => 'Data da Venda',
                'mes'           => 'Mês',
                'ano'           => 'Ano',
                'quantidade'    => 'Quantidade',
                'preco'         => 'Preço Unitário',
                'total_venda'   => 'Valor Total'
            ]);
            $show_table = $pivottable->show();
            $element_pivot->add($show_table);
            $row1 = $this->form->addFields([$element_pivot]);
            $row1->layout = [' col-sm-12'];
    
            // create the form actions
    
            // vertical box container
            $container = new TVBox;
            $container->style = 'width: 100%';
            $container->class = 'form-container';
            if(empty($param['target_container']))
            {
                // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
            }
            $container->add($this->form);
    
            parent::add($container);
    
        }
    
        public function onShow($param = null)
        {               
    
        } 
    
    }
    
    ?>

Outros recursos

O PivotTable.js oficial possui inúmeros recursos. Inicialmente, foi desenvolvido apenas com os básicos, mas os outros podem ser adicionadas futuramente.

Contribuições

Entre em contato no email brenoleite8@outlook.com.

brenoleite8/pivottable 适用场景与选型建议

brenoleite8/pivottable 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 77 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 12 月 28 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 brenoleite8/pivottable 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 brenoleite8/pivottable 我们能提供哪些服务?
定制开发 / 二次开发

基于 brenoleite8/pivottable 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 77
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 18
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-12-28