JUNTAR CAMPOS PARA IMPRESSAO BASEADO EM COLUNAS

WEBIER 24/07/2011 21:46:52
#379880
seguinte, possuo um flexgrid que exibe varios campos...

esse flexgrid possui uma imagem na primeira coluna de cada linha (ImgMarcada ou Imgdesmarcada )

preciso imprimir 2 campos que cada linha que contenha a ImgMarcada na linha...

ai fiz assim o codigo:

    With REL_Recibo
.txtCliente.Caption = UCase(cboCliente.Text)

Dim var_Parc As String
var_Parc = [Ô][Ô]
Dim f As Integer
With Grid_Parcelas
For f = 1 To .Rows - 1
.Col = 0
.Row = f
If .CellPicture = ImgMarcada Then
var_Parc = [Ô] & .TextMatrix(.Row, 3) & [Ô] / [Ô] & .TextMatrix(.Row, 4) & [Ô]
End If
Next f
End With

.txtValor.Caption = UCase(NumeroExtenso(lblTotal.Caption, True))
.txthead.Caption = [Ô]R$ [Ô] & Format(lblTotal.Caption, [Ô]##,##0.00[Ô])
.txtProveniente.Caption = [Ô]pgto das parcelas: [Ô] & var_Parc
.txtData.Caption = [Ô]Uruçuí-PI, [Ô] & Day(Date) & [Ô] de [Ô] & MonthName(Month(Date)) & [Ô] de [Ô] & Year(Date)


[txt-color=#e80000]Minha duvida é nessa parte:[/txt-color]
Dim var_Parc As String
var_Parc = [Ô][Ô]
Dim f As Integer
With Grid_Parcelas
For f = 1 To .Rows - 1
.Col = 0
.Row = f
If .CellPicture = ImgMarcada Then
var_Parc = [Ô] & .TextMatrix(.Row, 3) & [Ô] / [Ô] & .TextMatrix(.Row, 4) & [Ô]
End If
Next f
End With

preciso pegar os dados que estão na coluna 3 e 4.... formatar eles assim 00000[txt-color=#e80000]/[/txt-color]00.... de cada linha que tenha a imagem ImgMarcada na linha.

ai preciso imprimir as informações desse loop no objeto txtProveniente.Caption assim:

.txtProveniente.Caption = [Ô]pgto das parcelas: [Ô] 00000[txt-color=#e80000]/[/txt-color]00, 00000[txt-color=#e80000]/[/txt-color]00, 00000[txt-color=#e80000]/[/txt-color]00, 00000[txt-color=#e80000]/[/txt-color]00

ROBIU 25/07/2011 09:30:33
#379892
Resposta escolhida
    Dim var_Parc As String
var_Parc = [Ô][Ô]
Dim f As Integer
With Grid_Parcelas
For f = 1 To .Rows - 1
[ô].Col = 0
[ô].Row = f
If .CellPicture = ImgMarcada Then
If f = 1 Then
var_Parc = Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
Else
var_Parc = var_Parc & [Ô], [Ô] & Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
End If
End If
Next f
End With
WEBIER 25/07/2011 09:37:12
#379893
ele tá mostrando repetido os dados da primeira linha do loop...

90250/1
90551/1
90600/2



ai ele mostra assim: 90250/1, 90250/1, 90250/1
WEBIER 25/07/2011 12:28:02
#379911
algem?
WEBIER 25/07/2011 15:21:23
#379925
a ideia seria assim:

dados exibidos no flexgrid:

| coluna 0 | coluna 1 | coluna 2 | coluna 3 | coluna 4 |
ImgMarcada 90250 1
[txt-color=#e80000]Imgdesmarcada [/txt-color] 90023 1
ImgMarcada 90551 1
ImgMarcada 90600 2


então preciso mostrar no txtProveniente.Caption assim:

.txtProveniente.Caption = [Ô]pgto das parcelas: [Ô] 90250/01, 90551/01, 90600/02

ou seja, ele vai pegar a coluna 3 e 4 somente das linhas que tiver a imagem ImgMarcada no flexgrid.

o ROBIU quase conseguiu... ele fez assim:

Dim var_Parc As String
var_Parc = [Ô][Ô]
Dim f As Integer
With Grid_Parcelas
For f = 1 To .Rows - 1
[ô].Col = 0
[ô].Row = f
If .CellPicture = ImgMarcada Then
If f = 1 Then
var_Parc = Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
Else
var_Parc = var_Parc & [Ô], [Ô] & Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
End If
End If
Next f
End With


só que dessa forma que ele fez, ele repete os dados da primeira linha do flexgrid 3 vezes... ficando assim:

.txtProveniente.Caption = [Ô]pgto das parcelas: [Ô] [txt-color=#e80000]90250/01, 90250/01, 90250/01[/txt-color]

e era para ser assim:

.txtProveniente.Caption = [Ô]pgto das parcelas: [Ô] [txt-color=#e80000]90250/01, 90551/01, 90600/02[/txt-color]
MSMJUDAS 25/07/2011 15:30:16
#379926
Que variável é essa: ImgMarcada? Qual o tipo dela?
WEBIER 25/07/2011 15:37:52
#379928
são duas imagens que agrego a linha do flexgrid, para dar a impressão que a linha foi marcada

uma imagem é um quadradinho com sinal de visto e a outra é uma quadradinho vazio... então quando clico numa linha o quadradinho vazio some e aparece o quadradinho com o visto...

If Grid_Parcelas.Col <> 0 Then Exit Sub
If Grid_Parcelas.CellPicture = imgDesmarcada Then
Set Grid_Parcelas.CellPicture = ImgMarcada
Else
Set Grid_Parcelas.CellPicture = imgDesmarcada
End If
ROBIU 25/07/2011 16:26:09
#379932
Tem algo estranho aí. Seria mas fácil vendo o projeto.

 Dim var_Parc As String
var_Parc = [Ô][Ô]
Dim f As Integer
With Grid_Parcelas
For f = 1 To .Rows - 1
[ô].Col = 0
[ô].Row = f
If .CellPicture = ImgMarcada Then
If f = 1 Then
var_Parc = Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
ElseIf Right(var_Parc, 8) = Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô]) Then
MsgBox [Ô]Tratar Repetido[Ô]
Else
var_Parc = var_Parc & [Ô], [Ô] & Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
End If
End If
Next f
End With
WEBIER 26/07/2011 13:53:02
#380027
Citação:

:
Tem algo estranho aí. Seria mas fácil vendo o projeto.

 Dim var_Parc As String
var_Parc = [Ô][Ô]
Dim f As Integer
With Grid_Parcelas
For f = 1 To .Rows - 1
[ô].Col = 0
[ô].Row = f
If .CellPicture = ImgMarcada Then
If f = 1 Then
var_Parc = Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
ElseIf Right(var_Parc, 8) = Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô]) Then
MsgBox [Ô]Tratar Repetido[Ô]
Else
var_Parc = var_Parc & [Ô], [Ô] & Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
End If
End If
Next f
End With



selecionei 3 linhas no flexgrid.

90250/01
90551/01
[txt-color=#e80000]90600/02[/txt-color]


e ele imprimiu 3 vezes a ultima linha, exemplo:

90600/02, 90600/02, 90600/02
ROBIU 26/07/2011 17:02:05
#380036
 Dim var_Parc As String
var_Parc = [Ô][Ô]
Dim f As Integer
With Grid_Parcelas
For f = 1 To .Rows - 1
.Col = 0
.Row = f
If .CellPicture = ImgMarcada Then
If f = 1 Then
var_Parc = Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
ElseIf Right(var_Parc, 8) = Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô]) Then
MsgBox [Ô]Tratar Repetido[Ô]
Else
var_Parc = var_Parc & [Ô], [Ô] & Format(.TextMatrix(.Row, 3), [Ô]00000[Ô]) & [Ô] / [Ô] & Format(.TextMatrix(.Row, 4), [Ô]00[Ô])
If f = .Rows - 1 Then Exit For
End If
End If
Next f
End With
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas