Вопросы про нумерацию и обработку дубликатов.
Вопросы про нумерацию и обработку дубликатов.
1)Здравствуйте, простите за навязчивость. Обнаружилась новая проблема с нумерацией. Проиллюстрирована во вложении. Если содержимое строки не умещается на одной странице, то значение ячейки повторяется на следующей странице. При этом нумерация которую предложили вы изменяется на единицу. Как можно избежать таких повторений на след. странице?
2) Было обнаружено что при экспорте в rtf с опцией использовать колонтитулы страницы, функция based on Tag не работает, т.к. при экспорте данные заменяются значениями прописанными в Tag'е. (см пример во вложении) .
2) Было обнаружено что при экспорте в rtf с опцией использовать колонтитулы страницы, функция based on Tag не работает, т.к. при экспорте данные заменяются значениями прописанными в Tag'е. (см пример во вложении) .
- Вложения
-
- Экспорт с колонтитулами.rtf
- (41.55 КБ) 191 скачивание
-
- Нумерация3 перенос текста.mrt
- (19.36 КБ) 162 скачивания
-
- med-01.accdb
- (740 КБ) 434 скачивания
Вопросы про нумерацию и обработку дубликатов.
Здравствуйте.
Патч будет включен в следующий предрелизный билд.
Спасибо.
Проблема решена.4it писал(а):Чтобы не открывать новую тему:
1) При экспорте в формат rtf (у текстовых компонент установлено свойство rtfpаragraph) 1-2 символа сначала текста удаляются, также удаляются все пробелы которые стоят сначала абзаца.
Патч будет включен в следующий предрелизный билд.
По умолчанию формат всех текстовых ячеек установлен в General. Установите формат нужной ячейки "Date".4it писал(а):2) В базе данных есть поля типа дата/время. Прописаны они в виде исключительно даты, например 23.07.2010. При генерации отчета, эти данные отображаются в виде 23.07.2010 0:00:00. Как сделать так, чтобы выводилась лишь дата без времени?
Перенесите скрипт из Rendering event датабэнда в BeforePrint event датабэнда, в событии BeginRender бэнда GroupHeaderBand30 замените в скрипте номер линии 1 на 0.4it писал(а):1)Обнаружилась новая проблема с нумерацией. Проиллюстрирована во вложении. Если содержимое строки не умещается на одной странице, то значение ячейки повторяется на следующей странице. При этом нумерация которую предложили вы изменяется на единицу. Как можно избежать таких повторений на след. странице?
Проблема есть. Из документации: "Если поле Tag не пустое, то экспортируется не поле Text, а содержимое поля Tag. При этом внутри строки могут находиться следующие выражения, которые заменяются на команды MS-Word: .... ". Это было сделано задолго до того, как появилась BasedOnTagMerge. Вариантов решения проблемы пока нет.4it писал(а):2) Было обнаружено что при экспорте в rtf с опцией использовать колонтитулы страницы, функция based on Tag не работает, т.к. при экспорте данные заменяются значениями прописанными в Tag'е. (см пример во вложении).
Спасибо.
Вопросы про нумерацию и обработку дубликатов.
Спасибо. Работает.
Edit: В этом простом отчете все отлично заработало. Однако в более сложных отчетах, которые я выслать вам не могу, в ряде случаев происходит сбой и нумерация начинается с нуля. Закономерность проследить не удалось: то несколько значений подряд, то через один. Возможно что чтобы понять проблему необходимо обладать способностями телепатии, но не могли бы вы предположить причину этого?
А возможно ли сделать чтобы содержимое, вместе с нумерацией вовсе не отображалось повторно, на следующей странице?1)Обнаружилась новая проблема с нумерацией. Проиллюстрирована во вложении. Если содержимое строки не умещается на одной странице, то значение ячейки повторяется на следующей странице. При этом нумерация которую предложили вы изменяется на единицу. Как можно избежать таких повторений на след. странице?
Перенесите скрипт из Rendering event датабэнда в BeforePrint event датабэнда, в событии BeginRender бэнда GroupHeaderBand30 замените в скрипте номер линии 1 на 0.
Edit: В этом простом отчете все отлично заработало. Однако в более сложных отчетах, которые я выслать вам не могу, в ряде случаев происходит сбой и нумерация начинается с нуля. Закономерность проследить не удалось: то несколько значений подряд, то через один. Возможно что чтобы понять проблему необходимо обладать способностями телепатии, но не могли бы вы предположить причину этого?
Вопросы про нумерацию и обработку дубликатов.
Здравствуйте.
Спасибо.
Смотрите прикрепленный пример отчета.4it писал(а):А возможно ли сделать чтобы содержимое, вместе с нумерацией вовсе не отображалось повторно, на следующей странице?
Попробуйте вместе с обнулением номера линии очищать и переменную lastValue.4it писал(а):В этом простом отчете все отлично заработало. Однако в более сложных отчетах, которые я выслать вам не могу, в ряде случаев происходит сбой и нумерация начинается с нуля. Закономерность проследить не удалось: то несколько значений подряд, то через один. Возможно что чтобы понять проблему необходимо обладать способностями телепатии, но не могли бы вы предположить причину этого?
Спасибо.
- Вложения
-
- Нумерация3 перенос текста 3.zip
- (3.6 КБ) 199 скачиваний
Вопросы про нумерацию и обработку дубликатов.
Здравствуйте, Спасибо Вам за помощь которую вы оказываете.
1) Все что вы предложили - заработало. Есть только такая задача: в присланном вами примере, можно избавиться от повторяющейся нумерации и повторения значений первого столбца на разных страницах. А как убрать повторения для каждого столбца. Попытался сделать по аналогии, в принципе практически работает, но не совсем корректно. Вопрос на каком этапе обнулять значение lastValue для остальных столбцов? Кроме того в определенных случаях остается лишняя пустая строка.
И может быть можно обойтись какой-нибудь встроенной функцией (свойством). Что-то вроде разрывать при переходе на следующую страницу, либо наоборот отображать только целиком без разрывов. Есть что-нибудь похожее?
2) Необходимо чтобы все элементы таблицы отображались "как минимум". Можете в один из отчетов который вам высылался вставить для примера код, реализующий настройку экспорта LineHeightExactly = false. Либо как сделать чтобы в предварительном просмотре данные таблицы отображались "как минимум".
3) Скажите пожалуйста в каких единицах задаются поля объектов?
1) Все что вы предложили - заработало. Есть только такая задача: в присланном вами примере, можно избавиться от повторяющейся нумерации и повторения значений первого столбца на разных страницах. А как убрать повторения для каждого столбца. Попытался сделать по аналогии, в принципе практически работает, но не совсем корректно. Вопрос на каком этапе обнулять значение lastValue для остальных столбцов? Кроме того в определенных случаях остается лишняя пустая строка.
И может быть можно обойтись какой-нибудь встроенной функцией (свойством). Что-то вроде разрывать при переходе на следующую страницу, либо наоборот отображать только целиком без разрывов. Есть что-нибудь похожее?
2) Необходимо чтобы все элементы таблицы отображались "как минимум". Можете в один из отчетов который вам высылался вставить для примера код, реализующий настройку экспорта LineHeightExactly = false. Либо как сделать чтобы в предварительном просмотре данные таблицы отображались "как минимум".
3) Скажите пожалуйста в каких единицах задаются поля объектов?
Вопросы про нумерацию и обработку дубликатов.
Здравствуйте.
Спасибо.
Для каждого столбца должна быть своя переменная (lastValue2, lastValue3 и т.д.). В каком месте обнулять - зависит от нужной вам структуры отчета.4it писал(а):1) Все что вы предложили - заработало. Есть только такая задача: в присланном вами примере, можно избавиться от повторяющейся нумерации и повторения значений первого столбца на разных страницах. А как убрать повторения для каждого столбца. Попытался сделать по аналогии, в принципе практически работает, но не совсем корректно. Вопрос на каком этапе обнулять значение lastValue для остальных столбцов? Кроме того в определенных случаях остается лишняя пустая строка.
На данный момент ничего похожего нет.4it писал(а):И может быть можно обойтись какой-нибудь встроенной функцией (свойством). Что-то вроде разрывать при переходе на следующую страницу, либо наоборот отображать только целиком без разрывов. Есть что-нибудь похожее?
Вставьте следующий код в событие BeginRender отчета:4it писал(а):2) Необходимо чтобы все элементы таблицы отображались "как минимум". Можете в один из отчетов который вам высылался вставить для примера код, реализующий настройку экспорта LineHeightExactly = false.
Код: Выделить всё
StiOptions.Export.Rtf.LineHeightExactly = false;
Установите у всех ячеек таблицы свойства CanShrink и CanGrow в true, у самой таблицы свойство CanShrink в true.4it писал(а):Либо как сделать чтобы в предварительном просмотре данные таблицы отображались "как минимум".
Поля Margins текстбоксов задаются в сотых дюйма. Все остальные размеры в текущих единицах измерения.4it писал(а):3) Скажите пожалуйста в каких единицах задаются поля объектов?
Спасибо.
Вопросы про нумерацию и обработку дубликатов.
То что для каждого столбца должна быть своя переменная это ясно. Данное обнуление необходимо для решения той же проблемы что и для первого столбца. Чтобы данные не отображались повторно при переносе на другую страницу. Обнуление судя по всему необходимо после того как выводится 1-я ячейка данных столбца №1. так как остальные столбцы должны осуществлять обработку дубликатов в рамках одного значения этого столбца. Сейчас же либо остаются пустые ячейки, либо объединение получается вне зависимости от значения 1-го столбца.Ivan писал(а):Здравствуйте.
Для каждого столбца должна быть своя переменная (lastValue2, lastValue3 и т.д.). В каком месте обнулять - зависит от нужной вам структуры отчета.4it писал(а):1) Все что вы предложили - заработало. Есть только такая задача: в присланном вами примере, можно избавиться от повторяющейся нумерации и повторения значений первого столбца на разных страницах. А как убрать повторения для каждого столбца. Попытался сделать по аналогии, в принципе практически работает, но не совсем корректно. Вопрос на каком этапе обнулять значение lastValue для остальных столбцов? Кроме того в определенных случаях остается лишняя пустая строка.
Спасибо все это работает. Только после экспорта в rtf войти в свойства таблицы и еще нажать высота строк : "как минимум", то высота столбцов еще уменьшится. Я так понимаю что настолько сжать по высоте таблицу в редакторе не возможно.2) Необходимо чтобы все элементы таблицы отображались "как минимум". Можете в один из отчетов который вам высылался вставить для примера код, реализующий настройку экспорта LineHeightExactly = false.
Вставьте следующий код в событие BeginRender отчета:
Code:
StiOptions.Export.Rtf.LineHeightExactly = false;
4it wrote:
Либо как сделать чтобы в предварительном просмотре данные таблицы отображались "как минимум".
Установите у всех ячеек таблицы свойства CanShrink и CanGrow в true, у самой таблицы свойство CanShrink в true.
Нет возможности задавать поля Margins в сантиметрах (в метрической системе)?4it wrote:
3) Скажите пожалуйста в каких единицах задаются поля объектов?
Поля Margins текстбоксов задаются в сотых дюйма. Все остальные размеры в текущих единицах измерения.
Вопросы про нумерацию и обработку дубликатов.
Здравствуйте.
Спасибо.
Чтобы данные не отображались повторно при переносе на другую страницу, в первом столбце используется еще одна переменная lineNumber2, во втором столбце переменная varDoctorName. Они обеспечивают вывод только первого из повторяющихся значений ячейки.4it писал(а):То что для каждого столбца должна быть своя переменная это ясно. Данное обнуление необходимо для решения той же проблемы что и для первого столбца. Чтобы данные не отображались повторно при переносе на другую страницу. Обнуление судя по всему необходимо после того как выводится 1-я ячейка данных столбца №1. так как остальные столбцы должны осуществлять обработку дубликатов в рамках одного значения этого столбца. Сейчас же либо остаются пустые ячейки, либо объединение получается вне зависимости от значения 1-го столбца.
Да, в MS-Office используются собственные методы отображения текста (довольно глючные кстати), и невозможно заранее просчитать как будет выглядеть текст.4it писал(а):Спасибо все это работает. Только после экспорта в rtf войти в свойства таблицы и еще нажать высота строк : "как минимум", то высота столбцов еще уменьшится. Я так понимаю что настолько сжать по высоте таблицу в редакторе не возможно.
К сожалению, этот момент был упущен из виду уже очень давно. Если сейчас что-нибудь поменять, это вызовет проблемы с совместимостью у многих пользователей.4it писал(а):Нет возможности задавать поля Margins в сантиметрах (в метрической системе)?
Спасибо.
Вопросы про нумерацию и обработку дубликатов.
Мне кажется Вы не совсем понимаете мой вопрос попробую на примере. Как можно видеть теперь повторяются и содержимое других столбцов (с пациентами и комментариями). Нужно сделать то же что и со столбцом с докторами. Пробовал вставлять следующий дурацкий код, но не корректно получается, и непонятно после какого момента обновлять LastValue2 и LastValue3 (по идее после того как отпечатается 1-е значение предыдущего столбца, но я такой возможности не нашел).Ivan писал(а):Здравствуйте.
Чтобы данные не отображались повторно при переносе на другую страницу, в первом столбце используется еще одна переменная lineNumber2, во втором столбце переменная varDoctorName. Они обеспечивают вывод только первого из повторяющихся значений ячейки.4it писал(а):То что для каждого столбца должна быть своя переменная это ясно. Данное обнуление необходимо для решения той же проблемы что и для первого столбца. Чтобы данные не отображались повторно при переносе на другую страницу. Обнуление судя по всему необходимо после того как выводится 1-я ячейка данных столбца №1. так как остальные столбцы должны осуществлять обработку дубликатов в рамках одного значения этого столбца. Сейчас же либо остаются пустые ячейки, либо объединение получается вне зависимости от значения 1-го столбца.
Код: Выделить всё
if (ИсточникДанных1.doctorName != lastValue)
{
lastValue = ИсточникДанных1.doctorName;
lineNumber++;
lineNumber2 = lineNumber.ToString();
varDoctorName = ИсточникДанных1.doctorName;
}
else
{
lineNumber2 = "";
varDoctorName = "";
}
if (ИсточникДанных1.patientName != lastValue2)
{
lastValue2 = ИсточникДанных1.patientName;
varPatientName = ИсточникДанных1.patientName;
}
else
{
varPatientName = "";
}
if (ИсточникДанных1.visitComment != lastValue3)
{
lastValue3 = ИсточникДанных1.visitComment;
varVisitComments = ИсточникДанных1.visitComment;
}
else
{
varVisitComments = "";
}
- Вложения
-
- Повторение значений на следующей странице.mrt
- (20.52 КБ) 183 скачивания
-
- med-01.accdb
- (772 КБ) 409 скачиваний
Вопросы про нумерацию и обработку дубликатов.
Здравствуйте.
Ваш код правильный, необходимо только вставить очистку переменной lastValue2 в первом условии и lastValue3 во втором условии.
Также заменить в таблице значение ячейки {ИсточникДанных1.patientName} на {varPatientName} и значение ячейки {ИсточникДанных1.visitComment} на {varVisitComments}.
Спасибо.
Ваш код правильный, необходимо только вставить очистку переменной lastValue2 в первом условии и lastValue3 во втором условии.
Также заменить в таблице значение ячейки {ИсточникДанных1.patientName} на {varPatientName} и значение ячейки {ИсточникДанных1.visitComment} на {varVisitComments}.
Код: Выделить всё
if (ИсточникДанных1.doctorName != lastValue)
{
lastValue = ИсточникДанных1.doctorName;
lineNumber++;
lineNumber2 = lineNumber.ToString();
varDoctorName = ИсточникДанных1.doctorName;
lastValue2 = "";
}
else
{
lineNumber2 = "";
varDoctorName = "";
}
if (ИсточникДанных1.patientName != lastValue2)
{
lastValue2 = ИсточникДанных1.patientName;
varPatientName = ИсточникДанных1.patientName;
lastValue3 = "";
}
else
{
varPatientName = "";
}
if (ИсточникДанных1.visitComment != lastValue3)
{
lastValue3 = ИсточникДанных1.visitComment;
varVisitComments = ИсточникДанных1.visitComment;
}
else
{
varVisitComments = "";
}
- Вложения
-
- Повторение значений на следующей странице 2.zip
- (3.81 КБ) 192 скачивания