<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    【本期導(dǎo)讀】完成病人資料登記模塊
    五一前真是太忙了,沒空研究這個系統(tǒng),不過零零碎碎地有做一些,但上節(jié)計劃要做的字典維護模塊遇到一些技術(shù)問題,暫且放后處理,這周主要把
    病人資料登記模塊的核心業(yè)務(wù)做好了,截圖如下:
    病人資料登記.jpg
    字典維護模塊遇到的問題有:
    1.怎么用grid完成增加,更新及刪除記錄
    2.如何做成一個通用的模板應(yīng)用在所有字典的維護上
    【下期提示】完成病人資料修改模塊
    posted @ 2006-04-28 13:41 水晶魚 閱讀(232) | 評論 (0)編輯 收藏
     
    【本期導(dǎo)讀】 主界面開發(fā),確定基本模塊
    沉寂一整周了,今天終于把主界面做好了。
    最近7天特別忙,趕上公司項目發(fā)布最新版本,一大堆的測試任務(wù)不敢懈怠,當學(xué)習(xí)與工作沖突時還是應(yīng)當以工作為重,學(xué)習(xí)暫放一邊,所以這次學(xué)習(xí)比計劃多花了幾天,不過雖然內(nèi)容很少,但也遇到了幾個難題:
    1.如何給窗體加上一個背景圖片?
    2.如何使HtmlWindow內(nèi)的鏈接正常打開?
    我想在窗體上顯示一張背景圖片,于是翻看wxPthon 的API文檔,想找找有沒有像VB里的frame的picture屬性,但出乎意料的時,wx.Window中并沒有這種屬性,雖然可以在此之上再放一個圖片控件,來達到同樣的效果,正在發(fā)愁,于是拿起《wxPython in Action 》(下文簡稱為PA)這本書快速探索一遍,終于找到辦法了,原來要實現(xiàn)這樣的效果,需要建立定制,參照里面的辦法寫了一個可以配置背景圖片的window類:
    ?1import?wx
    ?2
    ?3class?ImageBackGroundWindow(wx.Window):
    ?4????def?__init__(self,?parent,?image):
    ?5????????wx.Window.__init__(self,?parent)
    ?6????????self.photo?=?image.ConvertToBitmap()
    ?7????????self.positions?=?[(0,0)]
    ?8????????self.Bind(wx.EVT_PAINT,?self.OnPaint)
    ?9????def?OnPaint(self,?evt):
    10????????dc?=?wx.PaintDC(self)
    11????????brush?=?wx.Brush("sky?blue")
    12????????dc.SetBackground(brush)
    13????????dc.Clear()
    14????????for?x,y?in?self.positions:
    15????????????dc.DrawBitmap(self.photo,?x,?y,?True)
    主界面剩余的難題就是怎么組織代碼,UI編程最麻煩的就是這個了,再加上目前也沒搜到什么好的為Python量身定做的UI設(shè)計工具,只能自己一行一行地寫了,但這時就需要注意組織代碼了,不然一個復(fù)雜的界面寫出來都是一大堆難看懂的鎖碎代碼,我只是一個測試員,對開發(fā)接觸才剛起步,對這方面的意識暫時也沒有什么好的想法,但在《PA》一書中有講到怎么寫出一個漂亮簡潔的wxPthon界面代碼,有時間一定要好好研究一下。
    經(jīng)過幾天的努力,主界面基本框架算是弄好了,剩下的就是各個業(yè)務(wù)模板的界面及具體業(yè)務(wù)實現(xiàn)了。我首先挑最容易的來處理,先做關(guān)于對話框,不過在做這個窗體時也遇到一個問題,即上述的第2個問題,后來發(fā)現(xiàn)是因為在htmlWindow類中少了這個方法:
    1def?OnLinkClicked(self,?linkinfo):
    2????????????import?webbrowser
    3????????????webbrowser.open(linkinfo.GetHref(),?1)

    主界面和關(guān)于窗體截圖如下:
    main.jpgabout.jpg
    【下期提示】 完成字典管理模塊
    posted @ 2006-04-18 19:27 水晶魚 閱讀(382) | 評論 (0)編輯 收藏
     
    【本期導(dǎo)讀】使用wxPthon開發(fā)界面,完成登錄模塊
    wxPthon是一個非常強大的界面制作模塊,下載地址是http://www.wxpython.org/。wxPython安裝包中附送了大量實例代碼,每個界面控件的使用方法都有介紹,同時還可以去查看在線api文檔http://www.wxpython.org/docs/api/wx-module.html,這個文檔的風(fēng)格很像javadoc,習(xí)慣了java api 文檔的人一看就清楚,如果想系統(tǒng)地了解一下wyPython則可以下載官方推薦的《wxPython in Action 》一書。
    粗略瀏覽一下wyPtyhon Demo,便立即開始嘗試編寫ClinicOS的登錄模塊,首先確認一下界面表現(xiàn)力和功能:
    界面元素:
    1.一個登錄窗體
    2.帳號標簽及文本框,密碼標簽及文本框
    3.確定和取消按鈕
    功能:
    1.單擊『確定』按鈕時能驗證輸入的帳號和密碼是否正確,如果正確則顯示Clinic主界面(TODO,暫時讓它顯示一個成功消息框),否則提示“帳號或密碼錯誤”。
    2.單擊『取消』按鈕退出登錄模塊
    經(jīng)過一番努力,終于把界面畫好了,暫時丑了點,待以后給它美容。
    登錄.jpg
    不過畫這點界面很不方便,得有點耐心,特別是控件的位置要全手工地調(diào)坐標,這對于缺乏方向和位置感的我來說更是痛苦,想找一個可以做界面用的IDE for python,卻始終沒找到,沒辦法,只好將痛苦忍受到底。
    以下是完整的代碼:
    其中53行中使用的utils.encrypt這個方法,是自己寫的一個md5加密方法,這在python里非常簡單,只需要3句:
    1.導(dǎo)入md5和base64:import md5,base64
    2.創(chuàng)建一個md5對象實例: md5.new("字符串").digest()
    3.將生成的md5串做個base64轉(zhuǎn)換:base64.b64encode(md5.new("字符串").digest()這個返回的就是加密字符串。

    【下期提示】逐步深入學(xué)習(xí)wxPython 制作ClinicOS主界面
    posted @ 2006-04-11 14:11 水晶魚 閱讀(570) | 評論 (1)編輯 收藏
     
    【本期導(dǎo)讀】使用PySQLite連接SQLite遇到的問題與解決方法
    Python要操作SQLite可以使用Pyslqite模塊,最新的模塊可以去www.pysqlite.org下載,當初下載的時候順便簡單看了看usage-guide(http://initd.org/pub/software/pysqlite/doc/usage-guide.html),覺得挺簡單的,沒有仔細研究便開始考慮編寫,我考慮把sqlite的訪問寫成一個類,在類的初始化和銷毀時候分別建立連接和關(guān)閉連接,然后再添加一個執(zhí)行sql語句的方法,由于傳入的sql可能沒有返回值也可能有返回值,而返回的值可能是單列值也可能是多條記錄,基于這種復(fù)雜情況,就讓這個方法返回一個列表,管它返回什么,通通加到列表中然后返回,我覺得在這一點上,python比其它語言方便多了。下面是這個類:
    #!/usr/bin/python
    #
    ?-*-?coding:?UTF-8?-*-
    #
    ?$Id:?dbconnect.py?8?2006-04-08?14:21:32Z?Administrator?$
    import?ConfigParser
    import?locale
    from?pysqlite2?import?dbapi2?as?sqlite

    class?SqliteConnection:
    ????
    ????
    def?__init__(self,dbname):
    ????????
    """
    ????????初始化數(shù)據(jù)庫連接
    ?????????
    """????????
    ????????self.conn?
    =?sqlite.connect(dbname)
    ????
    def?execute(self,sql):
    ????????
    """
    ????????執(zhí)行傳入的sql語句,返回一個元組或者None
    ????????
    """
    ????????self.cu
    =self.conn.cursor()
    ????????self.cu.execute(sql)
    ????????self.conn.commit()

    ????????self.rows
    =[]
    ????????
    for?self.row?in?self.cu:
    ????????????self.rows.append(self.row)
    ????????
    return?self.rows
    ????
    def?__del__(self):
    ????????
    """關(guān)閉數(shù)據(jù)庫連接"""
    ????????self.conn.close()
    def?test():
    ????
    """測試方法"""
    ????config
    =ConfigParser.ConfigParser()
    ????config.read(
    'config')
    ????dbname
    =config.get('SQLiteDB','filename')
    ????
    ????test
    =?SqliteConnection(":memory:")
    ????test.execute(
    "create?table?person(lastname,?firstname)")
    ????test.execute(
    "insert?into?person(lastname,firstname)?values('三','張')")
    ????test.execute(
    "insert?into?person(lastname,firstname)?values('四','李')")
    if?__name__=='__main__':
    ????test()
    之前簡單試過一下訪問sqlite一切OK,可是當然運行一下這個類時,結(jié)果居然出錯了:
    Traceback (most recent call last):
    ? File "D:\source\dbconnect.py", line 49, in
    ?
    ??? test()
    ? File "D:\source\dbconnect.py", line 42, in
    test
    ??? temp=test.execute("select * from person")
    ? File "D:\source\dbconnect.py", line 22, in
    execute
    ??? self.cu.execute(sql)
    pysqlite2.dbapi2.OperationalError: Could not decode to UTF-8 column firstname wi
    th text 張
    既然出錯了,那么大概是這幾種情況:
    1.pysqlite不支持中文
    2.sqlite不支持中文
    3.代碼出了問題
    出錯之后,經(jīng)過測試,排除第1和2兩種可能,
    于是我仔細簡單代碼,可還是沒有找到出錯原因,于是想查看pysqlite源代碼,可是他的代碼是封閉在一個pyd的二進制文件中的,沒辦法查看,于是去下載pysqlite的源代碼,拿到源代碼后在pysqlite-2.2.0\src\cursor.c這個代碼中找到了OperationalError錯誤類型,知道原來是字符轉(zhuǎn)換時出這個錯。于是我就試試將返回值轉(zhuǎn)為可是我弄了很久都沒有弄好,在網(wǎng)上google一下也沒有找到這方面的資料,找了一天了也沒有找到解決的辦法,無奈之下險些泄氣。雖然之前看過pysqlite文檔,但看得不仔細,只是簡單瀏覽,當時只是想這東西應(yīng)該挺簡單的,例子也夠詳細就沒有花太多時間去看文檔,為得也是節(jié)省時間。現(xiàn)在遇到問題了,還是老老實實仔細看看pysqlite文檔吧。果然不枉我滴著眼藥水把它看完,終于找到原因了,原來pysqlite中有個con.text_factory可以解決這個問題,這個參數(shù)默認值是unicode ,現(xiàn)在只需要把它設(shè)置成str就可以了:
    至此總算解決了這個困擾我一天的問題了。
    【下期提示】開始學(xué)習(xí)wxPython,體驗一下它的強大界面表現(xiàn)力。
    posted @ 2006-04-09 22:13 水晶魚 閱讀(923) | 評論 (2)編輯 收藏
     
    【本期導(dǎo)讀】設(shè)計數(shù)據(jù)庫結(jié)構(gòu)
    這兩天簡單瀏覽一下SQLite的相關(guān)文檔,發(fā)現(xiàn)這個東東確實還不錯,至少比Access好多了,能自動根據(jù)數(shù)據(jù)來分配相應(yīng)空間,不會像Access那樣用著用著就變肥了。
    作為輕量級的本地數(shù)據(jù)庫,我所期望的功能都具備了:
    1.能否保存復(fù)雜數(shù)據(jù),支持Blob。
    2.支持自動編號。但前提是將主鍵一定要是Integer類型。能自動根據(jù)當前記錄最大值向下繼續(xù)編號。
    3.支持標準SQL語句。對數(shù)據(jù)類型檢查不嚴格,能自動將數(shù)據(jù)類型轉(zhuǎn)成SQLite標準數(shù)據(jù)類型,這一點在腳本移植很管用,能將其它數(shù)據(jù)庫管理系統(tǒng)的腳本直接導(dǎo)入,但要注意避免使用SQLite暫不支持的命令。
    4.支持觸發(fā)器。這個功能不錯。什么時候支持存儲過程就更好了,^_^
    對SQLite了解還不是很深入,邊用邊學(xué)吧。
    開始著手建數(shù)據(jù)庫,搜索了一下數(shù)據(jù)庫模型工具,以前沒有用過什么這方面的工具,隨便搜到一個CASEStudio。用了一下,感覺功能還不錯,支持很多數(shù)據(jù)庫,能自動生成數(shù)據(jù)庫腳本,可惜不支持SQLite數(shù)據(jù)庫引擎。胡亂畫了一通,終于把ClinicOS數(shù)據(jù)庫E-R圖畫好了,
    ClinicDB.png
    也順便生成了數(shù)據(jù)庫腳本,經(jīng)過零零散散的近5個小時的努力,數(shù)據(jù)庫結(jié)構(gòu)總算搭建好了。
    【下期提示】準備學(xué)習(xí)Python了,先學(xué)習(xí)PySQLite,解決編寫數(shù)據(jù)庫讀寫問題
    posted @ 2006-04-07 21:09 水晶魚 閱讀(1458) | 評論 (1)編輯 收藏
     
    今天晚上去外面吃飯,剛吃完飯回來,坐車坐得頭暈暈的,回到電腦起,一看有個網(wǎng)友傳了一個文件過來,讓我接收,一看文件名"廣告.pif",問他是什么東東,說是他做的廣告圖片,心想還有圖片后綴名為"pif"的?心感怪異,不過我還是好奇地接了過來,看他到處想耍什么花招,保存到桌面,一看ICON卻是一個dos快捷方式,于是用記事本打開看看,發(fā)現(xiàn)開頭有"This program must be run under Win32",然后結(jié)尾處有"KERNEL32.DLL advapi32.dll oleaut32.dll shell32.dll shlwapi.dll user32.dll?? LoadLibraryA? GetProcAddress? ExitProcess?? RegCloseKey?? SysFreeString?? ShellExecuteA?? PathFileExistsA?? CharNextA?? "
    原來是一個Dos程序病毒,嘿嘿,小樣,還想黑我!趕緊對它來一個shift+delete.
    【以下為模擬截圖】
    ===========================================
    病毒演示01.JPG病毒演示02.jpg病毒演示03.jpg
    水晶魚 21:24:46
    呵呵,這是病毒
    ?
    水晶魚 21:24:52
    很讓你失望,害不到我
    ?
    芥蒂&~ 21:26:44
    ?小樣算你小命好
    水晶魚 21:25:49
    切,這種小case 拿去欺負那些不懂電腦的吧?
    ?
    芥蒂&~ 21:27:17
    是嗎,那你來點高級的?
    ?
    水晶魚 21:26:30
    賺錢要緊,沒空害人 ,年輕人,做人要厚道
    ?
    芥蒂&~ 21:28:04
    偶以為你是傻B所以發(fā)給你瞧瞧,,偶也不是這個號號的主人
    水晶魚 21:27:12

    ?
    芥蒂&~ 21:28:38
    ?要不要合作 ?
    水晶魚 21:27:33

    芥蒂&~ 21:28:43
    ?在打電話?
    水晶魚 21:27:39
    沒空合作,珊瑚蟲告訴我你的IP在揚州
    ,正在打電話通知揚州110。

    消息一出,此人已不在線......
    posted @ 2006-04-06 23:26 水晶魚 閱讀(621) | 評論 (3)編輯 收藏
     

    【本期導(dǎo)讀】 確定ClinicOS功能
    工作任務(wù)很重,沒什么時間學(xué)習(xí),很不容易擠出一點時間來研究我的學(xué)習(xí)任務(wù)。
    這一節(jié)我把題目叫作《需求分析》實在......慚愧。沒有學(xué)過軟件工程,更沒有做過需求分析,只是在憑借自己的想當然來羅列功能,打算有空的時候去找本好書好好學(xué)學(xué)軟件工程。接下來還是羅列一下我的想法吧,我覺得這樣的一個小系統(tǒng)應(yīng)該包括以下功能:
    一.病人病史檔案管理
    ?1.登記病人基本信息
    ?2.登記病人本次病歷
    ?3.登記本次病人癥狀、醫(yī)生處方、所用治療藥品
    ?4.打印病歷卡
    ?5.查詢病史檔案
    二.藥品管理
    ?1.藥品入庫登記
    ?2.入庫審核
    ?3.藥品出庫登記,包括報廢出庫及領(lǐng)藥出庫
    ?4.出庫審核
    ?5.物品狀態(tài)提醒:過期藥品警戒,庫存數(shù)量警戒
    ?6.入庫查詢及統(tǒng)計
    ?7.庫存查詢及統(tǒng)計
    ?8.出庫查詢及統(tǒng)計
    ?9.報廢藥品及統(tǒng)計
    三.財務(wù)結(jié)算
    ?1.病人收費登記:診斷費+藥品費
    ?2.藥品采購支出登記
    ?3.每日收支報表
    ?4.每月收支情況報表
    ?5.年度收支統(tǒng)計分析表

    【下期提示】要學(xué)習(xí)的東西很多,下來我想還是從簡單入手,先學(xué)Sqlite,不知道有沒有什么好用的用來寫Sqlite腳本的客戶端工具?

    posted @ 2006-04-05 17:01 水晶魚 閱讀(209) | 評論 (0)編輯 收藏
     

    雖然單元測試用例已經(jīng)全部寫完了,但有一個問題一直困擾著我,在寫Junit(我這里用的是spring的Junit框架:AbstractTransactionalSpringContextTests)測試用例時,想在BTestCase類中調(diào)用ATestCase中的某個public 的方法a,但是又不能把ATestCase中的a方法提出到另一個類中,因為這個a方法也必須繼承AbstractTransactionalSpringContextTests類,
    例如:
    測試基類MyTest
    ///import 略
    public class MyTest extends AbstractTransactionalSpringContextTests {
    ???????????? //略
    }

    測試類A
    ///import 略
    public class A extends MyTest {
    ????????????public void a() {
    ??????????????????//略,注意,此處有一些需要繼承MyTest?才能訪問的方法
    ???????????????????
    ????????????}
    ????????????public void testA(){
    ???????????????????//略
    ????????????}
    }

    測試類B
    ///import 略
    public class?B extends MyTest {
    ????????????
    ????????????public void testAFromClassA(){
    ????????????????????A aFromClassA=new A();
    ????????????????????aFromClassA.a();
    ????????????????????aFromClassA.testA();

    ???????????????????//略
    ????????????}
    }
    B類肯定會出錯的,這里只是描述我想達到的效果,不知道哪位大位知道處理這類問題

    posted @ 2006-04-04 22:30 水晶魚 閱讀(661) | 評論 (2)編輯 收藏
     

    【本期導(dǎo)讀】 實例學(xué) Python
    去年大約11月一位牛人同事鼓勵我去掌握一門腳本語言并推薦使用Python,
    我是從那時開始接觸它的,雖然一度用它解決不少文本處理的小問題,但總覺得學(xué)習(xí)得不刻深入,
    所以想系統(tǒng)地學(xué)習(xí)一下Python,并決定通過一個綜合的實例dive into python。
    學(xué)習(xí)背景說完了,該談?wù)}了,我決定做一個診所管理系統(tǒng)ClinicOS,呵呵,這種軟件滿大街都是,
    但是像我這么無聊,決定用Python實現(xiàn)的跨平臺的版本應(yīng)該還沒出現(xiàn)吧?題目定了,開始著手開發(fā)吧,
    首先準備工具,除了必要的Python2.4外還需要準備以下幾個模塊:
    1.wxPthon2.6。用于做界面。
    2.py2exe0.6.3。用它打包,把python程序轉(zhuǎn)成exe。
    3.pySqlite2.1.3。由于數(shù)據(jù)庫選擇用sqlite,所以選它作為sqlite開發(fā)接口。
    4.Sqlite。用作數(shù)據(jù)存儲。
    看來要學(xué)的東西很多,不過在開始開發(fā)前,先給這個學(xué)習(xí)定一個deadline吧,爭取4月23日
    之前提交一個可用版本。
    【下期提示】接下來要確定一下軟件需求了,不知道各位路過的大俠能否提供一些建議?或者期望這個小軟件提供什么功能?

    posted @ 2006-04-04 15:09 水晶魚 閱讀(242) | 評論 (0)編輯 收藏
     

    三年以來,做筆記一直都用筆和紙,所以沒有打算過要用Blog,
    最近一個月莫名其妙不見了三支筆,筆記本(非電子版)也用光了,
    嘿嘿,找不到筆和紙,只好寫blog了......

    posted @ 2006-04-03 22:56 水晶魚 閱讀(215) | 評論 (0)編輯 收藏
    僅列出標題
    共3頁: 上一頁 1 2 3 
     
    主站蜘蛛池模板: 国产成人免费网站| 久久精品国产精品亚洲人人 | 全免费一级毛片在线播放| 日韩亚洲人成在线综合| 亚洲精品无码乱码成人| 亚洲成网777777国产精品| 日韩a级无码免费视频| 亚洲人成综合网站7777香蕉| 亚洲国产一区明星换脸| 久久综合国产乱子伦精品免费| 亚洲av最新在线观看网址| 亚洲日韩v无码中文字幕| 免费可以在线看A∨网站| 国产精品免费一区二区三区| 亚洲中文无码线在线观看| 亚洲国产精品成人一区| 88xx成人永久免费观看| 五级黄18以上免费看| 亚洲av成人一区二区三区| 国产成人A亚洲精V品无码| 最近中文字幕mv手机免费高清 | eeuss免费影院| 亚洲国产美女在线观看| 亚洲日韩aⅴ在线视频| 最好免费观看韩国+日本| 91青青青国产在观免费影视| 深夜福利在线视频免费| 亚洲乱码一区二区三区国产精品| 亚洲AV无码一区二区二三区软件| 国产精品免费一级在线观看| A在线观看免费网站大全| 永久免费AV无码网站国产| 日本激情猛烈在线看免费观看 | 国产成人免费视频| 无码免费又爽又高潮喷水的视频 | mm1313亚洲精品国产| 99视频在线精品免费观看6| 6080午夜一级毛片免费看6080夜福利| 大片免费观看92在线视频线视频| 亚洲国产成人精品无码区二本 | 69成人免费视频|