Пустые строки при построении отчета под web

Тема в разделе "Lotus - Программирование", создана пользователем deeeman, 16 апр 2015.

  1. deeeman

    deeeman Well-Known Member

    Регистрация:
    4 дек 2007
    Сообщения:
    382
    Симпатии:
    0
    Привет!

    есть форма, на которой есть рич текст поле, в которое сваливается инфо при открытии формы на QOpen для распарсивания и построения под web. Все было хорошо до тех пор пока у мелкомягкого не вышло очередное обновление под ie8.
    Теперь при отображении строк отчета появились пустые строки.

    Имеем корпоративный стандарт ie8 (никак не обновить до след версии)
    Отчет строиться на js обычными тэгами table tr td
    строка формируется так:

    Код (Text):
     tBodyAll += "<tr depth=1 bgcolor=#EFEFEF style=\"font-weight:bold\"  align=middle><td>&nbsp;</td><td align=left colspan=3><a href=\"javascript://\" onClick=\"showHideRows(this)\">" + aeLast + "</a><DIV style='float: left; width:250px; height:1px; overflow:hidden;'>&nbsp;</DIV></td>" + tBody01 + "</tr>"
    подкатегория строки так:

    Код (Text):
    agEntry00 = "<tr depth=2 bgcolor=#EFEFEF style=\"font-weight:bold;display:none\"  align=middle><td class='c1'>&nbsp;</td><td class='c2' style='display: none;'>&nbsp;</td><td  class='c3'  style='padding: 0px 0px 0px 15px;' align=left colspan=3><a style='display: block; border-left: 2px solid white; padding: 2px 0px 2px 4px;' href=\"javascript://\" onClick=\"showHideRows(this)\">" + ae1 + "</a><DIV style='float: left; width:250px; height:1px; overflow:hidden;'>&nbsp;</DIV></td>"
    отличаются только параметром depth
    строка по умолчанию свернута,при нажатии на ссылку в первой ячейке строки она раскрывает подкатегории функцией showHideRows:

    Код (Text):
    function showHideRows(obj){
    var tr = obj.parentNode.parentNode //получаем объект строки (tr)
    var table = tr.parentNode //получаем объект таблицы
    var row
    var i=0
    var depth = parseInt(tr.depth)
    var nextdepth = parseInt(depth) + 1
     
    for(i = (tr.rowIndex+1); i < table.rows.length; i++){
    curRow = table.rows[i]
     
    if(curRow.depth && curRow.depth > depth){
    if(curRow.depth == nextdepth){
    curRow.style.display = (curRow.style.display != "none")? "none":"" //меняем статус ниже лежащей строки
    }
    else{
    curRow.style.display = "none" //все остальные строки (которые еще глубже) скрываем
    }
    }
    else{ //если встретили строку, с глубиной равной кликнутой, то прекращаем обработку - т.к. она не внутри нашей категории
    break
    }
    }
    }
    Так вот, при построении отчета сразу же вылазиют пустые строки.
    Воспроизводиться под последней версией ie8
    на старой версии ie8 все ок.
    на 10 ок
    на 11 в режиме совместимости так же видно проблему.

    Подскажите, что с функцией showHideRows не так может быть?
    а может в другом косяг?
     
  2. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    797
    Симпатии:
    78
  3. deeeman

    deeeman Well-Known Member

    Регистрация:
    4 дек 2007
    Сообщения:
    382
    Симпатии:
    0
    не ошибся это лотусовый вэб ))
    прошу перенести ветку в актуальный раздел

    не понял про метки, что для каждого браузера свой скрипт писать?
     
  4. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    797
    Симпатии:
    78
    Зачем для каждого? :) в HEAD своего отчета.
    напр. при <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
    10-й будет себя вести как 8-й ИЕ.
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    вот потому предпочитают, во многих случаях, фрэймворки, а не собственные велики ;)
     
    #5 lmike, 17 апр 2015
    Последнее редактирование модератором: 18 апр 2015
Загрузка...

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