版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《移動應用技術(shù)》課程設(shè)計報告題目:基于Android的金源書店庫存管理系統(tǒng)的開發(fā)與設(shè)計學生姓名:專業(yè):信息管理與信息系統(tǒng)班級:指導教師:信息管理與工程系2015年5月28日基于Android的金源書店庫存管理系統(tǒng)的開發(fā)與設(shè)計摘要:金源書店庫存管理系統(tǒng)是典型的信息管理系統(tǒng)(MISManagementInformationSystem),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的數(shù)據(jù)庫。而對于后者則要求應用程序功能完備,易使用等特點。經(jīng)過分析,本小組決定采用SQLite建立數(shù)據(jù)庫后臺,使用Eclipse開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具進行開發(fā)。本系統(tǒng)通過基本信息管理對供應商、顧客和商品進行基本信息的管理。通過庫存管理進行商品的入庫出庫操作來完成商品信息的管理。經(jīng)過本小組近一個月的刻苦學習與實踐,如期完成了系統(tǒng)的開發(fā)工作,實現(xiàn)了金源書店庫存管理系統(tǒng)一些基本功能。關(guān)鍵字:信息管理系統(tǒng),數(shù)據(jù)庫,出庫,入庫目錄1 項目簡介與分工 11.1 項目簡介 11.2 項目分工 22 項目設(shè)計方案 33 用到的技術(shù) 53.1用戶登錄模塊 53.2基本信息管理 113.3庫存信息管理 263.4系統(tǒng)設(shè)置 383.5關(guān)于 423.6相關(guān)技術(shù) 424項目總結(jié)及展望 445心得體會 45參考文獻 47項目簡介與分工項目簡介金源書店庫存管理是通過采購、倉儲、綜合、出庫、配送等活動,解決物資供需之間存在的時間、空間、數(shù)量、品種價格等方面的矛盾,以此銜接社會生產(chǎn)的各環(huán)節(jié),從而確保生產(chǎn)的順利進行。傳統(tǒng)倉庫管理完全由人來完成,以手工記錄為主,當企業(yè)的物流業(yè)務成長到一定規(guī)模之后,隨著訂單數(shù)量的增加,客戶需求不斷個性化,執(zhí)行效率就成為物流發(fā)展的瓶頸,單純依靠人力資源的增加已不能提升出入庫執(zhí)行的速度,反而帶來成本的大幅度上升與差錯頻頻。因此,本系統(tǒng)以提高倉庫管理人員的工作效率,降低其工作量、減少手工操作的差錯率、提高庫存的準確率為初衷,針對金院地下超市倉庫的管理模式,提出此項目的制作,且利用計算機技術(shù)與現(xiàn)代的管理技術(shù)相互配合,來更加準確、高速地完成工業(yè)企業(yè)日常的倉庫管理工作。使企業(yè)能夠以最少的人員來完成更多的工作。為此實現(xiàn)了本系統(tǒng)的完成。本小組采用SQLite建立數(shù)據(jù)庫后臺,使用Eclipse開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具進行開發(fā)。本系統(tǒng)通過基本信息管理對供應商、顧客和商品進行基本信息的管理。通過庫存管理進行商品的入庫出庫操作來完成商品信息的管理。項目分工本項目分工情況如表1-1所示:表1-1項目分工表模塊劃分負責人基本信息管理供應商信息管理添加供應商信息修改供應商信息刪除供應商信息查詢供應商信息顧客信息管理添加顧客信息修改顧客信息刪除顧客信息查詢顧客信息商品信息管理添加商品信息查詢商品信息修改商品信息刪除商品信息庫存管理入庫管理添加入庫商品信息修改入庫商品信息刪除入庫商品信息查詢?nèi)霂焐唐沸畔⒊鰩旃芾硖砑映鰩焐唐沸畔⑿薷某鰩焐唐沸畔h除出庫商品信息查詢出庫商品信息信息查詢庫存信息查詢系統(tǒng)設(shè)置用戶管理登錄注冊查詢用戶修改密碼刪除用戶退出退出系統(tǒng)關(guān)于關(guān)于該軟件項目設(shè)計方案修改密碼登錄注冊退出修改密碼登錄注冊退出入庫管理出庫管理供應商信息管理顧客信息管理商品信息管理基本信息管理庫存管理系統(tǒng)設(shè)置金源書店庫存管理系統(tǒng)圖2-1系統(tǒng)功能模塊圖圖2-1系統(tǒng)功能模塊圖列出了系統(tǒng)的主要功能模塊。包括基本信息管理,庫存信息管理以及系統(tǒng)設(shè)置。其中基本信息管理又包括供應商信息管理,顧客信息管理以及商品信息管理。庫存信息管理包括入庫管理和出庫管理。系統(tǒng)設(shè)置包括登錄注冊、修改密碼和退出三個功能。其中供應商信息管理包括添加供應商信息、修改供應商信息、刪除供應商信息、查詢供應商信息四個子功能。顧客信息管理包括添加顧客信息、修改顧客信息、刪除顧客信息、查詢顧客信息四個子功能。商品信息管理包括添加商品信息、修改商品信息、刪除商品信息、查詢商品信息四個子功能。入庫管理包括添加入庫商品信息、修改入庫商品信息、刪除入庫商品信息、查詢?nèi)霂焐唐沸畔⑺膫€子功能。出庫管理包括添加出庫商品信息、修改出庫商品信息、刪除出庫商品信息、查詢出庫商品信息四個子REF_Ref422384397\r\h3功能。總體框架如圖2-2所示:圖2-2總體框架圖用到的技術(shù)3.1用戶登錄模塊用戶登錄模塊是系統(tǒng)模塊中一個重要的子系統(tǒng)模塊,它是系統(tǒng)安全的一個保障。它的主要功能是安全帳號管理,需要正確帳號和密碼才能進入系統(tǒng)。對于錯誤帳號和密碼給出提示。圖3-1登錄界面處理流程:輸入:用戶名和密碼。處理:(1)用戶登錄窗體啟動。(2)用戶填寫用戶名并輸入密碼。(3)從操作人員表中檢查是否有相應的用戶名和密碼。(4)如果用戶名或密碼錯誤,進行提示。(5)如果輸入的用戶名和相應密碼正確,則根據(jù)該用戶的權(quán)限類別進行權(quán)限設(shè)置。(6)進入主控制平臺。Y設(shè)計流程圖,如圖3-2所示:Y輸入用戶名和密碼登錄密碼正確?進入主控制平臺開始結(jié)束輸入用戶名和密碼登錄密碼正確?進入主控制平臺開始結(jié)束相關(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); db=newSqlHelpdemo(getApplicationContext(),"store.db",null,1); sDatabase=db.getWritableDatabase(); //登錄按鈕監(jiān)聽 publicvoidonload(Viewv) //定義取數(shù)據(jù)的字符串 StringuserName=""; StringuserPw=""; Stringi=use.getText().toString();// 編寫數(shù)據(jù)庫語句Stringselect_sql="selectusername,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 userName=""; userPw="";// 判斷用戶名是否為空 if(use.getText().toString().equals("")) DialogDemo.builder(StoreManagementActivity.this,"錯誤信息", "用戶名不能為空!");// 判斷密碼是否為空 elseif(password.getText().toString().equals("")) DialogDemo.builder(StoreManagementActivity.this,"錯誤信息", "密碼不能為空!");// 判斷用戶名和密碼是否正確 elseif(!(use.getText().toString().equals(userName)&&password .getText().toString().equals(userPw))) DialogDemo.builder(StoreManagementActivity.this,"錯誤信息", "用戶名或密碼錯誤,請重新輸入");// 全部正確跳轉(zhuǎn)到操作界面 else cursor.close(); Intentintent=newIntent(); Bundlebundle=newBundle(); bundle.putString("username",userName); intent.putExtras(bundle); intent.setClass(getApplicationContext(),MenuDemo.class); startActivity(intent);注冊界面如圖3-3所示:圖3-3注冊界面相關(guān)代碼如下: protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.userregister); name=(EditText)findViewById(R.id.usename); pass=(EditText)findViewById(R.id.password); passsure=(EditText)findViewById(R.id.passwordsure); workid=(EditText)findViewById(R.id.useide); db=newSqlHelpdemo(getApplicationContext(),"store.db",null,1); sDatabase=db.getWritableDatabase(); publicvoidsure(Viewv){ db=newSqlHelpdemo(getApplicationContext(),"store.db",null,1); sDatabase=db.getWritableDatabase(); if(name.getText().toString().equals("") ||pass.getText().toString().equals("") ||passsure.getText().toString().equals("") ||workid.getText().toString().equals("")){ DialogDemo.builder(UserRegister.this,"錯誤信息","請?zhí)顚懲暾畔ⅲ?); }elseif(!pass.getText().toString() .equals(passsure.getText().toString())){ DialogDemo.builder(UserRegister.this,"錯誤信息","兩次密碼輸入不一致!"); }else{ Stringename=name.getText().toString(); Stringepass=pass.getText().toString(); Stringeid=workid.getText().toString(); //查詢語句 StringselectStr="selectusernamefromuser_info"; Cursorselect_cursor=sDatabase.rawQuery(selectStr,null); select_cursor.moveToFirst(); Stringstring=null; do{ try{ string=select_cursor.getString(0); }catch(Exceptione){ //TODO:handleexception string=""; if(string.equals(ename)){ DialogDemo.builder(UserRegister.this,"錯誤信息", "用戶名已存在,請另設(shè)用戶名"); select_cursor.close(); break; }while(select_cursor.moveToNext()); //沒有重名注冊開始 if(!string.equals(ename)){ //定義ID intid=0; Stringselect="selectmax(_id)fromuser_info"; CursorseCursor=sDatabase.rawQuery(select,null); try{ seCursor.moveToFirst(); id=Integer.parseInt(seCursor.getString(0)); id+=1; }catch(Exceptione){ //TODO:handleexception id=0; sDatabase.execSQL("insertintouser_infovalues('"+id+"','"+ename+"','"+epass+"','"+eid+"')"); DialogDemo.builder(UserRegister.this,"提示","注冊成功,請返回登錄界面登錄"); seCursor.close();3.2基本信息管理基本信息管理包括供應商信息管理、客戶信息管理和商品信息管理:供應商是商品在入庫時提供商品的人,在進行入庫操作時必須先添加該商品的供應商的信息。供應商的信息包括供應商的公司名稱,聯(lián)系人姓名,聯(lián)系人地址,城市名稱,地區(qū)名稱,郵政編碼,聯(lián)系電話,傳真號碼,公司主頁等基本信息。這些都是必須要求輸入的。本程序提供了增加,刪除,修改和查詢供應商信息的功能。增加:當有新的供應商提供商品的時候需要使用此功能。刪除:當與某供應商取消貿(mào)易關(guān)系時,需要把供應商信息從系統(tǒng)中刪除。修改:當某供應商基本信息發(fā)生改變時,可以修改供應商信息。查詢:可以查詢庫中任何供應商的信息。因此倉庫管理員可以方便的進行供應商信息的管理。添加供應商信息的對話框如圖3-4所示:NN 圖3-4添加供應商信息添加供應商信息操作步驟及處理流程:選擇基本信息管理->供應商信息管理->添加供應商信息出現(xiàn)圖3-4所示對話框用戶輸入公司名稱,聯(lián)系人姓名,聯(lián)系人地址,城市名稱,地區(qū)名稱,郵政編碼,聯(lián)系電話,傳真號碼,公司主頁點擊保存.如果其中有空項,會提示該項不能為空.要求用戶重新輸入彈出提示框顯示供應商信息已經(jīng)加入。用戶可以繼續(xù)加入供應商信息或者點返回進行其它操作。設(shè)計流程圖,如圖3-5所示:開始開始初始化對話框輸入基本信息是否為空供應商唯一刪除舊記錄插入新記錄報錯報錯YNYN更新數(shù)據(jù)庫結(jié)束圖3-5添加供應商流程圖相關(guān)代碼如下:protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.tianjiag); setTitle("添加供應商信息"); Intentinte=getIntent(); Bundlename=inte.getExtras(); names=inte.getStringExtra("username"); db=newSqlHelpdemo(getApplicationContext(),"store.db",null,1); 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){ if(gsmc.getText().toString().equals("")){ DialogDemo.builder(Tianjiag.this,"提示","請輸入公司名稱"); 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(); StringselectStr="selectcomnamefromgongys"; Cursorcursor=sDatabase.rawQuery(selectStr,null); cursor.moveToFirst(); Stringnameg=null; do{ try{ nameg=cursor.getString(0); }catch(Exceptione){ //TODO:handleexception nameg=""; if(nameg.equals(egsmc)){ DialogDemo.builder(Tianjiag.this,"錯誤信息","該公司信息已存在"); cursor.close(); break; }while(cursor.moveToNext()); if(!nameg.equals(egsmc)){ //定義ID intid=0; Stringselect="selectmax(_id)fromgongys"; CursorseCursor=sDatabase.rawQuery(select,null); try{ seCursor.moveToFirst(); id=Integer.parseInt(seCursor.getString(0)); id+=1; }catch(Exceptione){ //TODO:handleexception id=0; sDatabase.execSQL("insertintogongysvalues('"+id+"','"+egsmc+"','"+elxr+"','"+elxdz+"','"+ecsmc+"','"+edqmc+"','"+eyzbm+"','"+elxdh+"','"+eczhm+"','"+egszy+"')");Toast.makeText(Tianjiag.this,"添加成功",Toast.LENGTH_LONG).show(); seCursor.close();修改供應商信息步驟及處理流程:選擇要修改的供應商信息選擇基本信息管理->供應商信息管理->修改供應商信息用戶可以修改供應商的基本信息,修改完后點保存如果其中有空項或非法字符,會提示該項不能為空或輸入不合要求.要求用戶重新輸入更新供應商信息列表。顯示信息已經(jīng)修改用戶可以繼續(xù)加入供應商信息或者點返回進行其它操作設(shè)計流程圖,如圖3-6所示:開始開始選擇供應商是否選擇修改記錄更新數(shù)據(jù)庫YN獲取供應商列表結(jié)束圖3-6修改供應商信息流程圖相關(guān)代碼如下:protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.shanchuk1); setTitle("修改供應商"); finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this); db=newSqlHelpdemo(getApplicationContext(),"store.db",null,1); sDatabase=db.getWritableDatabase(); listview=(ListView)findViewById(R.id.kehulist); List<Map<String,Object>>slist=newArrayList<Map<String,Object>>(); StringselectStr="select_id,comname,pername,addr,city,diqu,youbian,tel,chuangzhen,webfromgongys"; 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>(); map.put("id",id[i]); map.put("cname",cname[i]); map.put("pname",pname[i]); map.put("add",add[i]); map.put("city",city[i]); map.put("diqu",diqu[i]); map.put("youbian",youbian[i]); map.put("tel",tel[i]); map.put("chuanzhen",chuanzhen[i]); map.put("web",web[i]); slist.add(map); SimpleAdaptersimple=newSimpleAdapter(this,slist, R.layout.shanchukadpter,newString[]{"id","cname","pname","add","city","diqu","youbian","tel","chuanzhen","web"},newint[]{R.id.t1,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(){ @Override publicvoidonItemClick(AdapterView<>arg0,Viewarg1,intarg2, longarg3){//TODOAuto-generatedmethodstub for(inti=0;i<cname.length;i++){ if(arg2==i){ builder.setTitle("確認消息"); builder.setMessage("確定要修改該供應商嗎?"); finalintj=i; builder.setPositiveButton("確定",newOnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ Intentintent=newIntent(); Bundlebundle=newBundle(); bundle.putString("compname",cname[j]); intent.putExtras(bundle); intent.setClass(Xiugaig.this,Xiugaig1.class); startActivity(intent); finish(); builder.setNegativeButton("取消",newOnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ //TODOAuto-generatedmethodstub } builder.create().show();刪除供應商信息步驟及處理流程選擇要修改的供應商信息選擇基本信息管理->供應商信息管理->刪除供應商信息更新供應商信息列表。顯示信息已經(jīng)被刪除信息一旦被刪除將不能被恢復設(shè)計流程圖,如圖3-7所示:開始開始選擇供應商是否選擇刪除記錄更新數(shù)據(jù)庫YN結(jié)束圖3-7刪除供應商信息流程圖相關(guān)代碼如下:protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.shanchuk1); setTitle("刪除供應商"); finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this); db=newSqlHelpdemo(getApplicationContext(),"store.db",null,1); sDatabase=db.getWritableDatabase(); listview=(ListView)findViewById(R.id.kehulist); List<Map<String,Object>>slist=newArrayList<Map<String,Object>>(); StringselectStr="select_id,comname,pername,addr,city,diqu,youbian,tel,chuangzhen,webfromgongys"; 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>(); map.put("id",id[i]); map.put("cname",cname[i]); map.put("pname",pname[i]); map.put("add",add[i]); map.put("city",city[i]); map.put("diqu",diqu[i]); map.put("youbian",youbian[i]); map.put("tel",tel[i]); map.put("chuanzhen",chuanzhen[i]); map.put("web",web[i]); slist.add(map); SimpleAdaptersimple=newSimpleAdapter(this,slist, R.layout.shanchukadpter,newString[]{"id","cname","pname", "add","city","diqu","youbian","tel","chuanzhen","web"},newint[]{R.id.t1,R.id.t2,R.id.t3,,R.id.t5,R.id.t6,R.id.t7,R.id.t8,R.id.t9,R.id.t10,}); listview.setAdapter(simple); listview.setOnItemClickListener(newOnItemClickListener(){ @Override publicvoidonItemClick(AdapterView<>arg0,Viewarg1,intarg2, longarg3){ //TODOAuto-generatedmethodstub for(inti=0;i<cname.length;i++){ if(arg2==i){ builder.setTitle("確認消息"); builder.setMessage("確定要刪除該客戶嗎?"); finalintj=i; builder.setPositiveButton("確定",newOnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ //TODOAuto-generatedmethodstub sDatabase.execSQL("deletefromgongyswherecomname='"+cname[j]+"'"); Intentintent=newIntent(); intent.setClass(Shanchug.this,Shanchug.class); startActivity(intent); finish(); builder.setNegativeButton("取消",newOnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ //TODOAuto-generatedmethodstub builder.create().show();查詢供應商信息步驟及處理流程如圖3-8所示:供應商信息列表查詢供應商開始供應商信息列表查詢供應商開始圖3-8查詢供應商信息流程圖界面如圖3-9所示:圖3-9查詢供應商信息圖相關(guān)代碼如下:protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.shanchuk); setTitle("查詢供應商");finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this);db=newSqlHelpdemo(getApplicationContext(),"store.db",null,1);sDatabase=db.getWritableDatabase();listview=(ListView)findViewById(R.id.kehulist);List<Map<String,Object>>slist=newArrayList<Map<String,Object>>();StringselectStr="select_id,comname,pername,addr,city,diqu,youbian,tel,chuangzhen,webfromgongys";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>(); map.put("id",id[i]); map.put("cname",cname[i]); map.put("pname",pname[i]); map.put("add",add[i]); map.put("city",city[i]); map.put("diqu",diqu[i]); map.put("youbian",youbian[i]); map.put("tel",tel[i]); map.put("chuanzhen",chuanzhen[i]); map.put("web",web[i]); slist.add(map);SimpleAdaptersimple=newSimpleAdapter(this,slist, R.layout.shanchukadpter1,newString[]{"id","cname","pname","add","city","diqu","youbian","tel","chuanzhen","web"},newint[]{R.id.t1,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);顧客是商品在出庫操作時商品銷售的對象。同供應商信息類似在進行入庫操作時必須先添加該商品的供應商的信息。顧客的基本信息同供應商的類似,也都是必須要求輸入的。同樣對顧客信息的管理也提供了增加,刪除,修改和查詢功能。商品信息管理。商品的基本信息包括商品名稱,商品規(guī)格,計量單位。這些都是必須輸入的。用來記錄商品的基本屬性。顧客和商品信息的操作過程與供應商的操作步驟和處理流程類似,在此不一一講述。3.3庫存信息管理系統(tǒng)的核心功能在于入庫、出庫管理,這部分實現(xiàn)比較復雜,涉及到的數(shù)據(jù)和操作步驟都比較多。入庫和出庫的流程大體上是一樣的,只有細節(jié)部分的區(qū)別。流程如圖3-10所示。在商品入庫/出庫之前必須建立一張入庫/出庫單,在該清單中記錄了該次入庫/出庫過程的基本信息,包括供應商/客戶名稱、入庫/出庫時間、商品名稱、商品規(guī)格、計量單位、單價、數(shù)量等等。倉庫的入庫/出庫過程涉及到倉庫的庫存,關(guān)系到財產(chǎn)問題,與之相關(guān)的信息都很重要。所以本程序設(shè)計了修改入庫/出庫單的信息。下面將結(jié)合圖片具體講述實現(xiàn)過程。1.入庫操作:入庫操作的界面如圖3-11所示:界面的左邊是供貨商信息和商品信息。為了保證入庫信息準確無誤,這兩項用戶不能自己填寫,如果有新的供應商或新的商品必須先在基本信息管理中填加供應商信息和商品信息,然后從下拉列表中選擇相信的供應商和商品。這樣可以保證商品入庫正確,保護財產(chǎn)安全。入庫單右邊是進貨信息,包括本次商品入庫時的單價和數(shù)量。因為每次進貨時單價和數(shù)量都不一樣,所以需要倉庫管理員自己進行填寫。進貨日期默認為填單當日,也可以點下拉箭頭進行時間選擇。輸入基本信息輸入基本信息產(chǎn)生入庫/出庫單為入庫/出庫單添加商品確定入庫/出庫更新庫存圖3-10入庫和出庫的流程入庫操作步驟及處理流程:選擇庫存信息管理->入庫操作->添加入庫商品信息出現(xiàn)如圖3-10所示對話框從供貨商信息的公司名稱下拉列表中選擇公司名稱,從商品信息的商品名稱下拉列表中選擇商品名稱,填寫進貨信息中的單價,數(shù)量,從進貨日期下拉列表中選擇時間,填好各項信息后點擊保存如果填寫信息有誤或者為空系統(tǒng)會提示重填填寫正確且點擊保存后,顯示入庫商品信息,確定商品已經(jīng)入庫用戶可以繼續(xù)添加入庫信息,或者點返回進行其它操作圖3-11添加入商品入庫信息相關(guān)代碼如下:protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.tianjiar); Intentinte=getIntent(); Bundlename=inte.getExtras(); names=inte.getStringExtra("username"); db=newSqlHelpdemo(getApplicationContext(),"store.db",null,1); sDatabase=db.getWritableDatabase(); Calendarc=Calendar.getInstance(); year=c.get(Calendar.YEAR); mon=c.get(Calendar.MONTH); day=c.get(Calendar.DAY_OF_MONTH); da=year+"年"+(mon+1)+"月"+day+"日"; date=(DatePicker)findViewById(R.id.jhrqd); date.init(year,mon,day ,newOnDateChangedListener() @Override publicvoidonDateChanged(DatePickerarg0,intyear ,intmonth,intday) Tianjiar.this.year=year; Tianjiar.this.mon=month; Tianjiar.this.day=day; //顯示當前日期、時間 da=year+"年"+(month+1)+"月"+day+"日"; System.out.println(da); StringselectStr="selectcomnamefromgongys"; Cursorcursor=sDatabase.rawQuery(selectStr,null); StringselectStr1="selectpnamefromproducts"; 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(){ @Override publicintgetCount(){ //指定一共包含10個選項 returngsname.length; @Override publicObjectgetItem(intposition){ returnnull; @Override publiclonggetItemId(intposition){ //TODOAuto-generatedmethodstub return0; //重寫該方法,該方法返回的View將作為列表框的每項 @Override publicViewgetView(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(){ @Override publicintgetCount(){ //指定一共包含10個選項 returnspname.length; @Override publicObjectgetItem(intposition){ returnnull; @Override publiclonggetItemId(intposition){ //TODOAuto-generatedmethodstub return0; //重寫該方法,該方法返回的View將作為列表框的每項 @Override publicViewgetView(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(){ @Override publicvoidonItemSelected(AdapterView<>arg0,Viewarg1, intarg2,longarg3){ //TODOAuto-generatedmethodstub gs=gsname[arg2]; StringselectStr2="selectpername,telfromgongyswherecomname='" +gs+"'"; Cursorcursor2=sDatabase.rawQuery(selectStr2,null); System.out.println("22222222222222"); cursor2.moveToFirst(); Stringname=null; Stringtel=null; do{ try{ name=cursor2.getString(0); tel=cursor2.getString(1); }catch(Exceptione){ //TODO:handleexception name=""; tel=""; }while(cursor2.moveToNext()); lxr.setText(name); lxdh.setText(tel); @Override publicvoidonNothingSelected(AdapterView<>arg0){ //TODOAuto-generatedmethodstub spmc.setOnItemSelectedListener(newOnItemSelectedListener(){ @Override publicvoidonItemSelected(AdapterView<>arg0,Viewarg1, intarg2,longarg3){ //TODOAuto-generatedmethodstub sp=spname[arg2]; StringselectStr3="selectpguige,pdanweifromproductswherepname='" +sp+"'"; Cursorcursor3=sDatabase.rawQuery(selectStr3,null); cursor3.moveToFirst(); Stringguige=null; Stringdanwei=null; do{ try{ guige=cursor3.getString(0); danwei=cursor3.getString(1); }catch(Exceptione){ //TODO:handleexception guige=""; danwei=""; }while(cursor3.moveToNext()); spgg.setText(guige); jldw.setText(danwei); @Override publicvoidonNothingSelected(AdapterView<>arg0){ //TODOAuto-generatedmethodstub publicvoidsave(Viewv){ if(spdj.getText().toString().equals("")||spgs.getText().toString().equals("")){ DialogDemo.builder(Tianjiar.this,"提示","請?zhí)顚懲暾畔?); else{ //查詢語句 Stringelxr=lxr.getText().toString(); //定義ID intid=0; Stringselect="selectmax(_id)fromruku"; CursorseCursor=sDatabase.rawQuery(select,null); try{ seCursor.moveToFirst(); id=Integer.parseInt(seCursor.getString(0)); id+=1; }catch(Exceptione){ //TODO:handleexception id=0; sDatabase.execSQL("insertintorukuvalues('"+id+"','" +gs+"','"+elxr+"','"+elxdh+"','"+sp+"','" +espgg+"','"+ejldw+"','"+espdj+"','"+espgs+"','"+da+"')"); Toast.makeText(Tianjiar.this,"添加成功",Toast.LENGTH_LONG).show(); seCursor.close();修改入庫商品信息操作步驟:選擇要修改的入庫商品信息選擇庫存信息管理->入庫操作->修改入庫商品信息用戶可以修改入庫單的基本信息,修改完后點保存如果其中有空項或非法字符,會提示該項不能為空或輸入不合要求.要求用戶重新輸入更新入庫商品信息列表。顯示信息已經(jīng)修改用戶可以繼續(xù)加入入庫商品信息或者點返回進行其它操作刪除入庫商品信息步驟及處理流程:選擇要修改的入庫商品信息選擇庫存信息管理->入庫操作->刪除入庫商品信息如果沒有選擇入庫商品信息,系統(tǒng)會提示沒有選擇入庫商品,要求重新選擇更新供應商信息列表。顯示信息已經(jīng)被刪除信息一旦被刪除將不能被恢復查詢?nèi)霂焐唐沸畔⒉襟E及處理流程:選擇庫存信息管理->入庫操作->查詢?nèi)霂焐唐沸畔⑷绻麤]有入庫商品,系統(tǒng)會提示無入庫商品無法查詢有入庫商品會出現(xiàn)圖3-12所示對話框有兩個選項供查詢:商品名稱和供應商名稱。均無需輸入,可直接從下拉列表中選擇。如果查找不到符合要求的信息,供應商列表為空。用戶可以繼續(xù)查找。輸入正確,入庫商品列表會列出符合查找條件的信息供用戶使用。圖3-12添加入庫2.出庫操作:出庫操作和入庫操作的界面類似,這里不再作過多的講述。只是將供應商信息改為了顧客信息。同樣,顧客信息用戶也是不能夠自己填寫的。如果有新的用戶必須先在基本信息管理的顧客信息管理里面添加顧客信息。然后可以從下拉列表中選擇用戶信息。相關(guān)代碼如下:publicclassChaxuncextendsActivity{ SqlHelpdemodb; inti=0; SQLiteDatabasesDatabase=null; @Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.chaxunc1); setTitle("查詢出庫"); finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this); db=newSqlHelpdemo(getApplicationContext(),"store.db",null,1); sDatabase=db.getWritableDatabase(); listview=(ListView)findViewById(R.id.kehulist); List<Map<String,Object>>slist=newArrayList<Map<String,Object>>(); StringselectStr="select_id,comname,pername,tel,products,guige,danwei,danjia,num,datefromchuku"; 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>(); map.put("id",id[i]); map.put("chuanzhen",chuanzhen[i]); map.put("web",web[i]); slist.add(map); listview.setAdapter(simple); listview.setOnItemClickListener(newOnItemClickListener(){ @Override publicvoidonItemClick(AdapterView<>arg0,Viewarg1,intarg2, longarg3){ //TODOAuto-generatedmethodstub for(inti=0;i<cname.length;i++){ if(arg2==i){ builder.setTitle("確認消息"); builder.setMessage("確定要刪除該出庫嗎?"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度大型酒店水電設(shè)施升級改造合同范本3篇
- 2024年公司企業(yè)管理制度
- 2024集成電路設(shè)計與制造許可合同
- 2024運輸合同海上貨物運輸合同
- 2024年4月全國自考《管理信息系統(tǒng)》試題
- 2024環(huán)??萍脊九c政府廢棄物處理項目合同
- 群體學習理論視角下的教研群體認知發(fā)展的研究與實踐
- 2024款自行車買賣標準協(xié)議范本下載版
- 動物藥理知到智慧樹章節(jié)測試課后答案2024年秋遼寧農(nóng)業(yè)職業(yè)技術(shù)學院
- 公安保密知識培訓課件
- 人教版五年級上冊數(shù)學教學總結(jié)
- XX行業(yè)發(fā)展趨勢分析報告未來五年的機遇與挑戰(zhàn)ppt模板
- 110kv各類型變壓器的計算單
- 小升初語文文言文閱讀歷年真題50題(含答案解析)
- 自動化設(shè)備設(shè)計規(guī)范
- 公路工程勘察設(shè)計投標方案(技術(shù)標)
- 辦公室干部學習對新時代辦公廳工作重要指示心得體會
- 中小學人工智能課程指南及教材介紹
- 內(nèi)分泌專業(yè)臨床路徑大全
- 做一個遵紀守法的好學生主題班會-課件
- 加油站反恐專項經(jīng)費保障制度
評論
0/150
提交評論