Страница 1 из 1

конструкция .{?internal; some_field .} вв SLK

Добавлено: 13 июл 2005, 17:00
Lavs
Добрый день!

Делаю SLK отчет.
необходимо в одной и той же ячейки сделать 2 проверки на существование полей.
делаю следующее: ^.{?internal; c4p1 \ .} ^.{?internal; c5p1 \ .} ^

т.е. если поле c4p1 не пусто, то вывести косую черту, и далее тоже самое с полем c5p1

Компилятор ругается на то что конструкция не верна и предлагает использовать идентификатор .?

существует ли какое-то решение, для моей задачи?

Спасибо

Добавлено: 14 июл 2005, 06:27
Алексей
Если поля c4p1 и c5p1 строковые, может быть так:

a
.{?internal; c4p1!=''
\
.}
.{?internal; c5p1!=''
\
.}
b
в этом случае, если поля не пустые в отчет выведеться
.......
a
/
/
b
........

Зачем у Вас стоят Галки?
И вообще, я сначала отлаживаю ФРМ а потом уже его перегоняю в СЛК копированием. Проблем никогда не было.

Добавлено: 14 июл 2005, 15:35
Max_Fin
Алексей писал(а): Зачем у Вас стоят Галки?
Очень интересная ассоциация возникла... :D

Добавлено: 15 июл 2005, 11:18
Алексей
Max_Fin писал(а): Очень интересная ассоциация возникла... :D
:oops: - я имел в виду символы галочки :roll:

Добавлено: 28 июл 2005, 13:04
Lavs
Спасибо всем...

еще одна заковырка в SLK.

почему, когда я делаю в присоединенной форме:

.var
ostatok:double;
.endvar

.begin ostatok:=c7p8-c7p9; end.
.fields
ostatok
.endfields
.{
^
.}

(c7p8 и c7p9 - перменные формы прототипа)
При компиляции ругается: Нет такой функции, поля или метода. Или неверный контекст использования ostatok.

где ошибка?

Добавлено: 28 июл 2005, 13:11
Алексей
Возможно надо сделать .begin end. после объявления полей и в цикле. я так понимаю у вас ведь каждый раз будет вычисляться поле остаток?

.fields
ostatok
.endfields
.{
.begin ostatok:=c7p8-c7p9; end.
^
.}

либо в филдсах сразу написать
.fields
c7p8-c7p9
.endfields

если будет не тот результат, попробуйте написать
double(c7p8-c7p9)

Добавлено: 28 июл 2005, 13:22
Lavs
Алексей писал(а):Возможно надо сделать .begin end. после объявления полей и в цикле. я так понимаю у вас ведь каждый раз будет вычисляться поле остаток?

.fields
ostatok
.endfields
.{
.begin ostatok:=c7p8-c7p9; end.
^
.}

либо в филдсах сразу написать
.fields
c7p8-c7p9
.endfields

если будет не тот результат, попробуйте написать
double(c7p8-c7p9)
На первый вариант оугается той же ошибкой

На второй, ошибка: не могу найти функцию subs (с указанием на double(c7p8-c7p9))

Добавлено: 28 июл 2005, 13:32
san
double(c7p8)-double(c7p9)

Добавлено: 29 июл 2005, 14:21
Lavs
san писал(а):double(c7p8)-double(c7p9)
Cпасибо.
Все заработало.

Добавлено: 01 авг 2005, 16:48
Lavs
еще одна загвоздка.

нужно проверять значение поля на содержание нулей.
их может быть три, два или один.

т.е. что-то типа:
0bla-blah
00blah-blah
000blah-blah

в отчете нулей быть не должно.

Хотелось бы что-то типа case сделать...
Есть ли какое-нить решение?

P.S. и где можно почитать доку по Атлантису (особенно интересует стиль программирования, операторы и пр.)

Спасибо всем откликнувшимся

Добавлено: 02 авг 2005, 04:23
edward_K
vipprog.chm в стандартной доке
atlsdk.chm если кто поделиться

Добавлено: 02 авг 2005, 05:52
Алексей
Lavs писал(а):еще одна загвоздка.

нужно проверять значение поля на содержание нулей.
их может быть три, два или один.

Спасибо всем откликнувшимся
Если нужно что бы в отчет не выводились нулевые суммы, то ставите в шаблон &&#&&&.&&
Тогда если значение равно нулю, то в шаблон ничего не попадает.

Если же речь идёт о строках, то разными вариантами нули нужно вырезать (как символы).

Добавлено: 02 авг 2005, 17:40
Lavs
edward_K писал(а):vipprog.chm в стандартной доке
atlsdk.chm если кто поделиться
у меня только vipprog.pdf
Галактика 7.11

можно chm версию как-то на мыло скинуть?
и atlsdk.chm тоже.

Буду очень признателен.

lavs_k@mail.ru

Добавлено: 02 авг 2005, 17:41
Lavs
Алексей писал(а):
Lavs писал(а):еще одна загвоздка.

нужно проверять значение поля на содержание нулей.
их может быть три, два или один.

Спасибо всем откликнувшимся
Если нужно что бы в отчет не выводились нулевые суммы, то ставите в шаблон &&#&&&.&&
Тогда если значение равно нулю, то в шаблон ничего не попадает.

Если же речь идёт о строках, то разными вариантами нули нужно вырезать (как символы).
Спасибо!
Разобрался!

Добавлено: 23 авг 2005, 17:27
Maverick
а вообще очень поможет ф-я Replace () :-))