My Stuff
Comments
-
So line 135 of the template is simply this: border-top: 1px dashed #d3d3d3; It's just part of a CSS style for a horizontal rule. It's not this code, because it doesn't happen every time. So far it's only happened on transfer orders, but again I suspect it's because of the items that are on them. As this is a BFO error, the…
-
You are in luck, I've done basically this exact customization: [CODE]/** * Add 'Print Item Labels' button to Item Page * * Script ID: customscript_mos_itemlabels_ue * Script Type: User Event * Deployed to: Inventory Item * */ function beforeload(type, form) { if (type == 'view') { var script =…
-
You can try setting this on the Role level. [ATTACH=CONFIG]n417296[/ATTACH]
-
To expand on what jokell is saying, Advanced PDF/HTML Templates are run through two engines to generate the final PDF file. First they are passed into Freemarker which replaces the template code with the actual record values, and then they go through the BFO library which converts the XML markup into a PDF file. If you…
-
I've confirmed it happens on every fulfillment made from a transfer order, and only if the description of the item is included. Here is the code that is supposed to display that: [CODE]<#list record.item as item><tr> <td colspan="17"><span class="itemname">${item.item}</span><br />${item.description}</td> <td align="right"…
-
Try changing "${"Invoice"}" to "Invoice"
-
There is a setting "USE LOCATION ADDRESS ON FORMS", found under Setup > Company > Printing & Fax that should accomplish this.
-
I would try <#if record.custcol_scm_customerpartnumber?has_content>${record.custcol_scm_customerpartnumber}<#else>${item.item}</#if> This doesn't look right - 'custcol_scm_customerpartnumber' is a line level field, not a body field. jokell - I would suggest testing ${item.custcol_scm_customerpartnumber} without a…
-
You can use the Freemarker "#include" directive to achieve this. http://freemarker.org/docs/ref_directive_include.html
-
For quantity remaining to pick we use: [CODE]<#function toNumber val> <#if val?has_content && val?length gt 0 > <#return val?html?replace('[^0-9.]','','r')?number > <#else> <#return 0 > </#if> </#function> ${toNumber(item.quantitycommitted) + toNumber(item.quantitybackordered)}[/CODE] To source an item from the Item…
-
Michoel, that sounds like a good suggestion, and coming from you I am assuming it works! How do you become a Freemarker expert?!? ;-) Haha, too much trial and error..
-
michoel - #include doesn't work. Thanks, but I think I'll just stick with what does work. Custom field and workflow. It certainly does it, I use it in every one of my templates. Make sure that the URL you are using is an absolute path, and if you are hosting the file in your NS File Cabinet it is 'Available Without Login'.
-
As for the quantity, I wound up using: ${item.quantity - item.quantityfulfilled}. It works so far, though I receive an error when saving the PDF Template: Error on line 219, column 40 in template Expression item.quantityfulfilled is not numerical That's the reason I use that Freemarker function posted above to make sure…
-
I've seen something similar before, actually in the same account item.isclosed was boolean in some record types and T/F in others. A work-around is: <#elseif (item.isclosed?is_boolean && item.isclosed) || (item.isclosed?is_string && item.isclosed == 'T')>
-
Hi All i would like to send bulk email customer statements (which i know how to do) but how do I change the Email Subject line as it is wrong? thank you Can you clarify how you are sending out the statements? Using the "Generate Statements" page, or via a Workflow or a different method?
-
Was the field or the default value added after you already had some instances of the record created? Seems to me like there are some instances of your custom record where custrecord330 has no value in it. If this is the case, supplying a default value in the Freemarker code should solve it. <#if…
-
If you are able to change the template you can do it like this: var record1 = nlapiLoadRecord(...); var record2 = nlapiLoadRecord(...); var renderer = nlapiCreateTemplateRenderer(); renderer.setTemplate(…); renderer.addRecord('record1', record1); renderer.addRecord('record2', record2); var xml = renderer.renderToString();…
-
I think the error is on line 249-251 [CODE]<td><#if record.custbody4 == ""> <div class="min-height16"><#else>${record.custbody4} </#if></div> </td>[/CODE] Try changing to: [CODE]<td><#if record.custbody4 == ""> <div class="min-height16"></div><#else>${record.custbody4} </#if> </td>[/CODE] BFO reports incorrect lines…
-
Advanced HTML/PDF Templates do not properly support accessing linked records like item.item.itemid. Even if it did work, it would probably only give you the correct itemid for the first item, and then just repeat that for the following items. I would recommend creating a custom Transaction Column Field to source the values…
-
We also use a Workflow for sending out statements. The basic idea is as follows: 1) Create a Customer Saved Search to select which customers you wish to send the statements to. (We use Balance > 0, Inactive = F, Status != Debtor-Liquidated Account) 2) Create a new Workflow, select Record Type = Customer, and choose your…
-
This is how we do it, including a convenience function that makes sure we are dealing with numbers: [CODE]<#function toNumber val> <#if val?has_content && val?length gt 0 > <#return val?html?replace('[^0-9.]','','r')?number > <#else> <#return 0 > </#if> </#function> Quantity Remaining: ${toNumber(item.quantitycommitted) +…
-
The 'is_string' builtin is for testing the variable type, it won't actually convert anything. You need to use 'number' to convert, and as some price values may contain formatting (currency sign, thousands separator etc.) you need to make sure to strip that out. Here is a function I use to convert prices to numbers.…
-
Netsuite's Advanced PDF/HTML Templates use the Freemarker template language. You can view the complete documentation here: http://freemarker.org/docs/ <#assign sequence = ['a', 'b', 'c', 'd', 'e']> <#assign hash = {"name":"mouse", "price":50}> <#assign seq_of_hashes = [{"name":"mouse", "price":50},…
-
elie I would also find this very useful. I've submitted a case to support and will let you know.
-
Not sure if it's better to have == instead of one = ? In all cases where I'm evaluating a string I've used one and it works fine. Strictly speaking, the '=' operator is for assignment and '==' is for comparison. In Freemarker you need to use the <#assign> directive for assignment, so probably if '=' works to compare I…
-
I've tried to do the same thing, unfortunately it seems like BFO does not support this: http://bfo.com/faq.jsp How do I set headers and footers for specific pages? The Report Generator userguide has a section devoted to headers and footers. In version 1.1.x of the Report Generator the options for setting headers are:…
-
I believe that for sublists you have to have the fields on the form. If you try the syntax {item.item.displayname} you will probably see that it will source the first line in the sublist each time. It should still work if you store the value but this will take up space in your database for no reason, and also if the…
-
Add the the field to the form as a Custom 'Transaction Column Field' (make sure 'Store Value' is unchecked, and in the Sourcing & Filtering tab, source from the Item record). If you don't want the field to show in the UI, I saw a great tip on the forums recently - you can hide the field by removing a label on the form…
-
Nelliott - {item.item} will print either just the Item Name/Number ('itemid') or the Display Name/Code ('display name') as well, depending on the account setting for 'SHOW DISPLAY NAME WITH ITEM CODES' (in Setup -> Company -> General Preferences). The problem comes up if you want to have this enabled in general but not on…
-
dlindores - great that works perfectly! Not sure what error you are getting? <#if companyInformation.logoUrl?contains('sandbox')> Sandbox <#else> Production </#if> elie, support raised Enhancement #398152 for this, thought the above work around seems to work.