Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Снова приветствую! Есть макет отчета, в который выводится, например, получатель документов. Если наименование получателя шибко длинное - тут есть свойство ячейки "Переносить по словам" (вроде, так). Тогда в ячейку влезет всё, а сама она подрастет в высоту. А вот как быть со случаями, когда надо это наименование разбить на несколько фрагментов, которые поместились бы по ширине в фиксированной ширины ячейку? Т.е. надо как-то длинное наименование разместить в несколько строк, представленных на картинке-примере. Видно, что минимальное количество строк - 4, но возможно увеличение этого количества, в зависимости от длины строки, которую надо в них разместить. Как быть? Сталкивался кто? Ваяю: MS Access 2003, mdb | VB.NET + mdb/SQL Express | 1С 8.2.14, тонкий клиент, управляемое приложение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 04:34 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Пиши функцию которая бы разбила строку и возвратила бы массив строк. Можно написать как рекурсией, так и с помощью типовых функций работы со строкой. Функции split в 1С нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 07:17 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Используйте моноширинный шрифт и подстроки. ЗЫ Многие правилами и знаками переноса не заморачиваются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 10:19 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
SashaMПиши функцию которая бы разбила строку и возвратила бы массив строк От этого и хотел уйти... AHDPИспользуйте моноширинный шрифт и подстроки. ЗЫ Многие правилами и знаками переноса не заморачиваются. Моноширинка навряд ли пойдет... Документ будет смотреться немонолитно. Я сторонник эстетики. =) А что такое "подстроки"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 11:50 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Лев(), Сред(), Прав(). А иначе вы ширину не угадаете и не отследите. ЗЫ Меня устраивали напечатанные на машинке документы, да и форум вполне прилично выглядит. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 12:01 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Да что тут делать, у тебя ж шаблон всегда на 4-ре строки: Перем ДлиннаяСтрока; кусок1 = Сред(ДлиннаяСтрока,1,50); кусок2 = Сред(ДлиннаяСтрока,51,50); кусок3 = Сред(ДлиннаяСтрока,101,50); кусок4 = Сред(ДлиннаяСтрока,151);// а вот если еще больше, тогда не влезет :) Вместо 50-только подобрать надо сколько для строки надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 12:03 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
KreontsaДа что тут делать, у тебя ж шаблон всегда на 4-ре строки: Перем ДлиннаяСтрока; кусок1 = Сред(ДлиннаяСтрока,1,50); кусок2 = Сред(ДлиннаяСтрока,51,50); кусок3 = Сред(ДлиннаяСтрока,101,50); кусок4 = Сред(ДлиннаяСтрока,151);// а вот если еще больше, тогда не влезет :) Вместо 50-только подобрать надо сколько для строки надо Дык я так и сделал. А запостился во имя поиска более оптимальных решений. Единственное, я не тупо режу строку по длине, а беру макс.символов, влезающих в строку, и иду посимвольно назад в поисках пробела, чтобы по словам переносить. =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 12:37 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Хотя, если честно, смысла не вижу в этих межстрочных подсказках мелким шрифтом... Ну почему я в настроенном макете, заполняющемся программно, должен реализовывать подсказки, предназначенные для ручного заполнения?! Но - заказчик хочет. Блинский! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 12:40 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
ети подсказки скорей всего "кемто" утвержд.бланк :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 12:45 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Kreontsaети подсказки скорей всего "кемто" утвержд.бланк :) В том-то и беда, что Вы правы. =) Я, конечно, никто - для того чтобы судить подобные изыски, - но ИМХО это мусор, который а) "ломает" читабельность документа, б) занимает место на бумаге да и в) просто не нужен в условиях автозаполнения документа. Если я получаю Свидетельство на право собственности, к примеру, мне ведь (да и прочим "органам") важны те сведения, которые написаны крупным шрифтом: Документ...земельный участок, категория земель - земли населенных пунктов, вид разрешенного использования - для индивидуального жилищного строительства, площадь - 2500 кв.м ... внесена регистрационная запись № 55/55-5555-555555 от 11.11.1111 г. ... ВСЁ! И до банана всем, что Управление Росреестра по Ленинградской области - это (судя по подсказке) "орган, уполномоченный на регистрацию прав на недвижимое имущество и сделок с ним" (как-то так). А программа сама разберется, куда ей какие сведения впихуять. Не? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 12:56 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Намутил функцию для универсальности: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Из известных косяков: не учел случаи, когда макс.длина строки меньше длины одного слова. Например, если максимальная длина строки равна 10 символам, а попалось слово длиной >=10 символов, то вылетит с ошибкой. Но мне таких случаев не видать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 20:14 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Вот, для наглядности закинул на Яндекс.Диск 5-метровую видяшку на полторы минуты для демонстрации того, как все настроено и как выглядит описываемая ошибка. Слезно прошу помочь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 21:07 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
КириллНВот, для наглядности закинул на Яндекс.Диск 5-метровую видяшку на полторы минуты для демонстрации того, как все настроено и как выглядит описываемая ошибка. Слезно прошу помочь... Блин, не в тот топик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 21:15 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
КириллННамутил функцию для универсальности: Это не намутил... более мутная функция это моя... она учитывает что слово может не влазить в максимальную длину и берет слово целиком. PS: Функция написана с помощью рекурсии и не является оптимальной как с точки зрения ресурсов так и скорости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2012, 04:13 |
|
||
|
Макет отчета: как разбить строку произвольного текста на фрагменты?
|
|||
|---|---|---|---|
|
#18+
Небольшая оптимизация кода: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2012, 10:53 |
|
||
|
|

start [/forum/topic.php?fid=28&fpage=52&tid=1520157]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 432ms |

| 0 / 0 |
