Инициалы макрос?

Автор ceryozha26, 31 мая 2013, 12:19

0 Пользователи и 1 гость просматривают эту тему.

ceryozha26

Добрый день, подобной темы не нашел,если она уже есть прошу дать ссылку.
Вопрос в следующем: Имеется договор(OPENOFFICE),в котором в шапке вписывается: Иванов Иван Иванович. Как сделать так,чтобы в нижнюю ячейку документа скопировалось: Иванов И.И.
И еще вопрос: если я создаю много документов, то как мне создать базу в которую будут переносится данные из ячееr типа: ФИО, АДРЕС, Контактный телефон.
Заранее спасибо.

JohnSUN

Добро пожаловать на форум!
Обычно эту задачу решают в обратном порядке: в базу вносятся данные клиента и условия сделки, а потом по ним печатается любой документ (договор, приложения к нему, счета, акты выполненных работ). В этом случае и преобразование полного ФИО в фамилию-инициалы не требует макроса, всё будет подготовлено средствами базы данных
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

ceryozha26

Спасибо за ответ, но пока что все это ведется без базы данных...

JohnSUN

Так самое время начать!
Смотри, это очень просто:
1. Создаешь новую базу данных (из офиса Файл-Создать-Базу данных)
1а. Первый шаг Мастера - оставь как есть, "Создать новую базу данных"
1б. На втором шаге - поставь птичку на "Создать таблицу с помощью мастера таблиц"
1в. Сохраняешь с каким-то понятным именем (например, "Договоры.odb")
2. Открывается Мастер таблиц
2а. Выбираешь в выпадающем списке Контакты или Клиенты, переносишь все поля в правую колонку, выбрасываешь заведомо ненужные (поле КодКлиента или КодКонтакта нужно!)
2б. На следующем шаге добавляешь новое поле (кнопка +) и называешь его Отчество
2в. Задаешь первичный ключ на это самое поле КодКлиента (или КодКонтакта - кого уж там выберешь)
3. Переключаешься в Формы и (тоже с помощью Мастера!) создаешь форму просмотра-ввод-редактирования данных, набрасываешь две-три тестовых записи, чтобы было на чем экспериментировать.
4. Создаешь запрос на основании таблицы, в котором по Фамилия и первым символам из Имя и Отчество создаешь дополнительное поле.
Например, как-то так:
SELECT "Фамилия" AS "Фамилия"
, "Имя" AS "Имя"
, "Отчество" AS "Отчество"
, "Фамилия" || ' ' || LEFT( "Имя", 1 ) || '.'
|| LEFT( "Отчество", 1 )
|| '.' AS "ФИО"
FROM "Контакты"
ORDER BY "Фамилия" ASC, "Имя" ASC

5. Сохраняешь и закрываешь базу.
6. В качестве "козы" открываешь текст Договора. Жмешь F4 - сверху над текстом появится браузер источников данных.
6а. Выделяешь Запрос_Контакты (или как ты там обозвал свой запрос с инициалами?), его содержимое появится в окне справа в виде таблицы
6б. Из этой таблицы цепляешь мышкой заголовки столбцов ("Фамилия", "Имя", "Отчество" и "ФИО") и тащишь в нужные места документа...
(Упс... Зовут, должен прерваться... Ты попробуй - там всё очень легко и просто)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

ceryozha26

1.Не понятно что нужно выбрать в 4ом шаге(скриншот прилагается)
2. Можно поподробнее, что такое запрос?(4. Создаешь запрос на основании таблицы, в котором по Фамилия и первым символам из Имя и Отчество создаешь дополнительное поле.)
3.Что такое "КОЗА"(6. В качестве "козы" открываешь текст Договора. Жмешь F4 - сверху над текстом появится браузер источников данных.)
Спасибо.

[вложение удалено Администратором]

JohnSUN

Цитата: ceryozha26 от  4 июня 2013, 11:25
1.Не понятно что нужно выбрать в 4ом шаге(скриншот прилагается)
Ой, ты знаешь, я такой нетерпеливый - никогда до этого шага не доходил, всегда жал Готово на третьем шаге.  ;D Ну, раз уж до него добрался, то, наверное, стоит выбрать последний пункт - Создать форму.
Цитата: ceryozha26 от  4 июня 2013, 11:252. Можно поподробнее, что такое запрос?(4. Создаешь запрос на основании таблицы, в котором по Фамилия и первым символам из Имя и Отчество создаешь дополнительное поле.)
Основа базы данных  - это таблицы с данными. Данных может быть очень много, гораздо больше, чем нужно в данный момент для работы. Ну, например, список всех-всех-всех клиентов, с которыми твоя фирма хоть когда-то имела дело для печати Договора по одному клиенту просто не нужен. Вот с помощью запросов и отбираются из таблиц только нужные данные. Запрос записывается на специальном языке SQL и чаще всего выглядит так:
SELECT поле такое-то, еще поле такое-то и поле такое-то FROM из таблицы такой-то WHERE условие отбора
Кроме того, с помощью запроса можно получить данные, которых в явном виде в таблицах базы нет. Ну, вот, например, инициалы человека вычислить или суммы денег за определенные даты...
Сохраняются запросы в отдельном месте базы данных, хранятся прямо в таком виде - текст на языке SQL. А когда запрос выполняется, получается табличка с отобранными данными, с которой дальше можно работать как с настоящей таблицей.
Не волнуйся, что пока не знаешь этого языка - для построения простого запроса он тебе не понадобится: специальный конструктор запросов поможет отобрать нужные данные из нужных таблиц не написав ни одного непонятного слова...
Цитата: ceryozha26 от  4 июня 2013, 11:253.Что такое "КОЗА"(6. В качестве "козы" открываешь текст Договора. Жмешь F4 - сверху над текстом появится браузер источников данных.)
Ну, в твоем первом вопросе речь шла о каком-то Договоре, в который вписываются данные клиента, так? То есть какой-то готовый документ уже существует, остается только в нужные места вставить данные из базы. А слово "коза" - это старый слэнговый термин, который обозначает просто "шаблон"
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Hasim

Цитата: JohnSUN от  4 июня 2013, 11:27А слово "коза" - это старый слэнговый термин, который обозначает просто "шаблон"

"коза" типична для Украины, а "рыба" - для России