รับค่าจาก Barcode Reader แล้วดึงข้อมูลให้ อัตโนมัติในหน้า ฟอร์ม
September 17th, 2008 | by pichet |ลักษณะการทำงานเป็นดังนี้
A สร้าง function ในDAO ขึ้นมาเพื่อใช้สำหรับดึงข้อมูลมีรูปแบบดังนี้
StyleDAO.java
ฺB กำหนดค่าใน AjaxBO C กำหนดค่า config ใน dwr.xml โดยการเพิ่ม จากนั้น ก็ทศสอบว่าถูกต้องหรือเปล่า โดย build โปรแกรม แล้วไปที่ path http://localhost/Garment/dwr E เราไปที่ หน้า JSP ในตัวอย่างนี้ใช้ SalesOrder.jsp C ใส่คำสั่ง javascript ที่ใช้เรียกการทำงาน ในส่วนบนของ หน้า SalesOrder.jsp
protected static final String SELECT_SQL_FILL_STYLE_CODE =
“SELECT MS.STYLE_ID, MS.STYLE_CODE, MS.STYLE_NAME, MS.STYLE_DATE, MS.JOB_TYPE, SO.ORDER_CODE, MS.REVISION_NUMBER, MS.BASE_REV_NUMBER,MS.APPROVAL_STATUS, MS.SUB_CATEGORY_CODE, SC.PRODUCT_CATEGORY_CODE ” +
“FROM MKT_STYLES MS ” +
“LEFT OUTER JOIN MKT_SALES_ORDERS SO ON (MS.SALES_ORDER_ID = SO.SALES_ORDER_ID) ” +
“LEFT OUTER JOIN PDD_PROD_SUB_CATEGORY SC ON(MS.SUB_CATEGORY_CODE=SC.SUB_CATEGORY_CODE) ” +
“WHERE MS.STYLE_CODE = ? “;
public Map fillStyleCode(String styleCode) throws DBExceptionFatal {
Map reply = new HashMap();
IDBConnectionManager connectionManager = DBConnectionManagerFactory.getInstance().getDBConnectionManager();
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
try {
conn = connectionManager.getConnection();
psmt = conn.prepareStatement(SELECT_SQL_FILL_STYLE_CODE);
psmt.setString(1, styleCode);
rs = psmt.executeQuery();
if (rs.next()) {
reply.put(”styleCode”, rs.getString(”MS.STYLE_CODE”));
reply.put(”salesOrderItemCode”, rs.getString(”MS.STYLE_CODE”));
reply.put(”styleRevisionNumber”, rs.getString(”MS.REVISION_NUMBER”));
reply.put(”productCategoryCode”, rs.getString(”SC.PRODUCT_CATEGORY_CODE”));
reply.put(”productSubCategoryCode”, rs.getString(”MS.SUB_CATEGORY_CODE”));
// parameter แรก ของ reply ใช้กำหนดชื่อ ใช้ตัวเดียวกับตัวชื้อของ textBox
}
} catch (SQLException e) {
e.printStackTrace();
this.classLogger.debug(”Database Find Error” + e.getMessage());
throw new DBExceptionFatal(e, “There is some problem while selecting this record from database”);
} finally {
try {
connectionManager.closeConnection( conn, rs, psmt);
} catch (Exception e) {
}
}
return reply;
}</code></code></code></code></code>
ajaxBo.java
public static Map getFillStyleCode(String styleCode)throws DBExceptionFatal
{
StyleDAO objDAO = new StyleDAO();
return objDAO.fillStyleCode(styleCode);
}
<allow>
<create creator=”new” javascript=”fillLookup”>
<param name=”class” value=”com.asl.garment.ajax.model.ajaxBO”/>
</create>
</allow>
ก็จะเห็น function fillLookup กดคลิ๊กเข้าไป แล้วลองป้อนข้อมูลเข้าไปที่ function getFillStyleCode ถ้าถูกต้องก็จะขึ้นหน้า popup มาแสดงข้อมูลให้ดู
ไปตรงที่เป็น texbox ของ styleCode เพิ่มคำสั่ง
</code><html:text name=”SalesOrderForm” property=”styleCode” size=”20″ <span style="color: #3366ff;">onchange=”fillInputStyleCode()”</span>/>
<script type=’text/javascript’ src=’/Garment/dwr/util.js’></script>
<script type=’text/javascript’ src=’/Garment/dwr/interface/fillLookup.js’></script>
<script type=’text/javascript’ src=’/Garment/dwr/engine.js’></script>
<script>
function fillInputStyleCode() {
var styleCode = dwr.util.getValue(”styleCode”);
fillLookup.getFillStyleCode(styleCode, function(address) {
dwr.util.setValues(address);
});
}</script>
สามารถเข้าไปดูตัวต้นแบบ http://directwebremoting.org/dwr/examples/address
Tags: AJAX
