FileMaker


Вопрос: А в каких случаях рационально использовать FMP?

Ответ: У ФМ ограничение на размер файла 2ГБ. Если у вас произведение количества записей на размер записи больше 2ГБ, то FM не годится. Но это вряд ли. Судя по западным конференциям в FM без проблем делаются базы по 100-300 тысяч записей, 30-50 таблиц, 20-50 пользователей. Если это ваш внутренний и единственный проект, то я бы склонился к FM. Как минимум learning curve уменьшится, а скорость разработки увеличится. Но там масса тонкостей, которые нужно учитывать, так что окончательного рецепта дать не могу.

Mikhail Edoshin

К началу

Вопрос: Будет ли работать нормально пятый FileMaker Server при обслуживании максимум 4-5 одновременных соединений на компе типа 7100 (по TCP/IP)?

Ответ: FMS 5.0 поддерживает до 250-ти гостей; до 125 файлов одновременно. Работает на любом PPC. В мелких сетях (до 10 гостей; до 50 файлов) рекомендуется использовать обычную версию FM, не сервер. TCP/IP -- предпочтительный протокол во всех случаях. Файлы сервера открывать только через кнопку Hosts диалога FM Open File на гостевой машине! Ни в коем случае не открывать файлы с shared дисков - огромная потеря скорости!

Alexander Zueiv

У обычного FM есть забавное соотношение между количеством "гостей" и количеством зашаренных файлов. Суть в том, что чем больше гостей, тем меньше файлов может быть зашарено; максимальные 50 файлов будут доступны только одному.

Mikhail Edoshin

К началу

Вопрос: Возникла необходимость упорядочить большое кол-во текстовых файлов, содержащих картинки и таблицы. В каждом файлике число графики и таблиц колеблется от 0 до 20. Можно ли это сделать в FileMaker?

Ответ: Лучше всего "сваливать" графику в связанный файл, тогда одной записи основного файла будут соответствовать N записей связанного файла, содержащего картинки.
Например:

Files.fp3
----------
File Name (Text)
File ID (Number, Auto-enter Serial)

Picts.fp3
-----------
File ID (Number)
Pict (Container)

В основном файле (Files.fp3) создаем реляционную связь:

Relationship Name: Picts
Relationship: File ID = ::File ID
Related File: Picts.fp3
Options: Allow creation..., Delete related...

Теперь можно на Layout'е основного файла разместить портал отображающий записи по реляционной связи Picts, и поместить поле Picts::Pict в первую строку этого портала.


Alex_Z

К началу

Вопрос: Есть база в FoxPro (для РС ессно), как ее переделать под FMP?

Ответ: Если просто сконвертировать, то - швырни все DBF-файлы на иконку FM, и он тебе сорудит из каждого свою БД (без интерфейса, естественно).

Alexander Zueiv

К началу

Вопрос: Как добиться корректной работы Web Companion (FMP 4) с кириллическими кодировками?

