รับค่าจาก Barcode Reader แล้วดึงข้อมูลให้ อัตโนมัติในหน้า ฟอร์ม

September 17th, 2008 | by pichet |

ลักษณะการทำงานเป็นดังนี้

A สร้าง function ในDAO ขึ้นมาเพื่อใช้สำหรับดึงข้อมูลมีรูปแบบดังนี้

StyleDAO.java

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>

ฺB กำหนดค่าใน AjaxBO
ajaxBo.java

public static Map getFillStyleCode(String styleCode)throws DBExceptionFatal
{
StyleDAO objDAO = new StyleDAO();
return objDAO.fillStyleCode(styleCode);
}

C กำหนดค่า config ใน dwr.xml โดยการเพิ่ม

<allow>
<create creator=”new” javascript=”fillLookup”>
<param name=”class” value=”com.asl.garment.ajax.model.ajaxBO”/>
</create>
</allow>

จากนั้น ก็ทศสอบว่าถูกต้องหรือเปล่า โดย build โปรแกรม แล้วไปที่ path http://localhost/Garment/dwr
ก็จะเห็น function fillLookup กดคลิ๊กเข้าไป แล้วลองป้อนข้อมูลเข้าไปที่ function getFillStyleCode ถ้าถูกต้องก็จะขึ้นหน้า popup มาแสดงข้อมูลให้ดู

E เราไปที่ หน้า JSP ในตัวอย่างนี้ใช้ SalesOrder.jsp
ไปตรงที่เป็น texbox ของ styleCode เพิ่มคำสั่ง

</code><html:text name=”SalesOrderForm” property=”styleCode”  size=”20″ <span style="color: #3366ff;">onchange=”fillInputStyleCode()”</span>/>

C ใส่คำสั่ง javascript ที่ใช้เรียกการทำงาน ในส่วนบนของ หน้า SalesOrder.jsp

<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:

Post a Comment