Как отделить префикс от динамического текста перед печатью в BIRT - PullRequest
0 голосов
/ 17 ноября 2018

Имя, которое я хочу напечатать в отчете в виде динамического текста, находится в зашифрованном формате в БД.Я расшифровываю это имя с помощью следующего сценария в onCreate этого динамического текстового поля.

this.text=Packages.com.erp.util.EncryptUtil.decrypt(name);

Теперь проблема заключается в том, что это имя имеет префикс Mr, Ms и т. Д., Объединенный с именем в некоторых отчетахкоторый влияет на расшифровку имени, я хочу, чтобы имя расшифровывалось одно.Разделение префикса и имени в запросе нарушает привязку и приводит к некоторым другим ошибкам.Поэтому я хочу проверить имя для любого пробела или разбиения, чтобы после 1-го пробела можно было определить, каким будет имя, а перед пробелом будет префикс.Затем я хочу отправить это имя одному методу decypt, и при возврате расшифрованного имени следует объединить его с префиксом с использованием некоторого сценария и распечатать в динамическом текстовом поле.Как этого добиться в BIRT Report Designer Версия: 3.7.1.v2

1 Ответ

0 голосов
/ 12 декабря 2018

С DataSet Перетащите атрибут name в отчет куда-нибудь и сделайте его невидимым.Перейдите к onRender этого атрибута имени, который доступен на вкладке сценария в BIRT, и вставьте следующий код, чтобы отделить префикс от имени, и отправьте имя только вашему методу.

name = this.getValue();
var sArr  = name.split(" ");
name="";
for(var i=1;i<sArr.length;i++){
if(sArr[i]!=null)
name = name+" "+sArr[i];
}
name = name.replace(/^[ ]+|[ ]+$/g,'')
name=sArr[0]+" "+Packages.com.yourpackagename.yourmethodname(name);

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

this.text=name;
...