Wednesday, January 11, 2012

How to Import Javapackage into Xpages

Java Class



package com.Learn;

public class smallDBName {


public int add(int a, int b)
{
return a+b;
}
/**
* @param args
*/

}


Xpage -> Write the following code in Button Event

importPackage(com.Learn);
var a=new smallDBName();
getComponent("Name").setValue(@Text(a.add(2,6)))

ODBC in Xpages (Javascript)

try
{
print("Testing");
java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
var con:java.sql.Connection=java.sql.DriverManager.getConnection("jdbc:odbc:Datasource1","","");
var stmt:java.sql.Statement=con.createStatement();
var re:java.sql.ResultSet=stmt.executeQuery("SELECT * FROM employee");
var t=null;
while (re.next()) {
t=t + "\n" + rec.getString(1) + "\t" + rec.getString(2);
}
st.close();
getComponent("Name").setValue(t)
}
catch(Exception)
{
getComponent("Name").setValue("Error on Java Script");

Excel Export in Xpage

Enter this code in Xpage - after Render Response...

var exCon = facesContext.getExternalContext();

var writer = facesContext.getResponseWriter();

var response = exCon.getResponse();

var projects:NotesView = database.getView("vwFirst") //view name

var viewNav:NotesViewNavigator = projects.createViewNav();

var viewEnt:NotesViewEntry = viewNav.getFirst();

var output = "";

var i=0;

while (viewEnt != null) {

output += "<tr>";

output += "<td>" + viewEnt.getColumnValues()[0] + "</td>";

output += "<td>" + viewEnt.getColumnValues()[1] + "</td>"; //viewEnt.getColumnValues()

output += "<td>" + viewEnt.getColumnValues()[2] + "</td>";

output += "<td>" + viewEnt.getColumnValues()[3] + "</td>";

output += "<td>" + viewEnt.getColumnValues()[4] + "</td>";

output += "</tr>";

i=i+1;
viewEnt = viewNav.getNext(viewEnt);
}

response.setContentType("application/csv-tab-delimited-table;charset=utf-8");

response.setHeader("Cache-Control", "no-cache");

response.setHeader("Content-Disposition","attachment; filename=\"export.xls\"");

writer.write("<html>");

writer.write("<head>");

writer.write("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/>")

writer.write("</head>");

writer.write("<body>");

writer.write("<table>");

writer.write("<tr>");

for(var t=0;t<projects.getColumnNames().length;t++)
{
writer.write("<td><b>"+projects.getColumnNames()[t]+"</b></td>");
}


//writer.write("<td><b>ColumnName1</b></td>");

//writer.write("<td><b>ColumnName2</b></td>");

//writer.write("<td><b>ColumnName3</b></td>");

//writer.write("<td><b>ColumnName4</b></td>");

writer.write("</tr>");

writer.write(output);

writer.write("</table>");

writer.write("<body>");

writer.write("</html>");

writer.endDocument();

Wednesday, January 4, 2012

Scope Variables...

Four Type:

1.application Scope- Available to all

2.Session Scope- Available to current user

3.View Scope-Current page

4.request Scope- 1 Trip to server

//creating scoped variable

ex:

viewScope.put(“varName”,“value”) or viewScope.varName=value

//Retrieving a scoped variable

ex:

var temp = viewScope.get(“varName”) or var temp=viewScope.varName

Difference between ViewScope and RequestScope

Here i explained difference between ViewScope and request Scope by simple example.

step1:

create new X-pages and click source. Erase all code and put following code

<?xml version=”1.0″ encoding=”UTF-8″?>

<xp:view xmlns:xp=”http://www.ibm.com/xsp/core”>

<xp:this.afterPageLoad>

<xp:setValue binding=”#{viewScope.x}” value=”0″/>

</xp:this.afterPageLoad>

<xp:link escape=”true”

text=”#{javascript:viewScope.x=@Integer(viewScope.x)+1}”

id=”link1″>

<xp:eventHandler event=”onclick” submit=”true”

refreshMode=”complete” immediate=”false” save=”false”>

</xp:eventHandler>

</xp:link>

</xp:view>

step2:

Save that x-pages and click preview it shows 1. click 1 it shows count of how many time button click

From which example, the viewScope variable hold value till current page

step 3:

create newanother X-pages and click source. Erase all code and put following code

<?xml version=”1.0″ encoding=”UTF-8″?>

<xp:view xmlns:xp=”http://www.ibm.com/xsp/core”>

<xp:this.afterPageLoad>

<xp:setValue binding=”#{requestScope.x}” value=”0″/>

</xp:this.afterPageLoad>

<xp:link escape=”true”

text=”#{javascript:requestScope.x=@Integer(requestScope.x)+1}”

id=”link1″>

<xp:eventHandler event=”onclick” submit=”true”

refreshMode=”complete” immediate=”false” save=”false”>

</xp:eventHandler>

</xp:link>

</xp:view>
<?xml version=”1.0″ encoding=”UTF-8″?>
<xp:view xmlns:xp=”http://www.ibm.com/xsp/core”>
<xp:this.afterPageLoad>
<xp:setValue binding=”#{viewScope.x}” value=”0″/>
</xp:this.afterPageLoad>
<xp:link escape=”true”
text=”#{javascript:viewScope.x=@Integer(viewScope.x)+1}”
id=”link1″>
<xp:eventHandler event=”onclick” submit=”true”
refreshMode=”complete” immediate=”false” save=”false”>
</xp:eventHandler>
</xp:link>
</xp:view>

step4:

Save that x-pages and click preview it shows 1. click 1 it dont change. it show only 1.

Two example code are same . first example i used viewScope and second example i used requestScope .

requestscope Variable hold value untill request hit the server. so each time click link it hit server so each click the RequestScope variable cleared and set as a 0.