|   |   | 
| 
 | Заменить источник схемы запроса | ☑ | ||
|---|---|---|---|---|
| 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] Если не получится - напишите, пришлю свой полный код с комментариями | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |