Страница 1 из 1
Вывод значений запроса
Добавлено: 25 янв 2011, 11:50
Marisha_P
Здравствуйте!
Подскажите, пожалуйста, как правильно оформить вывод данных в таблицу:
есть запрос
.create view TERM as
select mnfoper.name from katmarsh,marsh_sp,mnfoper,spkau
where ((kod ==katmarsh.nrec
and katmarsh.nrec == marsh_sp.cmarsh
and (spkau.name='Термическая обработка')
and marsh_sp.nope == mnfoper.nrec
and mnfoper.canval1 ==spkau.nrec
));
Данный запрос определяет для техмаршрута операции, у которых доп.аналитика имеет значение "термическая обработка". Т.е. заранее не известно количество выводимых значений - может быть и одно значение у запроса, может несколько. Как организовать последовательный вывод полученных значений в ячейки таблицы?
Re: Вывод значений запроса
Добавлено: 25 янв 2011, 13:23
Masygreen
попробую угадать .. таблица excel тогда счетчик, таблица в памяти просто insert
Re: Вывод значений запроса
Добавлено: 26 янв 2011, 13:57
Marisha_P
а использовать цикл _loop можно? у меня он почему-то неправильно отрабатывает...как должен выглядеть код в таком случае?
_ loop mnfoper ?
Re: Вывод значений запроса
Добавлено: 26 янв 2011, 14:52
Vik
В документации: описание языка Vip -> Отчеты -> Цикл по SQL-таблице. Там все написано и приведены примеры.
Re: Вывод значений запроса
Добавлено: 02 фев 2011, 11:47
Marisha_P
Пишу вот такой вариант вывода
if (TERM.getfirst katmarsh=0)
{if (TERM.getfirst marsh_sp=0)
{ term_name:=TERM.mnfoper.name;
Message (term_name);
}
}
получаю на выходе - только первое значение из запроса, т.е нет цикла.
меняю данный текст на
.{table 'TERM' by mnfoper.nrec
.begin
term_name:=Term.mnfoper.name;
Message (term_name);
end.
,}
выходит ошибка- ожидалось арифметическое выражение и указывает на первую строку. что я делаю не так? подскажите, пожалуйста
Re: Вывод значений запроса
Добавлено: 02 фев 2011, 12:24
Vik
Сложно сказать, что именно тут не так по такому кусочку кода. Но тут как минимум одна ошибка: ,} (надо .}). Попробуйте еще точку с запятой поставить: .{table 'TERM' by mnfoper.nrec;. Она, вроде как, и описана не обязательной, в примерах везде стоит.
Re: Вывод значений запроса
Добавлено: 02 фев 2011, 13:01
KATZ
Marisha_P писал(а):выходит ошибка- ожидалось арифметическое выражение и указывает на первую строку
Такая ошибка может появиться внутри программного блока, т. е. сейчас у вас, скорее всего, как-то так:
Код: Выделить всё
.begin
. . .
.{table 'TERM' by mnfoper.nrec
. . .
.}
. . .
end.
Конструкцию
надо вынести из программного блока.
Re: Вывод значений запроса
Добавлено: 02 фев 2011, 13:14
Marisha_P
Это опечатки(( Набирая сюда, перепутала точку и запятую и пропустила точку с запятой в конце строки. В коде набирала именно так. Первый вариант отрабатывает, пусть и не до конца, а тут не компилируется даже из-за этого арифметического выражения. И понять не могу в чем проблема, какое арифметическое выражение от меня ждут:(
Re: Вывод значений запроса
Добавлено: 02 фев 2011, 13:26
Marisha_P
KATZ спасибо Вам огромное-преогромное!!!!!!!!!!!!!!
Re: Вывод значений запроса
Добавлено: 03 мар 2011, 12:00
Marisha_P
Подскажите еще, пожалуйста, по такой проблеме:
надо выводить цикл, только есть значения, удовлетворяющие запросу.
попробовала подсчитывать кол-во значений в переменную, и теперь хотелось бы просто, чтобы выполнялось условие:
if (i <> 0) then
.{horizontal table 'term_v.tC'
^
.}
пишу в .begin end. - пишет ожидалось арифметическое выражение... как выделить этот блок, чтоб компилятор его воспринимал как проверку условия?
Re: Вывод значений запроса
Добавлено: 03 мар 2011, 12:23
RAJAH
.{while i<>0
...
.}
если я правильно вопрос понял.
Re: Вывод значений запроса
Добавлено: 03 мар 2011, 12:30
edward_K
здесь скорей всего так надо
Код: Выделить всё
.{?internal;(i <> 0);
.{horizontal table 'term_v.tC'
^
.}
.}
Re: Вывод значений запроса
Добавлено: 03 мар 2011, 12:54
Marisha_P
спасибо большое!!!!!!!