|
PL/SQL Developer是一個集成開發(fā)環(huán)境,專門面向Oracle數(shù)據(jù)庫存儲程序單元的開發(fā)。如今,有越來越多的商業(yè)邏輯和應用邏輯轉(zhuǎn)向了Oracle Server,因此,PL/SQL編程也成了整個開發(fā)過程的一個重要組成部分。PL/SQL Developer側(cè)重于易用性、代碼品質(zhì)和生產(chǎn)力,充分發(fā)揮Oracle應用程序開發(fā)過程中的主要優(yōu)勢。PL/SQL(Procedural Language/SQL)是一種過程化語言,屬于第三代語言,它與C、C++、Java等語言一樣關(guān)注于處理細節(jié),可以用來實現(xiàn)比較復雜的業(yè)務(wù)邏輯。它允許SQL的數(shù)據(jù)操縱語言和查詢語句包含在塊結(jié)構(gòu)(block_structured)和代碼過程語言中,使PL/SQL成為一個功能強大的事務(wù)處理語言。在甲骨文數(shù)據(jù)庫管理方面,PL/SQL是對結(jié)構(gòu)化查詢語言(SQL)的過程語言擴展。PL/SQL的目的是聯(lián)合數(shù)據(jù)庫語言和過程語言。PL/SQL的基本單位叫做一個區(qū)段,由三個部份組成:一個申明部份,一個可運行部份,和排除-構(gòu)建部分。 因為PL/SQL允許混合SQL申明和過程結(jié)構(gòu),因此可以在將申明發(fā)送到甲骨文系統(tǒng)去執(zhí)行之前使用PL/SQL區(qū)段和副程序來組合SQL申明,沒有PL/SQL,甲骨文需要就每次處理SQL申明,在網(wǎng)絡(luò)環(huán)境中,這將影響交通流量,而且增加響應時間。PL/SQL區(qū)段只被編譯一次并且以可運行的形式儲存,以降低響應時間。 Enhancements in PL/SQL Developer 8.0.4 ====================================== * SQL Window would always print SQL text, disregarding "Print SQL" preference * Searching within special text (strings, comments) could be slow * Key Configuration preference could reset to default instead of using the defined keys when using multiple preference sets * Export to Excel would interpret data beginning with = as formula * Column names starting with a digit were not implicitly quoted in SQL statements * Fixed issue with search in selection where incorrect characters could be replaced * Duplicate items removed from description window * View/Edit Data for tables with an owner with special characters would not add quotes to the owner * UTFE characters were displayed incorrectly when Unicode support was enabled * Loading the Macro Library could fail on Windows 7/Vista, resulting in a "list index out of bounds" error message * Debugger could hang after an exception on oracle11g * Code Assistant can now complete database link names * Copy all to Excel in the SQL Window would not have correct formatting on the second sheet * To-Do Item List was not up-to-date when opening a package spec & body 下載地址如下 源程序: http://allroundautomations.swmirror.com/plsqldev804.exe語言文件及手冊: http://www.allroundautomations.com/plsqldevlang/80/chinese.exe注冊信息如下 product code:kfqtle46lqzbbvlzuvsrutst66yn6m7kl8s2trrtsapr password:xs374ca serial number:1775341736
<table> <tr> <td><div style="margin-top:7px;float:left;">項目進度:</div></td> <td> <div style="float:left;background-color:#dde5ea;cursor:hand;margin-top:6px;float:left;width:120px;; height:20; border:1px solid #C7DBF4;" > <div style="width:20%; height:20px; background-color: #33CC00; float:left"></div> </div> </td> </tr> </table>
<table> <tr> <td><div style="margin-top:7px;float:left;">項目進度:</div></td> <td> <div onclick="viewProcess('<%=baseRecord.getString("ID","")%>')" style="float:left;background-color:#dde5ea;cursor:hand;margin-top:6px;float:left;width:120px;; height:20; border:1px solid #C7DBF4;" > <div style="width:<%=baseRecord.getString("PROGRESS","0") %>%; height:20px; background-color: #33CC00; float:left"></div> </div> </td> </tr> </table>
<Context path="/roeee" reloadable="true" docBase="C:\Program Files\apache-tomcat-5.5.33\webapps\roeee"> <Resource name="jdbc/ROEEE" type="javax.sql.DataSource" password="icss" driverClassName="oracle.jdbc.driver.OracleDriver" maxIdle="2" maxWait="5000" username="recjl" url="jdbc:oracle:thin:@10.17.10.245:1521:AEG" maxActive="4"/> <Resource name="ResourceOne/DataSource" type="javax.sql.DataSource" password="icss" driverClassName="oracle.jdbc.driver.OracleDriver" maxIdle="2" maxWait="5000" username="recjl" url="jdbc:oracle:thin:@10.17.10.245:1521:AEG" maxActive="4"/> </Context>
放在apache-tomcat-5.5.33\conf\Catalina\localhost 路徑下
從加入中金黃金項目組以來將近一個月了,在這期間,我對自己所做模塊業(yè)務(wù)非常熟
悉了,通過這段時間的開發(fā),對項目中所用到的基本技術(shù)也熟悉了。在開發(fā)中個人技
術(shù)不是很全面遇到問題解決時間較長,經(jīng)驗還是需要積累。在與北京交流過程中有時
還是不能及時得到反饋,需要消耗時間。項目前期設(shè)計不夠合理的地方在開發(fā)中可能才會遇到。
數(shù)字標簽實例
Double num = new Double("123456789012.3456");
整數(shù)帶千分符顯示:
<fmt :formatNumber value="${num}" type="number"/>
整數(shù)顯示:
<fmt :formatNumber value="${num}" pattern="#" type="number"/>
兩位小數(shù)舍入顯示:
<fmt :formatNumber value="${num}" pattern="#.##" type="number"/>
兩位小數(shù)舍入,不足兩位小數(shù)補 0 顯示:
<fmt :formatNumber value="${num}" pattern="#.00" type="number"/>
貨幣顯示:(與 number 類似擴展 pattern )
<fmt :formatNumber value="${num}" type="currency"/>
百分數(shù)顯示:(與 number 類似擴展 pattern )
<fmt :formatNumber value="${num}" type="percent"/>
實例結(jié)果
整數(shù)帶千分符顯示: 123,456,789,012.346
整數(shù)顯示: 123456789012
兩位小數(shù)舍入顯示: 123456789012.35
兩位小數(shù)舍入,不足兩位小數(shù)補 0 顯示: 123456789012.35
貨幣顯示:¥ 123,456,789,012.35
百分數(shù)顯示 12,345,678,901,235%
{sName: "productId","bSortable":false, "sColumnDataType":'link', "sColumnDataTypePro":{'url':"javascript:findmodel('<c:out value="${context_path }"/>/k4_oldGoldStorsge/oldGoldDetail/{id}');",'name':'productId'},aTargets: [2]},
function findmodel(url){ var rs = window.showModalDialog(url,"dialogWidth=" + 500 + "px;dialogHeight=" + 90 + "px"); }
//采購申請單——保存狀態(tài) public void updateSpStatus() { //要更新的狀態(tài) 1、待業(yè)務(wù)審核 2、待財務(wù)審核 3、審核退回 4、入款 String statusId=request().getParameter("status"); //要更新的id String[] idStrings=request().getParameterValues("id"); //吧要更新的確認單放入集合一起更新 List<PurchaseAddMoney> list=new ArrayList<PurchaseAddMoney>(); for(int i=0;i<idStrings.length;i++){ PurchaseAddMoney pur=new PurchaseAddMoney(); pur.setId(idStrings[i]); pur.setStatusId(statusId); //如果是財務(wù)確認,要更新財務(wù)確認日期 if(statusId.equals("j208")){ //更新完成審批時間 pur.setFinishApproveDate(CommonHelper.getCreateTimeToString()); } list.add(pur); } //批量更新到數(shù)據(jù)庫 purchaseAddService.batchUpdate(list); this.render(SUCCESS); }
public int[] batchUpdate(List list) { return super.batchUpdate(list); }
<form id="purchaseAddApply" name="purchaseAddApply" method="post" action="purchaseAddUpdateStatus">
public void changeStates(String states,String id){ Map<String,String> parameter = new HashMap<String,String>(); parameter.put("id", id); parameter.put("type", states); Map<String,Object> result = bankSettelService.updateStates(parameter); this.printHtml(result.get("count")); }
/** * <p>修改結(jié)算表狀態(tài) * @param parameter * @return */ public Map<String,Object> updateStates(Map<String,String> parameter){ Query query = this.getRepository().createQuery(); Map<String,Object> result = new HashMap<String,Object>(); List<Object> sqlParam = new ArrayList<Object>(); StringBuilder sql = new StringBuilder(); String[] arrParam = parameter.get("id").split(","); String paramIn = "'";//回購單編號 String type = "";//回購單修改后狀態(tài) int count = 0; //修改行數(shù) for(String param:arrParam){ paramIn += param + "','"; } paramIn = paramIn.substring(0,paramIn.length() - 2); //回購單狀態(tài) if("1".equals(parameter.get("type"))){ type = REPUR_SETTEL_STATUS03; //待付款 } else if("2".equals(parameter.get("type"))){ type = REPUR_SETTEL_STATUS06; //審批退回 } else if("3".equals(parameter.get("type"))){ type = REPUR_SETTEL_STATUS04; //作廢 } else if("4".equals(parameter.get("type"))){ type = REPUR_SETTEL_STATUS05; //已付款 } //修改狀態(tài) if(!StringUtils.isEmpty(type)){ Update update = new Update(); //更新回購結(jié)算單狀態(tài) 如果為已付款 同時要更新回購單狀態(tài)為已付款 if("4".equals(parameter.get("type"))){ //更新回購結(jié)算單狀態(tài) update.set("BUYBACKSTATEMENT_STATUS = '" + type + "'") .set("PAYMENTSTATUS = '1'") .set("PAYMENTDATE = '" + CommonHelper.getCreateTimeToString()+"'") .update("TB_E_BUYBACKSTATEMENT") .where("ID in("+paramIn+")"); //查看對應的客戶回購單客戶結(jié)算回購狀態(tài)是否為已付款,如果是,要更改回購單狀態(tài)已付款 sql.append(updateBankReStatusSql); sql.append("and ID in(" + CL_LF); sql.append(getSettleStatusSql); sql.append("AND BUYBACKSTATEMENT.ID in(" + paramIn + ")" + CL_LF); sql.append(")" + CL_LF); sql.append("AND FINANCEAFFIRMSTATSUS = ?" + CL_LF); sqlParam.add(REPUR_STATUS09);//回購單狀態(tài)為已付款 sqlParam.add(CREPUR_STATUS04);//客戶回購單結(jié)狀態(tài)為已付款 query.execute(sql.toString(),sqlParam); }else{ update.set("BUYBACKSTATEMENT_STATUS = '" + type + "'") .update("TB_E_BUYBACKSTATEMENT") .where("ID in("+paramIn+")"); } count = query.execute(update); } result.put("count", count); return result; }
function changeStates(flag) { var checkValues = getCoulmnValue(oTable,'key'); if(isEmpty(checkValues)){ showInfo("请é??æ?©æ?°æ?®"); return false; } else { if(flag == 1){ if(confirm('确认审æ?¹æ?¯å?¦é??è¿?ï¼?')){ saveStates(flag,checkValues); } }else if(flag == 4){ if(confirm('确认ä»?款ï¼?')){ saveStates(flag,checkValues); } }else{ saveStates(flag,checkValues); } } } //审æ?¹æ?°æ?®æ??交 function saveStates(flag,checkValues){ $.ajax({ type: 'get', url: "<c:url value='/j8_bankSettle/changeStates/'/>"+flag+"/"+checkValues, dataType: 'html', success: function(data){ if(data > 0){ showInfo("æ??ä½?æ??å??"); query(); }else{ showError("æ??ä½?失败"); return false; } } }); }
<c:choose> <c:when test="${optype eq 'approval'}"> <button class="icon-edit" onclick="changeStates(1);"> 審批通過 </button> <button class="icon-edit" onclick="changeStates(2);"> 審批退回 </button> <button class="icon-edit" onclick="changeStates(3);"> 作廢 </button> </c:when> <c:when test="${optype eq 'payment'}"> <button class="icon-edit" onclick="changeStates(4);"> 付款 </button> </c:when> </c:choose>
{ "sName": "id","sColumnDataType":"checkbox","sClass": "keyclass", "sColumnDataTypePro":{'name':'key'},"bSortable": false, "aTargets": [ 1 ]},
 <% @ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>


$(function(){$("#sendAddress").change(function(){
var sendAddress=$("#sendAddress").val();
getCustomerInfo(sendAddress);
});
});
//出貨方信息填充
function getCustomerInfo(id){
//alert(id);
$.ajax({
type: 'get',
url: "<c:url value='/k4_oldGoldStorsge/getCustomerInfoByAddressId/'/>"+id,
dataType: 'json',
success: function(data) {
alert(data.name);
$("#supplyer").val(data.linkman);
$("#supplyIdentityCard").val(data.identification);
$("#supplyerMobile").val(data.mobile);
$("#supplyerPhone").val(data.tel);
//$("#").val(data.);
}
});
}
$(function(){$("#outStorageList").change(function(){
var outStorageList=$("#outStorageList").val();
//alert(outStorageList);
//getCustomerInfo(sendAddress);
getAddressList(outStorageList)
});
});
function getAddressList(id){
//alert(id);
$.ajax({
type: 'get',
url: "<c:url value='/k4_oldGoldStorsge/getAddressByCustomerId/'/>"+id,
dataType: 'html',
success: function(data) {
var address=eval(data);
//遍歷取值
$.each(address,function(i,n){
$("#getAddress").append($("<option value='"+address[i].id+"'></option>").text(address[i].address));
});
}
});
}
$(function(){$("#getAddress").change(function(){
var sendAddress=$("#getAddress").val();
getMenInfo(sendAddress);
});
});
function getMenInfo(id){
$.ajax({
type: 'get',
url: "<c:url value='/k4_oldGoldStorsge/getCustomerInfoByAddressId/'/>"+id,
dataType: 'json',
success: function(data) {
$("#receiver").val(data.linkman);
$("#receiverIdentityCard").val(data.identification);
$("#receiverMobile").val(data.mobile);
$("#receiverPhone").val(data.tel);
//$("#").val(d
 /** *//**
* 收貨方ID獲取地址信息
* @return
*/
 public void getAddressByCustomerId(String id) {
List<Address> list=new ArrayList<Address>();
list=oldGoldStorageService.findAddressList(id);
StringBuilder json = new StringBuilder();
json.append("[");
 for (int i = 0; i < list.size()-1; i++) {
json.append("{'id':'").append(list.get(i).getId()).append("',");
json.append("'address':'").append(list.get(i).getAddressDeatil()).append("'},");
}
json.append("{'id':'").append(list.get(list.size()-1).getId()).append("',");
json.append("'address':'").append(list.get(list.size()-1).getAddressDeatil()).append("'}");
json.append("]");
System.out.println(json);
this.renderJSON(json.toString());
} ata.);
}
});
}
- <script type="text/javascript">
- $(document).ready(function(){
- var url='TypeGet?d='+Math.random();
- $.get(url,
- function dedit(data){
- var m=eval(data);
- $.each(m, function(i) {
-
- $('#pselect').append('<option value="'+m[i].no+'">' + m[i].name+ '</option>');
-
- });
-
- });
- </script>
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
- request.setCharacterEncoding("UTF-8");
- response.setCharacterEncoding("UTF-8");
-
- ArrayList result=new ArrayList();
- Connection conn=null;
- Statement st=null;
- ResultSet rs=null;
-
- try{
-
- conn=DBConnection.getConnection();
- st=conn.createStatement();
- rs=st.executeQuery("select * from ddpms_devicetype order by name");
- while(rs.next()){
- DevicetypeBean dt=new DevicetypeBean();
- dt.setNo(rs.getInt("no"));
- dt.setName(rs.getString("name"));
- result.add(dt);
- }
- }catch(Exception e){
- e.printStackTrace();
- }
- finally{
- try{
- rs.close();
- st.close();
- conn.close();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- response.setContentType("text/html");
- PrintWriter out= response.getWriter();
-
- out.write(toString(result));
- }
- public String toString(ArrayList s)
- {
- String str="[";
- for(int i=0;i<s.size();i++){
- DevicetypeBean dt=(DevicetypeBean)s.get(i);
- str+="{'no':'"+dt.getNo()+"','name':'"+dt.getName()+"'},";
- }
- str=str.substring(0,str.length()-1)+"]";
- return str;
- }
$(function(){$("#logisticsDistributionBook").click(function() { var checkValues=getCoulmnValue(oTable, 'id'); // alert(checkValues); var aoData = new Array(); aoData.push( { "name": "ids", "value":checkValues } ); if(isEmpty(checkValues)){ showInfo("請選擇需要處理的數(shù)據(jù)行!"); return false; }else if(!isEmpty(checkValues)){ $.ajax({ type: 'post', url: "<c:url value='/k4_oldGoldStorsge/checkDispatchStatusId/make/1'/>", dataType: 'json', data: aoData, success: function(data) { //alert(data); if(parseInt(data)>=1){ //alert(data); showInfo("必須全部選擇沒有生成過物流配送書的數(shù)據(jù)!"); return; }else if (checkProductId()) { getHidVal(checkValues); } } }); } }); }); public void checkDispatchStatusId(String type, String id) { String myid = request().getParameter("ids"); String[] ids = myid.split(","); int count = 0; if ("make".equals(type)) { count = oldGoldStorageService.findNumofDispatch(myid); } this.printHtml(count); } 這兩篇也不錯! http://tochal.iteye.com/blog/722265
http://blog.csdn.net/huhai463127310/archive/2009/11/29/4901654.aspx
--修改TB_C_ACCOUNT_INFO中金賬戶信息,增加字段:收款人名稱、收款人電話。 --返廠單表 TB_E_BACKFACTORY_BILLS 刪除字段:基礎(chǔ)金價、產(chǎn)成品ID CHAR(14 BYTE) --alter table TB_E_BACKFACTORY_BILLS drop column CREATETIME; --alter table TB_E_BACKFACTORY_BILLS add CREATETIME CHAR(14 BYTE) not null; --2 alter table TB_E_BACKFACTORY_BILLS drop column FINISH_PRODUCT_ID; alter table TB_E_BACKFACTORY_BILLS add FACTORY VARCHAR2(64) not null; --3alter table TB_E_BACKFACTORY_BILLS add PAYEENAME VARCHAR2(64) not null; --alter table TB_E_BACKFACTORY_BILLS add FACTORY VARCHAR2(64); --alter table TB_E_BACKFACTORY_BILLS add description VARCHAR2(64); --comment on column tb_e_backfactory_bills.description is '備注'; "CREATETIME" CHAR(14 BYTE) NOT NULL ENABLE, --4 alter table TB_E_BACKFACTORY_BILLS add PAYEETEL VARCHAR2(30) not null; --5 alter table TB_E_BACKFACTORY_BILLS add ACCOUNT VARCHAR2(64) not null; --6 alter table TB_E_BACKFACTORY_BILLS add RETURNDATE CHAR(14) not null; --7 comment on column TB_E_BACKFACTORY_BILLS.PAYEENAME is '收款人名稱'; --8 comment on column TB_E_BACKFACTORY_BILLS.PAYEETEL is '收款人電話'; --9 comment on column TB_E_BACKFACTORY_BILLS.ACCOUNT is '銀行帳號'; --10 comment on column TB_E_BACKFACTORY_BILLS.RETURNDATE is '返廠日期'; --11alter table TB_L_FINPRODU_FINISH_PRODUCT drop column REMARK --12 alter table TB_L_FINPRODU_FINISH_PRODUCT modify AGENCYBUYPRICE default 0 not null; --13 alter table TB_L_FINPRODU_FINISH_PRODUCT add AGENCYBUYTOTAL NUMBER(15,4) default 0 not null; --14 alter table TB_L_FINPRODU_FINISH_PRODUCT add BASEPRICE NUMBER(15,4) default 0 not null; --15 alter table TB_L_FINPRODU_FINISH_PRODUCT add BASEPRICETOTAL NUMBER(15,4) default 0 not null; --16 comment on column TB_L_FINPRODU_FINISH_PRODUCT.AGENCYBUYTOTAL is '代回購價格合計'; --17 comment on column TB_L_FINPRODU_FINISH_PRODUCT.BASEPRICE is '基礎(chǔ)價格'; --18comment on column TB_L_FINPRODU_FINISH_PRODUCT.BASEPRICETOTAL is '基礎(chǔ)價格合計'; --0alter table TB_C_ACCOUNT_INFO add RECEIVERNAME VARCHAR2(64) not null; --alter table TB_C_ACCOUNT_INFO add RECEIVERTELEPHONE VARCHAR2(64) ; ---comment on column TB_C_ACCOUNT_INFO.RECEIVERNAME is '收款人名稱';
|