一種新的程式設計思路(中): (轉)

gugu99發表於2007-12-09
一種新的程式設計思路(中): (轉)[@more@]

一種新的思路(中):
  難得糊塗程式設計法 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
  ("帳號"); 餘資料
  }
%>



買入外匯統計卡



買入外匯統計卡



 
 
 

 
 
 
 
 
 
 
 
 
 

 
業務編號:

  " value="" >
 
DC45C
 
 

 
日期:

 

  ">
 

 
票號:

 

 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 


  匯

  單

  位

 

 
全稱

 

 
 
 

 
帳號

 

 
     企業選擇
 

 
匯入金額

 
HKD
 
 

 
銀行手續費

 
HKD
 
 

 
公司手續費

 
HKD
 
 

 
外匯金額

 

 
牌價

 

 
人民幣金額

 

 
HKD
 
 

 

 

 
 

 

 

 
 

 

 
繳市財政:¥
 
 

 

 
區財政:¥
 
 

 

 
託收手續費:¥
 
 

 

 
鎮 財 政:¥
 
 

 

 
區企業:¥
 
 

 

 
淨  額:¥
 
 

 

 
鎮 企 業:¥
 
 

 

 
村收入:¥
 
 

 

 
 
 
 
 
 
 
 
 
 

 


 
 
  自動計算
 

 
複核:

 

 
 
操作員:
 
 
錄入日期:
  ">
 

 
 
 
 
 

 

 

  " value="確定" class="bd">
    

 

 

 


-------------------------------------------------------
_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  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) +"' "+
  "  )  "+
  "  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  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) +"' "+
  "  )  "+
  "  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] ));
  }

%>



深圳市坪山鎮外商結匯分成表



深圳市坪山鎮外商結匯分成表


 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 
  年
 
  月  提交   結匯總額:
  港幣

 

 
返撥鎮外匯分成款總額:
  元

 

 
單位名稱

 

 
分配率

 

 
金額

 

 
其中村委分配金額:

 
  元

 

 
各主管單位分配金額:

 
  元

 

 
村委

 

 
金額

 

 
主管單位

 

 
金額

 

 
主管單位

 

 
金額

 
中國銀行(港幣)
 
0.25%

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
商務單位(港幣)
 
3.00%

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
增值稅
 
6%

 
 
 

 

 

 

 

 

 

 

 

 

 

 
外商
 
75%

 
 
 

 

 

 

 

 

 

 

 

 

 

 
市財政
 

 
 
 

 

 

 

 

 

 

 

 

 

 

 
區財政
 
11.00%

 

 

 

 

 

 

 

 

 

 

 

 

 
鎮財政
 
8-9%

 

 

 

 

 

 

 

 

 

 

 

 

 
村、主管單位
 
5-6%

 

 

 

 

 

 

 

 

 

 

 

 

 
   
 

 

 

 

 

 

 

 

 

 

 

 
   
 

 

 

 

 

 

 

 

 

 

 

 
   
 

 

 

 

 

 

 

 

 

 

 

 
   
 

 

 

 

 

 

 

 

 

 

 

 
   
 

 

 

 

 

 

 

 

 

 

 

 
   
 

 

 

 

 

 

 

 

 

 

 

 

 
 
 
 
 
 
 
 
 
經發辦負責人: 單位負責人: 複核人: 製表人: 製表日期:

 
 



 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-989990/,如需轉載,請註明出處,否則將追究法律責任。

相關文章