Oracle存儲過程--案例

限額控制

CREATE OR REPLACE PACKAGE BODY NP_PCKG_MERCHANT_LIMIT
ASPROCEDURE CHECK_LIMIT (in_iplCode         IN   VARCHAR2,       --行業編號in_iplState        IN   VARCHAR2,       --卡類型in_posNo           IN   VARCHAR2,      --商戶號in_tranAmt         IN   VARCHAR2,      --交易金額out_retcode        OUT  VARCHAR2      --返回碼
  )ISv_date             VARCHAR2(8);      --系統日期--v_merchantType     VARCHAR2(30);    --行業類型v_debitSingleMax   NUMBER(18,2);    --借記卡單筆限額v_debitDayMax      NUMBER(18,2);    --借記卡日累計限額v_debitMonthMax    NUMBER(18,2);    --借記卡月累計限額v_debitYearMax     NUMBER(18,2);    --借記卡年累計限額v_debitDaySum      NUMBER(18,2);   --借記卡日累計限額當日發生額v_debitMonthSum    NUMBER(18,2);   --借記卡月累計限額當月發生額v_debitYearSum     NUMBER(18,2);   --借記卡年累計限額當年發生額v_debitLastDate    NUMBER(18,2);   --借記卡限額上次交易日v_creditSingleMax  NUMBER(18,2);   --貸記卡單筆限額v_creditDayMax     NUMBER(18,2);   --貸記卡日累計限額v_creditMonthMax   NUMBER(18,2);   --貸記卡月累計限額v_creditYearMax    NUMBER(18,2);   --貸記卡年累計限額v_creditDaySum     NUMBER(18,2);   --貸記卡日累計限額當日發生額v_creditMonthSum   NUMBER(18,2);   --貸記卡月累計限額當月發生額v_creditYearSum    NUMBER(18,2);   --貸記卡年累計限額當年發生額v_creditLastDate   NUMBER(18,2);   --貸記卡限額上次交易日--v_stt              VARCHAR2(1);      --賬戶狀態BEGINout_retcode := '0';--取當前日期v_date := to_char(SYSDATE, 'yyyymmdd');------------------------------------------------------------------ 判斷商戶收單限額(設置的客商戶日累計限額)------------------------------------------------------------------取收單限額 也要區分借記卡 和 貸記卡IF in_iplState = 1 THEN --是借記卡BEGINSELECTIPL_DEBIT_SINGLE,IPL_DEBIT_DAYMAX,IPL_DEBIT_MONTHMAX,IPL_DEBIT_YEARMAXINTOv_debitSingleMax,v_debitDayMax,v_debitMonthMax,v_debitYearMaxFROMIM_PAY_LIMITWHEREIPL_CODE = in_iplCode AND --此處需要一個參數,行業的codeIPL_STATE in('00','01') ;  --先判斷限額狀態 00標示  如果是借記卡和貸記卡都可以用,或者借記卡和貸記卡只有一個能用,或者都不能用
EXCEPTIONWHEN NO_DATA_FOUND THENNULL;dbms_output.put_line(v_debitSingleMax);END;ELSIF in_iplState = 2 THEN --是貸記卡BEGINSELECTIPL_CREDIT_SINGLE,IPL_CREDIT_DAYMAX,IPL_CREDIT_MONTHMAX,IPL_CREDIT_YEARMAXINTOv_creditSingleMax,v_creditDayMax,v_creditMonthMax,v_creditYearMaxFROMIM_PAY_LIMITWHEREIPL_CODE = in_iplCode AND --此處需要一個參數,行業的codeIPL_STATE in('00','10');  --先判斷限額狀態 00標示  如果是借記卡和貸記卡都可以用,或者借記卡和貸記卡只有一個能用,或者都不能用
EXCEPTIONWHEN NO_DATA_FOUND THENNULL;END;END IF;--取商戶年月日累計限額 ---BEGINSELECTIMD_DEBIT_DAYAMT,IMD_DEBIT_MONTHAMT,IMD_DEBIT_YEARAMT,IMD_DEBIT_TRANSDAY,IMD_CREDIT_DAYAMT,IMD_CREDIT_MONTHAMT,IMD_CREDIT_YEARAMT,IMD_CREDIT_TRANSDAYINTOv_debitDaySum,v_debitMonthSum,v_debitYearSum,v_debitLastDate,v_creditDaySum,v_creditMonthSum,v_creditYearSum,v_creditLastDateFROMIM_MERCHANT_DAYSUMWHEREIMD_POSNO = in_posNo;EXCEPTIONWHEN NO_DATA_FOUND THENINSERT INTO IM_MERCHANT_DAYSUM (IMD_POSNO,IMD_DEBIT_DAYAMT,IMD_DEBIT_MONTHAMT,IMD_DEBIT_YEARAMT,IMD_CREDIT_DAYAMT,IMD_CREDIT_MONTHAMT,IMD_CREDIT_YEARAMT,IMD_DEBIT_TRANSDAY,IMD_CREDIT_TRANSDAY) VALUES (in_posNo,'0.00','0.00','0.00','0.00','0.00','0.00',v_date,v_date);END;--判斷是商戶借記卡 =1    還是貸記卡 =2  STARTIF in_iplState = 1 THEN--如果是借記卡,則判斷借記卡的單筆,日累計,月累計,年累計限額  v_debitSingleMaxIF TO_NUMBER(in_tranAmt) > v_debitSingleMax THENout_retcode := 'NPML1001';                    --錯誤碼NPML1001:超過借記卡單筆限額--ROLLBACK;RETURN;END IF;-- 判斷借記卡日累計交易限額否需要清零 ,如果是昨天的交易,今天需要清零 開始IF v_date <> v_debitLastDate THEN --herev_debitDaySum := 0;END IF;-- 判斷借記卡日累計交易限額否需要清零 ,如果是昨天的交易,今天需要清零 結束IF v_debitDaySum + TO_NUMBER(in_tranAmt) > v_debitDayMax THEN --借記卡日累計限額out_retcode := 'NPML1002';                    --錯誤碼NPML1002:超過借記卡日累計限額--ROLLBACK;RETURN;END IF;--判斷借記卡月累計交易限額是否需要清零,如果是上個月的交易,則臨時置空 開始IF substr(v_date,1,6) <> substr(v_debitLastDate,1,6) THENv_debitMonthSum := 0;END IF;--判斷借記卡月累計交易限額是否需要清零,如果是上個月的交易,則臨時置空 結束IF v_debitMonthSum + TO_NUMBER(in_tranAmt) > v_debitMonthMax THEN --借記卡月累計限額out_retcode := 'NPML1003';                    --錯誤碼NPML1003:超過借記卡月累計限額--ROLLBACK;RETURN;END IF;--判斷借記卡年累計交易限額是否需要清零,如果是去年的交易,則臨時置空 開始IF substr(v_date,1,4) <> substr(v_debitLastDate,1,4) THENv_debitYearSum := 0;END IF;--判斷借記卡年累計交易限額是否需要清零,如果是去年的交易,則臨時置空 結束IF v_debitYearSum + TO_NUMBER(in_tranAmt) > v_debitYearMax THEN --借記卡年累計限額out_retcode := 'NPML1004';                    --錯誤碼NPML1004:超過借記卡年累計限額--ROLLBACK;RETURN;END IF;ELSIF in_iplState = 2 THEN--如果是貸記卡IF TO_NUMBER(in_tranAmt) > v_creditSingleMax THENout_retcode := 'NPML1005';                    --錯誤碼NPML1005:超過貸記卡單筆限額--ROLLBACK;RETURN;END IF;-- 判斷貸記卡日累計交易限額是否需要清零 開始IF v_date <> v_creditLastDate THEN --herev_creditDaySum := 0;END IF;-- 判斷貸記卡日累計交易限額是否需要清零 結束IF v_creditDaySum + TO_NUMBER(in_tranAmt) > v_creditDayMax THEN --貸記卡日累計限額out_retcode := 'NPML1006';                    --錯誤碼NPML1006:超過貸記卡日累計限額--ROLLBACK;RETURN;END IF;--判斷貸記卡月累計交易限額是否需要清零,如果是上個月的交易,則臨時置空 開始IF substr(v_date,1,6) <> substr(v_creditLastDate,1,6) THENv_creditMonthSum := 0;END IF;--判斷貸記卡月累計交易限額是否需要清零,如果是上個月的交易,則臨時置空 結束IF v_creditMonthSum + TO_NUMBER(in_tranAmt) > v_creditMonthMax THEN --貸記卡月累計限額out_retcode := 'NPML1007';                    --錯誤碼NPML1007:超過貸記卡月累計限額--ROLLBACK;RETURN;END IF;--判斷貸記卡年累計交易限額是否需要清零,如果是去年的交易,則臨時置空 開始IF substr(v_date,1,4) <> substr(v_creditLastDate,1,4) THENv_creditYearSum := 0;END IF;--判斷貸記卡年累計交易限額是否需要清零,如果是去年的交易,則臨時置空 結束IF v_creditYearSum + TO_NUMBER(in_tranAmt) > v_creditYearMax THEN --貸記卡月累計限額out_retcode := 'NPML1008';                    --錯誤碼NPML1008:超過貸記卡年累計限額--ROLLBACK;RETURN;END IF;END IF;--判斷是商戶借記卡 =1    還是貸記卡 =2  ENDCOMMIT;END;PROCEDURE UPDATE_LIMIT (in_posNo               IN    VARCHAR2,            --商戶號in_iplState            IN    VARCHAR2,            --卡類型in_tranAmt             IN    VARCHAR2,            --交易金額out_retcode            OUT   VARCHAR2            --返回碼
    )ISv_date             VARCHAR2(8);      --系統日期v_debitDaySum      NUMBER(18,2);   --借記卡日累計限額當日發生額v_debitMonthSum    NUMBER(18,2);   --借記卡月累計限額當月發生額v_debitYearSum     NUMBER(18,2);   --借記卡年累計限額當年發生額v_debitLastDate    NUMBER(18,2);   --借記卡限額上次交易日
v_creditDaySum     NUMBER(18,2);   --貸記卡日累計限額當日發生額v_creditMonthSum   NUMBER(18,2);   --貸記卡月累計限額當月發生額v_creditYearSum    NUMBER(18,2);   --貸記卡年累計限額當年發生額v_creditLastDate   NUMBER(18,2);   --貸記卡限額上次交易日BEGINout_retcode := '0';--取當前日期v_date := to_char(SYSDATE, 'yyyymmdd');--取客戶日累計限額BEGINSELECTIMD_DEBIT_DAYAMT,IMD_DEBIT_MONTHAMT,IMD_DEBIT_YEARAMT,IMD_CREDIT_DAYAMT,IMD_CREDIT_MONTHAMT,IMD_CREDIT_YEARAMTINTOv_debitDaySum,v_debitMonthSum,v_debitYearSum,v_creditDaySum,v_creditMonthSum,v_creditYearSumFROMIM_MERCHANT_DAYSUMWHEREIMD_POSNO = in_posNoFOR UPDATE;EXCEPTIONWHEN NO_DATA_FOUND THENNULL;END;--判斷借記卡日累計交易限額否需要清零IF v_date <> v_debitLastDate THENv_debitDaySum := 0;END IF;-- 判斷貸記卡日累計交易限額是否需要清零IF v_date <> v_creditLastDate THEN --herev_creditDaySum := 0;END IF;--判斷借記卡月累計交易限額否需要清零IF substr(v_date,1,6) <> substr(v_debitLastDate,1,6) THENv_debitMonthSum := 0;END IF;--判斷貸記卡月累計交易限額否需要清零IF substr(v_date,1,6) <> substr(v_creditLastDate,1,6) THENv_creditMonthSum := 0;END IF;--判斷借記卡年累計交易限額否需要清零IF substr(v_date,1,4) <> substr(v_debitLastDate,1,4) THENv_debitYearSum := 0;END IF;--判斷貸記卡年累計交易限額否需要清零IF substr(v_date,1,4) <> substr(v_creditLastDate,1,4) THENv_creditYearSum := 0;END IF;--更新商戶收單限額累計表    需要區分借記卡和貸記卡IF in_iplState = 1 THEN --借記卡UPDATE IM_MERCHANT_DAYSUM --更新借記卡收單累計限額SETIMD_DEBIT_DAYAMT = v_debitDaySum + TO_NUMBER(in_tranAmt),IMD_DEBIT_MONTHAMT = v_debitMonthSum + TO_NUMBER(in_tranAmt),IMD_DEBIT_YEARAMT = v_debitYearSum + TO_NUMBER(in_tranAmt),IMD_DEBIT_TRANSDAY = v_dateWHEREIMD_POSNO = in_posNo;COMMIT;ELSIF in_iplState = 2 THEN --貸記卡UPDATE IM_MERCHANT_DAYSUM --更新貸記卡收單累計限額SETIMD_CREDIT_DAYAMT = v_creditDaySum + TO_NUMBER(in_tranAmt),IMD_CREDIT_MONTHAMT = v_creditMonthSum + TO_NUMBER(in_tranAmt),IMD_CREDIT_YEARAMT = v_creditYearSum + TO_NUMBER(in_tranAmt),IMD_CREDIT_TRANSDAY = v_dateWHEREIMD_POSNO = in_posNo;COMMIT;END IF;END;PROCEDURE ROLL_LIMIT (in_posNo        IN  VARCHAR2,     --商戶號in_iplState           IN VARCHAR2,        --卡類型in_orderNo        IN  VARCHAR2,     --交易流水號out_retcode       OUT VARCHAR2      --存儲過程返回碼
  )ISv_amt     VARCHAR2(20);v_transDate VARCHAR2(8);v_nowDate   VARCHAR2(8);BEGINout_retcode:='0';v_nowDate:=to_char(SYSDATE, 'yyyymmdd');--取客戶日累計限額BEGINSELECTsubstr(NPF_TRAN_TIME,1,8),NPF_ORDER_AMTINTOv_transDate,v_amtFROMNP_PAY_FLOWWHERENPF_FLOWNO = in_orderNoFOR UPDATE;EXCEPTIONWHEN NO_DATA_FOUND THENNULL;END;IF v_transDate ='' THENout_retCode:='0';return;END IF;--IF v_transDate<> v_nowDate then--如果不是今天的指令,不處理當日的限額--  out_retCode:='0';--  return;--END IF;--查找到該訂單,并且回滾的是今天的訂單--如果是借記卡交易--
        IF in_iplState = 1 then --回滾借記卡IF v_transDate = v_nowDate then--如果交易日期小于今天當天日期,則判斷是否為本月的交易,    回滾當月和當年的UPDATE IM_MERCHANT_DAYSUM--更新當天、本月、本年的累計額度SETIMD_DEBIT_DAYAMT = IMD_DEBIT_DAYAMT - v_amt,--更新當日的限額IMD_DEBIT_MONTHAMT = IMD_DEBIT_MONTHAMT - v_amt,--更新本月的限額IMD_DEBIT_YEARAMT = IMD_DEBIT_YEARAMT - v_amt--更新本年的限額WHEREIMD_POSNO = in_posNo;--商戶號COMMIT;ELSIF v_transDate < v_nowDate then --如果交易時間不是今天,則判斷是否為本月的交易IF substr(v_transDate,1,6) = substr(v_nowDate,1,6) THEN--不是當天的交易,則判斷是否為本月的交易STARTUPDATE IM_MERCHANT_DAYSUM--更新本月、本年的交易SETIMD_DEBIT_MONTHAMT = IMD_DEBIT_MONTHAMT - v_amt,--更新本月的限額IMD_DEBIT_YEARAMT = IMD_DEBIT_YEARAMT - v_amt --更新本年的限額WHEREIMD_POSNO = in_posNo;--商戶號COMMIT;ELSIF substr(v_transDate,1,6) < substr(v_nowDate,1,6) THEN--不是當天的交易,也不是本月的交易,則判斷是否為本年的交易IF substr(v_transDate,1,4) = substr(v_nowDate,1,4) THEN--不是當天的交易,也不是本月的交易,是本年的交易UPDATE IM_MERCHANT_DAYSUM--更新本年的交易SETIMD_DEBIT_YEARAMT = IMD_DEBIT_YEARAMT - v_amt--更新本年的限額WHEREIMD_POSNO = in_posNo;--商戶號COMMIT;END IF;END IF;--不是當天的交易,則判斷是否為本月的交易ENDEND IF;--回滾借記卡結束ELSIF in_iplState = 2 then  --回滾貸記卡IF v_transDate = v_nowDate then--如果交易日期小于今天當天日期,則判斷是否為本月的交易,    回滾當月和當年的UPDATE IM_MERCHANT_DAYSUM--更新當天、本月、本年的累計額度SETIMD_CREDIT_DAYAMT = IMD_CREDIT_DAYAMT - v_amt,--更新當日的限額IMD_CREDIT_MONTHAMT = IMD_CREDIT_DAYAMT - v_amt,--更新本月的限額IMD_CREDIT_YEARAMT = IMD_CREDIT_YEARAMT - v_amt--更新本年的限額WHEREIMD_POSNO = in_posNo;--商戶號COMMIT;ELSIF v_transDate < v_nowDate then --如果交易時間不是今天,則判斷是否為本月的交易IF substr(v_transDate,1,6) = substr(v_nowDate,1,6) THEN--不是當天的交易,則判斷是否為本月的交易STARTUPDATE IM_MERCHANT_DAYSUM--更新本月、本年的交易SETIMD_CREDIT_MONTHAMT = IMD_CREDIT_MONTHAMT - v_amt,--更新本月的限額IMD_CREDIT_YEARAMT = IMD_CREDIT_YEARAMT - v_amt--更新本年的限額WHEREIMD_POSNO = in_posNo;--商戶號COMMIT;ELSIF substr(v_transDate,1,6) < substr(v_nowDate,1,6) THEN--不是當天的交易,也不是本月的交易,則判斷是否為本年的交易IF substr(v_transDate,1,4) = substr(v_nowDate,1,4) THEN--不是當天的交易,也不是本月的交易,是本年的交易UPDATE IM_MERCHANT_DAYSUM--更新本年的交易SETIMD_CREDIT_YEARAMT = IMD_CREDIT_YEARAMT - v_amt --更新本年的限額WHEREIMD_POSNO = in_posNo;--商戶號COMMIT;END IF;END IF;--不是當天的交易,則判斷是否為本月的交易ENDEND IF;--回滾借記卡結束END IF;--回滾借記卡、貸記卡結束--
  END;END NP_PCKG_MERCHANT_LIMIT;

