codeslave

          常用鏈接

          統(tǒng)計(jì)

          Link

          最新評(píng)論

          javascript高級(jí)組合查詢控件(0.4更新)

          相對(duì)之前的版本,代碼方面進(jìn)行比較大的修改,主要內(nèi)容如下:
          1.把html與js分離了。

          2.字段信息由原來的數(shù)組改為對(duì)象的方式,如:

          FieldList.add(new Field('No''編號(hào)''number''10'''));
          FieldList.add(
          new Field('Name''名稱''varchar''100'''));
          FieldList.add(
          new Field('Date_Type''日期''date''19'''));

          3.抽象了部分生成條件的函數(shù),這樣對(duì)數(shù)據(jù)庫日后的擴(kuò)展有利,只要修改highquery.js內(nèi)的HQConfig的dialect就可以實(shí)現(xiàn)生成不同數(shù)據(jù)庫的sql,如:

          // 配置
          function HQConfig()
          {
              
          this.dialect = "oracle"// 方言
              
          //this.basePath = ""; // 基礎(chǔ)路徑
              this.version = "0.4"// 版本
          }

          這個(gè)會(huì)自動(dòng)引入oracle.js,生成的sql就會(huì)是oracle數(shù)據(jù)庫能通過的,如下面的日期:


          如果想用sqlserver數(shù)據(jù)庫,只要把dialect改為sqlserver就可以了!現(xiàn)在只支持sqlserver和oracle,呵呵!當(dāng)然還可以自行擴(kuò)展!

          4.新增了一個(gè)實(shí)現(xiàn)關(guān)聯(lián)表選擇的接口,如下圖:



          上面的選擇框必須獨(dú)立去實(shí)現(xiàn),然后在新增字段時(shí)加入一個(gè)方法名,如"choiceCategory":
          FieldList.add(new Field('Category''類別''varchar''1''choiceCategory')); // 必須實(shí)現(xiàn)choiceCategory這個(gè)方法

          最后,實(shí)現(xiàn)這個(gè)方法,如:
          // 選擇類別
          function choiceCategory()
          {
              
          var config = "scrollbars=no;status=no;dialogLeft="+300+"px;dialogTop="+200+"px;dialogWidth="+170+"px;dialogHeight="+130+"px";
              
          return window.showModalDialog("choicelist.htm"null, config); // 必須返回值(由編號(hào)和描述組成的數(shù)組)
          }

          必須返回兩個(gè)值組成的數(shù)組,可以查看源碼中的choicelist.htm。

          呵呵!看起來比較煩,但對(duì)于一個(gè)關(guān)聯(lián)表上是有大量數(shù)據(jù)時(shí),這種方式比較好的,原因是開發(fā)人員可以自行去實(shí)現(xiàn)自已的選擇框,比如加上查詢過濾條件或者是分頁之類的,這樣用起來就更加靈活了。
          當(dāng)然,對(duì)于關(guān)聯(lián)表上是少量數(shù)據(jù),又或者那種很少變化的業(yè)務(wù)字典,如狀態(tài)(啟用,停用);這種類型采用上面的方式就真的實(shí)在太麻煩了,由于時(shí)間的問題,這個(gè)版本還沒實(shí)現(xiàn)優(yōu)化這方面,只能留到下一版本了!

          源碼:highquery0.4.rar

          posted on 2008-07-30 19:03 codeslave 閱讀(2433) 評(píng)論(4)  編輯  收藏 所屬分類: script

          評(píng)論

          # re: javascript高級(jí)組合查詢控件(0.4更新) 2008-07-30 21:08 august

          想問一下,所選條件來自不同的表時(shí)如何進(jìn)行數(shù)據(jù)庫查詢,用表名.字段名嗎?
          另外我覺得添加條件時(shí)候,關(guān)于左括號(hào)、右括號(hào)這樣的方式太繁瑣。給客戶用,客戶可能會(huì)不習(xí)慣。

          建議加上排序字段的選擇。  回復(fù)  更多評(píng)論   

          # re: javascript高級(jí)組合查詢控件(0.4更新) [未登錄] 2008-07-30 22:43 eric

          有待繼續(xù)加強(qiáng),  回復(fù)  更多評(píng)論   

          # re: javascript高級(jí)組合查詢控件(0.4更新) 2008-07-31 11:33 codeslave

          @august
          非常感謝你的意見

          關(guān)于第一點(diǎn),現(xiàn)在只提供一個(gè)回填的接口,就是說沒有快捷的方法,只能自已實(shí)現(xiàn)來自其他表的查詢,而這個(gè)接口只是把值回填進(jìn)去,這種在大量數(shù)據(jù)時(shí)是可取的,但少量數(shù)據(jù)或者業(yè)務(wù)字典就太麻煩了,不可取,下次就會(huì)完善這個(gè)地方,呵呵!而提到的“表名、字段名”這種方式,就必需要同某種服務(wù)端語言(java、c#等)掛勾了,這樣好似變成緊藕合了,暫時(shí)還不想這樣做,讓他更獨(dú)立一點(diǎn)。

          關(guān)于第二點(diǎn),呵呵!說得對(duì),客戶是上帝!其實(shí)整體的可操作性真的不是太好,但未想到有更好的方法!

          關(guān)于第三點(diǎn),不知說的是不是數(shù)據(jù)庫記錄的排序,其實(shí)這點(diǎn)我有想過的,但最后沒加上去,主要是生成的排序和條件不應(yīng)該連在一起,那么就要在返回的時(shí)候,把他們分別返回,而且如果有些字段只排序,不作為條件,那么在操作上又要相應(yīng)地進(jìn)行處理,因?yàn)槲纯紤]得很好,所以最后沒加上去,只能留待下次了!  回復(fù)  更多評(píng)論   

          # re: javascript高級(jí)組合查詢控件(0.4更新) 2008-07-31 12:10 greengrass

          加強(qiáng)啦?download下來研究一下先,樓主繼續(xù)努力!期待更強(qiáng)的功能...  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 马公市| 银川市| 泗洪县| 姚安县| 扶沟县| 专栏| 上饶县| 平乐县| 吴旗县| 山阳县| 台中市| 右玉县| 报价| 隆德县| 白朗县| 新源县| 绵竹市| 寻乌县| 金山区| 邯郸县| 华宁县| 高邮市| 金阳县| 饶阳县| 德兴市| 邻水| 鄯善县| 山东| 乌审旗| 桦南县| 张家港市| 白山市| 弋阳县| 德保县| 双峰县| 莱阳市| 盘山县| 顺义区| 布尔津县| 旬邑县| 仁寿县|