Ответ: FileMaker-овский WebCompanion побежден отчасти самими нами, отчасти силами компании MacTimes (Ростов-на-Дону, http://www.mactimes.ru/). Я в свое время тоже озаботился было этой проблемой, разобрался с тем как работать с вводом/выводом по-русски (в маковской кодировке), начал было разбираться с другими кодировками, но как то зашел к ним и увидел, что все уже работает. Правда перекодировка работает только на вывод, но на ввод нам не очень то и хотелось. Поскольку они нам люди были знакомые - связались с ними и они поделились секретом.

1. Маковая кодировка. Очень просто. При составлении темплейта на вывод информации нужно в описаниях полей явно после названия поля через запятую указать тип данных Raw. Вот пример из нашего темплейта списка продуктов:

<TD ALIGN=LEFT WIDTH=350><FONT SIZE=2 STYLE="font-size: 10pt">[FMP-field:Configuration, Raw]</FONT></TD>


Вот и все. На ввод у FM по умолчанию тип Raw. Имеется ввиду FM4.

2. Для других кодировок нужно подсунуть FM дополнительные Webcompanion'ы, которые делаются путем подмены табличек перекодировки (ресурсов taBL с номерами 23000 и 23001) ResEdit'ом из основного, дальнейшего переименования и, уже в ФМ, когда он их признает, настройки таковых на разные порты (у нас например, 8100 - mac, 8101 - win, 8102 - koi). По поводу готовых компанионов, спроси, пожалуйста, мактаймсов. Я уверен, что они дадут, они люди хорошие, но лучше взять у них.

Вячеслав Щинов

К началу

Вопрос: Как использовать функцию ValueListItems?

Ответ: Все очень просто. Что такое база данных? - Это, список записей. А что такое ВалъюЛист - это, тоже список записей, а следовательно маленькая база данных внутри большой. Этакий масивчик. Динамический (по содержанию поля/с опцией редактирования), или статичный (определяемый разработчиком). Чтобы получить I-тый элемент такого масива нужно найти позицию начала элемента, например:


Position(
"|"&ValueListItems(Status(CurrentFileName),"Май Валъю Лист")&"|",
"|", // "|" - это символ ретурн, искать его
1, // начать поиск с первого символа
I // найдти I-тое вхождение
)


... и конца (то же самое с I + 1), ну и взять то, что лежит между ними.

Замечание: обрамление списка дополнительными символами Return ("|"&ValueListItems...&"|") позволяет упростить итерацию списка/масива. В этом случае каждый элемент списка (включая первый, и последний) начинается и заканчивается символом Return.

Возможностей по применению этой функции очень много. Я использовал ее для перевода (пользователь выбирает значение из поп-ап листа на одном языке, а в соседнее поле попадает переведенное на другой язык значение из синхронного листа); для сортировки "по списку" который лежит в соседнем файле (файл контактов сортируется по расчитываемому полю файла справочника, это поле содержит количество Return-ов в списке должностей до должности данной персоны, чем меньше Return-ов, тем важней персона); для расшифровки/интерпретации типов данных (два жестко определенных списка, один содержит типы данных, другой - их раскладки, ползователь выбирает значение из первого списка - синхронное значение раскладки из второго списка "рассыпается" по расчитываемым полям); и т.д.

Alexander Zueiv

К началу

Вопрос: Как лучше размещать графику, используемую для оформления форм?

Ответ: Графику лучше не разбрасывать по макетам (Layout), а акуратненько складывать в одном файле в поля Global Container, и выкладывать потом эти поля на макеты через реляционную связь 1:=1. Так и место экономится, и заменить можно быстро, всё и одним махом, и проблем меньше. Файлик же этот хорошо держать на машинах пользователей в качестве стартового -- заметно ускоряет работу в сети.

Alexander Zueiv

К началу

Вопрос: Как сделать БД для хранения писем/факсов (чтобы их при этом было удобно распечатывать)?

Ответ: Нужны два файла:

Letter.fp3
----------
ID (number, auto-enter serial)
Address (text)

Body.fp3
--------
Letter ID (number)
Text (text)

В файле Letter.fp3 описываем реляционную связь на файл Body.fp3:

Body [ID = ::Letter ID; Allow creation...; Delete related...]

Затем, на Layout файла Letter.fp3 помещаем портал отображающий записи по
реляционной связи Body; количество строк портала: 3-4; высота строк:
пять-десять линий желаемого шрифта. В первую строку портала помещаем
поле Body::Text и растягиваем его во всю ширину и во всю высоту строки
портала. Редактор абзацев готов.

Чтобы создать печатную форму письма необходимо в файле Body.fp3 описать
обратную реляционную связь на файл Letter.fp3:

Letter [Letter ID = ::ID]

Теперь можно создать Layoutв файле Body.fp3 и поместить в Header этого
Layout'а поле Letter::Address. Body этого Layout'а необходимо растянуть во
всю высоту страницы и поместить на нем поле Text (во всю высоту Body).
Опцию sliding'а поля Text необходимо описать как: Sliding Up..., Also
readus...

Новые письма создаются и заполняются в файле Letter.fp3. Печать писем
выполняется в файле Body.fp3. Перед печатью письма необходимо выполнить
прыжок из файла Letter.fp3 в файл Body.fp3 используя комманду скрипта:
Go to Related Record[Show, Body] (опция Show позволяет автоматически
сформировать выборку абзацев текущего письма).

Alexander Zueiv

К началу

Вопрос: Как сделать, чтоб с базой FM 5 работать и с Мака, и с PC?

Ответ: 1. На Маке: По всей базе меняешь шрифты на русские Маковские;
2. На всех Виндовс-машинах: запускаешь REGEDIT, лезишь в секцию HKEY_CURRENT_USER\Software\FileMaker\FileMaker Pro\5.5\FontSubstitutes и, соответственно, настраиваешь подмену шрифтов. Если маковские шрифты имеют русские имена, то их и нужно вводить в кодировке Cyrillic Mac (заглавные литеры в имени шрифта заменяются кракозярами).
В принципе, в маковском ФМ тоже есть "механизм" отвечающий за подмену шрифтов. В FM 5.5 Developer он находится в ресурсе STR#, ID: 1800 и 1801. Можно и их подкорректировать, но я не пробовал. На Маке можно также попытаться воспользоваться UCS для подмены шрифтов в ФМ.

Alexander Zueiv

К началу

Вопрос: Кто-нибудь может сказать что-то по поводу преобразования ФМ-файлов с русскими макетами и данными между платформами?

Ответ: Все гораздо проще. FM, как и положено кросс-платформенному продукту, поддерживает "подмену" шрифтов. В файле ридми (PC-версия) детально описано: что и как. Если память мне не изменяет, то нужно: в регэдите найти секцию CURRENT_USER -> SOFTWARE -> CLARIS -> FileMaker -> Font Substitutions. В этой секции: в левой колонке - мак-шрифты, в правой - их писи-аналоги.

Подстановки шрифтов FM 5 под Windows настраиваются REGEDIT-ом: HKEY_CURRENT_USER\Software\FileMaker\FileMaker Pro\5.x\FontSubstitutes

Любой раздел системного реестра можно экспортировать в файл с расширением .reg непосредственно из программы regedit. Это будет текстовый файл с вполне понятным содержимым, но, если по нему два раза щелкнуть, системный реестр будет обновлен --- будет добавлена или изменена та ветка или ветки, описание которых содержится в файле. Таким образом, возможная технология должна выглядеть так: 1) На Маке делается база с использованием какого-то шрифта. 2) На котрольном PC ставится FM и в regedit'e прописывается замена шрифта 3) После проверки работоспособности из regedit'а экспортируется соответствующий раздел в файл с расширением .reg. 4) На каждой машине после установки(перестановки) FM запускается этот .reg. Четвертый пункт можно сделать даже не так: файл .reg нужно положить вместе с файлами ФМ и запускать его "изнутри" FileMaker'а с помощью (не помню точно какой под Windows) команды ScriptMaker'а при каждом открытии приложения.

