Problema com campos subselect, com mais de um digito salvo no banco

Boa Tarde Pessoal,

Tenho um campo subselect num reportPDF, que retorna os pratos que o candidato sabe fazer ((pdo-mysql): SELECT PRAT_Id FROM candidata_prato WHERE CAND_Id = 1), e na hora de imprimir ele só retorna o primeiro digito salvo no banco de dados.

Coloquei no modo debug, e verifiquei o problema:

(pdo-mysql): SELECT PRAT_Nome FROM prato WHERE PRAT_Id = 2 ORDER BY PRAT_Nome
(pdo-mysql): SELECT PRAT_Nome FROM prato WHERE PRAT_Id = 3 ORDER BY PRAT_Nome
(pdo-mysql): SELECT PRAT_Nome FROM prato WHERE PRAT_Id = 7 ORDER BY PRAT_Nome
(pdo-mysql): SELECT PRAT_Nome FROM prato WHERE PRAT_Id = 1 ORDER BY PRAT_Nome
(pdo-mysql): SELECT PRAT_Nome FROM prato WHERE PRAT_Id = 3 ORDER BY PRAT_Nome
(pdo-mysql): SELECT PRAT_Nome FROM prato WHERE PRAT_Id = 3 ORDER BY PRAT_Nome
(pdo-mysql): SELECT PRAT_Nome FROM prato WHERE PRAT_Id = 3 ORDER BY PRAT_Nome

Fiz a consulta no MySQL, e a mesma deveria retornar o seguinte resultado:

SELECT PRAT_Id FROM candidata_prato WHERE CAND_Id =1

2
3
7
17
30
31
33

Repare que onde tem mais de um digito, o relatório só está pegando o primeiro dígito.

OBS: Procurando no forum, achei um post de 2012 relatando esse bug, gostaria de saber se já existe uma solução para esse problema.

Post: http://www.scriptcase.com.br/forum/index.php/topic,5224.msg22897.html#msg22897

Pessoal,

Esse já é o terceiro bug por mim relatado do SC, e como a NM nunca resolveu nenhum, estou postando uma “gambiarra” para resolver esse problema e continuar trabalhando.

Em vez de usar a consulta: “SELECT PRAT_Id FROM candidata_prato WHERE CAND_Id = 1”, e depois usar um Lookup Automático para trazer o nome do “prato” em vez do seu id: “SELECT PRAT_Nome FROM prato WHERE PRAT_Id = ‘{Pratos.PRAT_Id}’
ORDER BY PRAT_Nome”, resolvi usar a seguinte consulta:

SELECT
SUBSTR(p.PRAT_Nome, 1, LENGTH(p.PRAT_Nome)) AS Nome_prato
FROM
candidata_prato cp
INNER JOIN
prato p on (cp.PRAT_Id = p.PRAT_Id)
WHERE
cp.CAND_Id = {CAND_Id}
ORDER BY
p.PRAT_Nome

Só assim consegui resolver o problema em que o SC só pegava o primeiro digito do campo.

Olá à todos!

Quebrei muito a cabeça para tentar descobrir como resolver o problema de um dígito no campo SUBSELECT… depois de várias horas, eis a solução encontrada:

Eu tinha um PDF que listava todos os dependentes de uma pessoa. Precisava colocar um contador de linha para que pudesse identificar o dependente pelo número da linha.

1º Na tabela CONTADOR eu tinha dois campos: ID e Num_Linha. Então alterei o campo Num_Linha como tipo TEXTO;

2º No SQL do campo SUBSELECT eu solicitei: ID e Num_Linha na pesquisa do BD;

3º No sc_lookup do campo SUBSELECT eu troquei o campo ID por Num_Linha… pronto! Funcionou depois de dias tentando e nada de achar a solução aqui na internet…

Sei que ficou meio enrolado o texto, mas é que já varei a madrugada para resolver este problema e espero que tenha ajudado em alguma coisa… é bem simples! me senti um idiota quando descobri!rs

Abraços à todos!