?表結構:

?

轉載于:https://www.cnblogs.com/taiguyiba/p/7815746.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252935.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252935.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252935.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringMVC—對Ajax的處理(含 JSON 類型)(2)

這里編寫了一個通用的類型轉換器&#xff1a;用來轉換形如&#xff1a; firstNamejack&lastNamelily&gender1&foodsSteak&foodsPizza&quoteEnteryourfavoritequote!&educationJr.High&tOfDDay 到 Student 對象。/*** author solverpeng* create 20…

馬來西亞熱情擁抱阿里巴巴 馬云倡議的eWTP首次落地海外

摘要&#xff1a;3月22日&#xff0c;馬來西亞總理納吉布與阿里巴巴集團董事局主席馬云一同出現在吉隆坡一場盛大啟動儀式上&#xff0c;他們將共同見證馬云的eWTP理念落地馬來西亞。 3月22日&#xff0c;在邀請阿里巴巴集團董事局主席馬云、阿里巴巴集團CEO張勇、螞蟻金服集團…

征名公布|Qtum量子鏈企業版—Unita 中文名征集圓滿落幕

Qtum量子鏈基金會為感謝社區與為了充分調動社區積極性&#xff0c;調動社區力量&#xff0c;在Qtum企業版完整公布之前將中文名留給社區成員們集思廣益&#xff0c;其中截止2018年11月26日&#xff0c;我們征集到數百份來自社區的優秀名稱&#xff0c;在經過基金會層層嚴肅認真…

