版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《移動應(yīng)用技術(shù)》
課程設(shè)計報告題目:基于Android的金源書店庫存管理系統(tǒng)的開發(fā)與設(shè)計學(xué)生姓名:專 業(yè): 信息管理與信息系統(tǒng)班 級:指導(dǎo)教師:信息管理與工程系2015年5月28日基于Android的金源書店庫存管理系統(tǒng)的開發(fā)與設(shè)計摘要:金源書店庫存管理系統(tǒng)是典型的信息管理系統(tǒng)(MISManagementInformationSystem),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的數(shù)據(jù)庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點。經(jīng)過分析,本小組決定采用SQLite建立數(shù)據(jù)庫后臺,使用Eclipse開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具進行開發(fā)。本系統(tǒng)通過基本信息管理對供應(yīng)商、顧客和商品進行基本信息的管理。通過庫存管理進行商品的入庫出庫操作來完成商品信息的管理。經(jīng)過本小組近一個月的刻苦學(xué)習(xí)與實踐,如期完成了系統(tǒng)的開發(fā)工作,實現(xiàn)了金源書店庫存管理系統(tǒng)一些基本功能。關(guān)鍵字:信息管理系統(tǒng),數(shù)據(jù)庫,出庫,入庫目錄項目簡介與分工 1項目簡介 1項目分工 2項目設(shè)計方案 3用到的技術(shù) 5用戶登錄模塊 5基本信息管理 11庫存信息管理 26\o"CurrentDocument"系統(tǒng)設(shè)置 38關(guān)于 42\o"CurrentDocument"相關(guān)技術(shù) 42\o"CurrentDocument"4項目總結(jié)及展望 44\o"CurrentDocument"5心得體會 45考文獻 471項目簡介與分工1.1項目簡介金源書店庫存管理是通過采購、倉儲、綜合、出庫、配送等活動,解決物資供需之間存在的時間、空間、數(shù)量、品種價格等方面的矛盾,以此銜接社會生產(chǎn)的各環(huán)節(jié),從而確保生產(chǎn)的順利進行。傳統(tǒng)倉庫管理完全由人來完成,以手工記錄為主,當(dāng)企業(yè)的物流業(yè)務(wù)成長到一定規(guī)模之后,隨著訂單數(shù)量的增加,客戶需求不斷個性化,執(zhí)行效率就成為物流發(fā)展的瓶頸,單純依靠人力資源的增加已不能提升出入庫執(zhí)行的速度,反而帶來成本的大幅度上升與差錯頻頻。因此,本系統(tǒng)以提高倉庫管理人員的工作效率,降低其工作量、減少手工操作的差錯率、提高庫存的準(zhǔn)確率為初衷,針對金院地下超市倉庫的管理模式,提出此項目的制作,且利用計算機技術(shù)與現(xiàn)代的管理技術(shù)相互配合,來更加準(zhǔn)確、高速地完成工業(yè)企業(yè)日常的倉庫管理工作。使企業(yè)能夠以最少的人員來完成更多的工作。為此實現(xiàn)了本系統(tǒng)的完成。本小組采用SQLite建立數(shù)據(jù)庫后臺,使用Eclipse開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具進行開發(fā)。本系統(tǒng)通過基本信息管理對供應(yīng)商、顧客和商品進行基本信息的管理。通過庫存管理進行商品的入庫出庫操作來完成商品信息的管理。本項目分工情況如表1-1所示:表1-1項目分工表 模塊劃分 負責(zé)人基本信息管理供應(yīng)商信息管理添加供應(yīng)商信息修改供應(yīng)商信息 一刪除供應(yīng)商信息查詢供應(yīng)商信息顧客信息管理添加顧客信息修改顧客信息刪除顧客信息查詢顧客信息 一商品信息管理添加商品信息查詢商品信息修改商品信息刪除商品信息庫存管理入庫管理添加入庫商品信息修改入庫商品信息 一刪除入庫商品信息查詢?nèi)霂焐唐沸畔⒊鰩旃芾硖砑映鰩焐唐沸畔⑿薷某鰩焐唐沸畔h除出庫商品信息查詢出庫商品信息-信息查詢-庫存信息查詢系統(tǒng)設(shè)置用戶管理登錄注冊查詢用戶修改密碼 刪除用戶 退出退出系統(tǒng)關(guān)于關(guān)于該軟件一金源書店庫存管理系統(tǒng)庫存管理基本信息管理出庫管理入庫管理商品信息管理顧客信息管理供應(yīng)商信息管理圖2-1系統(tǒng)功能模塊圖圖2-1系統(tǒng)功能模塊圖列出了系統(tǒng)的主要功能模塊。包括基本信息管理,庫存信息管理以及系統(tǒng)設(shè)置。其中基本信息管理又包括供應(yīng)商信息管理,顧客信息管理以及商品信息管理。庫存信息管理包括入庫管理和出庫管理。系統(tǒng)設(shè)置包括登錄注冊、修改密碼和退出三個功能。其中供應(yīng)商信息管理包括添加供應(yīng)商信息、修改供應(yīng)商信息、刪除供應(yīng)商信息、查詢供應(yīng)商信息四個子功能。顧客信息管理包括添加顧客信息、修改顧客信息、刪除顧客信息、查詢顧客信息四個子功能。商品信息管理包括添加商品信息、修改商品信息、刪除商品信息、查詢商品信息四個子功能。入庫管理包括添加入庫商品信息、修改入庫商品信息、刪除入庫商品信息、查詢?nèi)霂焐唐沸畔⑺膫€子功能。出庫管理包括添加出庫商品信息、修改出庫商品信息、刪除出庫商品信息、查詢出庫商品信息四個子3功能??傮w框架如圖2-2所示:基本信息庫存管理信息查詢用戶管理關(guān)于添加供應(yīng)商商品信息刪除供應(yīng)商客戶信息修改供應(yīng)商供應(yīng)商信息查詢供應(yīng)商圖2-2總體框架圖3用到的技術(shù)3?1用戶登錄模塊用戶登錄模塊是系統(tǒng)模塊中一個重要的子系統(tǒng)模塊,它是系統(tǒng)安全的一個保障。它的主要功能是安全帳號管理,需要正確帳號和密碼才能進入系統(tǒng)。對于錯誤帳號和密碼給出提示。金源書店庫存管理圖3-1登錄界面處理流程:輸入:用戶名和密碼。處理:(1)用戶登錄窗體啟動。(2)用戶填寫用戶名并輸入密碼。(3)從操作人員表中檢查是否有相應(yīng)的用戶名和密碼。(4)如果用戶名或密碼錯誤,進行提示。(5)如果輸入的用戶名和相應(yīng)密碼正確,則根據(jù)該用戶的權(quán)限類別進行權(quán)限設(shè)置。(6)進入主控制平臺。設(shè)計流程圖,如圖3-2所示:圖3-2登錄流程圖相關(guān)代碼如下:publicclassStoreManagementActivityextendsActivity{privateEditTextuse;//用戶名privateEditTextpassword;//密碼SqlHelpdemodb;SQLiteDatabasesDatabase=null;publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.main);use=(EditText)findViewById(R.id.edi1);password=(EditText)findViewById(R.id.edi2);sDatabase=db.getWritableDatabase();}//登錄按鈕監(jiān)聽publicvoidonload(Viewv){//定義取數(shù)據(jù)的字符串Stringi=use.getText().toString();// 編寫數(shù)據(jù)庫語句Stringselect_sql= username,passwordfromuser_infowhereusername=i+// 執(zhí)行語句Cursorcursor=sDatabase.rawQuery(select_sql,null);cursor.moveToFirst();//將從數(shù)據(jù)中取出的用戶名和密碼賦值給兩個字符串變量try{userName=cursor.getString(0);userPw=cursor.getString(1);}catch(Exceptione){//TODO:handleexception}//判斷用戶名是否為空{(diào)錯誤信息用戶名不能為空!}//判斷密碼是否為空{(diào)錯誤信息密碼不能為空!}判斷用戶名和密碼是否正確elseif(!(use.getText().toString().equals(userName)&&password.getText().toString().equals(userPw))){錯誤信息用戶名或密碼錯誤,請重新輸入}全部正確跳轉(zhuǎn)到操作界面else{cursor.close();Intentintent=newIntent();Bundlebundle=newBundle();intent.putExtras(bundle);intent.setClass(getApplicationContext(),MenuDemo.class);startActivity(intent);}}注冊界面如圖3-3所示:用戶注冊用戶名:請輸入用戶名職工號:請輸入職工號密ξ?:請輸入密碼密碼確認:請輸入密碼圖3-3注冊界面相關(guān)代碼如下:protectedvoidonCreate(BundleSavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);SetContentView(R.layout,userregister);name=(EditText)fIndViewById(R.id.usename);pass=(EditText)fIndViewById(R.id.password);passsure=(EditText)findViewByld(R.id.passwordsure);workid=(EditText)fIndViewById(R.id.useide);sDatabase=db.getWritableDatabase();)publicvoidsure(Viewv){sDatabase=db.getWritableDatabase();錯誤信息請?zhí)顚懲暾畔?!}elseif(!pass.getText().toString().equals(passsure.getText().toString())){錯誤信息兩次密碼輸入不一致!}else{Stringename=name.getText().toString();Stringepass=pass.getText().toString();Stringeid=workid.getText().toString();//查詢語句Cursorselect_cursor=sDatabase.rawQuery(selectStr,null);select_cursor.moveToFirst();Stringstring=null;do{try{string=select_cursor.getString(0);}catch(Exceptione){//TODO:handleexception}if(string.equals(ename)){錯誤信息用戶名已存在,請另設(shè)用戶名select_cursor.close();break;}}while(select_cursor.moveToNext());//沒有重名注冊開始if(!string.equals(ename)){//定義IDintid=0;CursorseCursor=sDatabase.rawQuery(select,null);try{seCursor.moveToFirst();id=Integer.parseInt(seCursor.getString(0));id+=1;}catch(Exceptione){//TODO:handleexceptionid=0;}提示注冊成功,請返回登錄界面登錄seCursor.close();}}3.2基本信息管理基本信息管理包括供應(yīng)商信息管理、客戶信息管理和商品信息管理:供應(yīng)商是商品在入庫時提供商品的人,在進行入庫操作時必須先添加該商品的供應(yīng)商的信息。供應(yīng)商的信息包括供應(yīng)商的公司名稱,聯(lián)系人姓名,聯(lián)系人地址,城市名稱,地區(qū)名稱,郵政編碼,聯(lián)系電話,傳真號碼,公司主頁等基本信息。這些都是必須要求輸入的。本程序提供了增加,刪除,修改和查詢供應(yīng)商信息的功能。增加:當(dāng)有新的供應(yīng)商提供商品的時候需要使用此功能。刪除:當(dāng)與某供應(yīng)商取消貿(mào)易關(guān)系時,需要把供應(yīng)商信息從系統(tǒng)中刪除。修改:當(dāng)某供應(yīng)商基本信息發(fā)生改變時,可以修改供應(yīng)商信息。查詢:可以查詢庫中任何供應(yīng)商的信息。因此倉庫管理員可以方便的進行供應(yīng)商信息的管理。添加供應(yīng)商信息的對話框如圖3-4所示:添加供應(yīng)商信息:公司名稱聯(lián)系地址地區(qū)名稱聯(lián)系電話公司主頁填寫公司名稱,關(guān)系人:填塔聯(lián)系地址城市名稱:埴寫地區(qū)名稱埴寫聯(lián)系電話rπr?L?.g-:J填寫公司主頁填寫聯(lián)系人傳真號碼:返回埴寫城市名稱填寫郵政編碼填寫傳真號碼圖3-4添加供應(yīng)商信息添加供應(yīng)商信息操作步驟及處理流程:(1)選擇基本信息管理->供應(yīng)商信息管理->添加供應(yīng)商信息(2)出現(xiàn)圖3-4所示對話框(3)用戶輸入公司名稱,聯(lián)系人姓名,聯(lián)系人地址,城市名稱,地區(qū)名稱,郵政編碼,聯(lián)系電話,傳真號碼,公司主頁(4)點擊保存.如果其中有空項,會提示該項不能為空.要求用戶重新輸入(5)彈出提示框顯示供應(yīng)商信息已經(jīng)加入。(6)用戶可以繼續(xù)加入供應(yīng)商信息或者點返回進行其它操作。設(shè)計流程圖,如圖3-5所示:圖3-5添加供應(yīng)商流程圖相關(guān)代碼如下:protectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.tianjiag);添加供應(yīng)商信息Intentinte=getIntent();Bundlename=inte.getExtras();sDatabase=db.getWritableDatabase();gsmc=(EditText)findViewById(R.id.gsmce);lxr=(EditText)findViewById(R.id.lxre);csmc=(EditText)findViewById(R.id.csmce);lxdz=(EditText)findViewById(R.id.lxdze);dqmc=(EditText)findViewById(R.id.dqmce);yzbm=(EditText)findViewById(R.id.yzbme);lxdh=(EditText)findViewById(R.id.lxdhe);czhm=(EditText)findViewById(R.id.czhme);gszy=(EditText)findViewById(R.id.gszye);}publicvoidsave1(Viewv){提示請輸入公司名稱}else{//查詢語句Stringegsmc=gsmc.getText().toString();Stringelxr=lxr.getText().toString();Stringelxdz=lxdz.getText().toString();Stringecsmc=csmc.getText().toString();Stringedqmc=dqmc.getText().toString();Stringeyzbm=yzbm.getText().toString();Stringelxdh=lxdh.getText().toString();Stringeczhm=czhm.getText().toString();Stringegszy=gszy.getText().toString();Cursorcursor=sDatabase.rawQuery(selectStr,null);cursor.moveToFirst();Stringnameg=null;do{try{nameg=cursor.getString(0);}catch(Exceptione){//TODO:handleexception}if(nameg.equals(egsmc)){錯誤信息該公司信息已存在cursor.close();break;}}while(cursor.moveToNext());if(!nameg.equals(egsmc)){//定義IDintid=0;CursorseCursor=sDatabase.rawQuery(select,null);try{seCursor.moveToFirst();id=Integer.parseInt(seCursor.getString(0));id+=1;}catch(Exceptione){//TODO:handleexceptionid=0;}egsmc++elxr++elxdz+edqmc+添加成功seCursor.close();}}}修改供應(yīng)商信息步驟及處理流程:選擇要修改的供應(yīng)商信息選擇基本信息管理->供應(yīng)商信息管理->修改供應(yīng)商信息用戶可以修改供應(yīng)商的基本信息,修改完后點保存如果其中有空項或非法字符,會提示該項不能為空或輸入不合要求.求用戶重新輸入更新供應(yīng)商信息列表。顯示信息已經(jīng)修改用戶可以繼續(xù)加入供應(yīng)商信息或者點返回進行其它操作要設(shè)計流程圖,如圖3-6所示:圖3-6修改供應(yīng)商信息流程圖相關(guān)代碼如下:protectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.shanchuk1);修改供應(yīng)商finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this);sDatabase=db.getWritableDatabase();listview=(ListView)findViewById(R.id.kehulist);List<Map<String,Object>>slist=newArrayList<Map<String,Object>>();Cursorcursor=sDatabase.rawQuery(selectStr,null);cursor.moveToFirst();intcount=cursor.getCount();id=newString[count];cname=newString[count];pname=newString[count];add=newString[count];city=newString[count];diqu=newString[count];youbian=newString[count];tel=newString[count];chuanzhen=newString[count];web=newString[count];do{try{id[i]=cursor.getString(0);cname[i]=cursor.getString(1);pname[i]=cursor.getString(2);add[i]=cursor.getString(3);city[i]=cursor.getString(4);diqu[i]=cursor.getString(5);youbian[i]=cursor.getString(6);tel[i]=cursor.getString(7);chuanzhen[i]=cursor.getString(8);web[i]=cursor.getString(9);i++;}catch(Exceptione){//TODO:handleexception}}while(cursor.moveToNext());for(inti=0;i<id.length;i++){Map<String,Object>map=newHashMap<String,Object>();slist.add(map);}SimpleAdaptersimple=newSimpleAdapter(this,slist,R.id.t2,R.id.t3,R.id.t4,R.id.t5,R.id.t6,R.id.t7,R.id.t8,R.id.t9,R.id.t10,};listview.setAdapter(simple);listview.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//TODOAuto-generatedmethodstubfor(inti=0;i<cname.length;i++){if(arg2==i){確認消息確定要修改該供應(yīng)商嗎?finalintj=i;確定@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Intentintent=newIntent();Bundlebundle=newBundle();intent.putExtras(bundle);intent.setClass(Xiugaig.this,Xiugaig1.class);startActivity(intent);finish();}});取消@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstub}});builder.create().show();});}刪除供應(yīng)商信息步驟及處理流程選擇要修改的供應(yīng)商信息選擇基本信息管理->供應(yīng)商信息管理->刪除供應(yīng)商信息更新供應(yīng)商信息列表。顯示信息已經(jīng)被刪除信息一旦被刪除將不能被恢復(fù)設(shè)計流程圖,如圖3-7所示:圖3-7刪除供應(yīng)商信息流程圖相關(guān)代碼如下:protectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.shanchuk1);刪除供應(yīng)商finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this);sDatabase=db.getWritableDatabase();listview=(ListView)findViewById(R.id.kehulist);List<Map<String,Object>>slist=newArrayList<Map<String,Object>>();Cursorcursor=sDatabase.rawQuery(selectStr,null);cursor.moveToFirst();intcount=cursor.getCount();id=newString[count];cname=newString[count];pname=newString[count];add=newString[count];city=newString[count];diqu=newString[count];youbian=newString[count];tel=newString[count];chuanzhen=newString[count];web=newString[count];do{try{id[i]=cursor.getString(0);cname[i]=cursor.getString(1);pname[i]=cursor.getString(2);add[i]=cursor.getString(3);city[i]=cursor.getString(4);diqu[i]=cursor.getString(5);youbian[i]=cursor.getString(6);tel[i]=cursor.getString(7);chuanzhen[i]=cursor.getString(8);web[i]=cursor.getString(9);i++;}catch(Exceptione){//TODO:handleexception}}while(cursor.moveToNext());for(inti=0;i<id.length;i++){Map<String,Object>map=newHashMap<String,Object>();slist.add(map);}SimpleAdaptersimple=newSimpleAdapter(this,slist,R.id.t2,R.id.t3,R.id.t4,R.id.t5,R.id.t6,R.id.t7,R.id.t8,R.id.t9,R.id.t10,});listview.setAdapter(simple);listview.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//TODOAuto-generatedmethodstubfor(inti=0;i<cname.length;i++){if(arg2==i){確認消息確定要刪除該客戶嗎?finalintj=i;確定@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstubIntentintent=newIntent();intent.setClass(Shanchug.this,Shanchug.class);startActivity(intent);finish();}});取消@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstub}});builder.create().show();}查詢供應(yīng)商信息步驟及處理流程如圖3-8所示:界面如圖3-9所示:垂詢供應(yīng)商序號公司名稱 聯(lián)系人地址 城市 地區(qū)郵編目da dadd sss aaa dddd22 2222圖3-9查詢供應(yīng)商信息圖相關(guān)代碼如下:protectedvoidonCreate(BundleSavedInstanceState){super.onCreate(savedInstanceState);SetContentView(R.layout,shanchuk);查詢供應(yīng)商finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this);sDatabase=db.getWritableDatabase();listview=(ListView)fIndViewById(R.id.kehulist);List<Map<String,Object>>slist=newArrayList<Map<String,Object>>();Cursorcursor=sDatabase.rawQuery(selectStr,null);cursor.moveToFirst();intcount=cursor.getCount();id=newStringCcount];cname=newStringCcount];pname=newStringCcount];add=newStringCcount];city=newStringCcount];diqu=newStringCcount];youbian=newStringCcount];tel=newStringCcount];chuanzhen=newStringCcount];web=newStringCcount];do{try{id[i]=cursor.getString(0);cname[i]=cursor.getString(1);pname[i]=cursor.getString(2);add[i]=cursor.getString(3);city[i]=cursor.getString(4);diqu[i]=cursor.getString(5);youbian[i]=cursor.getString(6);tel[i]=cursor.getString(7);chuanzhen[i]=cursor.getString(8);web[i]=cursor.getString(9);i++;}catch(Exceptione){//TODO:handleexception}}while(cursor.moveToNext());for(inti=0;i<id.length;i++){Map<String,Object>map=newHashMap<String,Object>();slist.add(map);}SimpleAdaptersimple=newSimpleAdapter(this,slist,R.id.t3,R.id.t4,R.id.t5,R.id.t6,R.id.t7,R.id.t8,R.id.t9,R.id.t10,});listview.setAdapter(simple);}}顧客是商品在出庫操作時商品銷售的對象。同供應(yīng)商信息類似在進行入庫操作時必須先添加該商品的供應(yīng)商的信息。顧客的基本信息同供應(yīng)商的類似,也都是必須要求輸入的。同樣對顧客信息的管理也提供了增加,刪除,修改和查詢功能。商品信息管理。商品的基本信息包括商品名稱,商品規(guī)格,計量單位。這些都是必須輸入的。用來記錄商品的基本屬性。顧客和商品信息的操作過程與供應(yīng)商的操作步驟和處理流程類似,在此不一一講述。3.3庫存信息管理系統(tǒng)的核心功能在于入庫、出庫管理,這部分實現(xiàn)比較復(fù)雜,涉及到的數(shù)據(jù)和操作步驟都比較多。入庫和出庫的流程大體上是一樣的,只有細節(jié)部分的區(qū)別。流程如圖3-10所示。在商品入庫/出庫之前必須建立一張入庫/出庫單,在該清單中記錄了該次入庫/出庫過程的基本信息,包括供應(yīng)商/客戶名稱、入庫/出庫時間、商品名稱、商品規(guī)格、計量單位、單價、數(shù)量等等。倉庫的入庫/出庫過程涉及到倉庫的庫存,關(guān)系到財產(chǎn)問題,與之相關(guān)的信息都很重要。所以本程序設(shè)計了修改入庫/出庫單的信息。下面將結(jié)合圖片具體講述實現(xiàn)過程。.入庫操作:入庫操作的界面如圖3-11所示:界面的左邊是供貨商信息和商品信息。為了保證入庫信息準(zhǔn)確無誤,這兩項用戶不能自己填寫,如果有新的供應(yīng)商或新的商品必須先在基本信息管理中填加供應(yīng)商信息和商品信息,然后從下拉列表中選擇相信的供應(yīng)商和商品。這樣可以保證商品入庫正確,保護財產(chǎn)安全。入庫單右邊是進貨信息,包括本次商品入庫時的單價和數(shù)量。因為每次進貨時單價和數(shù)量都不一樣,所以需要倉庫管理員自己進行填寫。進貨日期默認為填單當(dāng)日,也可以點下拉箭頭進行時間選擇。圖3-10入庫和出庫的流程入庫操作步驟及處理流程:(1)選擇庫存信息管理->入庫操作->添加入庫商品信息⑵出現(xiàn)如圖3-10所示對話框(3)從供貨商信息的公司名稱下拉列表中選擇公司名稱,從商品信息的商品名稱下拉列表中選擇商品名稱,填寫進貨信息中的單價,數(shù)量,從進貨日期下拉列表中選擇時間,填好各項信息后點擊保存(4)如果填寫信息有誤或者為空系統(tǒng)會提示重填(5)填寫正確且點擊保存后,顯示入庫商品信息,確定商品已經(jīng)入庫用戶可以繼續(xù)添加入庫信息,或者點返回進行其它操作公司名稱:da-商品名稱:ceshi*聯(lián)系人:韭 I商品規(guī)格:ceshi I聯(lián)系電話:22222222222計量單位:004進貨單價:進貨日期:進貨數(shù)量:2015保存返回圖3-11添加入商品入庫信息相關(guān)代碼如下:protectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.tianjiar);Intentinte=getIntent();Bundlename=inte.getExtras();sDatabase=db.getWritableDatabase();Calendarc=Calendar.getInstance();year=c.get(Calendar.YEAR);mon=c.get(Calendar.MONTH);day=c.get(Calendar.DAY_OF_MONTH);年 月日date=(DatePicker)findViewById(R.id.jhrqd);date.init(year,mon,day,newOnDateChangedListener(){@OverridepublicvoidonDateChanged(DatePickerarg0,intyear,intmonth,intday){Tianjiar.this.year=year;Tianjiar.this.mon=month;Tianjiar.this.day=day;//顯示當(dāng)前日期、時間年 月日System.out.println(da);}});Cursorcursor=sDatabase.rawQuery(selectStr,null);Cursorcursor1=sDatabase.rawQuery(selectStr1,null);cursor.moveToFirst();cursor1.moveToFirst();intcount=cursor.getCount();intcount1=cursor1.getCount();gsname=newString[count];spname=newString[count1];do{try{gsname[i]=cursor.getString(0);System.out.println(gsname[i]);i++;}catch(Exceptione){//TODO:handleexception}}while(cursor.moveToNext());do{try{spname[j]=cursor1.getString(0);System.out.println(spname[j]);j++;}catch(Exceptione){//TODO:handleexception}}while(cursor1.moveToNext());BaseAdapterba=newBaseAdapter(){@OverridepublicintgetCount(){//指定一共包含10個選項returngsname.length;}@OverridepublicObjectgetItem(intposition){returnnull;}@OverridepubliclonggetItemId(intposition){//TODOAuto-generatedmethodstubreturn0;}//重寫該方法,該方法返回的VieW將作為列表框的每項@OverridepublicVieWgetVieW(intposition,VieWconvertVieW,VieWGroupparent){TextVieWtext=neWTextVieW(Tianjiar.this);text.setText(gsname[position]);text.setTextSize(20);text.setTextColor(R.color.red);returntext;}};gsmc.setAdapter(ba);BaseAdapterba1=neWBaseAdapter(){@OverridepublicintgetCount(){//指定一共包含10個選項returnspname.length;}@OverridepublicObjectgetItem(intposition){returnnull;}@OverridepubliclonggetItemId(intposition){//TODOAuto-generatedmethodstubreturn0;}//重寫該方法,該方法返回的VieW將作為列表框的每項@OverridepublicVieWgetVieW(intposition,VieWconvertVieW,VieWGroupparent){TextVieWtext=neWTextVieW(Tianjiar.this);text.setText(spname[position]);text.setTextSize(20);text.setTextColor(R.color.red);returntext;}};spmc.setAdapter(ba1);gsmc.setOnItemSelectedListener(neWOnItemSelectedListener(){@OverridepublicvoidonItemSelected(AdapterVieW<?>arg0,VieWarg1,intarg2,longarg3){//TODOAuto-generatedmethodstubgs=gsname[arg2];Cursorcursor2=sDatabase.raWQuery(selectStr2,null);cursor2.moveToFirst();Stringname=null;Stringtel=null;do{try{name=cursor2.getString(0);tel=cursor2.getString(1);}catch(Exceptione){//TODO:handleexception}}while(cursor2.moveToNext());lxr.setText(name);lxdh.setText(tel);}@OverridepublicvoidonNothingSelected(AdapterView<?>arg0){//TODOAuto-generatedmethodstub}});spmc.setOnItemSelectedListener(newOnItemSelectedListener(){@OverridepublicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//TODOAuto-generatedmethodstubsp=spname[arg2];StringselectStr3pguige,pdanweifromproductsCursorcursor3=sDatabase.rawQuery(selectStr3,null);cursor3.moveToFirst();Stringguige=null;Stringdanwei=null;do{try{guige=cursor3.getString(0);danwei=cursor3.getString(1);}catch(Exceptione){//TODO:handleexception}}while(cursor3.moveToNext());spgg.setText(guige);jldw.setText(danwei);}@OverridepublicvoidonNothingSelected(AdapterView<?>arg0){//TODOAuto-generatedmethodstub}});}publicvoidsave(Viewv){提示請?zhí)顚懲暾畔else{//查詢語句Stringelxr=lxr.getText().toString();//定義IDintid=0;CursorseCursor=sDatabase.rawQuery(select,null);try{seCursor.moveToFirst();id=Integer.parseInt(seCursor.getString(0));id+=1;}catch(Exceptione){//TODO:handleexceptionid=0;}添加成功seCursor.close();}}修改入庫商品信息操作步驟:選擇要修改的入庫商品信息選擇庫存信息管理->入庫操作->修改入庫商品信息用戶可以修改入庫單的基本信息,修改完后點保存如果其中有空項或非法字符,會提示該項不能為空或輸入不合要求.要求用戶重新輸入更新入庫商品信息列表。顯示信息已經(jīng)修改用戶可以繼續(xù)加入入庫商品信息或者點返回進行其它操作刪除入庫商品信息步驟及處理流程:選擇要修改的入庫商品信息(2)選擇庫存信息管理->入庫操作->刪除入庫商品信息(3)如果沒有選擇入庫商品信息,系統(tǒng)會提示沒有選擇入庫商品,要求重新選擇(4)更新供應(yīng)商信息列表。顯示信息已經(jīng)被刪除(5)信息一旦被刪除將不能被恢復(fù)查詢?nèi)霂焐唐沸畔⒉襟E及處理流程:(1)選擇庫存信息管理->入庫操作->查詢?nèi)霂焐唐沸畔?2)如果沒有入庫商品,系統(tǒng)會提示無入庫商品無法查詢(3)有入庫商品會出現(xiàn)圖3-12所示對話框(4)有兩個選項供查詢:商品名稱和供應(yīng)商名稱。均無需輸入,可直接從下拉列表中選擇。(5)如果查找不到符合要求的信息,供應(yīng)商列表為空。用戶可以繼續(xù)查找。(6)輸入正確,入庫商品列表會列出符合查找條件的信息供用戶使用。庫存管理 信息查詢添加入庫商品入庫刪除入庫商Sa出庫修改入庫查詢?nèi)霂靾D3-12添加入庫2.出庫操作:出庫操作和入庫操作的界面類似,這里不再作過多的講述。只是將供應(yīng)商信息改為了顧客信息。同樣,顧客信息用戶也是不能夠自己填寫的。如果有新的用戶必須先在基本信息管理的顧客信息管理里面添加顧客信息。然后可以從下拉列表中選擇用戶信息。相關(guān)代碼如下:publicclassChaxuncextendsActivity{SqlHelpdemodb;inti=0;SQLiteDatabasesDatabase=null;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.chaxunc1);查詢出庫finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this);sDatabase=db.getWritableDatabase();listview=(ListView)findViewById(R.id.kehulist);List<Map<String,Object>>slist=newArrayList<Map<String,Object>>();Cursorcursor=sDatabase.rawQuery(selectStr,null);cursor.moveToFirst();intcount=cursor.getCount();id=newString[count];do{try{id[i]=cursor.getString(0);tel[i]=cursor.getString(7);chuanzhen[i]=cursor.getString(8);web[i]=cursor.getString(9);i++;}catch(Exceptione){//TODO:handleexception}}while(cursor.moveToNext());for(inti=0;i<id.length;i++){Map<String,Object>map=newHashMap<String,Object>();slist.add(map);}listview.setAdapter(simple);listview.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//TODOAuto-generatedmethodstubfor(inti=0;i<cname.length;i++){if(arg2==i){確認消息確定要刪除該出庫嗎?finalintj=i;確定@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstubIntentintent=newIntent();intent.setClass(Chaxunc.this,Chaxunc.class);startActivity(intent);finish();)});取消?OverridepublicvoidonClick(Dialoginterfacedialog,intwhich){builder,create().show();)});系統(tǒng)設(shè)置系統(tǒng)設(shè)置包括三個子功能。登錄注冊,修改密碼和退出。登錄注冊:用戶注冊后可以進行登錄,進入主界面。修改密碼:用戶登入后可以修改自己的密碼。建議用戶定期更改自己的密碼,以防信息泄露。退出:退出系統(tǒng)。圖3-13用戶管理模塊修改歷石馬原始聲碼:.新的空碼:.確認定碼Fj"Tj保存r返回圖3-14修改密碼相關(guān)代碼如下:publicclassXiugaikextendsActivity{privateListViewlistview;Stringid[];SqlHelpdemodb;inti=0;SQLiteDatabasesDatabase=null;?OverrideprotectedvoidonCreate(BundleSavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);SetContentView(R.layout,shanchukl);修改客戶finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this);sDatabase=db.getWritableDatabase();listview=(ListView)findViewById(R.id.kehulist);List<Map<String,Object>>slist=newArrayList<Map<String,Object>>();Cursorcursor=sDatabase.rawQuery(selectStr,null);cursor.moveToFirst();intcount=cursor.getCount();id=newString[count];do{try{id[i]=cursor.getString(0);i++;}catch(Exceptione){//TODO:handleexception}}while(cursor.moveToNext());for(inti=0;i<id.length;i++){Map<String,Object>map=newHashMap<String,Object>();slist.add(map);}SimpleAdaptersimple=newSimpleAdapter(this,slist,R.id.t2,R.id.t3,R.id.t4,R.id.t5,R.id.t6,R.id.t7,R.id.t8,R.id.t9,R.id.t10,});listview.setAdapter(simple);listview.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//TODOAuto-generatedmethodstubfor(inti=0;i<cname.length;i++){if(arg2==i){確認消息確定要修改該客戶嗎?finalintj=i;確定@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstubIntentintent=newIntent();Bundlebundle=newBundle();intent.putExtras(bundle);intent.setClass(Xiugaik.this,Xiugaik1.class);startActivity(intent);finish();}});取消@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstub}});builder.create().show();}}關(guān)于本程序作者以及版本信息。相關(guān)技術(shù)本項目利用SQLite建立數(shù)據(jù)庫后臺,使用Eclipse開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具進行開發(fā)。其中利用的主要手段有:1)游標(biāo)cursor:用于在SQLLite數(shù)據(jù)庫中查找數(shù)據(jù);2)LayoutInflaterLayOUtInflater是用來找res/layout/下的Xml布局文件,并且實例化;而findViewById()是找Xml布局文件下的具體widget控件(如Button、TextView等)。對于一個沒有被載入或者想要動態(tài)載入的界面,都需要使用LayOUtInflater.inflate()來載入;對于一個已經(jīng)載入的界面,就可以使用ActiViyt.findViewById()方法來獲得其中的界面元素。3)分頁TabHost:TabHost是整個Tab的容器,包含TabWidget和FrameLayout兩個部分,TabWidget是每個Tab的表情,F(xiàn)rameLayout是Tab內(nèi)容。使用OnTabChangeListener接口,重寫OnTabChanged(StringtabId)函數(shù)TabHOst綁定監(jiān)聽器判斷OnTabChanged(StringtabId)中的tabId參數(shù)進行處理事件;這里的tabId對應(yīng)的是實例中每個分頁傳入的分頁ID,而不是TabSpec.setIndicatior()設(shè)置的標(biāo)題4)List<Map<String,Object>>使用JaVa代碼遍歷以獲取String,Object的值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度路燈節(jié)能燈具供應(yīng)與安裝合同書4篇
- 2025五金購銷合同
- 二零二五年綠色環(huán)保防水材料研發(fā)與應(yīng)用合同3篇
- 2025資金借款的合同范本
- 二零二五版季度銷售獎杯采購與銷售團隊培訓(xùn)合同3篇
- 二零二五年度網(wǎng)絡(luò)直播平臺特邀嘉賓合作協(xié)議3篇
- 2025混凝土加工運輸合同示范文
- 2025年物流人才培養(yǎng)合作協(xié)議合同3篇
- 煤矸石買賣合同
- 法院離婚協(xié)議書范文
- 2023年保安公司副總經(jīng)理年終總結(jié) 保安公司分公司經(jīng)理年終總結(jié)(5篇)
- 中國華能集團公司風(fēng)力發(fā)電場運行導(dǎo)則(馬晉輝20231.1.13)
- 中考語文非連續(xù)性文本閱讀10篇專項練習(xí)及答案
- 2022-2023學(xué)年度六年級數(shù)學(xué)(上冊)寒假作業(yè)【每日一練】
- 法人不承擔(dān)責(zé)任協(xié)議書(3篇)
- 電工工具報價單
- 反歧視程序文件
- 油氣藏類型、典型的相圖特征和識別實例
- 流體靜力學(xué)課件
- 顧客忠誠度論文
- 實驗室安全檢查自查表
評論
0/150
提交評論