codeslave

          常用鏈接

          統(tǒng)計(jì)

          Link

          最新評(píng)論

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

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

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

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

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

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

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


          如果想用sqlserver數(shù)據(jù)庫(kù),只要把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''類(lèi)別''varchar''1''choiceCategory')); // 必須實(shí)現(xiàn)choiceCategory這個(gè)方法

          最后,實(shí)現(xiàn)這個(gè)方法,如:
          // 選擇類(lèi)別
          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。

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

          源碼:highquery0.4.rar

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

          評(píng)論

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

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

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

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

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

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

          @august
          非常感謝你的意見(jiàn)

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

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

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

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

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

          主站蜘蛛池模板: 会昌县| 阿图什市| 锡林浩特市| 宜昌市| 安陆市| 个旧市| 岚皋县| 丹巴县| 新昌县| 广丰县| 平遥县| 曲靖市| 辉南县| 翁源县| 泽普县| 盐源县| 平泉县| 泸定县| 莎车县| 根河市| 四会市| 边坝县| 南开区| 苏尼特右旗| 许昌县| 正蓝旗| 神池县| 桦南县| 民县| 屏南县| 肥城市| 南阳市| 渑池县| 桦南县| 西乌珠穆沁旗| 辉县市| 嫩江县| 兰坪| 昌乐县| 宁晋县| 德阳市|