Inscrições abertas para nosso Webinar anual Adianti Framework 2024!
Clique aqui para saber mais
Erro no Header da Datagrid Boas; Na criação das datagrids conforme figura logo abaixo, o header esta aparecendo desalinhados, quando usamos TNotebook, depurando as datagrids observei que isso so acontece é usado porcentagens. Mas infelizmente não achei logica para tal erro. Alguem tem alguma dica ? Tela 1 - html certo `...
MC
Erro no Header da Datagrid  
Boas;

Na criação das datagrids conforme figura logo abaixo, o header esta aparecendo desalinhados, quando usamos TNotebook, depurando as datagrids observei que isso so acontece é usado porcentagens. Mas infelizmente não achei logica para tal erro.

Alguem tem alguma dica ?

Tela 1 - html certo
`<th class="tdatagrid_col sorting_disabled" style="text-align: center;user-select: none;width: 5%;" width="05%" rowspan="1" colspan="1">Excluir</th>
`
Tela 2 - html errado
`<th class="tdatagrid_col sorting_disabled" style="text-align: center; user-select: none; width: 0px;" width="05%" rowspan="1" colspan="1">Excluir</th>`


codigo fonte

  1. <?php
  2.         // Add Frame Programas ------------------------------------------------- 
  3.         $frame_programas = new TFrameNULL280 );
  4.         $frame_programas->style .= ';height:100%; min-height:200px; margin:0px';
  5.         // Add Botão
  6.         $btn_prg TButton::create('Addprg', array( $this'onAddPrograma' ), _t('Add'), 'fas:plus fa-lg green');
  7.         // Campo
  8.         $PRG_ID = new TDBCombo('PRG_ID''MKDG_BD''SysTblPrograma''PRG_ID''{PRG_NOME} -> {PRG_CLASSE}');
  9.         $PRG_ID->setSize('700');
  10.         $PRG_ID->enableSearch();
  11.         // Grid
  12.         $this->program_list = new TQuickGrid;
  13.         $this->program_list->datatable 'true';
  14.         $this->program_list->style "width: 100%; border-top: 2px solid green";  
  15.         $this->program_list->id    'program_list';
  16.         $this->program_list->makeScrollable();
  17.         $this->program_list->disableDefaultClick();
  18.         $this->program_list->setHeight('240');
  19.                  
  20.         $this->program_list->addQuickColumn(_t('Delete'), 'delete',     'center''05%');
  21.         $this->program_list->addQuickColumn('Lcto',       'PRG_ID',     'center''10%');
  22.         $this->program_list->addQuickColumn(_t('Name'),   'PRG_NOME',   'left',   '40%');
  23.         $this->program_list->addQuickColumn(_t('Class'),  'PRG_CLASSE''left',   '45%');
  24.         // create the datagrid model
  25.         $this->program_list->createModel();
  26.         // Add Boxs
  27.         $hbox1 = new THBox;
  28.         $hbox1->add$btn_prg );
  29.         $hbox1->add$PRG_ID );
  30.         $hbox1->style 'margin: 15px 0';
  31.         $vbox1 = new TVBox;
  32.         $vbox1->style 'width:100%';
  33.         $vbox1->add$hbox1 );
  34.         $vbox1->add$this->program_list );
  35.         $frame_programas->add$vbox1 );
  36.         
  37.         // Add Frame Grupos ---------------------------------------------------- 
  38.         $frame_users = new TFrameNULL280 );
  39.         $frame_users->style .= ';height:100%; min-height:200px; margin:0px';
  40.         // Add Botão
  41.         $btn_user TButton::create('Addusu', array( $this'onAddUser'), _t('Add'), 'fas:plus fa-lg green');
  42.         // Campo
  43.         $USU_ID = new TDBCombo('USU_ID''MKDG_Geral''SysTblUser''USU_ID''{USU_NOME} - {USU_LOGIN}');
  44.         $USU_ID->setSize('700');
  45.         $USU_ID->enableSearch();
  46.         // Grid
  47.         $this->users_list = new TQuickGrid;
  48.         $this->users_list->datatable 'true';
  49.         $this->users_list->style "width: 100%; border-top: 2px solid green";  
  50.         $this->users_list->id    'users_list';
  51.         $this->users_list->makeScrollable();
  52.         $this->users_list->disableDefaultClick();
  53.         $this->users_list->setHeight('240');
  54.         $this->users_list->addQuickColumn(_t('Delete'), 'delete',    'center''05%');
  55.         $this->users_list->addQuickColumn('Lcto',       'USU_ID',    'center''10%');
  56.         $this->users_list->addQuickColumn(_t('Name'),   'USU_NOME',  'left',   '40%');
  57.         $this->users_list->addQuickColumn('Login',      'USU_LOGIN''left',   '45%');       
  58.         // create the datagrid model
  59.         $this->users_list->createModel();
  60.         // Add Boxs
  61.         $hbox2 = new THBox;
  62.         $hbox2->add$btn_user );
  63.         $hbox2->add$USU_ID );
  64.         $hbox2->style 'margin: 15px 0';
  65.         $vbox2 = new TVBox;
  66.         $vbox2->style 'width:100%';
  67.         $vbox2->add$hbox2 );
  68.         $vbox2->add$this->users_list );
  69.         $frame_users->add$vbox2 );
  70.         
  71.         // Add Fields ----------------------------------------------------------
  72.         $this->form->addField$btn_prg );
  73.         $this->form->addField$PRG_ID );
  74.         $this->form->addField$btn_user );
  75.         $this->form->addField$USU_ID );
  76.         
  77.         // Add Paginacao
  78.         $notebook = new BootstrapNotebookWrapper( new TNotebook());
  79.         $notebook->appendPage'<b>PROGRAMAS</b>'$frame_programas ); 
  80.         $notebook->appendPage'<b>USUÁRIOS</b>',  $frame_users ); 
  81.         
  82.         
  83.         // TForm add $notebook
  84.         $this->form->addContent([ '' ]); 
  85.         $this->form->addContent( [new TFormSeparator($lbl_pro)] );
  86.         $this->form->addContent([ $notebook ]); 
  87.         
  88.         $container = new TVBox;
  89.         $container->style 'width:100%';
  90.         $container->add(new TXMLBreadCrumb('menu.xml''Cfg_GroupList'));
  91.         $container->add($this->form);
  92.         
  93.         // add the form to the page
  94.         parent::add($container);
  95. ?>



Imagens das Telas

https://drive.google.com/file/d/1BWuX4U63eDETFitf4vNTw5x6C5RmwyhI/view?usp=sharing

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (7)


PN

Salve Marcos,

Tenho a impressão que o problema vem do makeScrollable(). Se não for muito oneroso, faça um teste com as alterações abaixo:

Use:

$scroll = new TScroll();
$scroll->setTransparency('TRUE');
$scroll->setSize('100%', 348);
$scroll->add($this->users_list );

E depois no vbox2:

$vbox2->add( $scroll );

Abs,

Paulo Nobre
MC

Paulo,

Valeu a tentativa mas nao deu certo, não acho que o probelama esta no scroll,
pq se eu coloco uma destas grid em primeiro ela da certo mas da segunda em diante não.

Eu ja tive este problema antes, na versão 5.5, e resolvi, mas não me lembro como, só sei que tive que fazer uma mudança em algum component.
PN

Salve Marco,

Eu tenho uma interface semelhante a sua, só que ao invés de usar o TNotebook, uso:

//===============================================
//
$this->form->appendPage("Contatos");
//
//===============================================

$this->form->addFields([new THidden('current_tab')]);
$this->form->setTabFunction("$('[name=current_tab]').val($(this).attr('data-current_page'));");

A Gird normal:

// Preparando o Grid
$this->Dbpessoacontato_grid = new TQuickGrid;
$this->Dbpessoacontato_grid->class='tdatagrid_table customized-table';
$this->Dbpessoacontato_grid->style = 'width: 100%';


Acho mais simples e também funcional. Uso varias abas e com este recurso, todas as minhas grids ficam 100%, bem alinhadas, funcionando como esperado !!!

Se vc tiver condições, faça um teste rápido.

Abs,

Paulo
MC

Paulo, boas

Para fazer este mudança, teria que mudar muita coisa aqui..,
mas estive notando que existe um erro na montagem do hearder na versão 7.2, de uma olhada na mesma grid na versão 5,5

5.5 <th class="tdatagrid_col" style="text-align:center;user-select:none" width="05%">Excluir</th>
7,2 <th class="tdatagrid_col" style="text-align: center;user-select: none;width: 5%;" width="05%" rowspan="1" colspan="1">Excluir</th> correta
7,2 <th class="tdatagrid_col" style="text-align: center; user-select: none; width: 0px;" width="05%" rowspan="1" colspan="1">Excluir</th> errada

percebe que tem um width a mais, e que na segundo 7.2 o segundo width esta correto, mas na posicao onde está ele não tem efeito !

E exatamente assim que eh gerado cabecalho das grids na nova versão, existe algum comando que faz a alteracao do width, mas por algum motivo ao invez de altera-lo coloca ele no lugar errado.

Tive notando tambem que antes de montar a grid, e gerado um objeto dela, depois ela eh montada eh ai que esta o erro. estou quaze la......

Abraços
VP

Olá Marco,

Você conseguiu descobrir alguma solução sobre esse assunto?

atc

Valdiney
MC

Boas,

Não infelizmente não.
ER

Olá, e ai Marco ou alguém achou a solução estou com esse problema pra resolver e nada!