Чтобы описать "подмену" шрифта с русским именем, нужно использовать нековертированное имя мак-шрифта. Такое имя можно перебросить с мака на писи прямо в текстовом файле, затем в клипбоард и т.д.

Мак версия ФМ офицально не поддерживает подмену шрифтов, но, судя по содержанию некоторых ресурсов, механизм подмены шрифтов в ней все-таки существует. Теоретически, можно попытаться использовать этот механизм, но у меня пока руки не доходили (за ненадобностью... :)

Alexander Zueiv, Mikhail Edoshin

К началу

Вопрос: Можно ли отсортировать записи, выводимые в портал?

Ответ: В четверке это -- стандартная операция. При определении Relationship'а
задаешь способ сортировки.

В тройке базовая технология такая: делаешь скрипт, который лезет в связанный
файл, сортирует связанные записи по нужному полю, экспортирует их во внешний
файл, удаляет из базы и заново импортирует -- теперь они "отсортированы", но
намертво.

Михаил Едошин

К началу

Вопрос: Поврежденный после зависания файл БД был восстановлен командой Recover. Теперь на одном из макетов (Layout) машина зависает.

Ответ: Команда Recover предназначена для востановления данных. После востановления данные должны быть проимпортированы в "чистую" БД - последнюю, не претерпевшую ни одного повреждения версию, хранящуюся в архиве. Если продолжить работу с востановленной БД, то вероятность повторных "падений" крайне высока, - так говорят сами разработчики. Если у тебя не осталось "чистой" копии - мои соболезнования. Попробуй сохранить сбойный файл как "клон" (Save As... Clone (no records)) или как Compressed Copy. Если разработка велась в старой версии FM, то конвертирование в новую тоже может помочь. На худой конец, попробуй открыть файл под виндами или в десятке, - это может помочь если проблемы с отображением графики. Или, на работающем лайауте, в режиме Layout прокрути окно пониже, чтобы был виден только серый фон, и переключайся на сбойный лайаут. Можешь ещё отключить все пункты в меню View: Show.
И, совет на будущее: всегда держи архивчик клонов с последними изменениями. У меня, за месяц работы над проектом накапливается до сотни таких архивов, - всегда есть куда "откатиться". Десяток архивов остаются даже после завершения разработки.

Alexander Zueiv

К началу


[Вопросы и ответы (FAQ)][Справочные материалы]
[Титульная страница][Новости][Макинтош][Информатика и ИТ][Об авторе]