codeslave

          常用鏈接

          統計

          Link

          最新評論

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

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

          2.字段信息由原來的數組改為對象的方式,如:

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

          3.抽象了部分生成條件的函數,這樣對數據庫日后的擴展有利,只要修改highquery.js內的HQConfig的dialect就可以實現生成不同數據庫的sql,如:

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

          這個會自動引入oracle.js,生成的sql就會是oracle數據庫能通過的,如下面的日期:


          如果想用sqlserver數據庫,只要把dialect改為sqlserver就可以了!現在只支持sqlserver和oracle,呵呵!當然還可以自行擴展!

          4.新增了一個實現關聯表選擇的接口,如下圖:



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

          最后,實現這個方法,如:
          // 選擇類別
          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); // 必須返回值(由編號和描述組成的數組)
          }

          必須返回兩個值組成的數組,可以查看源碼中的choicelist.htm。

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

          源碼:highquery0.4.rar

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

          評論

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

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

          建議加上排序字段的選擇。  回復  更多評論   

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

          有待繼續加強,  回復  更多評論   

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

          @august
          非常感謝你的意見

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

          關于第二點,呵呵!說得對,客戶是上帝!其實整體的可操作性真的不是太好,但未想到有更好的方法!

          關于第三點,不知說的是不是數據庫記錄的排序,其實這點我有想過的,但最后沒加上去,主要是生成的排序和條件不應該連在一起,那么就要在返回的時候,把他們分別返回,而且如果有些字段只排序,不作為條件,那么在操作上又要相應地進行處理,因為未考慮得很好,所以最后沒加上去,只能留待下次了!  回復  更多評論   

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

          加強啦?download下來研究一下先,樓主繼續努力!期待更強的功能...  回復  更多評論   

          主站蜘蛛池模板: 雅江县| 富民县| 习水县| 万安县| 奇台县| 内丘县| 罗江县| 资源县| 景宁| 玛多县| 苏尼特左旗| 浦城县| 湘潭市| 昭平县| 子洲县| 陇川县| 巴里| 简阳市| 玛曲县| 两当县| 千阳县| 项城市| 克什克腾旗| 麻城市| 吕梁市| 札达县| 太湖县| 武义县| 武安市| 封开县| 金华市| 云浮市| 玉田县| 安远县| 蒙自县| 历史| 永安市| 石门县| 平果县| 彭阳县| 临泽县|