freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

用友nc報(bào)表開(kāi)發(fā)教程全-在線瀏覽

2024-09-09 00:04本頁(yè)面
  

【正文】 圖 二8 查詢引擎權(quán)限分配如果想做更細(xì)粒度的資源權(quán)限控制,比如建立基于創(chuàng)建者的權(quán)限體系,或者對(duì)查詢?cè)O(shè)計(jì)者的可查數(shù)據(jù)字典進(jìn)行限制,則需要通過(guò)下文介紹的管理插件和設(shè)計(jì)插件技術(shù)進(jìn)行開(kāi)發(fā)。查詢引擎的查詢模型(數(shù)據(jù)模型)設(shè)計(jì)如下:圖 三1 查詢模型示意圖查詢?cè)O(shè)計(jì)態(tài)和運(yùn)行態(tài)的基本流程如下圖所示:圖 三2 查詢模型流程1. 參數(shù)控制參數(shù)是查詢模型中代表動(dòng)態(tài)信息的元素。過(guò)濾型參數(shù):如果創(chuàng)建某個(gè)參數(shù)的作用是根據(jù)其取值的不同改變WHERE條件的設(shè)置,則這類(lèi)參數(shù)成為過(guò)濾型參數(shù),這是最常用的參數(shù)功能(參數(shù)的FAQ可以參見(jiàn)附錄)。數(shù)據(jù)類(lèi)型包括自由錄入、枚舉、參照幾種,當(dāng)類(lèi)型為枚舉時(shí),枚舉項(xiàng)為用“”分隔的枚舉值,或者是一個(gè)單字段的查詢SQL;當(dāng)類(lèi)型為參照時(shí),枚舉項(xiàng)為基礎(chǔ)參照名,或者是用尖括號(hào)括起的自定義參照的類(lèi)名。這里當(dāng)篩選條件是待定條件的時(shí)候,雙擊“值”,文本框,就可以彈出參數(shù)選擇對(duì)話框,點(diǎn)擊選擇對(duì)應(yīng)的參數(shù)即可。當(dāng)報(bào)表引用了多個(gè)查詢時(shí),參數(shù)將通過(guò)多頁(yè)簽設(shè)置,每個(gè)頁(yè)簽代表一個(gè)查詢。這種參數(shù)通常相當(dāng)于preparestatment中的?占位符,關(guān)于替換型參數(shù),后面的章節(jié)中還有詳細(xì)介紹。2. SQL設(shè)計(jì)SQL設(shè)計(jì)包括向?qū)гO(shè)計(jì)方式和手工設(shè)計(jì)方式,無(wú)論采用哪種,在完成設(shè)計(jì)時(shí)系統(tǒng)均會(huì)對(duì)SQL進(jìn)行合法性校驗(yàn),如未通過(guò)校驗(yàn)則不能保存設(shè)計(jì)。 數(shù)據(jù)字典前面已經(jīng)提到過(guò),查詢對(duì)象的屬性中包含數(shù)據(jù)源信息,因此在設(shè)計(jì)查詢的時(shí)候需要加載相應(yīng)數(shù)據(jù)源的數(shù)據(jù)字典。NC數(shù)據(jù)字典提供了統(tǒng)一的數(shù)據(jù)建模平臺(tái),支持對(duì)各種數(shù)據(jù)庫(kù)對(duì)象進(jìn)行管理,維護(hù)這些物理對(duì)象的邏輯屬性,并向外系統(tǒng)提供訪問(wèn)數(shù)據(jù)庫(kù)邏輯信息的接口。由于多數(shù)報(bào)表的列與業(yè)務(wù)數(shù)據(jù)庫(kù)的字段存在某種對(duì)應(yīng)關(guān)系,因此數(shù)據(jù)字典的存在有助于提高查詢定義的直觀性和易用性。導(dǎo)入方式包括三種(詳細(xì)操作可參見(jiàn)《數(shù)據(jù)字典導(dǎo)入說(shuō)明》): 解析PDM文件(xml格式); 解析NC標(biāo)準(zhǔn)建庫(kù)腳本; 提取數(shù)據(jù)庫(kù)元數(shù)據(jù);如果需要給非NC數(shù)據(jù)庫(kù)(比如用戶采用的第三方數(shù)據(jù)庫(kù))生成數(shù)據(jù)字典,可以利用PowerDesigner提供的逆向工程功能將庫(kù)里的物理表生成PDM文件,修改其中表和字段的中文名稱(chēng),然后以xml文件格式存儲(chǔ),再使用上述第一種方法導(dǎo)入。 向?qū)гO(shè)計(jì)向?qū)гO(shè)計(jì)參考典型SQL的構(gòu)成規(guī)則,充分利用數(shù)據(jù)字典的功能,引導(dǎo)用戶一步步完成SQL的設(shè)計(jì),因此是推薦使用的方式。(1) 表定義:即SQL語(yǔ)句中的from部分,可以利用數(shù)據(jù)字典選擇庫(kù)里的數(shù)據(jù)表,也可以選擇查詢對(duì)象,從而實(shí)現(xiàn)查詢的集成(基于查詢結(jié)果定義新的查詢)。圖 三9 連接定義224。高級(jí)模式(3) 字段定義:即SQL語(yǔ)句中的select部分,可以定義任何SQLSERVER語(yǔ)法支持的查詢表達(dá)式,但要保證字段別名不重復(fù)且使用規(guī)范名稱(chēng)(以字母開(kāi)頭、由字母、數(shù)字、下劃線組成的字符串,且不能使用SQL保留字)。V5中增添了這樣的功能,可以在查詢字段中添加NC的公式,但是這些公式需要特定的格式,例如取得前臺(tái)數(shù)據(jù)庫(kù)緩存中某表的一個(gè)或多個(gè)字段,可以使用’{getColvalue(xx,yy,zz)}’,請(qǐng)注意單引號(hào)和大括號(hào)是必須的。所以這里的公式是基于最終結(jié)果集的。如果是待定條件,在值編輯框獲得焦點(diǎn)時(shí)雙擊編輯框可彈出參數(shù)界面并作引用(或者在值編輯框獲得焦點(diǎn)時(shí)按F12鍵或者雙擊彈出參數(shù)引用框);如果是固定條件,在值編輯框獲得焦點(diǎn)時(shí)按F11鍵或者雙擊可彈出環(huán)境變量引用框,按F12鍵可彈出所引用的基礎(chǔ)數(shù)據(jù)表的參照。Having頁(yè)簽?zāi)J(rèn)是隱藏的,可以在查詢定義框的南部面板按Ctrl+Shift+鼠標(biāo)左鍵彈出隱藏的Having頁(yè)簽。圖 三14 排序字段定義(6) 向?qū)гO(shè)計(jì)完成后在查詢定義框的南部面板鼠標(biāo)雙擊可彈出向?qū)傻牡刃QL(待定條件全用(1=1)代替)。實(shí)際上,每次做完查詢?cè)O(shè)計(jì)之后點(diǎn)擊確定時(shí),我們都會(huì)試執(zhí)行一下您的SQL語(yǔ)句,但是并不查出數(shù)據(jù)來(lái),如果您的查詢?cè)O(shè)計(jì)最終生成的SQL語(yǔ)句有問(wèn)題,那么就會(huì)有相應(yīng)的出錯(cuò)提示。 手工設(shè)計(jì)手工設(shè)計(jì)是支持自由SQL的方式,由于復(fù)雜SQL在解析、適配、執(zhí)行等方面的不穩(wěn)定性較大,因此不推薦普通用戶使用。如圖313,注意,我們?cè)赟QL定義里用到了一個(gè)替換型參數(shù)(pk_corp),這里替換型參數(shù)也必須在前面參數(shù)定義中定義,并且參數(shù)名要以開(kāi)頭并且以結(jié)尾。 圖 三17 SQL錄入3) 字段顯示名設(shè)置:系統(tǒng)通過(guò)對(duì)用戶錄入SQL的解析獲得字段信息,并向用戶提供輸入字段顯示名的機(jī)會(huì),顯示名的默認(rèn)值與查詢字段的物理名相同。但是這個(gè)功能我們可以通過(guò)投影交叉來(lái)實(shí)現(xiàn)。下面我們要分別介紹這兩種交叉功能。 投影交叉(第一類(lèi)交叉):假定有一個(gè)查詢SQL,其查詢結(jié)果是單行單列的匯總值,另外還有兩組WHERE條件的序列,分別為橫向序列(WhereXWhereX……、WhereXn)和縱向序列(WhereYWhereY……、WhereYn),則數(shù)據(jù)矩陣A(aij)對(duì)應(yīng)的結(jié)果集成為投影交叉,如果aij是WhereXi和WhereYj同時(shí)作用在上述SQL上獲得的結(jié)果。旋轉(zhuǎn)交叉為我們提供了這樣的功能。 旋轉(zhuǎn)交叉(第二類(lèi)交叉):此類(lèi)交叉用于顯示表中某幾個(gè)字段(稱(chēng)為交叉值字段)的統(tǒng)計(jì)值,并將其分組放置在查詢結(jié)果中,一組列在數(shù)據(jù)表的左側(cè)(稱(chēng)為交叉行字段),一組列(稱(chēng)為交叉列字段)旋轉(zhuǎn)到數(shù)據(jù)表的上部成為列表頭,統(tǒng)計(jì)值則放在對(duì)應(yīng)的交叉單元。,假定我們進(jìn)行如下的旋轉(zhuǎn)交叉設(shè)置:圖 三28 旋轉(zhuǎn)交叉設(shè)置這里交叉砝碼的意思是指交叉值列在旋轉(zhuǎn)后的位置。 在旋轉(zhuǎn)交叉設(shè)置界面上單擊行,列,值標(biāo)簽(在圖318中用藍(lán)色框標(biāo)示的位置),可彈出交叉行列復(fù)合維度設(shè)置和是否小計(jì)的設(shè)置框。 復(fù)合維度:設(shè)置復(fù)合維度是為了減少冗余數(shù)據(jù)的出現(xiàn),舉例說(shuō)明如下圖是沒(méi)有設(shè)置復(fù)合圖 三33 沒(méi)有設(shè)置復(fù)合維度維度的交叉結(jié)果,我們把交叉行和交叉列中的每一項(xiàng)當(dāng)作一個(gè)數(shù)據(jù)維度,則該原始表就存在三個(gè)維度,分別是部門(mén)編碼、部門(mén)名稱(chēng)和民族,然后我們把處于交叉值的人數(shù)列中的數(shù)據(jù)“投影”到這個(gè)三維的數(shù)據(jù)空間中。 交叉值合計(jì):在點(diǎn)擊交叉設(shè)置中的“值”字樣,可以彈出如圖 三32的對(duì)話框,在這里可以設(shè)置是否對(duì)交叉值進(jìn)行合計(jì),如是設(shè)置過(guò)合計(jì)的結(jié)果:圖 三37旋轉(zhuǎn)交叉結(jié)果(設(shè)置了合計(jì))關(guān)于旋轉(zhuǎn)交叉的更細(xì)節(jié)的內(nèi)容,請(qǐng)參考附錄的交叉表使用樣例。 SQL整理(SQL Repair):指在SQL查詢之前,對(duì)SQL所作的調(diào)整。SQL整理的具體內(nèi)容由內(nèi)嵌的代碼片段描述(這與后面將介紹的數(shù)據(jù)加工和穿透規(guī)則一樣),代碼的錄入可通過(guò)編碼向?qū)f(xié)助完成,盡管如此,這幾種功能仍然推薦由高級(jí)實(shí)施人員或程序員使用。圖 三38 SQL整理代碼在圖示的SQL整理代碼中,表達(dá)了這樣一個(gè)整理愿望:當(dāng)參數(shù)showtype的取值等于“明細(xì)”時(shí),取出所有定義的查詢字段表達(dá)式,并且去除匯總函數(shù)(sum),然后增加一個(gè)分錄摘要字段,并且設(shè)置分組列為空,實(shí)際上這里不僅僅能夠修改查詢字段及其表達(dá)式,更可以增加或者刪除查詢所引用的表,連接條件,排序分組字段,甚至可以手工寫(xiě)一個(gè)查詢定義,并且把手寫(xiě)的查詢定義設(shè)置為主查詢定義。以下簡(jiǎn)單介紹幾種SQL整理算法的編碼向?qū)褂梅椒ǎ海?) 追加查詢表:參數(shù)為待追加的表物理名。圖 三40 追加連接條件向?qū)В?) 追加查詢字段:與追加表同時(shí)使用,參數(shù)為追加字段的表達(dá)式、顯示名和別名。圖 三42 按參數(shù)追加條件向?qū)?數(shù)據(jù)加工相關(guān)的算法又稱(chēng)為加工濾鏡,濾鏡通常支持輸入多個(gè)結(jié)果集和輸出一個(gè)結(jié)果集,并可以嵌套使用。在數(shù)據(jù)加工中把新的數(shù)據(jù)集設(shè)置為加工成果的方法是:setDataSet(StorageDataSet ds)。圖示的數(shù)據(jù)加工代碼把ID分別為“male”和“female”的兩個(gè)結(jié)果集按照deptname字段為鍵進(jìn)行了左外連接,并在連接結(jié)果中保留了“deptname”、“mpsnnum”、“fpsnnum”三列。這里版本號(hào)的意思是使用查詢引擎的哪種版本,默認(rèn)是單數(shù)據(jù)源版本,這樣取數(shù)據(jù)加工數(shù)據(jù)源實(shí)際上就是用戶在查詢引擎環(huán)境變量設(shè)置中設(shè)置的數(shù)據(jù)加工默認(rèn)數(shù)據(jù)源,也可以選擇BPM數(shù)據(jù)源和DW數(shù)據(jù)源,這兩種數(shù)據(jù)源屬于查詢引擎高級(jí)版本應(yīng)用。一個(gè)公式也可以引用另一個(gè)公式列的計(jì)算結(jié)果。圖 三47 結(jié)果集連接向?qū)В?) 結(jié)果集聯(lián)合:指定兩個(gè)列結(jié)構(gòu)相兼容的結(jié)果集,得到聯(lián)合(union)后的結(jié)果。 穿透規(guī)則當(dāng)這種穿透行為傳遞下去,我們就可以了解某張報(bào)表的數(shù)據(jù)明細(xì),甚至追溯到它的數(shù)據(jù)來(lái)源。 查詢間穿透一個(gè)查詢上可以定義多個(gè)穿透規(guī)則,每個(gè)規(guī)則需要指定穿透的目標(biāo)查詢,同時(shí)目標(biāo)查詢上要?jiǎng)?chuàng)建一個(gè)過(guò)濾參數(shù),用于接收穿透區(qū)域的取值。我們希望在瀏覽公司部門(mén)的時(shí)候選中某個(gè)部門(mén)能穿透到部門(mén)人員查詢查看這個(gè)部門(mén)下的所有員工。這里我們選擇公司部門(mén)的部門(mén)編碼(deptcode)列;在部門(mén)人員查詢里加入一個(gè)查詢參數(shù)部門(mén)編碼(deptcode,源查詢列和目標(biāo)查詢參數(shù)名字不一定要相同,但是含義要一致),并在查詢定義里引用該參數(shù)作為過(guò)濾條件??梢赃@樣定義穿透規(guī)則:圖 三49 公司查詢圖 三50 用戶查詢的參數(shù)定義圖 三51 參數(shù)引用圖 三52 用戶查詢的結(jié)果 定義公司部門(mén)的穿透規(guī)則,選擇查詢模型224。下圖所示的穿透規(guī)則表達(dá)了以下的穿透意愿:如果用戶選中了當(dāng)前查詢結(jié)果的某行時(shí),允許用戶根據(jù)選中行的psncode字段取值穿透到另一個(gè)查詢(即目標(biāo)查詢,其ID為“rygzan”),而目標(biāo)查詢的接收參數(shù)為psncode圖 三55 穿透規(guī)則定義向?qū)D 三56 穿透規(guī)則代碼下圖顯示了一個(gè)由人員信息穿透到薪資信息再穿透到同姓員工工資信息,最后穿透到每月明細(xì)的用例,其中第一步穿透是單列等值穿透(相當(dāng)于“人員=’李滌非’”),第二步是非等值穿透(相當(dāng)于“姓名 like ‘李%’”),第三步是多列聯(lián)合穿透(相當(dāng)于“人員=’李屏’ and 年份=’2003’”)。很多業(yè)務(wù)希望根據(jù)報(bào)表追溯來(lái)源數(shù)據(jù),比如從SCM報(bào)表聯(lián)查訂單,從財(cái)務(wù)報(bào)表聯(lián)查憑證,從HR報(bào)表聯(lián)查卡片等等,都可以作為這種需求的典型應(yīng)用。通過(guò)把查詢引擎報(bào)表作為調(diào)用方節(jié)點(diǎn),業(yè)務(wù)節(jié)點(diǎn)作為被調(diào)用方節(jié)點(diǎn),擴(kuò)充穿透規(guī)則機(jī)制和組織傳遞參數(shù)結(jié)構(gòu),就能夠支持基于功能節(jié)點(diǎn)的關(guān)聯(lián)查詢。,繼續(xù)讓我們來(lái)看前面提到的查詢公司下用戶的樣例。具體操作可參見(jiàn)附錄5。用戶首先輸入執(zhí)行查詢所需要的參數(shù)取值(如果有參數(shù)的話),查詢引擎會(huì)根據(jù)該查詢對(duì)象的數(shù)據(jù)源去對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行查詢,在經(jīng)過(guò)查詢結(jié)果集評(píng)估(對(duì)于查詢記錄數(shù)過(guò)大的情況允許用戶優(yōu)化或放棄查詢)之后,把結(jié)果集展現(xiàn)給用戶。圖 三59 查詢預(yù)覽請(qǐng)注意V5版本提供了查詢優(yōu)化的設(shè)置,例如用戶如果執(zhí)行了一個(gè)數(shù)據(jù)量非常大的查詢,這個(gè)查詢本身耗費(fèi)了相當(dāng)長(zhǎng)的時(shí)間,但是用戶只是想瀏覽一下該報(bào)表的大致情況,并不想查看每條數(shù)據(jù),我們?cè)谑走x項(xiàng)定義中可以配置只查詢有限行數(shù)返回給用戶,如下圖所示,用戶可以選擇是否評(píng)估結(jié)果集,因?yàn)樵u(píng)估結(jié)果集要執(zhí)行一條select count(*)的sql語(yǔ)句,如果行數(shù)過(guò)多這條語(yǔ)句可能會(huì)耗時(shí)非常多,用戶可以根據(jù)自己的需要選擇是否評(píng)估,同時(shí)可以設(shè)置警戒行數(shù),超過(guò)警戒行數(shù)的查詢只顯示警戒行數(shù)以內(nèi)的數(shù)據(jù)。后面會(huì)提到,當(dāng)查詢定義與格式定義綁定之后可以從格式界面導(dǎo)出EXCEL,報(bào)表獨(dú)立節(jié)點(diǎn)也支持導(dǎo)出EXCEL。6. 查詢集成 復(fù)合查詢復(fù)合查詢,顧名思義就是基于已定義的查詢繼續(xù)做查詢,從這個(gè)角度來(lái)說(shuō),那些已有查詢和數(shù)據(jù)庫(kù)里的物理表的地位和角色是一樣的。即報(bào)表數(shù)據(jù)可以通過(guò)多個(gè)查詢結(jié)果集相互連接的方式獲得。所以,通常復(fù)合查詢的參數(shù)會(huì)包含它所引用的所有子查詢的參數(shù)的并集。引用了物化表的查詢,用戶可以在首選項(xiàng)配置中選擇是否在執(zhí)行時(shí)提示同步刷新物化臨時(shí)表,如果選擇了提示刷新,則會(huì)按當(dāng)前的參數(shù)設(shè)置傳遞給產(chǎn)生物化表的查詢,重新執(zhí)行得到結(jié)果并更新物化表,再在此基礎(chǔ)上執(zhí)行當(dāng)前查詢;如果未選擇刷新,則直接基于物化表里的已有數(shù)據(jù)執(zhí)行查詢。 由一個(gè)查詢生成物化表,該表會(huì)創(chuàng)建到查詢定義所在的數(shù)據(jù)源(如果是數(shù)據(jù)倉(cāng)庫(kù)下,可通過(guò)切換定義數(shù)據(jù)源查看當(dāng)前所在數(shù)據(jù)源),而不是查詢?nèi)?shù)數(shù)據(jù)源(就是選中查詢后在右邊屬性列表里的數(shù)據(jù)源)。圖 三62 創(chuàng)建物化表圖 三63 在定義查詢時(shí)引用創(chuàng)建的物化表物化臨時(shí)表實(shí)際上就是一張數(shù)據(jù)庫(kù)中的物理表,一旦用戶的業(yè)務(wù)數(shù)據(jù)發(fā)生了改變,那么刷新物化臨時(shí)表是一件非常耗時(shí)的操作,如果用戶的查詢中使用了過(guò)多的物化臨時(shí)表并且選擇了每次刷新,那么效率就會(huì)降低,所以請(qǐng)慎重使用這種功能。 合并查詢有這樣一類(lèi)固定行列結(jié)構(gòu)表樣,在表的不同區(qū)域有不同的數(shù)據(jù)塊(這些塊之間甚至可能沒(méi)有什么聯(lián)系),另外一些區(qū)域還放著一些人為性很強(qiáng)的提示性文字(可能根本無(wú)法從數(shù)據(jù)庫(kù)中查出來(lái)),象這樣的無(wú)規(guī)律報(bào)表其實(shí)是報(bào)表開(kāi)發(fā)中很難處理。合并查詢通常適用于以下兩類(lèi)報(bào)表:(1) 獨(dú)立查詢數(shù)據(jù)與獨(dú)立錄入數(shù)據(jù)相結(jié)合的報(bào)表;(2) 由共用一組參數(shù)的多個(gè)查詢嵌入構(gòu)成報(bào)表;(3)其設(shè)計(jì)效果如下圖所示:圖 三64 合并查詢?cè)O(shè)計(jì)示意但總體來(lái)說(shuō),基于單元取數(shù)公式的EXCEL風(fēng)格報(bào)表更適合用IUFO產(chǎn)品進(jìn)行開(kāi)發(fā)。當(dāng)基本檔案數(shù)據(jù)權(quán)限開(kāi)關(guān)打開(kāi)的時(shí)候,公司用戶在參數(shù)設(shè)置時(shí)點(diǎn)開(kāi)的參照記錄是經(jīng)過(guò)了BD權(quán)限控制的,因此他也就無(wú)法查詢?cè)摰卿浻脩羲哂袡?quán)限之外的數(shù)據(jù)(比如他可訪問(wèn)的部門(mén)集合之外的部門(mén)相關(guān)數(shù)據(jù))。以下內(nèi)置的系統(tǒng)參量(也可以說(shuō)是一種無(wú)須聲明的替換型參數(shù))也常用來(lái)控制行權(quán)限。1. 登錄帳套編碼——LoginAccount2. 登錄公司主鍵——LoginCorp3. 登錄用戶主鍵——LoginUser4. 登錄日期——LoginDate數(shù)據(jù)權(quán)限的列權(quán)限控制比較復(fù)雜,一般可以考慮通過(guò)SQL整理或者掛接報(bào)表模板的方式來(lái)解決。 第四章 格式模型格式模型(又稱(chēng)界面模型)節(jié)點(diǎn)的新建和管理參見(jiàn)第二章。模型的設(shè)計(jì)包括引用查詢,界面可視化設(shè)計(jì),綁定數(shù)據(jù)集,數(shù)據(jù)預(yù)處理等部分。由于同一查詢定義根據(jù)不同參數(shù)設(shè)置也可以得到不同結(jié)果集,所以為了區(qū)分這種綁定基于同一查詢定義的不同結(jié)果集時(shí),
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1