FORMATAR PARA EXIBIR CAMPOS NO FLEXGRID
para exibir na coluna 4 do flexgrid o tipo de venda eu uso assim:
If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0X
ai na coluna 4 aparece se é DINHEIRO, CARTÃO, CHEQUE ou PROMISSORIA
agora criei um novo campo chamado TIPO_CARTAO.... onde armazeno somente uma letra.... C ou D
C = crédito
D = debito
entao eu tava querendo formatar o campo para exibição assim:
CARTÃO ([txt-color=#e80000]C[/txt-color])
CARTÃO ([txt-color=#e80000]D[/txt-color])
ou seja:
RS!CAMPO0X ([txt-color=#e80000]R$!TIPO_CARTAO[/txt-color])
cara nao entendi direito.. mas faça um loop na coluna.. talvez faça o que ta querendo..
Sub PreencherColunas()
Dim iL As Integer, iC As Integer
With MSFlex
For iL = 1 To .Rows - 1
For iC = 0 To .Cols - 1
.Col = iC
.Row = iL
If .TextMatrix(.Row, 4) = [Ô]DINHEIRO[Ô] Then
.Textmatrix(.Row,4)=[Ô]C[Ô]
.ElseIf .TextMatrix(.Row, 4) = [Ô]CARTAO[Ô] Then
.TextMatrix(.Row,4)=[Ô]D[Ô]
End If
Next iC
Next iL
End With
End Sub
Acho q esse código tah errado:
Pelo que entendi seu codigo vai ler o q tem na coluna 4 e se for DINHEIRO ele vai colocar na coluna 4 o texto [Ô]C[Ô] e se for CARTÃO ele vai colocar [Ô]D[Ô]
Vou explicar:
Na coluna 4 vai mostrar dados de 1 campo apenas se for DINHEIRO, CHEQUE OUPROMISSORIA, que seria o campo CAMPO0X, se na coluna 4 for igual a CARTAO, entao ele vai mostrar dados de 2 campos.... CAMPO0X ( TIPO_CARTAO )
Entao teria q ser algo parecido com isso:
A logica eu já sei, só me falta saber formatar os 2 campos para serem exibidos assim: campo01 ([txt-color=#e80000]campo02[/txt-color])
Pelo que entendi seu codigo vai ler o q tem na coluna 4 e se for DINHEIRO ele vai colocar na coluna 4 o texto [Ô]C[Ô] e se for CARTÃO ele vai colocar [Ô]D[Ô]
Vou explicar:
Na coluna 4 vai mostrar dados de 1 campo apenas se for DINHEIRO, CHEQUE OUPROMISSORIA, que seria o campo CAMPO0X, se na coluna 4 for igual a CARTAO, entao ele vai mostrar dados de 2 campos.... CAMPO0X ( TIPO_CARTAO )
Entao teria q ser algo parecido com isso:
If .TextMatrix(.Row, 4) <> [Ô]CARTÃO[Ô] Then
.Textmatrix(.Row,4)= RS!CAMPO0X
ElseIf .TextMatrix(.Row, 4) = [Ô]CARTAO[Ô] Then
.TextMatrix(.Row,4)= RS!CAMPO0X (RS!TIPO_CARTAO)
End If
A logica eu já sei, só me falta saber formatar os 2 campos para serem exibidos assim: campo01 ([txt-color=#e80000]campo02[/txt-color])
Mais ou menos isso...
If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0 & [Ô]([Ô] & RS!TIPO & [Ô])[Ô]
Este é meu codigo para exibir os dados nas colunas:
notem q nao coluna 4 eu coloquei um IF para verificar se é CARTÃO ou NÃO é CARTÃO
essa é a parte que me refiro:
Quando exibi nao acontece nada... continua aparecendo os mesmo nomes de antes na coluna... inclussive CARTÃO
Quando eu tiro todo esse IF e deixo somente:
ele me mostra todos os nomes com parenteses ()... exemplo: DINHEIRO (), CHEQUE (), PROMISSORIA () e quando ele chega no cartão ele me mostra certo: CARTÃO ([txt-color=#e80000]C[/txt-color])
então como eu faço para ele colocar somentes os parenteses () no nome cartão ?
m_Saldo = 0
Do Until RS.EOF
If Not IsNull(RS!HORA_PARC) Then .TextMatrix(.Rows - 1, 1) = Format(RS!HORA_PARC, [Ô]hh:mm[Ô])
If Not IsNull(RS!CAMPO00) Then .TextMatrix(.Rows - 1, 2) = Format(RS!CAMPO00, [Ô]000000[Ô])
If Not IsNull(RS!CAMPO01) Then .TextMatrix(.Rows - 1, 3) = RS!CAMPO01
If .TextMatrix(.Rows - 1, 4) <> [Ô]CARTAO[Ô] Then
If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0X
ElseIf .TextMatrix(.Rows - 1, 4) = [Ô]CARTAO[Ô] Then
If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0X & [Ô]([Ô] & RS!CAMPOTC & [Ô])[Ô]
End If
If Not IsNull(RS!CAMPO02) Then .TextMatrix(.Rows - 1, 5) = Format(RS!CAMPO02, [Ô]##,##0.00[Ô])
If Not IsNull(RS!CAMPO03) Then .TextMatrix(.Rows - 1, 6) = Format(RS!CAMPO03, [Ô]##,##0.00[Ô])
m_Saldo = m_Saldo + IIf(IsNull(RS!CAMPO02), 0, RS!CAMPO02) - IIf(IsNull(RS!CAMPO03), 0, RS!CAMPO03)
.TextMatrix(.Rows - 1, 7) = Format(m_Saldo, [Ô]##,##0.00[Ô])
RS.MoveNext
.Rows = .Rows + 1
Loop
notem q nao coluna 4 eu coloquei um IF para verificar se é CARTÃO ou NÃO é CARTÃO
essa é a parte que me refiro:
If .TextMatrix(.Rows - 1, 4) <> [Ô]CARTAO[Ô] Then
If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0X
ElseIf .TextMatrix(.Rows - 1, 4) = [Ô]CARTAO[Ô] Then
If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0X & [Ô]([Ô] & RS!CAMPOTC & [Ô])[Ô]
End If
Quando exibi nao acontece nada... continua aparecendo os mesmo nomes de antes na coluna... inclussive CARTÃO
Quando eu tiro todo esse IF e deixo somente:
If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0X & [Ô]([Ô] & RS!CAMPOTC & [Ô])[Ô]
ele me mostra todos os nomes com parenteses ()... exemplo: DINHEIRO (), CHEQUE (), PROMISSORIA () e quando ele chega no cartão ele me mostra certo: CARTÃO ([txt-color=#e80000]C[/txt-color])
então como eu faço para ele colocar somentes os parenteses () no nome cartão ?
Erro na tua lógica de programação...
If RS!CAMPO0X <> [Ô]CARTAO[Ô] Then
If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0X
Else
If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0X & [Ô]([Ô] & RS!CAMPOTC & [Ô])[Ô]
End If
ficou show ASHKATCHUP...
..Obrigado!
..Obrigado!
Tópico encerrado , respostas não são mais permitidas