隨便玩玩之PostgreSQL(第一章)PostgreSQL簡介

隨便玩玩之PostgreSQL 未經授權不得轉載 第1章PostgreSQL簡介 1.1什么是PostgreSQLPostgresql是數據庫&#xff08;軟件&#xff09;。The worlds most advanced open source database.世界上最先進的開源數據庫。 1.2PostgreSQL的優勢隨便用、不要錢 比MySQL好&#xff0c;媲美…

bootstrap 利用jquery 添加disabled屬性

添加&#xff1a; $("#id").attr("disabled","disabled"); 去除&#xff1a; $("#id").removeattr("disabled");轉載于:https://www.cnblogs.com/duyunchao-2261/p/6692141.html

生產環境中Oracle常用函數總結

1>to_char,將日期轉換為字符&#xff1b;add_months,在第一個參數的日期上加或者減第二個參數的值&#xff1b;select dkzh,jkhtbh,yhkrq,dkffrq,shqs,dqyqcs,to_char(add_months(dkffrq,shqsdqyqcs1),yyyymm) from grdk_dk_zz a where a.dkzt in(02,03) and jgbm like 01||…

國內VR內容分發平臺探討:未來充滿變數,一切才剛開始

移動VR搞內容分發平臺的思維源自于移動互聯網時代&#xff0c;App Store成就了iPhone和蘋果;安卓端谷歌應用商店稱霸全球&#xff0c;唯獨進不了中國&#xff0c;于是國內涌現了一大批移動分發平臺&#xff0c;91無線、豌豆莢、安卓應用商店、機鋒、安智、小米商店……最后大部…

Dockerfile構建容器鏡像 - 運維筆記

在Docker的運用中&#xff0c;從下載鏡像&#xff0c;啟動容器&#xff0c;在容器中輸入命令來運行程序&#xff0c;這些命令都是手工一條條往里輸入的&#xff0c;無法重復利用&#xff0c;而且效率很低。所以就需要一 種文件或腳本&#xff0c;我們把想執行的操作以命令的方式…

201421123042 《Java程序設計》第8周學習總結

1. 本周學習總結 以你喜歡的方式&#xff08;思維導圖或其他&#xff09;歸納總結集合相關內容。 2. 書面作業 1. ArrayList代碼分析 1.1 解釋ArrayList的contains源代碼 源代碼&#xff1a; 答&#xff1a;查找對象是否再數組中&#xff0c;并且返回在數組中的下標。如果不在數…

Linux驅動靜態編譯和動態編譯方法詳解

內核源碼樹的目錄下都有兩個文檔Kconfig和Makefile。分布到各目錄的Kconfig構成了一個分布式的內核配置數據庫&#xff0c;每個Kconfig分別描述了所屬目錄源文檔相關的內核配置菜單。在內核配置make menuconfig時&#xff0c;從Kconfig中讀出菜單&#xff0c;用戶選擇后保存到.…

Linux學習-11月12日(Apache安裝)

2019獨角獸企業重金招聘Python工程師標準>>> 11.6 MariaDB安裝 11.7/11.8/11.9 Apache安裝 擴展 apache dso https://yq.aliyun.com/articles/6298 apache apxs https://wizardforcel.gitbooks.io/apache-doc/content/51.html apache工作模式 https://blog.csdn.…

11. sql DDL

SQL分為5大類&#xff1a; DDL:數據定義語言 DCL:數據控制語言 DML:數據操縱語言 DTL:數據事務語言 DQL:數據查詢語言 1、DDL(data definition language):create,drop,alter,rename to 數據類型 ①、數字類型&#xff0c;可以數學運算 number&#xff08;4&#xff09;代表整數…

[bzoj2243][SDOI2011]染色

來自FallDream 的博客&#xff0c;未經允許&#xff0c;請勿轉載&#xff0c;謝謝qaq 給定一棵有n個節點的無根樹和m個操作&#xff0c;操作有2類&#xff1a; 1、將節點a到節點b路徑上所有點都染成顏色c&#xff1b; 2、詢問節點a到節點b路徑上的顏色段數量&#xff08;連續相…

Linux學習筆記——例說makefile 增加宏定義

從學習C語言開始就慢慢開始接觸makefile&#xff0c;查閱了很多的makefile的資料但總感覺沒有真正掌握makefile&#xff0c;如果自己動手寫一個makefile總覺得非常吃力。所以特意借助博客總結makefile的相關知識&#xff0c;通過例子說明makefile的具體用法。 例說makefile…

Android基本組件是什么?

1、ImageView繼承View組件,不單單用于顯示圖片,用 XML代碼 編寫的Drawable也可以顯示出來。其中的XML屬性 android:scaleType(設置圖片如何縮放或移動以適應ImageView的大小) 有很多的屬性值,如:matrix(使用矩形方式進行縮放)fitXY(對圖片橫向縱向縮放)center(圖片放在ImageVie…

Java 運算符及優先級

運算符 分割符&#xff1a;  ,  ;  []  ()算數運算符&#xff1a;    -  *  /  %    --關系運算符&#xff1a;  >  <  >  <    !邏輯運算符&#xff1a;  !  &  |  ^  &&  ||賦值運算符&#xff1a; …

array sort - 2 : quick sort

遞歸實現&#xff1a; #include <stdio.h>int arr[10] {3, 2, 4, 1, 9, 7, 5, 6, 0, 8};void print_array(){ int i 0; for (i 0; i < 10; i) printf("arr[%d]:%d ", i, arr[i]); printf("\n");}void swap(int *i, int *j){ …

Linux C 讀取文件夾下所有文件(包括子文件夾)的文件名

本文&#xff1a;http://www.cnblogs.com/xudong-bupt/p/3504442.html Linux C 下面讀取文件夾要用到結構體struct dirent&#xff0c;在頭#include <dirent.h>中&#xff0c;如下&#xff1a; #include <dirent.h> struct dirent {long d_ino; /* inode number 索…

報表工具實現單據套打

【摘要】 單據套打再也不用手動測量&#xff0c;反復調試了&#xff0c;報表工具實現單據套打&#xff0c;去乾學院看個究竟&#xff1a;報表工具實現單據套打!實際項目開發中&#xff0c;很多情況會涉及到單據的打印。即在一張印刷好的空白單據上&#xff0c;準確無誤地打印上…

每隔10秒鐘打印一個“Helloworld”

/*** 每隔10秒鐘打印一個“Helloworld”*/ public class Test03 {public static void main(String[] args) throws InterruptedException {ThreadImp threadImp new ThreadImp();Thread thread1 new Thread(threadImp);thread1.start();} }class ThreadImp extends Thread {p…