MSHFLEXGRID NAO ME OBEDECE

CAPITAO.GARCIA 09/09/2006 11:47:22
#170383
Quando meu Flex passa por essa função
          'grd1.Rows = grd1.Rows + 1
grd1.AddItem ""
grd1.Refresh
Dim X
For X = grd1.Rows - 1 To 0 Step -1

For Y = 0 To grd1.Cols
grd1.TextMatrix(X, Y) = grd1.TextMatrix(X - 1, Y)
grd1.Refresh
Next

Next


tudo bem, mas se passar nessa função antes
      On Error Resume Next
Dim nRow, nLinha
nRow = grd1.Rows
With grd1

Dim z

.Row = .Rows - 1
If .Rows > 2 Then
VLR = VLR - CDbl(Replace(.TextMatrix(1, 2), "R$ ", ""))
PR = PR - CDbl(.TextMatrix(1, 0))
.RemoveItem (.TopRow)
Else
'VLR = VLR - CDbl(Replace(.TextMatrix(1, 2), "R$ ", ""))
'VLR = VLR - PREÇOTOTAL
'PR = PR - CDbl(.TextMatrix(1, 0))
VLR = 0
PR = 0
.Clear
.Rows = 1
End If
txtPT.Text = Format(VLR, "##,##0.00")
txtTOTITENS = PR
End With

A primeira função não funciona, ou seja, não adiciona uma nova linmha como ainda escreve por cima
alguem sabe pq?!
Grato desde já
OBS: Não vou trocar de Grid xD
USUARIO.EXCLUIDOS 09/09/2006 12:01:49
#170384
talvez seja por isso
  .Row = .Rows - 1 



Ao invés de remover linha desta forma já tentou utlizar o removeitem??
ou então só como teste comente esta linha pra ver o que acontece.




