|
|
Заменить источник схемы запроса |
☑ |
0
Dmitriy_
Kolesnikov
11.10.18
✎
07:20
|
Не могу подобрать способ это сделать. Просто поменять таблицу и всё.
Вот что пробовал:
ОператорВыбора.Источники.Удалить(0);
Потом создать заново - тогда пропадают все отборы. Плохой вариант.
ОператорВыбора.Источники[0].Источник.Псевдоним = "Временный";
НовыйИсточник = ОператорВыбора.Источники.Добавить("Документ." + эл, "ДокументРегистратор");
- тогда во всех отборах меняется "Документ.МойДокумент" на "Временный".
ОператорВыбора.Источники.Заменить(0, НовыйИсточник); - не работает
Кто делал? Подскажите.
Просто подменить "Документ.Документ1" на "Документ.Документ2" и ничего больше.
|
|
1
Dmitriy_
Kolesnikov
11.10.18
✎
07:56
|
Пробую вот так:
НовыйИсточник = ОператорВыбора.Источники.Добавить("Документ." + эл, "ДокументРегистратор2");
ОператорВыбора.Источники.Заменить(0, НовыйИсточник.Источник);
ОператорВыбора.Источники[0].Источник.Псевдоним = "ДокументРегистратор";
ОператорВыбора.Источники.Удалить(1);
Всё равно ошибка во второй строке, ругается на второй параметр ф-и Заменить, мол, не тот тип данных. Я проверил - тот.
|
|
2
Dmitriy_
Kolesnikov
11.10.18
✎
10:30
|
Похоже, никому не нужна СхемаЗапроса :(
ОК, буду делать текстом и не выёживаться.
|
|
|
3
Fragster
гуру
11.10.18
✎
10:31
|
(2) она действительно недоделанная
|
|
|
4
Fragster
гуру
11.10.18
✎
10:32
|
я делаю так - все, что можно - делаю построителем запроса. если какие-то вещи не получается - то вставляю куски типа &_название, которые потом заменяю (или не заменяю, а указываю в качестве параметра Истина) через стрзаменить. Тогда продолжает работать конструктор запроса
|
|
5
Dmitriy_
Kolesnikov
11.10.18
✎
15:07
|
(4)
У меня там "Объединить все" из 35 кусков.
Я новые операторы создаю на основе старого.
А в старом уже есть источник.
Можно создать вторую (третью...) схему запроса на основе слегка измененного текста (с новым источником) и уже её присобачивать к первой 35 раз.
Тоже идея. Хотя и не такая красивая. Хотелось реализовать так, чтобы потомки плакали от радости и кричали "это шедевр!"
|
|
|
6
singlych
11.10.18
✎
15:12
|
ОператорВыбора.Источники[0].Источник.ИмяТаблицы = "Документ.Документ2"
|
|
7
Dmitriy_
Kolesnikov
11.10.18
✎
20:49
|
(6)
ТаблицаСхемыЗапроса (QuerySchemaTable)
ИмяТаблицы (TableName)
Использование:
Только чтение.
|
|
|
8
VinakovS
11.11.18
✎
14:28
|
Добрый день.
В вашем случае необходимо просто заменить источник и заново присвоить псевдоним:
[code]
СхемаЗапроса = Новый СхемаЗапроса;
СхемаЗапроса.УстановитьТекстЗапроса(<текст_запроса>);
ПакетЗапроса = СхемаЗапроса.ПакетЗапросов[0];
ОператорЗапроса = ПакетЗапроса.Операторы[0];
ИсточникЗапроса = ОператорЗапроса.Источники[0];
ТаблицаСхемыЗапроса = ПакетЗапроса.ДоступныеТаблицы.Найти(<искомое_имя>);
ОператорЗапроса.Источники.Заменить(0, ТаблицаСхемыЗапроса);
ИсточникЗапроса.Источник.Псевдоним = "<псевдоним>";
Результат = СхемаЗапроса.ПолучитьТекстЗапроса();
[/code]
Если не получится - напишите, пришлю свой полный код с комментариями
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший