Xpages - Повторный контроль / просмотр SSJS

У меня точно такой же дизайн базы данных в реальном времени и в DEV, однако, когда у меня есть повторяющийся элемент управления на странице, он работает так, как ожидалось, в DEV, извлекая статус документов из представления, но не в режиме реального времени, где он просто перечисляет номер документа в представлении. Кроме того, похоже, что он не возвращает никаких уникальных значений. Я использую столбец dbcolumn для получения значений и попытался обернуть его @unique, а затем использовать библиотеку сценариев для обработки уникальных записей, но безуспешно. Изображение прилагается и код ниже. Любые идеи?

<table class = "table table-hover">
  <thead>
    <tr>
      <th>Status</th>
      <th>Total</th>
      <th>%</th>
    </tr>
  </thead>
            <tbody>

                <xp:repeat id = "repeat1" rows = "30" var = "row">
                    <xp:this.value><![CDATA[#{javascript://var result = @DbColumn("", "vwStatusStats", 1);
//var result = session.evaluate("@DbColumn(\"\"; ; \"vwStatusStats\"; 1)").elementAt(0) 


//result = session.evaluate("@Unique");

//return result
//return @Unique(@DbColumn("", "vwStatusStats", 1))

return DbColumnArray("", "", "", "unique", "", "vwStatusStats", 1)
}]]></xp:this.value>

                    <tr>
                        <td>
                            <xp:text escape = "true"
                                id = "computedField11">
                                <xp:this.value><![CDATA[#{javascript:row}]]></xp:this.value>
                            </xp:text>
                        </td>
                        <td>
                            <xp:text escape = "true"
                                id = "computedField1">
                                <xp:this.value><![CDATA[#{javascript:var v:NotesView = database.getView("vwStatusStats");
var vec:NotesViewEntryCollection = v.getAllEntriesByKey(row);
return vec.getCount().toString()}]]></xp:this.value>
                            </xp:text>
                        </td>

                        <td>
                            <xp:text escape = "true"
                                id = "computedField2">
                                <xp:this.value><![CDATA[#{javascript:var total = getComponent("cmpTotal").getValue();
var amount = getComponent("computedField1").getValue();

var result = (amount / total) * 100;

return result}]]></xp:this.value>
                            </xp:text>
                        </td>
                    </tr>
                </xp:repeat>

                <tr>
                    <td>Total</td>                      
                    <td>
                        <xp:text escape = "true" id = "cmpTotal">
                            <xp:this.value><![CDATA[#{javascript:var v:NotesView = database.getView("vwStatusStats");

return v.getEntryCount().toString()}]]></xp:this.value>
                        </xp:text></td>
                        <td>
                            <xp:text escape = "true"
                                id = "computedField3">
                                <xp:this.value><![CDATA[#{javascript:var total = getComponent("cmpTotal").getValue();
var amount = getComponent("cmpTotal").getValue();

var result = (amount / total) * 100;

return result}]]></xp:this.value>
                            </xp:text></td>
                </tr>               

            </tbody>
                    </table>        

Xpages - Повторный контроль / просмотр SSJS

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
124
2

Ответы 2

Проверьте наличие нескольких представлений с одинаковым именем / псевдонимом в действующей базе данных. Ваша живая версия может выглядеть иначе, чем вы ожидаете.

Лучше всего также убедиться, что вызов @DbColumn передает @DbName() в качестве первого параметра. Он по-прежнему должен будет проделать такой же объем работы, но он обеспечит стабильные результаты ("" не будет работать для XPiNC). Использование SSJS / Java для получения представления и возврата getColumnValues() также, вероятно, будет более эффективным, чем @DbColumn(), согласно анализу Ховарда Гринберга. В качестве дополнительного бонуса, возможно, стоит взглянуть на этот XSnippet для использования аспектов Repeat Control для HTML, который обертывает ваш повтор https://openntf.org/XSnippets.nsf/snippet.xsp?id=repeat-with-header-and-footer-facets. Это гарантирует, что HTML-код для таблицы не будет вставлен в дополнительный HTML-код.

Извините за задержку, меня не было в офисе ... Никакого другого имени или псевдонимов представления с указанным именем представления не существует .... Я также изменил на @DbName (), как было предложено, без изменений, и удалил и повторно скопировал вид из DEV, где он работает. Просмотр представления в клиентах заметок также показывает ожидаемые значения

Chris Richards 10.05.2018 16:39

Похоже, ваш вид в реальном времени поврежден. Откройте его с помощью клиента Notes, чтобы убедиться, что он действительно содержит ожидаемые значения. Одной из возможных причин может быть повреждение значения "программного имени" в свойствах столбца. Иногда, особенно при копировании / вставке в дизайне представления, ваши столбцы получают одинаковое значение в долларах (например, 1 доллар США) для столбцов с другой формулой. Это вызывает "странные" значения в одном из этих столбцов, полностью отличные от его формулы. Удалите программное значение, новое будет сгенерировано автоматически.

Извините за задержку, меня не было в офисе. Программные имена были такими же, это было первое, что я проверил. Повторный ввод имени также не решает проблемы. Замечу, что в этом представлении буквально одна колонка ....

Chris Richards 10.05.2018 16:37

Программное имя является общим для всех представлений, оно может противоречить формуле столбца в других представлениях.

Frantisek Kossuth 11.05.2018 11:14

Я просто дал столбцу совершенно уникальное программное имя, но все равно без радости. Формула столбца - это буквально просто имя поля.

Chris Richards 14.05.2018 15:07

Если я изменю формулу представления, чтобы использовать другое поле, например, расположение офиса, все будет работать, но когда я верну его к статусу, это снова не произойдет .. Содержимое столбца / поля в обоих случаях является строкой ...

Chris Richards 14.05.2018 15:25

Дважды проверьте флаг isSummary в полях - как в документах, так и в таблице полей.

Frantisek Kossuth 14.05.2018 17:11

Для них установлено значение true, как для поля, которое отображается правильно, так и для поля, которое не отображается.

Chris Richards 14.05.2018 18:05

Другие вопросы по теме