LISTAR FOTO DO CADASTRO COM DATAREPORT

RICARDO.RAPA 27/03/2012 11:51:30
#398392
Pessoal tenho que listar a foto do cadastro no relatório, a imagem não esta vinculado ao banco, somente pelo caminho, mais sempre fica a ultima imagem para todos. estou fazendo assim:


Dim rs As ADODB.Recordset
Dim fld As ADODB.Field
Dim topico
Set rs = New ADODB.Recordset

rs.Fields.Append [Ô]nome[Ô], adVarChar, 255
rs.Fields.Append [Ô]endereco[Ô], adVarChar, 255
rs.Fields.Append [Ô]cep[Ô], adVarChar, 255
rs.Fields.Append [Ô]Cidade[Ô], adVarChar, 255
rs.Fields.Append [Ô]registro[Ô], adVarChar, 255
rs.Fields.Append [Ô]cpf[Ô], adVarChar, 255
rs.Fields.Append [Ô]emissao[Ô], adVarChar, 255
rs.Fields.Append [Ô]periodo[Ô], adVarChar, 255
rs.Open

topico = MaiusculaMinuscula(Data1.Recordset.Fields([Ô]curso[Ô]))

Data1.Recordset.MoveFirst
Do Until Data1.Recordset.EOF

Data2.RecordSource = [Ô]Select * from C_Alunos where int(cod) = [ô][Ô] & Int(Data1.Recordset.Fields([Ô]codaluno[Ô])) & [Ô][ô][Ô] [ô]and situacao = [ô][Ô] & [Ô]Concluido[Ô] & [Ô][ô][Ô]
Data2.Refresh

rs.AddNew
rs.Fields([Ô]nome[Ô]) = MaiusculaMinuscula(Data2.Recordset.Fields([Ô]nome[Ô]))
If Data2.Recordset.Fields([Ô]end[Ô]) <> Empty Then rs.Fields([Ô]endereco[Ô]) = Data2.Recordset.Fields([Ô]end[Ô]) & [Ô] Bairro: [Ô] & Data2.Recordset.Fields([Ô]bairro[Ô]) Else rs.Fields([Ô]endereco[Ô]) = [Ô]-[Ô]
If Data2.Recordset.Fields([Ô]cep[Ô]) <> Empty Then rs.Fields([Ô]cep[Ô]) = Data2.Recordset.Fields([Ô]cep[Ô]) Else rs.Fields([Ô]cep[Ô]) = [Ô]-[Ô]
If Data2.Recordset.Fields([Ô]cidade[Ô]) <> Empty Then rs.Fields([Ô]Cidade[Ô]) = Data2.Recordset.Fields([Ô]cidade[Ô]) & [Ô] [Ô] & Data2.Recordset.Fields([Ô]uf[Ô]) Else rs.Fields([Ô]Cidade[Ô]) = [Ô]-[Ô]
If Data2.Recordset.Fields([Ô]rg[Ô]) <> Empty Then rs.Fields([Ô]registro[Ô]) = Data2.Recordset.Fields([Ô]rg[Ô]) & [Ô] - [Ô] & Data2.Recordset.Fields([Ô]categoria[Ô]) Else rs.Fields([Ô]registro[Ô]) = [Ô]-[Ô]
rs.Fields([Ô]cpf[Ô]) = Data2.Recordset.Fields([Ô]cpf[Ô])
rs.Fields([Ô]emissao[Ô]) = [Ô]___/___/______[Ô] [ô]Format(periodo2.Caption, [Ô]dd/mm/yyyy[Ô])
rs.Fields([Ô]periodo[Ô]) = Format(periodo1.Caption, [Ô]dd/mm/yyyy[Ô]) & [Ô] a [Ô] & Format(periodo2.Caption, [Ô]dd/mm/yyyy[Ô])
[ô]rs.Fields([Ô]foto[Ô]) = Data2.Recordset.Fields([Ô]caminhofoto[Ô]) & [Ô].jpg[Ô]
rs.Update

Dim cfoto
cfoto = Data2.Recordset.Fields([Ô]caminhofoto[Ô]) & [Ô].jpg[Ô]
With ControleEntrega

Set ControleEntrega.Sections([Ô]Section1[Ô]).Controls([Ô]foto[Ô]).Picture = LoadPicture(cfoto) [ô]LoadPicture(caminho.Caption & [Ô].jpg[Ô])

End With


Data1.Recordset.MoveNext
Loop

ControleEntrega.Orientation = rptOrientPortrait

With ControleEntrega
.Sections([Ô]section2[Ô]).Controls([Ô]titulo[Ô]).Caption = [Ô]Curso: [Ô] & topico
Set .DataSource = rs
.Show
End With

será que o rptimagem não aceita esse recurso? alguém tem alguma idéia???? grato
TECLA 02/04/2012 20:17:37
#398972
O DataReport é muito limitado, coisa que o Crystal [Ô]tira de letra[Ô].
Uma sugestão seria criar uma página HTM dentro de um controle WEBBROWSER que o resultado esperado.
ALEVALE 03/04/2012 08:24:31
#398990
Olhando por cima.....tá comentado ????
E sugestão tbm vai pro Crystal Reports...

[ô]rs.Fields([Ô]foto[Ô]) = Data2.Recordset.Fields([Ô]caminhofoto[Ô]) & [Ô].jpg[Ô] ????

Já tentou debugar pra ver qual o valor que ele traz para essa variavel e outra, você teria que fazer uma função para verificar se a imagem existe caso contrário colocaria ela como nula.

[ô]NUM LEMBRO A SINTAXE DO NET..DE CABEÇA..RSRSRS
If fso.exists(rs.Fields([Ô]foto[Ô]) = Data2.Recordset.Fields([Ô]caminhofoto[Ô]) & [Ô].jpg[Ô])=true then
cfoto = Data2.Recordset.Fields([Ô]caminhofoto[Ô]) & [Ô].jpg[Ô]
else
cfoto = [Ô]NADA.jpg[Ô]
Endif

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