Список форумов КЛУБ FileMaker.RU КЛУБ FileMaker.RU

 
new forum: www.fmforum.ru
FileMaker DevCon Rus 2017.IV коенференция российских разработчиков на платформе FileMaker.
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Увеличить/уменьшить отступ через скрипт
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM
Предыдущая тема :: Следующая тема  
Автор Сообщение
kairden



Зарегистрирован: 21.06.2013
Сообщения: 133

СообщениеДобавлено: Пн Фев 06, 2017 3:08 am    Заголовок сообщения: Увеличить/уменьшить отступ через скрипт Ответить с цитатой

Возникла необходимость смещать текст в поле по кнопке.
Например: кнопка "вправо" смещает текст в поле вправо; кнопка "влево" смещает текст влево.

Пробовал так: создавать калькулируемое поле, где добавляются пробелы:
Код:
If ( Table::NumericField > 0 ; " " ; "" ) &
If ( Table::NumericField > 1 ; " " ; "" ) &
If ( Table::NumericField > 2 ; " " ; "" ) &
...
If ( Table::NumericField > n ; " " ; "" ) &
Table::TextField

Метод получился весьма примитивным + не имеет возможности его использовать, если в поле установлен шрифт штрих-кодовский...

У кого нибудь есть варианты?
В частности интересует изменение атрибута "отступ" скриптом (у кого на англ.: "Indents", в разделе "Paragraph", во вкладке "Appearance").
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kairden



Зарегистрирован: 21.06.2013
Сообщения: 133

СообщениеДобавлено: Пн Фев 06, 2017 3:38 am    Заголовок сообщения: Ответить с цитатой

Проблему со штрих-кодовскими шрифтами решил так:
Код:
...
If ( Table::NumericField > n ; TextFont ( " " ; "Arial" ) ; "" ) &
...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Arcady



Зарегистрирован: 24.02.2006
Сообщения: 704

СообщениеДобавлено: Вт Фев 07, 2017 2:23 pm    Заголовок сообщения: Ответить с цитатой

Генерировать строчку символов заданной длины проще с помощью просто кустом-функции, например такой:

repeat_symbol ( n ; smb )

If (n=0;
"";
smb & repeat_symbol (n-1; smb)
)


Можно также использовать знак табуляции и настроить в поле на макете величину смещения.

PS. не могу представить для какой задачи вам могло такое понадобится?
_________________
Аркадий Перла.
ТриАПринт. Разработка решений для FileMaker
http://www.3a-print.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
kairden



Зарегистрирован: 21.06.2013
Сообщения: 133

СообщениеДобавлено: Пт Фев 10, 2017 6:17 am    Заголовок сообщения: Ответить с цитатой

Насчет кастом функции - до само вызова функции не догадался (просто продублировал строку условия до 70 раз Very Happy ). В принципе - решение.

Про табуляцию, если честно не понял.

Задача - изолировать пользователя от редактирования макета. Думал стандартная задача...

Сейчас имею 2 проблемы: Поворот (направление) текста и ... контейнер.

1 - с поворотом пришлось дублировать калькулируемые поля, примерно так: if (rotate = 0 ; text ; "").
не кошерно конечно, но работает. Если есть более оптимальные варианты, пожалуйста, предлагайте.

2 - с контейнером даже не знаю, что придумать. WebViewer - искажает изображение (как если бы контейнер создавал миниатюру).

Arcady, за идею самовызова функции - спасибо, избавился от каши.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Arcady



Зарегистрирован: 24.02.2006
Сообщения: 704

СообщениеДобавлено: Пт Фев 10, 2017 10:28 am    Заголовок сообщения: Ответить с цитатой

Цитата:
за идею самовызова функции - спасибо,

это называется рекурсия Very Happy

Цитата:
Про табуляцию, если честно не понял.

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

а что вы от контейнера хотите получить, тоже двигать изображение?
_________________
Аркадий Перла.
ТриАПринт. Разработка решений для FileMaker
http://www.3a-print.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Andrey Volkov



Зарегистрирован: 26.10.2009
Сообщения: 1609
Откуда: Ярославль

СообщениеДобавлено: Пт Фев 10, 2017 12:24 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
WebViewer - искажает изображение (как если бы контейнер создавал миниатюру)

