[oodisc] Подстановка из базы в текстовый документ
Владислав Орлов
software на pro-za.com.ua
Вт Окт 11 11:52:18 MSD 2005
В сообщении от Вторник, 11-Окт-2005 08:06 Dmitri Drozdov написал(a):
> Есть документ OOwriter и данные, хранящиеся в таблице OOcalс. Данные -
> список людей: имя, отчестов, фамилия, адреса, пол...
Решение 1: все данные, которые потом потребуются во внешнем документе
(текстовом отчете или письме) вычисляются здесь же в листе с данными через
формулы Калка в соседних столбцах. Что-то "ужасное", типа,
=CONCATENATE(MID($A2;FIND(" ";$A2;1)+1;1);".";MID($A2;FIND(" ";$A2;FIND(" ";
$A2;1)+1)+1;1);". ";MID($A2;1;FIND(" ";$A2;1)-1))
(Это инициалы и фамилия, полученные из полной фамилии-имени-отчества записаных
в столбце A - так, для примера)
или =IF($C2="М";"Уважаемый ";IF($C2="Ж";"Уважаемая ";"")) для обращения по
признаку "пол"
> Надо вставить в текстовый документ значение ячейки не полностью, а
> например, только первую букву (печать инициалов от имени и отчества). Как
> это сделать? Что-то в документации я этого не нашел.
Решение 2: вставляем в итоговый документ не значение из таблицы, а значения из
ЗАПРОСА! То есть, создаем запрос в котором некоторые поля вычисляемые и уже
их используем в шаблоне письма. К сожалению, драйвер электронной таблицы не
шибко богат на функции - другое дело, если данные лежат в каком-нибудь
продвинутом формате.
Поэтому вызревает обходной путь - создаем базу (тот же DBase, а лучше - MySQL
или кого-нибудь того же уровня), перетаскиваем данные для писем туда, для
работы с новой базой набрасываем форму ввода и запрещаем пользователям
вносить данные в старые таблицы (пусть осваивают новые технологии). А уж с
новой базой поступаем как и запланировано: в запросе вычисляем все
необходимое и подставляем в текст письма то что надо.
>
> Вторая задача:
> Есть поле (столбец в той же таблице), в которой стоит пол человека, надо
> печатать "уважаемый" или "уважаемая", если в указано "М" или "Ж"
> соответственно. Опять же, что-то в документации я этого не нашел.
Решение 3: вместо букв для признака пола использовать цифры. В этом случае
можно для вставленного поля применить пользовательский формат вида
[=0]"Уважаемый";[=1]"Уважаемая";""
Для текста к сожалению доступен только один формат - текст... А вот с числами
можно обращаться по-свойски...
Решение 3-бис: Выделяем столбец с признаком пола и для выделения устраиваем
глобальную замену "М" на "Уважаемый" и "Ж" на "Уважаемая"... (Почему для
выделения? Ну, чтобы не получить в соседнем столбце вместо Михалкова -
"Уважаемыйихалков")
--
Всего доброго!
Владислав Орлов aka JohnSUN
Подробная информация о списке рассылки Oo-discuss