Поле автономного номера InfoPath - PullRequest
2 голосов
/ 20 апреля 2009

Я разрабатываю форму infopath (Запрос на изменение):

1) Как добавить текстовое поле, которое автоматически увеличивается до следующего числа при создании новой формы (добавление новой формы запроса на изменение в библиотеку форм).

2) Как получить информацию из существующей формы в новую форму.

ПРИМЕЧАНИЕ. Поле не находится внутри повторяющейся таблицы. Мне нужно создать следующий номер запроса на изменение в каждой новой форме запроса на изменение.

ТИА!

Ответы [ 2 ]

2 голосов
/ 20 апреля 2009

Нет встроенного способа сделать это, но есть несколько способов достичь того, что вы хотите (запрос к базе данных или запрос SPList). Но такой запрос почему-то пахнет как обходной путь для другой проблемы. Распространенные случаи для увеличения чисел:

  • уникальные идентификаторы
  • Количество запросов
  • сделать ссылками по внешнему списку (так же, как ID)
  • сделать идентификаторы предположительными (временные метки нет)

Если вам нужен идентификатор: в большинстве случаев вы не обязаны использовать целочисленные идентификаторы. Просто используйте заголовок формы в качестве естественного идентификатора. (например, клиент + метка времени)

Если вам нужны предположительные идентификаторы, они нужны вам, потому что внешняя система хочет получить доступ или обратиться к запросу. В этом случае попробуйте изменить направление вытягивания на направление выталкивания (например, с помощью рабочих процессов) или позвольте вашей другой системе предоставить функцию «getID», которая может быть вызвана вашей формой для получения известного идентификатора (не нужно угадывать).

В любом случае - для меня, похоже, вы хотите достичь этого, чтобы решить какую-то другую проблему. Может быть, есть и другие решения этой проблемы?

0 голосов
/ 17 сентября 2012

Вы можете ввести токен в текстовые заголовки в форме, где вы хотите использовать автонумерацию, например # num #, а затем использовать javascript или jquery, чтобы найти эти токены и заменить их увеличенными числами.

Недостатком этого является то, что если вы экспортировали список в Excel, токены не будут переведены в числа. Но это хорошее решение для визуализации на экране.

Используйте Firebug, чтобы выяснить класс контейнера с вашими тегами автонумерации. Может быть, вы могли бы сделать что-то , как это:

function TokenReplacement(){
    var ClassName = 'ms-formlabel';
    var elements = new Array();
    var elements = document.getElementsByTagName('td'); 
    var numerator=0;
    //Now do find and replace on everything else
    for(var e=0;e<elements.length;e++){
        thiselement = elements[e];
        if(thiselement.className == ClassName){
            //autonumber the questions by replacing the #num# token
            if(thiselement.innerHTML.search('#num#') > -1){
                numerator++
                var replacenum = "<b>" + numerator + ".&nbsp;&nbsp;</b>";
                thiselement.innerHTML = elements[e].innerHTML.replace('#num#',replacenum);  
            }
        }
    }
}
...