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
Imagens das Telas
https://drive.google.com/file/d/1BWuX4U63eDETFitf4vNTw5x6C5RmwyhI/view?usp=sharing
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
- <?php
- // Add Frame Programas -------------------------------------------------
- $frame_programas = new TFrame( NULL, 280 );
- $frame_programas->style .= ';height:100%; min-height:200px; margin:0px';
- // Add Botão
- $btn_prg = TButton::create('Addprg', array( $this, 'onAddPrograma' ), _t('Add'), 'fas:plus fa-lg green');
- // Campo
- $PRG_ID = new TDBCombo('PRG_ID', 'MKDG_BD', 'SysTblPrograma', 'PRG_ID', '{PRG_NOME} -> {PRG_CLASSE}');
- $PRG_ID->setSize('700');
- $PRG_ID->enableSearch();
- // Grid
- $this->program_list = new TQuickGrid;
- $this->program_list->datatable = 'true';
- $this->program_list->style = "width: 100%; border-top: 2px solid green";
- $this->program_list->id = 'program_list';
- $this->program_list->makeScrollable();
- $this->program_list->disableDefaultClick();
- $this->program_list->setHeight('240');
- $this->program_list->addQuickColumn(_t('Delete'), 'delete', 'center', '05%');
- $this->program_list->addQuickColumn('Lcto', 'PRG_ID', 'center', '10%');
- $this->program_list->addQuickColumn(_t('Name'), 'PRG_NOME', 'left', '40%');
- $this->program_list->addQuickColumn(_t('Class'), 'PRG_CLASSE', 'left', '45%');
- // create the datagrid model
- $this->program_list->createModel();
- // Add Boxs
- $hbox1 = new THBox;
- $hbox1->add( $btn_prg );
- $hbox1->add( $PRG_ID );
- $hbox1->style = 'margin: 15px 0';
- $vbox1 = new TVBox;
- $vbox1->style = 'width:100%';
- $vbox1->add( $hbox1 );
- $vbox1->add( $this->program_list );
- $frame_programas->add( $vbox1 );
- // Add Frame Grupos ----------------------------------------------------
- $frame_users = new TFrame( NULL, 280 );
- $frame_users->style .= ';height:100%; min-height:200px; margin:0px';
- // Add Botão
- $btn_user = TButton::create('Addusu', array( $this, 'onAddUser'), _t('Add'), 'fas:plus fa-lg green');
- // Campo
- $USU_ID = new TDBCombo('USU_ID', 'MKDG_Geral', 'SysTblUser', 'USU_ID', '{USU_NOME} - {USU_LOGIN}');
- $USU_ID->setSize('700');
- $USU_ID->enableSearch();
- // Grid
- $this->users_list = new TQuickGrid;
- $this->users_list->datatable = 'true';
- $this->users_list->style = "width: 100%; border-top: 2px solid green";
- $this->users_list->id = 'users_list';
- $this->users_list->makeScrollable();
- $this->users_list->disableDefaultClick();
- $this->users_list->setHeight('240');
- $this->users_list->addQuickColumn(_t('Delete'), 'delete', 'center', '05%');
- $this->users_list->addQuickColumn('Lcto', 'USU_ID', 'center', '10%');
- $this->users_list->addQuickColumn(_t('Name'), 'USU_NOME', 'left', '40%');
- $this->users_list->addQuickColumn('Login', 'USU_LOGIN', 'left', '45%');
- // create the datagrid model
- $this->users_list->createModel();
- // Add Boxs
- $hbox2 = new THBox;
- $hbox2->add( $btn_user );
- $hbox2->add( $USU_ID );
- $hbox2->style = 'margin: 15px 0';
- $vbox2 = new TVBox;
- $vbox2->style = 'width:100%';
- $vbox2->add( $hbox2 );
- $vbox2->add( $this->users_list );
- $frame_users->add( $vbox2 );
- // Add Fields ----------------------------------------------------------
- $this->form->addField( $btn_prg );
- $this->form->addField( $PRG_ID );
- $this->form->addField( $btn_user );
- $this->form->addField( $USU_ID );
- // Add Paginacao
- $notebook = new BootstrapNotebookWrapper( new TNotebook());
- $notebook->appendPage( '<b>PROGRAMAS</b>', $frame_programas );
- $notebook->appendPage( '<b>USUÁRIOS</b>', $frame_users );
- // TForm add $notebook
- $this->form->addContent([ '' ]);
- $this->form->addContent( [new TFormSeparator($lbl_pro)] );
- $this->form->addContent([ $notebook ]);
- $container = new TVBox;
- $container->style = 'width:100%';
- $container->add(new TXMLBreadCrumb('menu.xml', 'Cfg_GroupList'));
- $container->add($this->form);
- // add the form to the page
- parent::add($container);
- ?>
Imagens das Telas
https://drive.google.com/file/d/1BWuX4U63eDETFitf4vNTw5x6C5RmwyhI/view?usp=sharing
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
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.
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
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
Olá Marco,
Você conseguiu descobrir alguma solução sobre esse assunto?
atc
Valdiney
Boas,
Não infelizmente não.
Olá, e ai Marco ou alguém achou a solução estou com esse problema pra resolver e nada!