как если бы кто-то не умел его правильно готовить...
Изображение в веб-вьюер каким образом попадает?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kairden



Зарегистрирован: 21.06.2013
Сообщения: 133

СообщениеДобавлено: Сб Фев 11, 2017 4:33 am    Заголовок сообщения: Ответить с цитатой

Цитата:
это называется рекурсия Very Happy

и тем не менее)))
Цитата:
а что вы от контейнера хотите получить, тоже двигать изображение?

Именно, двигать в ней изображение. В других средах разработки можно программно изменять свойства обьектов (позиция и размеры), но тут приходится изворачиваться. Тут в в некотором плане удобнее.

Цитата:
Изображение в веб-вьюер каким образом попадает?

Как вы знаете, поле контейнер может использовать миниатюры, загруженного в него, изображения. При печати разница между миниатюрой и оригиналом - как земля и небо, особенно если под изображением имеется в виду фото.

Мое первое решение было использовать веб-вивер конечно, по весьма понятным соображениям.
Так вот - при печати, изображение в веб вивере печатается так, словно для него тоже создается миниатюра.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Arcady



Зарегистрирован: 24.02.2006
Сообщения: 704

СообщениеДобавлено: Сб Фев 11, 2017 11:18 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Именно, двигать в ней изображение.

решений я вижу несколько, и все они мне не нравятся:
- разбираться с вебвиюером и двигать средствами html/js
- менять само изображение (пупутоно сохраняя оригинал) приресовывая слева белые полоски тем самым увеличивая его размер. Это можно делать, разными способами, например написав свою функцию на java используя плагин ScriptMaster от 360Works (бесплатный)
- расположить несколько контейнеров на макете с заданным шагом и включать видимость для того контейнера, который соответствует заданному смещению пользователя.

но вообще может все таки дать пользователю право изменять макет? На лайоут можно же дать отдельные права, чтобы пользователь мог менять только этот макет и не мог изменить все остальные в базе.
_________________
Аркадий Перла.
ТриАПринт. Разработка решений для FileMaker
http://www.3a-print.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
kairden



Зарегистрирован: 21.06.2013
Сообщения: 133

СообщениеДобавлено: Вс Фев 12, 2017 4:36 am    Заголовок сообщения: Ответить с цитатой

Цитата:
- разбираться с вебвиюером и двигать средствами html/js

Вариант отпадает из за особенностей вебвивера отображать миниатюру изображения (качество страдает).
Цитата:
- менять само изображение (пупутоно сохраняя оригинал) приресовывая слева белые полоски тем самым увеличивая его размер. Это можно делать, разными способами, например написав свою функцию на java используя плагин ScriptMaster от 360Works (бесплатный)

самый нормальный вариант и до ужаса сложный (для меня, не работал с плагинами).
Цитата:
- расположить несколько контейнеров на макете с заданным шагом и включать видимость для того контейнера, который соответствует заданному смещению пользователя.

Вариант отпадает из за грубости смещения + изрядно будет унижать макет спамом обьектов...

Цитата:
но вообще может все таки дать пользователю право изменять макет? На лайоут можно же дать отдельные права, чтобы пользователь мог менять только этот макет и не мог изменить все остальные в базе.

На данный момент - это есть решение. Оставить право за разработчиком - оформлять сложные макеты (с наличием данных в форме изображений).[/code]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kairden



Зарегистрирован: 21.06.2013
Сообщения: 133

СообщениеДобавлено: Вс Фев 12, 2017 4:36 am    Заголовок сообщения: Ответить с цитатой

Цитата:
- разбираться с вебвиюером и двигать средствами html/js

Вариант отпадает из за особенностей вебвивера отображать миниатюру изображения (качество страдает).
Цитата:
- менять само изображение (пупутоно сохраняя оригинал) приресовывая слева белые полоски тем самым увеличивая его размер. Это можно делать, разными способами, например написав свою функцию на java используя плагин ScriptMaster от 360Works (бесплатный)

самый нормальный вариант и до ужаса сложный (для меня, не работал с плагинами).
Цитата:
- расположить несколько контейнеров на макете с заданным шагом и включать видимость для того контейнера, который соответствует заданному смещению пользователя.

