99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁職業(yè)發(fā)展利用PB動態(tài)創(chuàng)建數(shù)據(jù)窗口
利用PB動態(tài)創(chuàng)建數(shù)據(jù)窗口
2016-03-05
收藏

利用PB動態(tài)創(chuàng)建數(shù)據(jù)窗口

當利用PowerBuilder建立數(shù)據(jù)窗口時,用戶通常不能自己選擇數(shù)據(jù)來源和顯示類型。如何讓用戶在應用程序中自己定義數(shù)據(jù)窗口的數(shù)據(jù)來源和顯示類型呢?為了達到這個目的,我們必須在運行程序階段根據(jù)用戶自己的需求,動態(tài)地建立一個數(shù)據(jù)窗口。筆者將結(jié)合實際,詳細介紹動態(tài)創(chuàng)建數(shù)據(jù)窗口的步驟。 在建立動態(tài)數(shù)據(jù)窗口之前,必須先得到數(shù)據(jù)窗口對象的語法,PB中為我們提供了SyntaxFromSQL( )函數(shù),利用這個函數(shù)可以得到建立數(shù)據(jù)窗口的語法。SyntaxFromSQL()函數(shù)的基本格式如下: 事物對象.SyntaxFromSQL(數(shù)據(jù)來源字符串,顯示類型字符串,錯誤字符串) 下面是建立一個數(shù)據(jù)窗口對象語法的范例∶

// 聲明變量
string ls_sql, ls_present,ls_err, ls_syntax
// 定義數(shù)據(jù)窗口的數(shù)據(jù)來源
ls_sql = "select emp_id from employee"
//定義數(shù)據(jù)窗口顯示字符串
ls_present = "style(type=tabular)"
// 得到建立數(shù)據(jù)窗口對象語法
// 如果錯誤發(fā)生,SyntaxFromSQL 返回一個空字符串
ls_errls_syntax = SQLCA.SyntaxFromSQL(ls_sql, ls_present , ls_err)
利用 SyntaxFromSQL( )所建立的數(shù)據(jù)窗口對象是在運行階段才建立的對象,并不會自動保存在PB的對象數(shù)據(jù)庫 Library 中。為了以后可以重復使用這個數(shù)據(jù)窗口對象,可以利用 LibraryImport( )函數(shù)保存數(shù)據(jù)窗口對象。 在利用 SyntaxFromSQL( )函數(shù)建立一個數(shù)據(jù)窗口語法后,必須將它與窗口上的數(shù)據(jù)窗口控件結(jié)合,這個數(shù)據(jù)窗口控件必須已經(jīng)存在于窗口中 。要將數(shù)據(jù)窗口對象語法和一個已經(jīng)存在的數(shù)據(jù)窗口控件結(jié)合,必須利用Create( )函數(shù),下面是范例程序∶
// 聲明變量string ls_syntax ,ls_err
ls_errdw_1.Create(ls_syntax, ls_err)
dw_1.SetTransobject(SQLCA)
dw_1.retrieve( )
在上面程序中,ls_syntax是運行SyntaxFromSQL( )函數(shù)后所返回的字符串。除此之外,也可以利用LibraryExport( )函數(shù)從PB對象數(shù)據(jù)庫中得到已經(jīng)存在于PBL中的數(shù)據(jù)窗口對象語法。因為Create( )函數(shù)會破壞先前數(shù)據(jù)窗口與事物對象的結(jié)合,所以必須利用SetransObject( )函數(shù)重新結(jié)合事物對象給新的數(shù)據(jù)窗口對象,最后再運行Retrieve( )函數(shù),從數(shù)據(jù)庫中讀取數(shù)據(jù)。 最后,我們需要利用SQL 語句字符串,動態(tài)創(chuàng)建一個新的數(shù)據(jù)窗口對象到一個數(shù)據(jù)窗口控件當中。雖然,在運行階段并不能直接在窗口上建立一個數(shù)據(jù)窗口控件,但卻可以利用用戶對象建立一個與窗口上一樣的數(shù)據(jù)窗口控件,在運行階段時再動態(tài)打開這個用戶對象。下面是動態(tài)建立數(shù)據(jù)窗口控件的步驟∶

在用戶對象畫板內(nèi),建立一個標準數(shù)據(jù)窗口的用戶類。

可以在這個控件中增加功能、程序、用戶對象函數(shù)和用戶自定義事件后,保存用戶對象到對象數(shù)據(jù)庫中。

利用 OpenUserObject( )函數(shù)建立一個數(shù)據(jù)窗口用戶對象的復件,一般格式如下∶OpenUserObject(用戶對象變量,{x坐標值,y坐標值})。下面是在窗口上鼠標點擊的坐標位置建立一個用戶對象 u_dw的范例∶ OpenUserObject(u_dw, Pointerx( ),Pointery( ))
以上是建立一個動態(tài)數(shù)據(jù)窗口的基本步驟,感興趣的讀者不妨一試。

SQL

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }