Ich handle dies, indem ich eine Spalte "View" zu meiner Unterliste hinzufüge und die setLinkText()
Funktion verwende, um den Anzeigetext einzustellen. Dann führe ich eine Suche durch, um die gewünschten Datensätze zu erhalten und sie der Unterliste hinzuzufügen. Dann gehe ich zurück durch die Unterliste und verwende setLineItemValue()
in der View-Spalte mit der URL, die mit dem Datensatz verknüpft ist.
hier ein Arbeits Suitelet ist, die Kostenabrechnungen für die aktuellen Benutzerlisten und bietet einen Link zu jeder Kostenabrechnung:
function suitelet(request, response) {
var form = nlapiCreateForm('Expense Reports');
var expenseReportList = form.addSubList('custpage_expenses', 'list', 'Expenses');
expenseReportList.addField('custpage_view', 'url', 'View').setLinkText('View');
expenseReportList.addField('internalid', 'select', 'Expense Report', 'expensereport').setDisplayType('inline');
expenseReportList.addField('memo', 'text', 'Memo');
expenseReportList.addField('amount', 'currency', 'Amount');
var expenseReports = getExpenseReports(nlapiGetUser());
expenseReportList.setLineItemValues(expenseReports);
updateViewRecordLinks(expenseReports, expenseReportList);
response.writePage(form);
}
function getExpenseReports(employeeId) {
var results = nlapiSearchRecord('expensereport', null, [
new nlobjSearchFilter('entity', null, 'anyof', employeeId),
new nlobjSearchFilter('mainline', null, 'is', 'T')
], [
new nlobjSearchColumn('internalid'),
new nlobjSearchColumn('memo'),
new nlobjSearchColumn('amount')
]);
return results;
}
function updateViewRecordLinks(expenseReports, expenseReportList) {
for (var i = 0; expenseReports && i < expenseReports.length; i++)
{
var row = expenseReports[i];
var viewUrl = nlapiResolveURL('RECORD', 'expensereport', row.getId(), false);
expenseReportList.setLineItemValue('custpage_view', i + 1, viewUrl);
}
}
@ Mark - Es ist schön, alternative Lösung, aber ich mag Link zu dieser Spalte Konto hinzuzufügen, direkt, Das wird dynamisch erzeugt, nachdem ich meine Rechnung-Bestellung gespeichert habe, also habe ich keinen Text zu SetLinktext, um URL in addField für diese Spalte zu verwenden. – Siddharth