Вариант отпадает из за грубости смещения + изрядно будет унижать макет спамом обьектов...

Цитата:
но вообще может все таки дать пользователю право изменять макет? На лайоут можно же дать отдельные права, чтобы пользователь мог менять только этот макет и не мог изменить все остальные в базе.

На данный момент - это есть решение. Оставить право за разработчиком - оформлять сложные макеты (с наличием данных в форме изображений).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Andrey Volkov



Зарегистрирован: 26.10.2009
Сообщения: 1609
Откуда: Ярославль

СообщениеДобавлено: Вс Фев 12, 2017 1:16 pm    Заголовок сообщения: Ответить с цитатой

я извиняюсь, что я вмешиваюсь

я считаю, что вам не нужно выводить макет на печать средствами файлмейкера.
я считаю, что вам нужно все содержимое макета, включая тексты и картинки с нужными отступами, всю верстку в общем, выполнить в виде большого веб-вьюера. И собственно этот веб-вьюер уже и выводить на печать.
Кнопку там организовать, в хтмл
Код:
"data:text/html, <!DOCTYPE html>
<html>
<header>
<style type='text/css'>

@media print {
#butt {display: none;}
body {font-size:11px}
}

</style>
</header>
<body >

<input type='button' id='butt' value='Печать' onclick='print()'></input>
<br>
...
...
...
</body>
</html>




здесь в примере при печати кнопка исчезнет, а шрифт боди станет меньше, чем в предпросмотре. Если это не нужно, то шрифт можно не трогать. Если не заморачиваться с кнопками, то распечатать веб-вьюер можно из контекстного меню: клик правой кнопкой мыши, Печать
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Arcady



Зарегистрирован: 24.02.2006
Сообщения: 704

СообщениеДобавлено: Вс Фев 12, 2017 6:13 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
выполнить в виде большого веб-вьюера.


так мы дойдем до разработки веб-приложения Wink
_________________
Аркадий Перла.
ТриАПринт. Разработка решений для FileMaker
http://www.3a-print.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Andrey Volkov



Зарегистрирован: 26.10.2009
Сообщения: 1609
Откуда: Ярославль

СообщениеДобавлено: Вс Фев 12, 2017 8:15 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
так мы дойдем до разработки веб-приложения

нет. не дойдем, ограничимся изучением js и груви )

html для нестандартных печатных форм (типа таблиц со слиянием ячеек и динамической высотой строк) - вполне приемлемая вещь, как я считаю.
https://drive.google.com/file/d/0B-8R4WcN_bcITlZXNjhMc1hRZ1U/view


Последний раз редактировалось: Andrey Volkov (Вс Фев 12, 2017 8:17 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Andrey Volkov



Зарегистрирован: 26.10.2009
Сообщения: 1609
Откуда: Ярославль

СообщениеДобавлено: Вс Фев 12, 2017 8:16 pm    Заголовок сообщения: Ответить с цитатой

хз как картинки добавлять здесь )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kairden



Зарегистрирован: 21.06.2013
Сообщения: 133

СообщениеДобавлено: Пн Фев 13, 2017 9:12 am    Заголовок сообщения: Ответить с цитатой

Почему никто не видит в моих сообщениях:
Цитата:
...Вариант отпадает из за особенностей вебвивера отображать миниатюру изображения (качество страдает)...

Andrey Volkov, извиняться конечно же не за что - ваш вариант аргументирован и был бы вполне актуальным, но...
Вначале этого проекте, я так и делал. Пока не заметил эту особенность вебвивера, насчет изображений.
... а вот насчет текста - один вебвивер на всю верстку не могу воткнуть, потом долго придется подгонять размеры и размещения (а эти параметры будут изменяться с каждым новым макетом, которых будет чуть меньше, чем дофига).
Поправьте если ошибаюсь, печать содержимого вебвивера распознается как одно изображение.
Использование вебвивера в плане реализации проекта и управления макетом - идеально. В плане использования - неожиданные сюрпризы. Собрать макет средствами html - конечно легче. Но погрешности на каждом шагу. Штатные средства ФМ - можно собрать макет как есть и как на печать.

Andrey Volkov писал(а):
хз как картинки добавлять здесь )

так же как для обычного сайта с ключом "<img...>"?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB