[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