• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Лотус вьюшка

Xalet

Well-known member
08.08.2008
410
0
#21
Мде. Хреновенько. У меня канешн есть несколько идеек, как всё это обойти, но все они немножко кривые и не особо нравятся. Неужели в лотусе ничего не предусмотрено для таких случаев?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#23
Чем папки-то не устраивают? Что за тяга к представлениям? :)
 

Xalet

Well-known member
08.08.2008
410
0
#24
Чем папки-то не устраивают?
Папки как минимум автоматом не обновляются. Скажем изменил я значение в поле, по которому условие проверяется в документе, во вьюшке достаточно рефреш сделать, а в папке он так и останется, пока агент не прокрутится...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#25
Зачем ждать? Запусти агент сам в PostSave.
Шедульный агент нужен для того, чтобы проверять условия связанные со временем.
 

Xalet

Well-known member
08.08.2008
410
0
#26
Зачем ждать? Запусти агент сам в PostSave.
Да всё это понятно. Но агенты надо тогда вешать не только на сэйв, надо отслеживать и удаление еще. Я ж не говорю, что всё это нереализуемо, но вьюшка в данном случае куда удобнее.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#27
Удаление тоже можно отследить.
Вьюшка в данном случае вообще сливает. :)
 
T

techNICK

#28
Господа, есть вопрос. Необходимо, чтоб во вьюшке выводилась инфа строго определенная. Как то. Есть форма "ЛИЧНЫЙ ЛИСТОК ПО УЧЕТУ КАДРОВ" в ней есть табличка со списком родственников (Братья-Сестры-Дети-Родители), так вот, необходимо, чтоб по каждому КАДРУ выводился список его детей до 18 лет.
Вообще родственников можно вывести Rodst1:Rodst2 и т.д. Но как вывести именно тех, кто нужен определенного возраста?
 
K

K-Fire

#29
Ну и какие проблемы? Вместо Rodst1:Rodst2 пишешь (@if(Rodst1_Age<=18;Rodst1;"") : (@if(Rodst2_Age<=18;Rodst2;"") и т.п.
Только потом всю формулу в @Trim() не забыть "одеть" :)
 
T

techNICK

#30
Ну и какие проблемы? Вместо Rodst1:Rodst2 пишешь (@if(Rodst1_Age<=18;Rodst1;"") : (@if(Rodst2_Age<=18;Rodst2;"") и т.п.
Ээээ, спасибо :) щас попробую.
P.S. Оперативненько :)
=====
Нет, не работает. Но не работает из-за того, что я не полно объяснил :)
Поле Rodst содержит "звание" родственника( Брат-Сестра и т.д.) Поэтому сравнение-то не проканает. Вычисление годов должно быть из поля DataRod т.е. Из даты должно вычисляться кол-во лет (что тоже не знаю как :) хотя и пример есть, но че-та не въеду) И уж оттуда выбирать только тех, кому <= 18
Вот, теперь вроде полнее. :)
 
K

K-Fire

#32
Кол-во лет считать, самый примитивный способ: Year(Today) - Year(DataRod).

Если в поле хранятся не только дети, то тоже никакой проблемы, можно сбацать формулу типа @if(Rodst="Дети";Year(Today) - Year(DataRod);99), т.е. если дети - считаем реальный возраст, если не дети, то пишем 99 чтобы уж точно было больше 18ти :)


Другой подход реализации этой задачи: на событие PostSave/QuerySave вешаешь лотус-скриптовый код, где формируешь списочное поле с этими твоими детьми. Т.е. вместо формул в столбцах, вычисление переносится на форму документа.

Если есть сложности с языком формул, то можно и так делать, разницы большой нет в подходах.
 
T

techNICK

#33
Хм, а если имя поля Rodst может содержать разные значения (Сын, Дочь)? И нужно пробежаться по всей таблице, проверить что записано в поле?
Т.е. поля Rodst с порядковым номером числом пять, т.е. Rodst_1, Rodst_2 и т.д. Формула такого вида @If (Rodst_1:Rodst_2:Rodst_3="Сын":"Дочь";@Year (@Today)-@Year (ДатаРождения);99) уже не проканает?

Блин, хреново, когда не помнишь то, что не знал :D
Сильно не ржите, только-только сел за лотус :)
 
K

K-Fire

#34
Значится возникает впечатление что у тебя немного неправильная схема данных (хотя схема данных и лотус это как кошка и собака).

Т.е. у тебя должен быть набор полей, типа такого:

RodName_1 ... RodName_N - имя родственника
RodType_1 ... RodType_N - тип родственника (делаешь поле типа диалог лист)
RodBirthday_1 ... RodBirthday_N - дата рождения
и т.п.

Во вьюшке ты собираешь список. Каждый элемент списка - это некая формула где используются только i-тые поля, где i от 1 до N. Поэтому формула Rodst_1:Rodst_2:Rodst_3="Сын":"Дочь" некорректна.
 
K

K-Fire

#36
Вариант есть, хранить все значения каждого вида данных в списочном поле (multivalue). Т.е. 1 поле на имя, одно на тип, и одно на дату. Единственная проблема будет с вводом данных, т.к. их красиво в виде таблички не отобразишь.
 
T

techNICK

#38
Единственная проблема будет с вводом данных, т.к. их красиво в виде таблички не отобразишь.
Это-то и плохо. Мало того, что я слабо разбираюсь. Так еще и юзерам надо, чтоб было просто :D На скрине как главная форма выглядит. Так же она и на печать, по мере надобности, будет выводиться
screen.jpg
Не лучше ли респонсами сделать?
А чуточку подробнее можно. И, подоступнее :)
 

Вложения

K

K-Fire

#40
ИМХО, ввод и редактирование данных во вьюшке сделан нереально коряво. Или может в 8-ке это улучшили?
 
Вверх Снизу