|
|
|
Поля VS Закладки или "Когда есть выбор, тогда и глаза разбегаются...."
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток )) задача стандартная: Имеем Бланк, в нужные места надо будет програмно из базы поместить инфу... База будет на МС СКЛ 2000, софтина на Builder вариантов как обычно: 1) слияние 2) закладки 3) тестовые поля (которые серенькие, и берутся с панели формы) 1 вариант не очень хочется: дополнительный конект из ворда с СКЛ, да и полей много... половину вычислять легче програмно чем через запросы... а вот 2 и 3... по сути одно и тоже... -програмно пихать данные одинаково просто -оба видны в макете, -оба достаточно просто добавлять -по закладкам удобнее ориентироваться при разработке бланка... но поля сморятся как то нагляднее задача потом извекать данные из отчетов не стоит (иначе очевидно,что поля)... но чем черт не шутит) Мне Поля больше нравятся - но пока чисто субьективно)) Задававшиеся подобным вопросом, поделитесь мыслями скажем критерии скорость или еще что нибудь))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 01:44:40 |
|
||
|
Поля VS Закладки или "Когда есть выбор, тогда и глаза разбегаются...."
|
|||
|---|---|---|---|
|
#18+
Я бы сделал с закладками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 08:04:37 |
|
||
|
Поля VS Закладки или "Когда есть выбор, тогда и глаза разбегаются...."
|
|||
|---|---|---|---|
|
#18+
По поводу полей: пробовал, не получилось программно записать значение в поле. С закладками все получилось элементарно. Каков синтаксис записи в поле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 10:58:55 |
|
||
|
Поля VS Закладки или "Когда есть выбор, тогда и глаза разбегаются...."
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Прикол в том, что это поле тоже считается закладкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 11:43:54 |
|
||
|
Поля VS Закладки или "Когда есть выбор, тогда и глаза разбегаются...."
|
|||
|---|---|---|---|
|
#18+
Пользователь2 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Прикол в том, что это поле тоже считается закладкой. Все то ты знаешь! :-) Сработало. Вставил ActiveDocument.Protect Password:="", NoReset:=False, Type:= _ wdAllowOnlyFormFields для перед txtFormField.Result = "Test". - Тоже сработало. Спасбибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 12:43:18 |
|
||
|
Поля VS Закладки или "Когда есть выбор, тогда и глаза разбегаются...."
|
|||
|---|---|---|---|
|
#18+
авторtxtFormField.Result = "Test" ну да.. оно самое.... авторActiveDocument.FormFields.Add мне даже этого делать не придется - макет все равно деалается вручную так все же) преимущества есть какие ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:35:48 |
|
||
|
Поля VS Закладки или "Когда есть выбор, тогда и глаза разбегаются...."
|
|||
|---|---|---|---|
|
#18+
Текстовое поле(FormField) - понятно, причем здесь закладки. По существу: 1. Слияние (MegreField) - хрень какая. 2. FormField - это уже ближе. Плюсы - удобно использовать в документе - наглядно, можно устанавливать текст по-умолчанию. Шаблон может разработать не очень опытный пользователь. Минусы - нельзя использовать в колонтитулах (а иногда надо); ограничение на длину строки-255 символов; некорректно воспринимается символ Chr(10). Решение ограничений: для колонтитулов можно использовать сбособы, описанные ниже; ограничение на длину строки - все просто - проверяем длину строки, если больше 255 или если строка содержит символ Chr(10), то заменяем САМО ПОЛЕ на текст, т.е. не присваем полю значение, а на место поля вставляем нужный текст. 3. DocVariable - Переменные документа. Плюсы - создавать шаблон просто, как и с FormField, но переменные выглядят в документе не очень наглядно, хотя если включать режим - <коды полей>, то всё понятно. Нет ограничения на длину строки. 4. Пишешь свой скромный алгоритм по заполнению определенных масок в документе. Например: шаблон документа содержит всякий статический тест и тект вида [текст] или {тест} или $текст$ (на свой вкус и цвет). В программе, которая работает с документом ищем соответсвующий текст - [...] и заменяем его нужным нам тектом. Таким способом можно помещать (и искать) идентификаторы [...] где угодно - докумет, колонтитул, фигура с текстом (shape), хоть в модуле VB. Как ПЕРЕДАТЬ данные в документ: 1. Общаться с документом можно либо из сторонней программы (delphi/builder/vc...) с использованием стандартных компонентов, ч/з OLE... 2. Программно формируем файл (txt, dbf) определенного формата с нужными нам данными. Документ(шаблон) содержит макрос, который откроет этот файл, разберёт его и перетащит данные в документ (в поля, переменные, идентификаторы...). 3. Из документа(шаблона) стучимся в базу данных. Можно использовать ADO, DAO, RDO (odbc, jet). И с помощью парочки SELECTов выбираем нужные данные и распихиваем их в нужные места. Я использовал следующие способы (пока работает): 1. Программа формирует dbf-файл с данными из БД. Формат файла: -Ind byte идентификатор -Name Char(255) имя поля -Value Char(255) значение поля -Comment Char(100) комментарий Ind нужен, если хотим передать значение длиной больше 255 символов, тогда в файле будет несколько строк с одинаковым полем Name и с разными Ind, по которым и соберём окончательную строку. Программа запускает word-документ, который в свою очередь знает где лежит файл с данными. Документ (шаблон), содержит макрос, который при открытии, начинает работать с dbf-файлом (DAO/odbc) и заполняет поля. Достаточно просто, быстро и надёжно. 2. Программа через OLE работает с документом. Программа собирает данные из БД и с формы (от пользователя), создает объект Word, открывает файл(шаблон) и начинает заполнять поля (formField, DocVariables, [...]). И ВСЁ. Тоже можно делать в Excel'e, если у нас в основном таблицы. Хотя небольшие таблицы можно пихать и в Word. Cristal и Oracle Reports отдыхают в тёплой ванне. (Если конечно у нас не 10 различных таблиц, 15 представлений и 20 запросов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 04:58:01 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33400659&tid=2185509]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 315ms |

| 0 / 0 |
