Você já precisou deixar uma linha de uma grid em MVC com uma cor diferente? Iremos demonstrar no artigo de hoje.
Quando montamos uma tela em MVC, alguns usuários podem sentir algumas diferenças com as telas clássicas. Como por exemplo, na utilização de grids, as linhas não são pintadas automaticamente, conforme o print abaixo:
Notaram que ele deixa apenas uma borda de qual campo foi clicado? E se o usuário quisesse que a linha inteira fosse pintada? Como poderíamos fazer isso?
Nós podemos utilizar o método SetViewProperty dentro da nossa ViewDef, passando o nome da nossa grid, e o CSS, modificando assim a cor da linha selecionada e da cor do texto (selection-background-color e selection-color respectivamente).
Então, nossa ViewDef, ficaria dessa forma:
Static Function ViewDef() Local oModel := FWLoadModel("zMVC02") Local oStruPai := FWFormStruct(2, cTabPai) Local oStruFilho := FWFormStruct(2, cTabFilho) Local oView //Cria a visualizacao do cadastro oView := FWFormView():New() oView:SetModel(oModel) oView:AddField("VIEW_ZD2", oStruPai, "ZD2MASTER") oView:AddGrid("VIEW_ZD3", oStruFilho, "ZD3DETAIL") //Agora define o CSS da grid oView:SetViewProperty("VIEW_ZD3", "SETCSS", {"QTableView { selection-background-color: #1C9DBD; selection-color: #FFFFFF; }"} ) //... Continuação do seu código da View ...
Abaixo um print de como que fica com essa alteração, ao clicar em cima da linha.
Para montagem desse artigo, usamos como referência uma resposta do Felipe Caiado Almeida no devforum.totvs.com.br.
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Atilio,
É possível alterar a cor da linha de acordo com alguma regra ?
No MsNewGetDados há a propriedade SetBlkBackColor onde conseguiria tratar a regra e retornar a cor.
Existe algo nesses grids em MVC ?
Bom dia Irineu.
Olha, eu particularmente nunca precisei fazer em MVC, então não sei dizer se existe ou não.
Depois quando eu tiver um tempinho, irei pesquisar mais para ver se encontro algo.
Abraços.
Valeu!
Se achar algo e conseguir compartilhar será util.
Como sempre seus artigos são sensacionais, que pena que você tá com aquele probleminha e pode ser que não esteja aqui entre nós para colher os frutos do seu trabalho. Mas Deus é conosco!
Eita Brunão, essa foi boa rsrs.
Grande abraço.
Bom dia,
A publicação tem um tempo. mas vamos lá.
na SetViewProperty seria possível passar um bloco de código {|| } que chame uma função para tratar conforme tem no MsNewGetDados com metodo SetBlkBackColor ?
Alguém já fez algo parecido ?
Bom dia Edson, tudo joia?
Via SetViewProperty desconheço.
Mas se você for usar a FWBrowse, tem como mudar a cor de fundo da linha através da herança com a TGrid, segue um link de exemplo: https://terminaldeinformacao.com/2024/08/21/como-alterar-a-cor-da-linha-de-um-fwbrowse/
Tenha uma ótima e abençoada terça feira.
Um grande abraço.