QUEBRA DE LINHA NO FLEXGRID COM 2 CAMPOS
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
Porem somente aparece o campo rTabela("descricao") na celula
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
Talvez tenha que aumentar a altura da linha...
.TextMatrix.RowHeight(.rows-1) = xxxx "teste valores diferentes aqui pra uma altura que seja apropriada
Ou simplesmente dobrar o tamanho de todas as linhas de uma vez(fora do loop):
NomeDoSeuGrid.RowHeight(-1) = NomeDoSeuGrid.RowHeight(1) * 2
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