Сортировка под Web

Тема в разделе "Lotus - Программирование", создана пользователем Gor, 21 янв 2008.

Наш партнер Genesis Hackspace
  1. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Всем доброго времени суток!
    Есть вопрос.
    У меня создана вьюха следующим образом:
    В ней создан один единственный столбец, в столбце формула -
    Код (Text):
    tmp:=@Name([CN];@DbName);
    Path:=@Implode(@Explode(@Subset(tmp;-1);"\\\\");"/");
    trbgcolor:="#F3F7FA";
    "<tr><td><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"#111111\">
    <tr bgcolor=\""+trbgcolor+"\" onmouseover=\"bgColor='#C1D7E6'\" onClick=\"window.location='/"+Path+"/Gen2/"+@Text(@DocumentUniqueID)+"?OpenDocument'\" style = \"cursor:hand\" onmouseout=\"bgColor='"+trbgcolor+"'\">
    <td width=\"140\" align=\"left\" valign=\"top\"><font class=\"listitem\"><a href=\"/"+Path+"/Gen2/"+@Text(@DocumentUniqueID)+"?OpenDocument\">"+F1+"</a></font></td>
    <td align=\"left\" valign=\"top\" width=\"75\"><font class=\"listitem\">"+f4+"</font></td><td align=\"left\" valign=\"top\" width=\"247\"><font class=\"listitem\">"+f5+"</font></td><td align=\"left\" valign=\"top\" width=\"100\"><font class=\"listitem\">"+f9+"</font></td><td align=\"left\" valign=\"top\" width=\"100\"><font class=\"listitem\">"+f8+"</font></td><td align=\"left\" valign=\"top\" width=\"100\"><font class=\"listitem\">"+f7+"</font></td><td align=\"left\" valign=\"top\" width=\"100\"><font class=\"listitem\">"+f6+"</font></td><td align=\"left\" valign=\"top\" width=\"100\"><font class=\"listitem\">"+f3+"</font></td>
    </tr></table>
    </tr></td>"
    Вьюха конечно Treat view content as html
    Как сделать так, чтобы в данной вьюхе был всегда отсортирован какой нибудь столбец?? (f1,f4,f5,f9 итд любой)
    т.е. Аналог Ascending на колонке??
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Gor
    Создать скрытый столбец и отсортировать его.
     
  3. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Для: Medevic
    Спасибо, получилось)


    Для: ALL
    Бьюсь ещё вот сейчас с чем.

    Всё под Web.
    На форме
    Есть радиобуттон с 3-мя вариантами. (First name, Last name, Department) В его свойствах
    Refresh field on keyword change

    Есть Embeded View с Embeded selection
    @If(Lay = "First name";"Gen3";Lay = "Last name";"Gen4";Lay = "Department";"Gen2";"Gen3")

    Т.е. при переключении отображаются разные вьюхи. Вьюхи сортированные как я писал в верхнем посте.

    Главный вопрос: Как правильно создать навигацию по вьюхам? Ведь когда я переключаюсь между вьюхами с помощью Radiobutton а потом нажимаю на навигационную кнопку - Значение в Radiobutton сбрасывается на пустое и вся навигация строится относительно вьюхи Gen3. Как с этим бороться?? Чтобы при нажатии на навигационные кнопки значение в Radiobuuton оставалось такое же, какое было а не обнулялось при рефреше страницы? Или я как то неправильно делаю и есть другие способы?


    На всякий случай вот код кнопок навигации
    Код (Text):
    s:=@GetField("Lay");
    @SetField("Lay";s);
    Path:=@Implode(@Explode(@Subset(tmp;-1);"\\\\");"/");
    ls := "0":"1":"2":"3":"4":"5":"6":"7":"8":"9";
    ls1 := @TextToNumber(ls *+ ls *+ ls);
    Count>=Total};
    @If(Count>Total; @Return(""); @Success);
    @If(Count>Total; @Return("1 - " + @Text(Count)); @Success);
    a := Total/Count;
    a1 := @Integer(a);
    ls2 := @Subset(ls1; a1);
    st := ls2 * Count + 1;
    fin := (ls2 + 1) * Count;
    st1 := @If(a1<a; st : ((a1)*Count +1); st);
    fin1 := @If(a1<a; fin : Total; fin);
    stfin := @Text(st1) + " - " + @Text(fin1);
    tmp:=@Name([CN];@DbName);
    Path:=@Implode(@Explode(@Subset(tmp;-1);"\\\\");"/");
    out := "<A HREF=\"/" + Path + "\\Cards?OpenForm&Count=" + @Text(Count) + "&Start=" + @Text(st1) + "\">" + stfin + "</A>";
    memb := @Member(@Text(Start); @Text(st1));
    curel := @If(memb>0; @Subset(@Subset(out; memb); -1); "");
    curelfin := @If(memb>0; @Subset(@Subset(stfin; memb); -1); "");
    lst := @Replace(out; curel; curelfin);
    @Implode(lst; " . . ")
     
  4. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Может быть по другому поставить вопрос?....
    Допустим есть фрэймсет, он разделён на 2 фрэйма.
    В верхнем фрэйме Combobox с выбором 3х пунктов. Нижний должен отображать формы.

    Как сделать так чтобы при выборе одного из пункта в комбобоксе нижний фрэйм отображал разные формы???
     
  5. fvoice

    fvoice Гость

    Для: Gor
    событие OnChange, код JS:

    Код (Text):
    parent.frame1.location.href= "/database.nsf/form?openform";
     
  6. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Для: fvoice

    Пытаюсь оживить... неполучается...
    на событие OnChange (т.к. в радиобуттоне всего 3 выбора (First name, Last name, Department))
    повесил вот такое, чтобы оно мне рисовало разные страницы в фрэйме при нажатии на разные пункты:

    Код (Text):
        import java.util.Vector;
    import java.util.*;

    if (document.forms[0].Lay = "First name") {
    parent.frame1.location.href= ("http://srvclst1/ITphones.nsf/Cards1?OpenForm");
    };

    if (document.forms[0].Lay = "Last name") {
    parent.frame1.location.href= ("http://srvclst1/ITphones.nsf/Cards2?OpenForm");
    };

    if (document.forms[0].Lay = "Department") {
    parent.frame1.location.href= ("http://srvclst1/ITphones.nsf/Cards3?OpenForm");
    };
    (Lay - имя поля)
    не работает(( не отрисовывает.... Я в джаве новичек совсем... Не подскажите где ошибка?
     
  7. fvoice

    fvoice Гость

    <!--QuoteBegin-Gor+23:01:2008, 12:23 -->
    <span class="vbquote">(Gor @ 23:01:2008, 12:23 )</span><!--QuoteEBegin-->Я в джаве новичек совсем
    [snapback]94602" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    :) я тоже
    а какую ошибку пишет? (в експлорере сразу ошибку выводит, а в лисе Информация - Консоль ошибок)

    фрейм называется frame1? если нет то так и пишите:
    Код (Text):
    parent.ThisIsMyFrame'sName.location.href= ("http://srvclst1/ITphones.nsf/Cards3?OpenForm");
    <!--QuoteBegin-Gor+23:01:2008, 12:23 -->
    <span class="vbquote">(Gor @ 23:01:2008, 12:23 )</span><!--QuoteEBegin-->import java.util.Vector;
    import java.util.*;
    [snapback]94602" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    а что это такое?
     
  8. fvoice

    fvoice Гость

    еще исправьте:
    Код (Text):
    if (document.forms[0].Lay.value == "First name") {
    могу посоветовать отличный сайт, на нем можно найти очень много про Web технологии (с примерами и местами даже картинками :) )
     
  9. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Для: fvoice
    а ошибку никакую вроде в браузере не выводит)) просто страница не обновляется и всё) не выводится ничего в frame1

    в верхнем фрейме под названием Frame2 находится Радиобаттон с вариантами (First name, Last name, Department)

    В нижнем фрейме под названием Frame1 при переключении Радиобаттона должны отображаться страницы по ссылкам
    http://srvclst1/ITphones.nsf/Cards3?OpenForm (при Department)
    http://srvclst1/ITphones.nsf/Cards2?OpenForm (при Last name)
    http://srvclst1/ITphones.nsf/Cards1?OpenForm (при First name)

    Lay - это имя поля Радиобаттона

    на OnFocus повесил поля Lay повесил
    Код (Text):
             if (document.forms[0].Lay == "First name") {
    parent.frame1.location.href= ("http://srvclst1/ITphones.nsf/Cards1?OpenForm");
    };

    if (document.forms[0].Lay =="Last name") {
    parent.frame1.location.href= ("http://srvclst1/ITphones.nsf/Cards2?OpenForm");
    };

    if (document.forms[0].Lay == "Department") {
    parent.frame1.location.href= ("http://srvclst1/ITphones.nsf/Cards3?OpenForm");
    };
    при переключении Радиобаттона нижний фрейм frame1 остаётся неизменным...??? почему??
     
  10. fvoice

    fvoice Гость

    Для: Gor
    Попробовал повторить, извините за то что советовал не проверив..

    Выяснил:

    1. лучше вешать на OnClick, т.к. OnChange срабатывает только после щелчка по странице или выборе другого значения.

    2. Следующая конструкция, помещенная в событие OnClick 100% работает:
    Код (Text):
    parent.WorkFrame.location.href = this.value
    ,где:
    parent - родительское окно содержащее фреймы
    WorkFrame - название фрейма, жутко чувствительно к регистру
    this - текущий элемент (radiobutton),
    value - значение выбранного элемента Radiobutton - а
     
  11. fvoice

    fvoice Гость

    кмк лучше сделать по аналогии с ваша ссылка

    и писать пастру хтмлом на форме.

    Примерно так:

    Код (Text):
    <script language="JavaScript" type="text/javascript">
    <!--
    function doSwitchView( view ){
    parent.frame1.location.href = view+"?OpenForm";
    }
    // -->
    </script>

    <input type="radio" onclick="doSwitchView(this.value)" checked name="Lay" value="Cards1" id="Firstname " /><label for="Firstname ">First Name</label>
    <input type="radio" onclick="doSwitchView(this.value)" name="Lay" value="Cards2" id="Lastname " /><label for="Lastname ">Last Name</label>
    <input type="radio" onclick="doSwitchView(this.value)"  name="Lay" value="Department " id="Department " /><label for="Department ">Department </label>
    скопируйте этот текст на форму, выделите , выберите в меню Text -> Pass-Thru HTML
     
  12. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    СПАСИБО ОГРОМНОООООООЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! получилооось!!!!=)))))
    Только почему то Радиобуттон не переключается))) Точнее переключается если только нажать на выбор Department.
    Висит всё время на выборе Department и всё как по другим радиобуттонам не щёлкаешь)) Нажмёшь на First name - Фрейм поменяется а выбор висит на Department)) С чем связано не подскажите?
    а во фрейме формы меняются)
     
  13. fvoice

    fvoice Гость

    может свойство checked стоит у Вас на Department.. и документ с радиобутоном случаем каждый раз не обновляется?
     
  14. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Для: fvoice
    Действительно, стоял checked.

    У меня тут ещё один вопросик возник))

    Например, открываешь какой нибудь документ из вьюхи в WEB.
    В документе есть кнопки Edit (@Command([EditDocument])) и Save (@Command([FileSave]);@Command([EditDocument])). Нажимаешь Edit - исправляешь инвормацию, Save сохраняешь. После этого если начинаешь работать с базой данные остаются неизменными и изменения отрисовываются только тогда, когда базу открываешь заново по ссылке. Возможно ли сделать редактирование документа и обновление изменений сразу же? Не переоткрывая базу?
    И ещё))) как возможно удалить документ под WEB?? Есть ли каккая нибудь формула для этого кдалить текущий документ если кнопку Delete на форме сделать прямо?
     
  15. fvoice

    fvoice Гость

    <!--QuoteBegin-Gor+25:01:2008, 09:59 -->
    <span class="vbquote">(Gor @ 25:01:2008, 09:59 )</span><!--QuoteEBegin-->если начинаешь работать с базой данные остаются неизменными и изменения отрисовываются только тогда, когда базу открываешь заново по ссылке
    [snapback]94965" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    остаются неизменными после возвращения во вью или прям в документе?
    Я обычно использую @URLOpen функцию в которой формирую URL для открытия нужного элемента (агент, документ, вью и т.д.) после выполнения которого данные подгуржаются уже обновленные.. т.е. код кнопки "Сохранить и выйти", которая сохраняет документ и запускает агент, который формирует страницу:
    Код (Text):
    @Command([FileSave]);
    @URLOpen("http://myhost/index.nsf/ShowNews?OpenAgent")
    <!--QuoteBegin-Gor+25:01:2008, 09:59 -->
    <span class="vbquote">(Gor @ 25:01:2008, 09:59 )</span><!--QuoteEBegin-->как возможно удалить документ под WEB?? Есть ли каккая нибудь формула для этого кдалить текущий документ если кнопку Delete на форме сделать прямо?
    [snapback]94965" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    ну здесь мне кажется как и в клиенте, если пользователь не может удалять документы, то использовать поле флаг, по содержимому которого, агент, подписанный человеком способным удалять документы, будет удалять документы. Например менять название формы на "Deleted", и шедульный агент его удалит + этот документ пропадет из всех вьюх.

    Если пользователь может удалять доки, то разве flag = notesDocument.Remove( force ) не будет работать под веб?
    __________
    я имею в виду агента
     
  16. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    А в агенте что должно быть? Рефреш всех вьюх? переоткрытие базы? Не совсем ясно.

    С удалением через агента вроде бы понятно.
    Кнопки Delete и Edit я просто со скрытием сделаю для определённой группы пользователей в Лотусе. У меня только одна группа править документы может.
     
  17. fvoice

    fvoice Гость

    <!--QuoteBegin-Gor+25:01:2008, 12:31 -->
    <span class="vbquote">(Gor @ 25:01:2008, 12:31 )</span><!--QuoteEBegin-->А в агенте что должно быть? Рефреш всех вьюх? переоткрытие базы? Не совсем ясно.
    [snapback]94970" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    у меня в агенте код который хтмл страницу генерирует, и т.к. запуск агента был вызван в ифрейме, то в нем страницу и выводит:
    Код (Text):
        Set dc = db.Search({Select form="NewsLetter"},Nothing,0)
    If dc.Count=0 Then
    Print "Новости отсутствуют"
    Exit Sub
    End If

    Print |<script language="JavaScript" type="text/javascript" src="jslib.js"></script>|
    Print |<link rel=stylesheet type='text/css' href='/index.nsf/cssStyle?ReadForm'>|
    Print |<link rel=stylesheet type='text/css' href='/index.nsf/cssNews?ReadForm'>|

    Print |<div id='News'>|
    Set doc = dc.GetFirstDocument
    While Not doc Is Nothing
    Print |<div id='NewsTitle'>|+doc.Type(0)+|</div>|
    Print |<div id='NewsContent'>|+doc.Comment(0)+|</div>|
    Print |<div id='Details'><a href="/index.nsf/news/|+doc.UniversalID+|?OpenDocument"> Подробнее</a></div>|
    Set doc = dc.GetNextDocument(doc)
    Wend   
    Print |</div>|

    Print |<script>|
    Print |<!-- |
    Print |id=setTimeout("top.document.getElementById('ContentIfr').style.height = getDocumentHeight()+30;",200)|
    Print |// -->|
    Print |</SCRIPT>|

    если Вам нужно открыть вью, так и пишите:
    Код (Text):
    @URLOpen("http://myhost/index.nsf/ViewName?OpenView")
    если форму то:
    Код (Text):
    @URLOpen("http://myhost/index.nsf/FormName?OpenForm")
    т.е. логика немного другая, в клиенте вы закрываете документ, фокус переходит на предыдущую вкладку, а в браузере нужно не закрывать документ, а открывать вместо него что-нибудь другое.
     
  18. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Для: fvoice

    Наболел тут ещё один вопросик=) Если я сильно очень не надоел подскажите возможно)

    Форма под Web (Cards2) на форме есть Embeded View под названием Gen2
    пытаюсь её отсортировать формирую к примеру вот такую ссылку

    Код (Text):
    http://srvclst1/ITphones.nsf/Cards?readform&view=Gen2&RestrictToCategory=A
    Хочу вывести по этой ссылке все фамилии на букву А. Форма перегружается и документы не находятся, не отображаются. Что необходимо чтобы сортировка заработала? При каких условиях? Как оно будет работать?
     
  19. fvoice

    fvoice Гость

    Для: Gor
    первый столбец вьюхи должен быть категоризирован по первой букве фамилии @Left(Surname;1)
     
  20. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Для: fvoice
    А для русских букв сортировка не работает получается да?
    Для английский получилось а для русских непонятка какая то....
    на каждой букве гиперссылка вид
    Код (Text):
    Path:=@Implode(@Explode(@Subset(tmp;-1);"\\\\");"/");
    tmp:=@Name([CN];@DbName);
    "<A HREF=\"/" + Path + "ITphones.nsf\\Cards44?ReadForm&View=Gen55&RestrictToCategory=Г"+"\">Г</A>"
    Открываешь форму, кликаешь на букву Г к примеру, список по фамилиям поуявляется на букву Г, а потом если ещё раз нажать на ту же самую букву или на другую документы уже не находятся. Т.е. срабатывает только при первом нажатии после открытия, а при повторном нет...
     
Загрузка...
Похожие Темы - Сортировка под Web
  1. vera2014
    Ответов:
    0
    Просмотров:
    1.197
  2. Liori
    Ответов:
    2
    Просмотров:
    1.081
  3. FCDK
    Ответов:
    0
    Просмотров:
    1.326
  4. ленарано
    Ответов:
    1
    Просмотров:
    1.170
  5. Creder
    Ответов:
    0
    Просмотров:
    1.415

Поделиться этой страницей