CAPITAO.GARCIA 09/09/2006 14:50:55
#170418
Fiz o q vc disse e ainda não deu
continua a mesma coisa
ao invés de adicionar nova linha ele sobrepoe a primeira (após passar pela 2Âê funcao

USUARIO.EXCLUIDOS 09/09/2006 15:11:38
#170420
Use a função additem

assim:

Grid.additem PrimeiraColuna & vbtab & segundaColuna.......

e assim vai

A constante [VBTAB] indica ao grid para pular de coluna e automaticamente adiciona o item criando a linha e os dados

ex:

Grid.additem "Nome" & vbtab & "SobreNome" & vbtab & "Sexo"


Espero ter ajudado.







CAPITAO.GARCIA 10/09/2006 09:45:29
#170479
Citação:

CARDOSO2911 escreveu:
Use a função additem

assim:

Grid.additem PrimeiraColuna & vbtab & segundaColuna.......

e assim vai

A constante [VBTAB] indica ao grid para pular de coluna e automaticamente adiciona o item criando a linha e os dados

ex:

Grid.additem [Ô]Nome[Ô] & vbtab & [Ô]SobreNome[Ô] & vbtab & [Ô]Sexo[Ô]


Espero ter ajudado.








Eu fiz isso, porém dá na mesma...
e observei também que não é visivel no Grid, mas a linha está lá sim!!
Eu só não sei como corrigir isso
RENATOBELETTI 11/09/2006 10:55:51
#170616
Citação:

MARCELOHF escreveu:
talvez seja por isso

  .Row = .Rows - 1 



Ao invés de remover linha desta forma já tentou utlizar o removeitem??
ou então só como teste comente esta linha pra ver o que acontece.






inves de usar

  .Row = .Rows - 1 


tente usar

  .Row = .Rows + 1 


CAPITAO.GARCIA 12/09/2006 13:42:33
#170901
Citação:

RENATOBELETTI escreveu:
MARCELOHF escreveu:
talvez seja por isso

  .Row = .Rows - 1 



Ao invés de remover linha desta forma já tentou utlizar o removeitem??
ou então só como teste comente esta linha pra ver o que acontece.






inves de usar

  .Row = .Rows - 1 


tente usar

  .Row = .Rows + 1 



Mas eu estaria excluindo um item do grid, nao da pra ser "+"
LIONHEART 12/09/2006 16:56:28
#170985
Cristiano, explica em texto o que vc tá tentando fazer.


PS: viva... nem tudo que dá dor de cabeça é feito em PHP, tá vendo huauhauhauh
CAPITAO.GARCIA 13/09/2006 14:29:39
#171221
Eu tenho meu Grid certo?
[th][/th]
ProdutoPreço
Parafuso 1,50
Ó“leo 2,50


a rotina de inclusão NO GRID é esta:
 Private Sub cboItens_KeyPress(KeyAscii As Integer)
grd1.TextMatrix(0, 0) = "Qtde.:"
grd1.TextMatrix(0, 1) = "Produto.:"
grd1.TextMatrix(0, 2) = "Vlr. Itens.:"
grd1.TextMatrix(0, 3) = "Vlr. Uni.:"
grd1.ColWidth(1) = 3500

On Error Resume Next

If KeyAscii = 42 Then
QTDE = cboItens
txtQTDE = cboItens
cboItens = ""
KeyAscii = 0
End If

grd1.FixedRows = 1
grd1.FixedCols = 0

Dim cls As clsSPT
Set cls = New clsSPT
Dim rs As ADODB.Recordset
Set rs = cls.AbreRecordSet("TabProdutos", "where tpCODBAR='" & cboItens & "'")

PRODUTO = rs("tpDESC")
PREÇOTOTAL = QTDE * rs("tpVLRCOMPRA")

If KeyAscii = 13 And rs.RecordCount <> 0 Then

If QTDE = 0 Then QTDE = 1
PRODUTO = rs("tpNOME")
Label3 = "Produto: " & PRODUTO & vbCrLf & "Preço Unitário: " & Format(rs("tpVLRCOMPRA"), "#,##0.00")
PREÇOTOTAL = QTDE * rs("tpVLRCOMPRA")
txtPREÇN = rs("tpVLRCOMPRA")
PR = PR + QTDE

grd1.Refresh

VLR = VLR + PREÇOTOTAL

txtPT.Text = Format(VLR, "##,##0.00")

grd1.AddItem QTDE & vbTab & PRODUTO & _
vbTab & Format(PREÇOTOTAL, "R$ #,##0.00") & _
vbTab & Format(rs("tpVLRCOMPRA"), "#,##0.00") & _
vbTab & rs("tpVLRCOMPRA") & _
vbTab & rs("tpID")

txtTOTITENS = PR
cls.FlexCores &H80000018, &HFFFFFF, grd1
QTDE = 1
txtQTDE = QTDE
cboItens = ""

Set cls = Nothing

cboItens.SetFocus
End If
End Sub

aí eu excluo o ÃÅ¡LTIMO ITEM, e fica assim
[th][/th]
ProdutoPreço
Parafuso 1,50

Até aí tudo bem, excluí usando ESSA FUNçÃO
  Private Sub Command3_Click()
On Error Resume Next
Dim nRow, nLinha
nRow = grd1.Rows
With grd1

Dim z

' If .Rows > 2 Then
VLR = VLR - CDbl(Replace(.TextMatrix(1, 2), "R$ ", ""))
PR = PR - CDbl(.TextMatrix(1, 0))
.RemoveItem (.Rows - 1)
If .Rows = 1 Then Command3.Enabled = False
' Else
'
' VLR = 0
' PR = 0
' .Clear
' .Rows = 1
' End If
txtPT.Text = Format(VLR, "##,##0.00")
txtTOTITENS = PR
End With
End Sub

Ok, ainda está tudo bem, MAS quando eu vou adicionar de novo(usando a primeira função)...
E o grid está desse jeito
[th][/th]
ProdutoPreço
Parafuso 1,50

(Uai, cadê o produto que adicionei???)
Ele está lá, mas não aparece no grid
eu sei que está devido à  função que fiz para imprimir ITEM por ITEM no "cuponzinho"

Expliquei melhor?
Obrigado!

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