FORMATAR PARA EXIBIR CAMPOS NO FLEXGRID

WEBIER 09/11/2010 13:12:21
#356974

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])
XXXANGELSXXX 09/11/2010 13:21:53
#356975
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

WEBIER 09/11/2010 13:46:22
#356978
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:
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])
ASHKATCHUP 09/11/2010 13:49:49
#356979
Resposta escolhida
Mais ou menos isso...


If Not IsNull(RS!CAMPO0X) Then .TextMatrix(.Rows - 1, 4) = RS!CAMPO0 & [Ô]([Ô] & RS!TIPO & [Ô])[Ô]
WEBIER 09/11/2010 17:29:21
#357023
Este é meu codigo para exibir os dados nas colunas:

    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 ?
ASHKATCHUP 09/11/2010 17:33:01
#357024
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
WEBIER 09/11/2010 18:05:56
#357030
ficou show ASHKATCHUP...


..Obrigado!
Tópico encerrado , respostas não são mais permitidas