Страница 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
Алексей писал(а):
Зачем у Вас стоят Галки?
Очень интересная ассоциация возникла...
Добавлено: 15 июл 2005, 11:18
Алексей
Max_Fin писал(а):
Очень интересная ассоциация возникла...
- я имел в виду символы галочки
Добавлено: 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 ()
)