FORMATOS NO MSHFLEXGRID

NEREU1301 11/08/2009 17:03:23
#319600
boa terde
depois de prcurar muito e nao encontrar, volto a pedir ajuda aos amigos
tenho uma tabela access com colunas formatadas para unidade monetaria e no flex me retorna numeros.
como faço para que no flex tambem me retorne como unidade monetaria???
Fico no aguardo
nereu
THIAGO.CC 11/08/2009 17:05:28
#319601
Nereu,

Já tentou usar o Format na saida do Fex?

Thiago
NEREU1301 11/08/2009 17:15:22
#319603
Tiago
desculpe mas nao entendi
fiz algumas tentativas com format mas nao tive exito
pode ser mais abrangente na dica?
nereu
THIAGO.CC 11/08/2009 17:20:09
#319604
Nereu,

Utilize os format na saida ou na entrada da grid, pois geralmente a grid armazena os valores como textos.

Segue alguns exemplos.

MyStr = Format(23) [ô] Retorna [Ô]23[Ô].

[ô] Formatos definidos pelo usuário.
MyStr = Format(5459.4, [Ô]##,##0.00[Ô]) [ô] Retorna [Ô]5,459.40[Ô].
MyStr = Format(334.9, [Ô]###0.00[Ô]) [ô] Retorna [Ô]334.90[Ô].
MyStr = Format(5, [Ô]0.00%[Ô]) [ô] Retorna [Ô]500.00%[Ô].
MyStr = Format([Ô]HELLO[Ô], [Ô]<[Ô]) [ô] Retorna [Ô]hello[Ô].
MyStr = Format([Ô]This is it[Ô], [Ô]>[Ô]) [ô] Retorna [Ô]THIS IS IT[Ô].


Thiago
MADMAX 11/08/2009 17:20:44
#319605
NEREU1301 você esta carregando o grid na mão ou esta usando um DataControl , se estiver carregando na mão basta usar o format([Ô]data[Ô],formato da data) exe : format([Ô]2009/01/01[Ô],[Ô]DD/MM/YYYY[Ô]) se for por data control tem um comando MSHFlexGrid1.FormatString que acho que serve para isso não sei usar certinho sendo assim da uma buscada por ele na net que vc acha.. espero que ajude
NEREU1301 11/08/2009 17:46:20
#319607
tiago e madmax
se eu fizer assim
Private Sub Form_Load()
Dim Conteudo As String
GrdPecas.ColWidth(0) = 1150
GrdPecas.ColWidth(1) = 8000
GrdPecas.ColWidth(2) = 1100
GrdPecas.ColWidth(3) = 1100
GrdIncluiPec.ColWidth(0) = 1100
GrdIncluiPec.ColWidth(1) = 5000
GrdIncluiPec.ColWidth(2) = 1100
GrdIncluiPec.ColWidth(3) = 1100
GrdIncluiPec.ColWidth(4) = 1100
GrdPecas = Format(5459.4, [Ô]##,##0.00[Ô])
ele me retorna 5459,40 ou qualquer vlor que eu ali colocar, mas o que eu peciso é que ele forate os dad que vem da minha tabela access.
nao se se to me expressando bem
dessa forma que vc me indicaram eu precisaria tambem definir a coluna
fico no aguardo
nereu
TECLA 11/08/2009 20:27:12
#319618
Citação:

ele me retorna 5459,40 ou qualquer vlor que eu ali colocar, mas o que eu peciso é que ele forate os dad que vem da minha tabela access.
nao se se to me expressando bem



Você deseja formatá-lo como MOEDA?
MsgBox FormatCurrency(5459.4, 2)


Se não é isso, apresente o valor CORRETO e o INCORRETO para que fique mais compreensível.
NEREU1301 11/08/2009 21:07:43
#319621
Certo Tecla
quero formatar como moeda
Numa grid tenho os campos referencia, descriçao, preço de compra e preço de venda que recebem valor de uma tabela access com os mesmos campos. Os campos que sao preço quero que seja formato moeda e eles estao retornando numero.
Nao entendi como resolver o problema com a sua dica.
se puder clarear te agradeço.
nereu
JILNEY 11/08/2009 21:14:04
#319622
Resposta escolhida
Um exemplo para o que você precisa, funciona da seguinte forma: Carrega-se o Recordset com a consulta SQL e depois lanço o Recordset com um FOR no MsHFlex formatando os campos do Recordset

Private Sub preenche_grid_lancamento()

With cmd
.ActiveConnection = cnn
.CommandType = adCmdText
.CommandText = [Ô]select contas.cod, contas.conta, [Ô] & _
[Ô]lancamentos.cod_conta, lancamentos.data, [Ô] & _
[Ô]lancamentos.valor, lancamentos.rd, lancamentos.cod as codigo [Ô] & _
[Ô]from contas, lancamentos where contas.cod = lancamentos.cod_conta [Ô] & _
[Ô]and data between #[Ô] & Format(Text_data1, [Ô]yyyy/mm/dd[Ô]) & [Ô]# and #[Ô] & Format(Text_data2, [Ô]yyyy/mm/dd[Ô]) & [Ô]# [Ô] & _
[Ô]order by lancamentos.data desc[Ô]
Set rs = .Execute
End With

If rs.RecordCount > 0 Then
With Grid_lancamento
.Clear
.Cols = 6
.SelectionMode = flexSelectionByRow
.ColWidth(0) = 800
.ColWidth(1) = 0 [ô]codigo do lancamento
.ColWidth(2) = 1000
.TextMatrix(0, 2) = [Ô]Data[Ô]
.ColWidth(3) = 3000
.TextMatrix(0, 3) = [Ô]Conta[Ô]
.ColWidth(4) = 1200
.ColAlignment(4) = 6
.TextMatrix(0, 4) = [Ô]Valor[Ô]
.ColWidth(5) = 800
.TextMatrix(0, 5) = [Ô]Natureza[Ô]
.Rows = rs.RecordCount + 1
rs.MoveFirst
For i = 1 To rs.RecordCount
.TextMatrix(i, 1) = IIf(IsNull(rs!codigo), [Ô][Ô], rs!codigo)
.TextMatrix(i, 2) = IIf(IsNull(rs!Data), [Ô][Ô], Format(rs!Data, [Ô]dd/mm/yyyy[Ô]))
.TextMatrix(i, 3) = IIf(IsNull(rs!conta), [Ô][Ô], rs!conta)
.TextMatrix(i, 4) = IIf(IsNull(rs!valor), [Ô][Ô], Format(rs!valor, [Ô]currency[Ô]))
.TextMatrix(i, 5) = IIf(IsNull(rs!rd), [Ô][Ô], IIf(rs!rd = 1, [Ô]Receita[Ô], [Ô]Despesa[Ô]))
rs.MoveNext
Next i
End With
Else
Grid_lancamento.Clear
vinfo = MsgBox([Ô]Não houve Lançamentos no período informado[Ô], vbInformation + vbOKOnly, [Ô]Histórico de Lançamentos[Ô])
End If
rs.Close

End Sub
NEREU1301 12/08/2009 11:24:14
#319659
Bom dia
Deu certo Jilney
obrigado

Noutro form uso mshflexgrid com adodc que uso so para visualizar dados de uma tabela access, so que a tabela tem 3408 linhas e esta me retornando so 2300.
Alguem saberia o motivo ou a solucao???

nereu
JILNEY 12/08/2009 22:23:59
#319728
o MshFlex possui uma limitação de quantidade de linhas e colunas, troque pelo DataGrid, já que está usando ele vinculado mesmo, com o ADODC, não vai ter diferença e o Datagrid acredito que não tem esta limitação.
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas