QUEBRA DE LINHA NO FLEXGRID COM 2 CAMPOS

AMELINHACODE 24/11/2022 21:49:20
#500818
Boa noite pessoal,

Preciso colocar em uma celula do flexgrid 2 campos... um sobre o outro na mesma celular
exemplo:

01 | SERVIÇO | CONFECÇÃO DE PLACA DE POLIETILENO | R$ 200,00 | 1 | R$ 200,00
.........................| Medidas 10x5 cor: vermelha Letras Douradas |

Veja que a Descrição "CONFECÇÃO DE PLACA DE POLIETILENO" fica na parte de cima da celular e na mesma celular, na parte de baixo ver o campo Obs (Medidas 10x5 cor: vermelha Letras Douradas)

já coloquei MSFlexGrid1.WordWrap = True

Fiz o código assim
If Not rTabela Is Nothing Then
Do While Not rTabela.EOF
.TextMatrix(.rows - 1, 1) = rTabela("var_COD")
.TextMatrix(.rows - 1, 2) = rTabela("VAR_TIPO")
.TextMatrix(.rows - 1, 3) = rTabela("descricao") & vbCrLf & rTabela("obs")
.TextMatrix(.rows - 1, 4) = Format(rTabela("preco"), ocMONEY)
.TextMatrix(.rows - 1, 5) = rTabela("quantidade")
.TextMatrix(.rows - 1, 6) = Format(rTabela("var_SUBTOTAL"), ocMONEY)
.TextMatrix(.rows - 1, 7) = Format(rTabela("var_desconto"), ocMONEY)
.TextMatrix(.rows - 1, 8) = Format(rTabela("var_total"), ocMONEY)
.TextMatrix(.rows - 1, 9) = rTabela("var_CODITEM")

rTabela.MoveNext
.rows = .rows + 1
i = i + 1
Loop
End If


Porem somente aparece o campo rTabela("descricao") na celula
KERPLUNK 25/11/2022 18:40:26
#500824
Talvez tenha que aumentar a altura da linha...

.TextMatrix.RowHeight(.rows-1) = xxxx "teste valores diferentes aqui pra uma altura que seja apropriada
KERPLUNK 25/11/2022 18:41:45
#500825
Ou simplesmente dobrar o tamanho de todas as linhas de uma vez(fora do loop):

NomeDoSeuGrid.RowHeight(-1) = NomeDoSeuGrid.RowHeight(1) * 2
AMELINHACODE 25/11/2022 22:17:20
#500826
Citação:

:
Ou simplesmente dobrar o tamanho de todas as linhas de uma vez(fora do loop):


NomeDoSeuGrid.RowHeight(-1) = NomeDoSeuGrid.RowHeight(1) * 2



       .RowHeight(-1) = .RowHeight(1) * 2

If Not rTabela Is Nothing Then
Do While Not rTabela.EOF
.TextMatrix(.rows - 1, 1) = rTabela("var_COD")
.TextMatrix(.rows - 1, 2) = rTabela("VAR_TIPO")
.TextMatrix(.rows - 1, 3) = rTabela("descricao") & vbCrLf & rTabela("var_obs")
.TextMatrix(.rows - 1, 4) = Format(rTabela("preco"), ocMONEY)
.TextMatrix(.rows - 1, 5) = rTabela("quantidade")
.TextMatrix(.rows - 1, 6) = Format(rTabela("var_SUBTOTAL"), ocMONEY)
.TextMatrix(.rows - 1, 7) = Format(rTabela("var_desconto"), ocMONEY)
.TextMatrix(.rows - 1, 8) = Format(rTabela("var_total"), ocMONEY)
.TextMatrix(.rows - 1, 9) = rTabela("var_CODITEM")

rTabela.MoveNext
.rows = .rows + 1
i = i + 1
Loop
End If


Coloquei assim e aconteceram 2 fatores:
Meu grid possui na primeira linha o cabeçalho de coluna e mais 4 linhas com produtos (exemplo)

Caso 1:
Somente o cabeçalho e a primeira linha dobraram o altura, as demais linhas permanecem do mesmo jeito
Caso 2:
Caso eu remova ou adicione mais um produto e repita a formatação do grid, as duas linhas que estão mais mais, fica o dobro do dobro.... cada vez q eh foçado a formatação, aplica-se mais uma vez o dobro.

Seria interessante, somente dobrar a altura das linhas que o campo OBS tivesse algo preenchido nele.
tipo assim:

if rTabela("var_obs") = "" the
.TextMatrix(.rows - 1, 3) = rTabela("descricao")
else
.TextMatrix(.rows - 1, 3) = rTabela("descricao") & vbCrLf & rTabela("var_obs")
end if


Faça seu login para responder