一種新的程式設計思路(中): (轉)
一種新的思路(中):
難得糊塗程式設計法 GBDP (適用、等程式設計)
GBDP技術實現設想:(General Blackbox Dynamic Programming)
開發速度快、程式碼量少、通用,表自動生成,記錄自動增加,
修改,刪除,設計工作量少,可以在需求不明確的情況下開工,
漸進式開發,擁有需求頻繁更改、程式碼基本不動的自適應能力。特
別適合國內亂序開發的國情
主要解決問題:
系統設計工作量大,需求更改影響大,專案交接困難,程式設計風格各
異,資料庫困難的問題
已經實現功能:
資料表自動生成,記錄自動增加,修改,刪除,自動
注:發表後程式碼//都變成了file:// , 請改正
一個複雜的實現範例:
ntGBDPScript.jsp 自動記錄載入模組 (“上”包含)
nt. 資料庫存取模組 (本文包含原始碼)
ntGBDPDefine.jsp
ntGBDP2-1.jsp 自動資料分析處理模組(“上”包含原始碼)
ntGBDPUpload2-2.jsp 自動資料儲存處理模組(“上”包含原始碼)
-------------------------------------------------------
_jh_in.jsp 錄入和修改頁面,涉及計算
局變數定義
globalTableName = "_jh_in";
parentKey = "買入外匯統計卡";
parentValue = "";
dbName = "myDB";
%>
String errorString = "";
if( isPost && requestHt.get("numeric匯入金額").equals("") )
errorString = "請填寫匯入金額";
else if( isPost && requestHt.get("numeric牌價").equals("") )
errorString = "請填寫牌價";
String entpName = (String)requestHt.get("全稱");
String entpAccount = (String)requestHt.get("帳號");
if( entpName == null ) entpName = "";
if( entpAccount == null ) entpAccount = "";
int entpId = 0;
if( !entpName.equals("") || !entpAccount.equals("") )
{
nt.executeQuery(dbName,
" pid from _jh where "+
" ( k='企業名稱' and v = '"+ entpName.trim() +"' )"+
" or ( k='帳號' and v = '"+ entpAccount.trim() +"' )"+
"");
if( nt.rowCount > 0 ){
entpId = Integer.parseInt( nt.data[0][0] );
requestHt.put("企業id",""+ entpId );
requestHt.put("企業隸屬單位", nt.getKV("_jh",entpId,"隸屬單位") );
}
else
errorString = "沒有找到這個企業";
}
if( !errorString.equals("") )
{
out.println("
return;
}
%>
if( isPost && !requestHt.get("submit_auto").equals("") )
{
入資料
double hrje = Double.parseDouble((String)requestHt.get("numeric匯入金額"));
double pj = Double.parseDouble((String)requestHt.get("numeric牌價"));
算資料
double yhsxf = hrje * 0.25 * 0.01 ; // 銀行手續費
double gssxf = hrje * 3 * 0.01 ; // 公司手續費
double whje = hrje * ( 1 - 0.25*0.01 - 3 * 0.01 );// 外匯金額
double rmbje = hrje * pj ; // 人民幣金額
double qcz = rmbje * 0.11 ; // 區財政
double zcz = rmbje * 0.08 ; // 鎮財政 -- 村屬8% 鎮屬9%
if( nt.getKV("_jh", entpId , "企業隸屬").equals("鎮屬企業") )
zcz = rmbje * 0.09 ;
double csr = rmbje * 0.06 ; 收入 村屬6% 鎮屬0
if( nt.getKV("_jh", entpId , "企業隸屬").equals("鎮屬企業") )
csr = 0.0 ;
double zqy = 0.0 ; 企業 村屬0 鎮屬5%0
if( nt.getKV("_jh", entpId , "企業隸屬").equals("鎮屬企業") )
zqy = rmbje * 0.05 ;
double je = rmbje -qcz - zcz - zqy - csr ; 額
出資料
requestHt.put("numeric銀行手續費",""+ yhsxf );
requestHt.put("numeric公司手續費",""+ gssxf );
requestHt.put("numeric外匯金額" ,""+ whje );
requestHt.put("numeric人民幣金額",""+ rmbje );
requestHt.put("numeric區財政" ,""+ qcz );
requestHt.put("numeric鎮財政" ,""+ zcz );
requestHt.put("numeric村收入" ,""+ csr );
requestHt.put("numeric鎮企業" ,""+ zqy );
requestHt.put("numeric淨額" ,""+ je );
("numeric",""+ );
("全稱"); 餘資料 由"企業id"代替->row 45
("帳號"); 餘資料
}
%>
買入外匯統計卡
|
-------------------------------------------------------
_jh_fc.jsp 用於統計顯示
String y,m,d,h;
y=(new SimpleDateFormat("yyyy")).format(new java.util.Date());
m=(new SimpleDateFormat("MM")).format(new java.util.Date());
d=(new SimpleDateFormat("dd")).format(new java.util.Date());
h=(new SimpleDateFormat("HH")).format(new java.util.Date());
int year,month;
year = Integer.parseInt( y );
month= Integer.parseInt( m );
try{
if( request.getParameter("year")!=null )
year = Integer.parseInt( request.getParameter("year") );
if( request.getParameter("month")!=null )
month = Integer.parseInt( request.getParameter("month") );
}catch(Exception e){
year = Integer.parseInt(y);
month = Integer.parseInt(m);
}
%>
彙總額
sql=
" select isNull(sum(v),0.0) from _jh_in_numeric "+
" where k='numeric匯入金額' "+
" and pid in "+
" ( select pid from _jh_in_datetime "+
" where k='date日期' and v >= '"+year+"-"+month+"-01' "+
" and v <= '"+year+"-"+month+"-"+nt.ntGetMonthDayCount(year,month) +"' "+
" ) "+
"";
nt.executeQuery(dbName,sql);
double JieHuiZongE = Double.parseDouble( nt.data[0][0] ) ;
分配金額
sql=
" select isNull(sum(v),0.0) from _jh_in_numeric "+
" where k='numeric村收入' "+
" and pid in "+
" ( select pid from _jh_in_datetime "+
" where k='date日期' and v >= '"+year+"-"+month+"-01' "+
" and v <= '"+year+"-"+month+"-"+nt.ntGetMonthDayCount(year,month) +"' "+
" ) "+
"";
nt.executeQuery(dbName,sql);
double CunFenPeiJinE = Double.parseDouble( nt.data[0][0] ) ;
國銀行
double ZhongGuoYinHang = JieHuiZongE * 0.25 * 0.01 ;
務單位
double ShangWuDanWei = JieHuiZongE * 0.03 ;
財政
sql=
" select isNull(sum(v),0.0) from _jh_in_numeric "+
" where k='numeric區財政' "+
" and pid in "+
" ( select pid from _jh_in_datetime "+
" where k='date日期' and v >= '"+year+"-"+month+"-01' "+
" and v <= '"+year+"-"+month+"-"+nt.ntGetMonthDayCount(year,month) +"' "+
" ) "+
"";
nt.executeQuery(dbName,sql);
double QuCaiZheng = Double.parseDouble( nt.data[0][0] ) ;
財政
sql=
" select isNull(sum(v),0.0) from _jh_in_numeric "+
" where k='numeric鎮財政' "+
" and pid in "+
" ( select pid from _jh_in_datetime "+
" where k='date日期' and v >= '"+year+"-"+month+"-01' "+
" and v <= '"+year+"-"+month+"-"+nt.ntGetMonthDayCount(year,month) +"' "+
" ) "+
"";
nt.executeQuery(dbName,sql);
double ZhenCaiZheng = Double.parseDouble( nt.data[0][0] ) ;
管單位分配金額
sql=
" select isNull(sum(v),0.0) from _jh_in_numeric "+
" where k='numeric鎮企業' "+
" and pid in "+
" ( select pid from _jh_in_datetime "+
" where k='date日期' and v >= '"+year+"-"+month+"-01' "+
" and v <= '"+year+"-"+month+"-"+nt.ntGetMonthDayCount(year,month) +"' "+
" ) "+
"";
nt.executeQuery(dbName,sql);
double zhuGuanDanWeiFenPeiJinE = Double.parseDouble( nt.data[0][0] ) ;
主管單位
double CunZhuGuanDanWei =
CunFenPeiJinE + zhuGuanDanWeiFenPeiJinE ;
撥鎮 外匯分成款總額
double FanBoZhen =
CunFenPeiJinE + zhuGuanDanWeiFenPeiJinE + ZhenCaiZheng ;
%>
出村定義
ntDB ntCun = new ntDB();
ntCun.executeQuery(dbName,
"select v , 'null' as x from _jh_define where k='名稱' "+
" and pid in "+
" ( select pid from _jh_define where k='屬性' and v='村' "+
" )"+
" order by id desc "+
"");
出主管單位定義
ntDB ntZGDW = new ntDB();
ntZGDW.executeQuery(dbName,
"select v , 'null' as x from _jh_define where k='名稱' "+
" and pid in "+
" ( select pid from _jh_define where k='屬性' and v='主管單位' "+
" )"+
" order by id desc "+
"");
金額替換x
for(int i=0;i
" select isNull(sum(v),0.0) from _jh_in_numeric "+
" where k='numeric村收入' "+
" and pid in "+
" ( select pid from _jh_in_datetime "+
" where k='date日期' and v >= '"+year+"-"+month+"-01' "+
" and v <= '"+year+"-"+month+"-"+nt.ntGetMonthDayCount(year,month) +"' "+
" ) "+
" and pid in "+
" ( select pid from _jh_in "+
" where k='企業隸屬單位' and v = '"+ ntCun.data[i][0] +"'"+
" ) "+
"";
nt.executeQuery(dbName,sql);
ntCun.data[i][1] = (new DecimalFormat("#,##0.00")).format(Double.parseDouble( nt.data[0][0] )) ;
}
for(int i=0;i
" select isNull(sum(v),0.0) from _jh_in_numeric "+
" where k='numeric鎮企業' "+
" and pid in "+
" ( select pid from _jh_in_datetime "+
" where k='date日期' and v >= '"+year+"-"+month+"-01' "+
" and v <= '"+year+"-"+month+"-"+nt.ntGetMonthDayCount(year,month) +"' "+
" ) "+
" and pid in "+
" ( select pid from _jh_in "+
" where k='企業隸屬單位' and v = '"+ ntZGDW.data[i][0] +"'"+
" ) "+
"";
nt.executeQuery(dbName,sql);
ntZGDW.data[i][1] = (new DecimalFormat("#,##0.00")).format(Double.parseDouble( nt.data[0][0] ));
}
%>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-989990/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一種新的程式設計思路(中)附: (轉)程式設計
- 一種新的程式設計思路(上) (轉)程式設計
- 一種新的程式設計思路(下):附 ntGBDP2002.jsp (轉)程式設計JS
- 一種新的程式設計思路(下):附 ntGBDP2002_Define.jsp (轉)程式設計JS
- 一種新的程式設計思路(下):附 ntGBDP2002_Script.jsp (轉)程式設計JS
- 一種新的程式設計思路(下):附 自動分頁2-1 ntPage.jsp (轉)程式設計JS
- 換一種思路 極端程式設計不再神祕程式設計
- “策略依賴”一種設計的新思路
- 換種思路去理解設計模式(中)設計模式
- 雙相超程式設計:一種新語言設計方法程式設計
- 建立自己的上傳元件的程式設計思路 (轉)元件程式設計
- 行轉列的一種優化思路優化
- 程式設計中的一些感悟(收藏) (轉)程式設計
- 開發者眼中的Roguelike,是一種設計思路與玩法機制
- VB程式設計中的一些經驗 (轉)程式設計
- UNIX系統中Shell的一種新應用(轉)
- 遊戲中那些新穎的設計(一)遊戲
- 論工業化方向上的程式設計發展思路 (轉)程式設計
- LOGO設計時的四種思路——資訊圖Go
- 檔案關聯型木馬的程式設計思路 (轉)程式設計
- 換種思路去理解設計模式(下)設計模式
- 換種思路去理解設計模式(上)設計模式
- 程式設計師的十種級別[轉載]程式設計師
- 玩轉iOS開發:iOS中的Socket程式設計(一)iOS程式設計
- Attribute在.net程式設計中的應用(一) (轉)程式設計
- Tomcat 配合虛擬執行緒,一種新的程式設計體驗Tomcat執行緒程式設計
- 新程式設計師最喜歡的 6 種崗位程式設計師
- 程式設計:Java抽取Word,PDF的四種武器(轉)程式設計Java
- Java併發程式設計中的設計模式解析(二)一個單例的七種寫法Java程式設計設計模式單例
- Linux的shell程式設計(一)(轉)Linux程式設計
- 一種小程式弱網離線優化的思路優化
- 五種血型的程式設計師 你屬於哪一種?程式設計師
- 程式設計師的nginx技能包(4)——埠轉發,節約是一種美德,規範是一種程式設計師Nginx
- 程式設計修養(一) (轉)程式設計
- 關於VC中的DLL的程式設計 (轉)程式設計
- Java開發中的23種設計模式詳解(轉)Java設計模式
- 程式設計中的一些感悟程式設計
- Java併發程式設計中的設計模式解析(一)Java程式設計設計模式