1. Highlight - The first tool is really powerful and can be used beside Lotus Script also for other 100 programming languages. It allows output to HTML/XHTML, RTF, XML, LaTeX and TeX and 40 syntax color themes. In addition it has plug-ins for Notepad++ and for Total Commander.

2. Julian Robichaux’s ls2html tool. It’s written in Lotus Script and has as output an HTML file. If you are not happy with the default CSS styles you can define yourself one.
3. Daniel Eriksson’s Highlight (prompt command ) tool . Daniel’s tool can be used too for Lotus Script and other languages. I did not used it until now, but I found it today by chance.
http://www.ibm.com/developerworks/lotus/library/notes8-new/
Eclipse-based Lotus Notes V8 enhances the Lotus Notes user interface, reinforces its collaboration and messaging strengths, and extends its application development model with state-of-the-art programming constructs. Read more about what’s new in Lotus Notes and Domino V8.
To understand the Notes 8 programmability story, you must first understand the new technology that has been introduced with Lotus Notes 8. The Lotus Notes 8 client takes all the code that is the existing Lotus Notes and puts it in the Eclipse environment. This puts Lotus Notes on an open-source, Java™-based platform.
The following document is a checklist for Domino Security Best Practices, one in a series of documents included in the Domino Best Practices Master Checklist.
http://www-1.ibm.com/support/docview.wss?rs=463&uid=swg27009326
If you just started using XALAN probably the first issue that you encountered is the fact the relative paths, for the imported XSL files, are not working.
For the relatives path to work, in a XALAN transformation, you will need to set the system identifier (systemID).
The system identifier is nothing else but an URI to the source file, and is set using the StreamSource.setSystemId(String systemID) method.
Following is a simple example that shows how to to set the property for a XSL StreamSource.
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class RelativePathExample {
public static void main(String[] args) throws Exception {
final String BASE_PATH = "C:\\Temp\\";
String xslPathURI = (new File(BASE_PATH + "article.xsl")).toURL()
.toString();
StreamSource xslSource = new StreamSource(xslPathURI);
// this line will be used to solve the URIs encountered in XSL file,
// respectively the relative paths of the imported XSL files
// xslPathURI = "file:/C:/Temp/article.xsl"
xslSource.setSystemId(xslPathURI);
String xmlPathURI = (new File(BASE_PATH + "article.xml")).toURL()
.toString();
StreamSource xmlSource = new StreamSource(xmlPathURI);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(xslSource);
StreamResult result = new StreamResult(new FileOutputStream(BASE_PATH
+ "article.html"));
transformer.transform(xmlSource, result);
}
}
In one of the projects that I’m working in we had to do some server-side transforming using MSXML. Everything went well until we transformed some pages using German umlauts. The encoding in the XML file was correctly set but the result was completely ignoring the umlauts, replacing them with the question mark sign.
The code was using the transformNode() method. In this case MSXML is always using internally a string format called BSTR which is UTF-16 encoded data. So whatever encoding is set it will be ignored.
The solution is to use transformNodeToObject() method which is keeping the encoding settings.
You can download the complete Notes Dabatase from here: MSXMLEnc.nsf
Sub transform() On Error Goto errorHandler Const urlBase = “http://localhost/MSXMLEnc.nsf” Dim xmlDoc As Variant, xslDoc As Variant Dim xmlDocURL As String, xslDocURL As String xmlDocURL = urlBase + “/article.xml” xslDocURL = urlBase + “/article.xsl” ‘ initthe XML and XSL Set xmlDoc = CreateObject(“Msxml2.DOMDocument.3.0″) xmlDoc.async = False Set xslDoc = CreateObject(“Msxml2.DOMDocument.3.0″) xslDoc.async = False ‘ load the XML and XSL xmlDoc.load( xmlDocURL ) xslDoc.load( xslDocURL ) ‘ we need to do the transformation using the transformNodeToObject() ‘method and a stream implementing the IStream interface. ‘ If not the character encoding is not kept Dim adoStream As Variant Set adoStream = CreateObject(“ADODB.Stream”) adoStream.Open adoStream.Type = 2 ‘2 -> adTypeText -> Text data adoStream.Charset = “ISO-8859-15″ ‘transform and store the result in stream Call xmlDoc.transformNodeToObject(xslDoc, adoStream) ‘place in a file and attach it Dim strDocUNID As String strDocUNID = storeHTML( adoStream ) adoStream.Close Set adoStream = Nothing Set xmlDoc = Nothing Set xslDoc = Nothing Print “[” + urlBase “/0/” + strDocUnid + “/$file/article.html]” Exit Sub errorHandler: Print “Error #”+Cstr(Err)+” <”+Error$+“>in MSXML Transformation on line “ +Cstr(Erl) Exit Sub End Sub
provided by Julian Robichaux at nsftools.com.
Salut! Am hotarat sa aduc si eu ceva comunitatii Lotus Notes din România si sa ofer cateva idei care consider ca sunt interesante din punctul de vedere al programatorului.
O sa incep cu Formula Language.
Formula Language fiind un „scripting language“ greu de structurat este de foarte multe ori respins de programatori si inlocuit cu lotus script. Totusi consider ca formula language joaca un rol foarte important in dezvoltarea bazelor Lotus Notes asa ca am ales sa incep cu functia @Eval.
Conform help, functia @Eval compileaza si ruleaza fiecare element dintr-un text ca o @formula.
Unul din cazurile in care @Eval poate fi folosit este in momentul in care codul pe care il scriem este necesar in mai multe locuri in aplicatie si teoretic am avea nevoie de o functie/procedura.
De exemplu sa consideram ca avem o forma care contine mai multe butoane care afiseaza intr-un @PickList view-ul „Config“ si intoarce valoarea dintr-o anumita coloana intr-un anumit camp.
O solutie „parametrizata“ a acestei probleme poate fi implementata folosind un camp computed for display EvalPickList in care scriem ca si text formula pe care dorim sa o evaluam:

In buton nu ne mai ramane decat sa initializam „argumentele“ si sa evaluam campul EvalPickList:
Link catre o parte din prezentarile Lotusphere 2007 (Lotus Sandbox) - vezi categoria 2007
http://www-10.lotus.com/ldd/sandbox.nsf/Conferences?OpenView