Поле формулы не отображается в отчете о кристалле 8.5

Я использую старую версию Crystal Reports 8.5, и у меня возникают проблемы с отображением поля в деталях.

This report uses 6 tables in SQL Server database:  
2 in database1:
tblRecibo, tblCanaisDistribuicao

3 in database2: 
tblPessoas, tblMoradas, tblCodPostal, tblRamos

tblRamos.CodRamo - это тип данных int, и я хочу отобразить его в разделе сведений.

@N_Apolice

left(CSTR({tblRamos.CodRamo}, "000"),3)

Кажется, что я не могу получить какое-либо поле из этой таблицы, но я могу получить доступ к полям из других таблиц той же базы данных в разделе «Заголовок группы» (в этом отчете используются таблицы из 2 разных баз данных, и ни одно из имен таблиц не используется). повторяется в обеих базах данных).

Уже несколько раз нажимал кнопку проверки базы данных... но проблема не устранена... есть ли способ заставить ее проверить именно эту таблицу? или эта база данных в частности? (поскольку их 2, и она может проверять только другую)

Я проверил в SQL, если запрос на получение данных должен возвращать поля, и это так...

редактировать
Я начал переделывать весь отчет, и, видимо, это поле формулы не отображает свое значение правильно, только если я добавляю код в другие поля формулы (поля, которые используют ту же базу данных, но другие данные столы)

@Номе

Ucase({tblPessoas.Nome} & " " & {tblPessoas.NomeIntermedio} & " " & {tblPessoas.Apelido})

@Морада

Ucase({tblMoradas.Morada})

@CPostal

IF ISNULL({tblMoradas.LocPostal}) THEN
{tblMoradas.CPostal} & "-" & {tblMoradas.CPostalAux}
ELSE
{tblMoradas.CPostal} & "-" & {tblMoradas.CPostalAux} & " " & {tblMoradas.LocPostal}

На мой взгляд, это вообще не имеет смысла...

edit2
эти 3 поля находятся в разделе "Заголовок группы", а другое - в разделе сведений... может быть проблема в этом?

Разделы

Отчет

Поля, которые конфликтуют по какой-то причине, это @N_Apolice (в деталях) и @Nome, @Morada, @CPostal в шапке.

Все остальные поля в разделе сведений взяты из другого источника данных и работают нормально.

введите здесь описание изображения


person RagnaRock    schedule 04.06.2015    source источник
comment
Вы проверили, присутствует ли поле в таблице в базе данных? И в чем ошибка?   -  person Siva    schedule 04.06.2015
comment
Он существует в базе данных, он не выдает мне никакой ошибки, он просто не отображает ни одно поле из этой таблицы.   -  person RagnaRock    schedule 04.06.2015
comment
вы ссылку проверяли? может быть, это делает данные не выбранными в отчете.   -  person Siva    schedule 04.06.2015
comment
Я проверил связь... и все в порядке... по крайней мере, в другом отчете все работает нормально, я даже могу получить доступ к нужной мне таблице. Но я не знаю, что отличается в этих двух отчетах, чтобы иметь такое другое поведение.   -  person RagnaRock    schedule 04.06.2015
comment
Вы применяете какие-либо параметры для извлечения данных?   -  person Siva    schedule 04.06.2015
comment
Я не вижу сгенерированный sql... поэтому я не уверен в этом. Насколько я могу судить, параметры не используются для получения данных, а только для их фильтрации и форматирования. (У меня есть 4 параметра, дата, используемая для фильтрации, число десятичных регистров, а также десятичные и миллионы символов разделения)   -  person RagnaRock    schedule 04.06.2015
comment
Я начал переделывать весь отчет, и, видимо, это поле формулы не отображает свое значение правильно, только если я добавляю код в другие поля формулы (поля, которые используют ту же базу данных, но другие таблицы данных). На мой взгляд, это не имеет никакого смысла. ...   -  person RagnaRock    schedule 04.06.2015
comment
Проблема решена?   -  person Siva    schedule 04.06.2015
comment
нет... если я использую формулы для любого из трех других полей... это перестает работать... но другое работает нормально... я не понимаю, что с ними связано... они используют поля из разных таблиц . Я добавил код для других полей в основной вопрос   -  person RagnaRock    schedule 04.06.2015
comment
Попробуйте эту формулу LEFT(CSTR({tblRamos.CodRamo}) & "000"), 3) или RIGHT("000" & TRIM({tblRamos.CodRamo} & " "), 3) ;).   -  person shA.t    schedule 07.06.2015
comment
почему не показываете скриншот отчета? и объясните, что вам нужно. Трудно ответить, предполагая вещи.   -  person Siva    schedule 08.06.2015
comment
Я добавил скриншот, надеюсь, он поможет... Я думаю, проблема как-то связана со мной, когда я использую 2 разных источника данных.   -  person RagnaRock    schedule 08.06.2015
comment
Если вы добавите поле из tblRamos непосредственно в свой отчет, будет отображаться какое-либо значение? - Если вы измените поле формулы, чтобы использовать некоторые значения, такие как Ucase("test") для полей формулы @Morada, отображаются ожидаемые результаты?   -  person shA.t    schedule 09.06.2015
comment
Я могу видеть значения из tblRamos, только если я удаляю @nome @morada @cpostal.... в противном случае я не вижу никаких значений. Даже если я помещу это поле в заголовок группы, а не в подробности, где оно есть сейчас... оно ничего не показывает, пока я не удалю другие поля.   -  person RagnaRock    schedule 09.06.2015


