Abrir ReportPdf a partir de um Form passando ID

Olá boa noite,

Gostaria a partir de um formulário ao finalizar o mesmo passar o ID dele para a minha aplicação Reportpdf, este Reportpdf é para imprimir somente o formulário que acabou de ser salvo.

Tentei o código no OnAfterInsert:
sc_redir(pdfreport_ocorrencias_impressao, id_ocorrencia=[id_ocorrencia_historico]; “_blank”);

Porém não funcionou.
Alguma luz?

Obrigado! abs

Criou a global no report PDF no SQL da aplicação? No where do SQL deve ter o filtro para trazer o registro esperado.

1 Curtida

No OnAfterinsert vc ja tem o novo ID então deveria ser algo como:

sc_redir(pdfreport_ocorrencias_impressao, id_ocorrencia={id_ocorrencia}; “_blank”);

Lá no ReportPDF vc tem que ter a variável global da passagem [id_ocorrencia] no WHERE.

@PAULOPER @InfinitusWeb
No lado do ReportPdf eu coloquei para receber no sql:
id_ocorrencia = ‘[glo_id_ocorrencia_historico]’

No lado do formulário declarei a variavel global:
OnApplicationInit:
[glo_id_ocorrencia_historico] = {id_ocorrencia_historico};

No OnAfterInsert:
sc_commit_trans();
sc_redir(pdfreport_ocorrencias_impressao_sem_filtro, glo_id_ocorrencia={glo_id_ocorrencia_historico}; “_blank”);

Porém não funciona dá erro:
Atenção
Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘id_ocorrencia = ‘31’’ at line 1
id_ocorrencia = ‘31’

Retire as aspas daqui:

id_ocorrencia = [glo_id_ocorrencia_historico]

De uma olhada no teu código e tire o ( ; ) ponto e virgula e coloque apenas ( , ) virgula.

sc_redir(pdfreport_ocorrencias_impressao_sem_filtro, glo_id_ocorrencia={glo_id_ocorrencia_historico} -->>> aqui: ** ; ** “_blank”);

Fica assim:

sc_redir(pdfreport_ocorrencias_impressao_sem_filtro, glo_id_ocorrencia={glo_id_ocorrencia_historico} ---->>> , “_blank”);

Não sei o que pode ser, acho que alguma coisa com a variável global está errada.

Atenção
Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘id_ocorrencia = 25’ at line 1
id_ocorrencia = 25

@mafranca, você está se atrapalhando com os nomes das globais e campos.

Seu formulário:
OnApplicationInit:
[glo_id_ocorrencia_historico] = {id_ocorrencia_historico};
*Porque esse código? *
Nesse evento {id_ocorrencia_historico} não possui valor.
Remova isso desse evento.

No OnAfterInsert:
sc_commit_trans();
sc_redir(pdfreport_ocorrencias_impressao_sem_filtro, glo_id_ocorrencia={glo_id_ocorrencia_historico}; “_blank”);
Você possui na tabela esse campo??? {glo_id_ocorrencia_historico}
Acho que não.

Use:

sc_redir(pdfreport_ocorrencias_impressao_sem_filtro, glo_id_ocorrencia={id_ocorrencia_historico}; “_blank”);

Caso {id_ocorrencia_historico} seja o campo da tabela principal do formulário que deseja passar para o report pdf.

No report pdf a tabela principal possui o campo id_ocorrencia ???
Se a tabela do formulário é a mesma tabela de report pdf, tem algo errado aí

O WHERE da tabela principal do Report PDF deve ser:

WHERE id_ocorrencia_historico = [glo_id_ocorrencia]

1 Curtida

@InfinitusWeb @PAULOPER
No meu ReportPdf não tem a clausula Where, estranho.

Na verdade a tabela do Report tem id_ocorrencia que eu quero que seja a mesma do id_ocorrencia_historico …que são os mesmos id.

eu coloquei desta forma
sc_redir(pdfreport_ocorrencias_impressao_sem_filtro, “”; “_blank”);

mas abre todos os reports e não o report do form salvo que eu quero.

alguma sugestão?