Problema em Perda de Definição de Padrão CSS QTableview ao Salvar GRID MVC

O padrão do Protheus permite corretamente definir um padrão CSS alternativo para GRIDs do Protheus, onde através de propriedades da QTableView, também explorado pela TOTVS na release 2310, podemos definir padrões de cores da linha e célula em foco, bem como a definição de cores, bordas, tipos e tamanhos de fontes, entre outras configurações (Padrão QtTableView).

Com o comando abaixo, na ViewDef podemos definir o padrão do CSS desejado: oView:SetViewProperty(cIDViewGrid,"SETCSS", { cCSSGrid } )

https://tdn.totvs.com/display/public/framework/FWFormView

Exemplo de Padrão de CSS adotado que causou a inconsistência:


 QHeaderView::section {     font: bold 14px;      color: #FFFFFF;
     background-color: #666666;     border: 1px solid #666666;     height: 30px;
 }

 QTableView {     font: bold 14px Arial;      color: #000080 ;
     alternate-background-color: #F0FFFF ;      background-color: #1C9DBD ;
     selection-background-color: #FFFFFF ;      selection-color: #FFFFFF ;
     border: 3px solid #FFFFFF ;     grid-line-color: white; }

 QTableView::item:focus {     color: white ;     background:#7A2712 ; } }

 QTableView::item:selected {     border: 3px solid #FFFFFF ;
     background:#7A2712 ; } }

Ao definir o CSS apresenta correta as cores na GRID, podendo navegar entre as linhas e colunas corretamente.

Porém ao excluir uma linha ou ao Salvar a Tela MVC sem sair da tela, parte da formatação é perdida (Mesmo na Release 2310), voltando aos valores padrões da TOTVS.

Nota: Não consegui identificar via Debug a mudança do CSS. Dentro do Componente MVC a definição do CSS é mantida, porém a FwMbrowse/TGrid interna parece estar tendo outro comportamento.

Devido a esse problema torna o processo de personalizar as cores da GRID bem limitado e parece que tem a ver com as opções do QTableView adicionais, tais como item:focus e item:selected.

Gostaria de saber se alguém já passou por esse problema e já teve alguma solução para isso?

Boa tarde, Carlos!

Acredito que o problema ocorre pois existe um "chave" (caractere "}") a mais no focus e selected. Fiz um teste removendo essa chave extra e funcionou corretamente.

Exemplo sem o chave:


 QHeaderView::section {     font: bold 14px;      color: #FFFFFF;
     background-color: #666666;     border: 1px solid #666666;     height: 30px;
 }

 QTableView {     font: bold 14px Arial;      color: #000080 ;
     alternate-background-color: #F0FFFF ;      background-color: #1C9DBD ;
     selection-background-color: #FFFFFF ;      selection-color: #FFFFFF ;
     border: 3px solid #FFFFFF ;     grid-line-color: white; }

 QTableView::item:focus {     color: white ;     background:#7A2712 ; } 

 QTableView::item:selected {     border: 3px solid #FFFFFF ;
     background:#7A2712 ; }

Obrigado Giordano!

Sabe aqueles dias que parece que você não enxerga mais onde está o problema.

Foi exatamente o caso!
Muito Obrigado!

O problema era esse mesmo!

Um fato curioso Apenas para ficar registrado: Mesmo com as chaves extras, o problema não ocorria no SmartClient HTML com WebAgent na Release 2310. Mas agora com o ajuste funcionou corretamente no SmartClient Desktop.

Sei muito bem como é. :slight_smile: Que bom que deu certo!