Ответы (1)


I can write as comment but its is becoming huge and wrote as answer

Брат, я вижу в этом явную проблему привязки к твоим таблицам...

проверьте связь между таблицами tblPessoas, tblMoradas, tblCodPostal и tblRamos... потому что ваша формула Morada and CPostal исходит из таблицы tblMoradas, а Nome исходит из таблицы tblPessoas и, наконец, пробламатическое поле N_Apolice исходит из tblRamos, которые все принадлежат одному и тому же источнику данных....

Теперь основная проблема заключается в том, что когда добавляются 3 формулы, а затем одна, которая подробно описана, не отображается ... что, я думаю, связано с привязкой, потому что, когда вы включаете поля из других таблиц, отличных от tblRamos, тогда будет включена ссылка из этих таблиц в запросе, который предотвращает отображение данных из tblRamos в отчетах.....

Теперь, когда 3 формулы удалены и поле из tblRamos включено, эти 3 таблицы не включаются в запрос, поэтому вы можете видеть некоторые данные...

Вы можете попробовать себя, проверив запрос, сначала включив 3 таблицы, и снова удалив эти таблицы. Если вы все еще не уверены, выполните те же запросы в базе данных и проверьте извлеченные строки.

Решение:

Решение, которое я предлагаю, состоит в том, чтобы сначала проверить связь и, если есть какое-либо внутреннее соединение с tblRamos из других таблиц, удалить его и включить внешнее соединение с таблицей tblRamos и проверить результат, и, по моему мнению, это должно работать. Это работает, затем проверьте подробную связь с базой данных и данные, которые вы хотите отобразить. Насколько я знаю, это должно сработать.

Дайте мне знать, если мой подход сработал для вас.

person Siva    schedule 09.06.2015
comment
спасибо за работу в попытке понять мою проблему и помочь мне. Но я не знаю, как управлять соединениями, какой из вариантов связи мне выбрать? - person RagnaRock; 09.06.2015
comment
Попробуйте использовать внешние соединения - person Siva; 09.06.2015
comment
удалите поля в заголовке и проверьте запрос... включите поля в заголовок и проверьте запрос... и обратите внимание на любые различия в соединениях - person Siva; 09.06.2015
comment
@RagnaRock, вы можете проверить привязку tabrecibo и tblramos ... по картинке кажется, что привязка полей неверна. - person Siva; 10.06.2015
comment
все в порядке. Как вы упомянули, он, вероятно, использует какой-то другой запрос для получения данных из таблицы tblRamos... Я пытался немного поиграть с параметрами ссылок (сохраняя те же ссылки, что и на изображении), но это не сработало. - person RagnaRock; 11.06.2015