|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Aleksey-K Marat C Aleksey-KЭто при работе только с PDF. А через Preview я не нашел. Хмм.. верно, нет такого. Вернее не было. В новои версии - 12.04.07 я это дело подправил. И еще одно, Марат. Мне кажется, что ваша программа не отрабатывает свойство Title отчета "New Page after title has printed". Во всяком случае у меня в этом режиме данные "лепятся" поверх title. Подробно я вам написал об этом на e-mail. С уважением, Алексей. Уважаемый Алексей! А Вы, случайно , не рассматривали демо-версию моей программы ( Maple4 Report Builder ), которая представлена в этом топике? Загрузить программу можно отсюда (требуется Visual FoxPro 9.0 SP1) http://www.maple4.ru/a_downloads_for_maple4_ru/m4rb_demo_no_dll.zip Что там реализовано: обработка реакции на клик (как в 1С), и запуск, если необходимо, детализированных отчетов и т.д. динамическое форматирование текста генерация необходимых нужных блоков Detail, Group, Title, Summary (их количество может быть больше 1) по условию формирование отчета в отчете (в основном отчете используются ДРУГИЕ, в них еще, и т.д.) Вообще, меня поразила тишина, после сообщения в топике - обычно здесь (SQL.ru) весьма нелестно реагируют на любые новые предложения. Чего ПОКА нет - работы с файлами графики (с рисунками), но все будет ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2008, 11:33 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
У вас же программа построитель отчетов, а мне надо программа, которая выводит готовый FRX файл. Или я не прав? С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2008, 11:37 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Marat C Aleksey-KЭто при работе только с PDF. А через Preview я не нашел. Хмм.. верно, нет такого. Вернее не было. В новои версии - 12.04.07 я это дело подправил. Еще в догонку к наложению Detail на Title. Тоже самое происходит при достаточно большом размере Title и без установки опции "New Page after title has printed". У меня такое наползание происходит при размере Title более 12.5 см на листе при ориентации Landscape С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2008, 11:52 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Aleksey-KУ вас же программа построитель отчетов, а мне надо программа, которая выводит готовый FRX файл. Или я не прав? С уважением, Алексей и все же? иногда ВСЕ РАВНО проще создать новый отчет, чем использовать старый "использует готовый FRX файл" - не главное преимущество попробуйте создать report со сложным форматированием (как в Excel-е) в обычном редакторе... в m4rb все достаточно просто выделил ячейки, объединил, задал границы, толщину границ, высоту строк, ширину колонок ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2008, 11:54 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Aleksey-KИ еще одно, Марат. Мне кажется, что ваша программа не отрабатывает свойство Title отчета "New Page after title has printed". Во всяком случае у меня в этом режиме данные "лепятся" поверх title. Подробно я вам написал об этом на e-mail. С уважением, Алексей. Алексеи, Поскольку в данном случае используется Репорт Листенер, то надо немного подшманить Listener.VCX. А именно код метода Listener.BeforeBand (полныи код метода приведен ниже) Я оставил код Listener.VCX открытым именно вот из-за этих случаев, ну и для того, чтобы юзеры могли кастомизировать оутпут. Код: plaintext 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. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2008, 18:24 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Немного подумав, нашел интересный способ вставки и отображения файлов графики в Maple4 Report Builder-e (пожалуйста, только не говорите, что в Excel-е не так:) ) Теперь через контекстное меню Edit\Picture\Insert можно в ячейку вставить любой графический файл , поддерживаемый Visual FoxPro. И он тут же отобразится в визуальном редакторе (и, конечно, будет выведен в готовом файле HTML). НО! Нужно понимать, что программа демонстрационная, поэтому никаких преобразований (задание ширины и высоты) не ведется, поэтому какой файл по размеру будет, такой и отобразится в HTML-документе. В дальнейшем, БУДЕТ возможность задания макс. ширины и высоты, или привязки их к свойствам ячейки. + возможность формирования графического файла из поля таблицы + управление файлами графики отчета Сейчас же просто хотелось показать, что снят главный барьер для использования программы (вставка графики). В окончательном варианте программа будет распространяться, как exe-приложение с запуском сценария (соединение с БД, подготовка таблиц, выполнение кода FoxPro, генерация на экран/печать на принтер), и как app-приложение для применения в FoxPro проекте. Хотелось бы узнать мнение FoxPro сообщества (именно на этом этапе, когда решены практически все проблемы с реализацией проекта, далее необходимо только время), хотя, как сказал мой знакомый, от мнения УЖЕ ничего не зависит. Ну тогда, хотя бы пару советов. Например, до сих пор не решен вопрос размещения файлов графики в теле документа (пока) - mht. В принципе, ничего критичного в том, что документы будут вида HTML нет. Загрузить программу можно отсюда (требуется Visual FoxPro 9.0 SP1) Версия (c DLL) – со страницы: P.S. Уважаемые Marat C и Aleksey-K! Есть предложение - давайте я создам новую тему по m4RB, а вы в текущей продолжите обсуждение глюков, т.е. проблем программы frx2any (они есть, как и в любой другой:) )? Спрашивается, а почему не создать новую тему по frx2any - это же логичнее? А разве есть логика в том, что бы в форуме задавать и отвечать на вопросы по другой программе, когда есть такие замечательные средства коммуникации, как email и ICQ? Еще один довод против этого - в этой теме (frx2any) НЕ БУДЕТ Marat(а) C и он НЕ СМОЖЕТ ответить на вопросы Aleksey-K :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2008, 23:25 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
настойчиво рекомендую пересмотреть идеологию интерфейса ... не сделано самое элементарное ... деятый фокс вроде же поддерживает docing panel ... вынеси ты все настройки вверху формы в подобную панль (типа property в Visual Studio) ... а так же там же продублируй функционал из контектных меню ... лично у меня такой интерфейс сразу вызывает отторжение ... что бы там ни было понапихано в потроха ... удачи ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2008, 07:21 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Хорошо, договорились. Про FRX2ANY больше не слово :) С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2008, 14:44 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Ну што можно сказать... Интерфейс - два балла, идея пока не впечатляет, такой отчет как в примере я и на Фоксовском могу получить не напрягаясь, предварительного просмотра я так и не нашел, если не считать того что после нескольких нажатий на кнопку сохранить, наконец то что то показывает! Зачем в примере Фоксовское окно?! Его нельзя убрать (если эта прога будет распространяться в виде EXE)! Почему нельзя сделать просмотр прямо в окне программы? В каком виде (с каким расширением) Вы собираетесь сохранять файлы отчетов? Создание отчетов - это хорошо, но придётся делать и отдельную программу для просмотра отчетов, при распространении пользовательских приложений. И какую новую команду VFP Вы собираетесь ввести для печати или просмотра отчетов из приложений? Ответ я приблизительно знаю, но врят ли он понравиться народу. Ну а теперь конкретнее: на мой взгляд необходимо заменить контейнер (в котором все элементы отчета) на форму со скролами и оставить линейки настройки ширины колонок и столбцов (верхнюю и левую) не перемещаемыми при соответствующих перемещениях. Будет значительно удобнее и уберутся не нужные (не удобные) кнопки перемещения. Ну на счет панели управления я промолчу (тут лутше обратиться к дизайнеру). Необходимо запоминать размеры и положение окон редактирования (Sell Field), уж больно не красиво И НЕ УДОБНО вводить несколько слов кода в окне, занимающим больщую половину экрана. Очень сильно бъет по глазам мигание экрана при попытке изменить ширину колонки или стобца. Зачем делать Visible=.F., можно просто поработать с LockScreen. Ну и так далее. Да... её ещё пилить и пилить. А посему пожелаю Вам удачи в столь нелегком деле. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2008, 12:36 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Ну што можно сказать... Интерфейс - два балла, идея пока не впечатляет, такой отчет как в примере я и на Фоксовском могу получить не напрягаясь, предварительного просмотра я так и не нашел, если не считать того что после нескольких нажатий на кнопку сохранить, наконец то что то показывает! В ДЕМОНСТРАЦИОННОМ примере последовательно выводятся 5 различных отчетов для изменения. 1 отчет - основной на его основе и формируется тот ГЛАВНЫЙ отчет, который Вы увидите после всех выводов. 2 отчет - подотчет по списку телефонов клиента он генерится при типе контракта - Phone 3 отчет - подотчет по списку IP клиента он генерится при типе контракта - Internet Назначение 2 и 3 отчетов - ВСТАВИТЬ в главный отчет, по ходу его формирования, необходимые подотчеты. Примерный расчетный уровень вложенности (один в другой и т.д.) ~ 40-50 отчетов. Принцип формирования - генерится 1 отчет, при команде генерится подотчет 2 или 3 (в зависимости от условия), но генерация идет не в файл, а в отчет 1, далее продолжается генерация 1 и т.д. 4 отчет - детализированный отчет по телефонии Он генерится в момент клика по номеру телефона (А НЕ ЗАРАНЕЕ СГЕНЕРЕН) в главном отчете. 5 отчет - детализированный отчет по IP Он генерится в момент клика по IP (он тоже НЕ СГЕНЕРЕН ЗАРАНЕЕ) в главном отчете. Еще раз повторю, 4 и 5 отчеты интерактивно генерятся ПРИ клике по телефону или IP. Насчет предварительного просмотра. Не знаю. Особенно, если учитывать, что в отчет могут входить другие отчеты. Зачем в примере Фоксовское окно?! Его нельзя убрать (если эта прога будет распространяться в виде EXE)! Почему нельзя сделать просмотр прямо в окне программы? С этим можно поспорить... В каком виде (с каким расширением) Вы собираетесь сохранять файлы отчетов? Для работы необходимы обычные файлы dbf/fpt. Вопрос в другом - как их представлять пользователю. А сейчас они, повторюсь, в виде обычных dbf/fpt находятся в соответсвующих директориях. Создание отчетов - это хорошо, но придётся делать и отдельную программу для просмотра отчетов, при распространении пользовательских приложений . То, что Вы видите - это и создатель отчетов и просмотрщик (в демке - все в одном+ файл сценария). И все уже сделано. Вы же видите отчет, который сформирован программой (т.е. он выводится на экран) И какую новую команду VFP Вы собираетесь ввести для печати или просмотра отчетов из приложений? например : do report_new.app with "Name_of_report" плюс, после запятой, флаги вывода/печати/коррекции и т.д. Ответ я приблизительно знаю, но врят ли он понравиться народу. не понял :) во всяком случае, есть еще почта и ICQ Ну а теперь конкретнее: на мой взгляд необходимо заменить контейнер (в котором все элементы отчета) на форму со скролами и оставить линейки настройки ширины колонок и столбцов (верхнюю и левую) не перемещаемыми при соответствующих перемещениях. Будет значительно удобнее и уберутся не нужные (не удобные) кнопки перемещения. Согласен Ну на счет панели управления я промолчу (тут лутше обратиться к дизайнеру). Необходимо запоминать размеры и положение окон редактирования (Sell Field), уж больно не красиво И НЕ УДОБНО вводить несколько слов кода в окне, занимающим больщую половину экрана. Согласен. Очень сильно бъет по глазам мигание экрана при попытке изменить ширину колонки или стобца. Обычно, изменение высоты строки и ширины колонки - не самая частая операция при работе с редактором. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2008, 15:10 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
В ДЕМОНСТРАЦИОННОМ примере последовательно выводятся 5 различных отчетов для изменения. 1 отчет - основной на его основе и формируется тот ГЛАВНЫЙ отчет, который Вы увидите после всех выводов. 2 отчет - подотчет по списку телефонов клиента он генерится при типе контракта - Phone 3 отчет - подотчет по списку IP клиента он генерится при типе контракта - Internet Назначение 2 и 3 отчетов - ВСТАВИТЬ в главный отчет, по ходу его формирования, необходимые подотчеты. Примерный расчетный уровень вложенности (один в другой и т.д.) ~ 40-50 отчетов. Во перемудрил!!!!!!!!!! Зачем мне 40-50 отчетов, я хочу посмотреть как будет выглядеть мой отчет, который я сейчас делаю. А что такое 2 или 3 отчеты мне совсем не интересно, да и я не совсем понимаю эту логику, хотя работаю с фоксом лет 20. Что такое "тип контактов" и где его выбирать? Не понимаю. Отчет он один!!!! Ну если у Вас такая логика, то почему бы не организовать это на PageFram? Тогда хоть что-то понятно будет. А то откуда пользователь догадается (а через пару месяцев Вы и сами не вспомните) о количестве встроенных отчетов? 40-50 раз нажать на кнопку? Тут по моему и без TreeView не обойтись. Что тяжко кнопку просмотра сделать? Да и просмотр HMTL организовать прямо на этой форме? То, что Вы видите - это и создатель отчетов и просмотрщик (в демке - все в одном+ файл сценария). И все уже сделано. И что мы позволим пользователю редактировать отчеты?!!! Кто их потом ремонтировать будет. Профи путаются, а тут пользователь, который на клавиши толком не умеет нажимать!!!! На счет этого советую подумать. Зачем в примере Фоксовское окно?! Его нельзя убрать (если эта прога будет распространяться в виде EXE)! Почему нельзя сделать просмотр прямо в окне программы? С этим можно поспорить... А что AsTopLevelForm уже кто-то отменил? Зачем лишние окна если они не несут ни какой смысловой нагрузки? Или пустое место на мониторе не чем занять? Для работы необходимы обычные файлы dbf/fpt. Вопрос в другом - как их представлять пользователю. А сейчас они, повторюсь, в виде обычных dbf/fpt находятся в соответсвующих директориях. Ну и кто потом разберётся где отчеты, а где таблицы? Не, а. Нужно своё расширение впихивать. Ещё раз удачи, а она Вам потребуется! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2008, 05:18 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
ЗЫ! На счет магания - окно мигает и при попытке выделить несколько ячеек. Не приятно. Я всётаки не понимаю - зачем делать всё окно не видимым. Ведь можно просто ThisForm.LockScreen=.T. Ну а потом, после всех манипуляций, ThisForm.LockScreen=.F. Это же просто и ни каких миганий!!!! Если Вы всётаки планирует продать это кому-то, то нужно продавать качественный продукт, и тут Ваши "не часто пользоваться" не катит. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2008, 05:58 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Во перемудрил!!!!!!!!!! Зачем мне 40-50 отчетов, я хочу посмотреть как будет выглядеть мой отчет, который я сейчас делаю. А что такое 2 или 3 отчеты мне совсем не интересно, да и я не совсем понимаю эту логику, хотя работаю с фоксом лет 20. Что такое "тип контактов" и где его выбирать? Не понимаю. Отчет он один!!!! Ну если у Вас такая логика, то почему бы не организовать это на PageFram? Тогда хоть что-то понятно будет. А то откуда пользователь догадается (а через пару месяцев Вы и сами не вспомните) о количестве встроенных отчетов? 40-50 раз нажать на кнопку? Тут по моему и без TreeView не обойтись. Что тяжко кнопку просмотра сделать? Да и просмотр HMTL организовать прямо на этой форме? Предпросмотра отчета не будет, т.к.: а) ОН УЖЕ И ТАК ЕСТЬ :) б) В состав отчета могут и будут (одно из отличий от других программ) входить подотчеты. Если пользователь захочет увидеть весь отчет, он может его запустить стандартным образом. Насчет "А что такое 2 или 3 отчеты" - это примеры отчетов, которые генерятся в основном отчете. Попробуйте их изменить (и сохранить), и Вы увидите для чего они нужны. И при чем тут логика - Их вывод на просмотр/редактирование продиктован только желанием показать, что подотчеты генерятся из визуального редактора, а не scan....endscan с формированием строк <tr><td>...</td></tr>, как можно было подумать. А вообще, Каждый отчет редактируется отдельно (да его и запустить можно отдельно) , и, соответсвенно, не нужно 40-50 раз нажимать на кнопку :) , поэтому, кстати, и PageFrame (с TreeView ) не нужен. Про "тип контактов" не понял :) В демо-таблице test_ (по ней генерится основной отчет) есть поле t2 (тип контракта), по его содержимому срабатывают различные хедеры Detail в основной таблице (only for Internet и only for Phone) Триггер (правило для срабатывания) описан в соответствующем поле (другой кнопкой мыши кликнуть по Хедеру, и выбрать Header/Rule/Report Правило для хедера Detail для Интернета: (все есть в примере) iif(alltr(test_.t2)=="Internet",.t.,.f.) Насчет 4 и 5 отчета в примере - аналогично - "Их вывод на просмотр/редактирование продиктован только желанием показать, что отчеты генерятся из визуального редактора" Можете их тоже изменить, вставить файлы графики, добавить строки колонки... и обязательно сохранить после этого. Результат Вы увидите после клика кнопкой в основном отчете. То, что Вы видите - это и создатель отчетов и просмотрщик (в демке - все в одном+ файл сценария). И все уже сделано. И что мы позволим пользователю редактировать отчеты?!!! Кто их потом ремонтировать будет. Профи путаются, а тут пользователь, который на клавиши толком не умеет нажимать!!!! На счет этого советую подумать. ДА, пользователь будет редактировать отчеты, т.е. то "что мы и хотели - переложить создание отчетов на клиента" (выше по топику, кстати) Пользователь знает FoxPro - отлично, не знает - пускай обращается к специалисту Зачем в примере Фоксовское окно?! Его нельзя убрать (если эта прога будет распространяться в виде EXE)! Почему нельзя сделать просмотр прямо в окне программы? С этим можно поспорить... А что AsTopLevelForm уже кто-то отменил? Зачем лишние окна если они не несут ни какой смысловой нагрузки? Или пустое место на мониторе не чем занять? С этим можно поспорить еще раз... Не несут смысловой нагрузки "сейчас". Для работы необходимы обычные файлы dbf/fpt. Вопрос в другом - как их представлять пользователю. А сейчас они, повторюсь, в виде обычных dbf/fpt находятся в соответсвующих директориях. Ну и кто потом разберётся где отчеты, а где таблицы? Не, а. Нужно своё расширение впихивать. Мне кажется, нужно смотреть шире :), и быть максимально открытым. А как разместить графику (файлы)? Хотелось бы, что бы они были в соответствующем каталоге в обычном виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2008, 10:13 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Мне кажется, нужно смотреть шире :), и быть максимально открытым. А как разместить графику (файлы)? Хотелось бы, что бы они были в соответствующем каталоге в обычном виде. А что уже запретили хранить графику в DBF? Вот не знал!!! Нужно смотреть всётаки не шире, а глубже!!! С этим можно поспорить еще раз... Не несут смысловой нагрузки "сейчас". И потом тоже небудет. Ведь Вы собираетесь использовать APP! Главным окном всёравно будет пользовательская прога или сам Фокс. А вообще, Каждый отчет редактируется отдельно (да его и запустить можно отдельно) , и, соответсвенно, не нужно 40-50 раз нажимать на кнопку :) , поэтому, кстати, и PageFrame (с TreeView ) не нужен. Чё та я не смог этого сделать! Ну и нужно делать демонстрашку, что бы понятно было что и откуда. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2008, 10:32 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
MiklSМне кажется, нужно смотреть шире :), и быть максимально открытым. А как разместить графику (файлы)? Хотелось бы, что бы они были в соответствующем каталоге в обычном виде. А что уже запретили хранить графику в DBF? Вот не знал!!! Нужно смотреть всётаки не шире, а глубже!!! Нет, все таки шире :) Необходимая графика будет размещаться в каталоге репорта. Насчет хранения в DBF - я это уже делал, и это не проблема (Maple4 Site Creator, ссылки выше) MiklSА вообще, Каждый отчет редактируется отдельно (да его и запустить можно отдельно) , и, соответсвенно, не нужно 40-50 раз нажимать на кнопку :) , поэтому, кстати, и PageFrame (с TreeView ) не нужен. Чё та я не смог этого сделать! Ну и нужно делать демонстрашку, что бы понятно было что и откуда. Для этого пришлось бы делать несколько демок :) А сейчас все в одном - вывод на просмотр/редактирование 5 отчетов и генерация конечной страницы HTML и вывод ее на экран (причем, не только вывод, но и отработка кликов и генерация детализированных отчетов). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2008, 10:45 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Да оранизуйте Вы его, как говорил выше, на PageFrame. И смотрется будет лутше и работать будет удобнее. А то конкуренцию MS Вам врятли удасться составить. С такими "наворотами" данный продукт боюсь ни кому не будет нужен. Вот если бы Вам удалось создать такой инстумент котрый бы превзошел MS по функциональности и был значительно легче в работе вот тогда бы авторЯ думаю, признание, богатство и слава ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2008, 11:14 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
подскажите пажалуйста мне надо вывести номер страницы в виде "1 из 5" что для этого надо прописать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2010, 22:54 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Caludподскажите пажалуйста мне надо вывести номер страницы в виде "1 из 5" что для этого надо прописать? Код: plaintext
С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2010, 07:32 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1585256]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
7ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 378ms |
total: | 507ms |
0 / 0 |