JUNTAR CAMPOS PARA IMPRESSAO BASEADO EM COLUNAS
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:
[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
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
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
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
90250/1
90551/1
90600/2
ai ele mostra assim: 90250/1, 90250/1, 90250/1
algem?
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:
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]
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]
Que variável é essa: ImgMarcada? Qual o tipo dela?
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...
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
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
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
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
Tópico encerrado , respostas não são mais permitidas