Вывод значений запроса

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Вывод значений запроса

Сообщение 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
));
Данный запрос определяет для техмаршрута операции, у которых доп.аналитика имеет значение "термическая обработка". Т.е. заранее не известно количество выводимых значений - может быть и одно значение у запроса, может несколько. Как организовать последовательный вывод полученных значений в ячейки таблицы?
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: Вывод значений запроса

Сообщение Masygreen »

попробую угадать .. таблица excel тогда счетчик, таблица в памяти просто insert
Время ведет!
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Вывод значений запроса

Сообщение Marisha_P »

а использовать цикл _loop можно? у меня он почему-то неправильно отрабатывает...как должен выглядеть код в таком случае?
_ loop mnfoper ?
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Вывод значений запроса

Сообщение Vik »

В документации: описание языка Vip -> Отчеты -> Цикл по SQL-таблице. Там все написано и приведены примеры.
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Вывод значений запроса

Сообщение 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.
,}

выходит ошибка- ожидалось арифметическое выражение и указывает на первую строку. что я делаю не так? подскажите, пожалуйста
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Вывод значений запроса

Сообщение Vik »

Сложно сказать, что именно тут не так по такому кусочку кода. Но тут как минимум одна ошибка: ,} (надо .}). Попробуйте еще точку с запятой поставить: .{table 'TERM' by mnfoper.nrec;. Она, вроде как, и описана не обязательной, в примерах везде стоит.
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Re: Вывод значений запроса

Сообщение KATZ »

Marisha_P писал(а):выходит ошибка- ожидалось арифметическое выражение и указывает на первую строку
Такая ошибка может появиться внутри программного блока, т. е. сейчас у вас, скорее всего, как-то так:

Код: Выделить всё

.begin
. . .
.{table 'TERM' by mnfoper.nrec
. . .
.}
. . .
end.
Конструкцию

Код: Выделить всё

.{table 'TERM' by mnfoper.nrec
. . .
.}
надо вынести из программного блока.
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Вывод значений запроса

Сообщение Marisha_P »

Это опечатки(( Набирая сюда, перепутала точку и запятую и пропустила точку с запятой в конце строки. В коде набирала именно так. Первый вариант отрабатывает, пусть и не до конца, а тут не компилируется даже из-за этого арифметического выражения. И понять не могу в чем проблема, какое арифметическое выражение от меня ждут:(
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Вывод значений запроса

Сообщение Marisha_P »

KATZ спасибо Вам огромное-преогромное!!!!!!!!!!!!!!
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Вывод значений запроса

Сообщение Marisha_P »

Подскажите еще, пожалуйста, по такой проблеме:
надо выводить цикл, только есть значения, удовлетворяющие запросу.
попробовала подсчитывать кол-во значений в переменную, и теперь хотелось бы просто, чтобы выполнялось условие:
if (i <> 0) then
.{horizontal table 'term_v.tC'
^
.}

пишу в .begin end. - пишет ожидалось арифметическое выражение... как выделить этот блок, чтоб компилятор его воспринимал как проверку условия?
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Вывод значений запроса

Сообщение RAJAH »

.{while i<>0
...
.}
если я правильно вопрос понял.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Вывод значений запроса

Сообщение edward_K »

здесь скорей всего так надо

Код: Выделить всё

.{?internal;(i <> 0);
.{horizontal table 'term_v.tC'
^
.} 
.}
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Вывод значений запроса

Сообщение Marisha_P »

спасибо большое!!!!!!!
Ответить