如何调整sharepoint列表显示视图的内容对齐

如何调整sharepoint列表显示视图的内容对齐

如上图:在sharepoint 2010里如何调整序号、日期、花多少时间字段内容 居中,默认模板感觉有点丑内容都是显示在最上方,调整为都是居中显得好看些,还请高手帮忙指点下

回答: 如何调整sharepoint列表显示视图的内容对齐

  1. 可以改CSS,但是影响太大
    或者通过SPD修改View


    是的 
    可以用f12  开发工具找到影响到它的样式,然后再页面里重写。

sharepoint默认视图分页的问题

  1. Q
    sharepoint list默认会有一个分页的功能,但是写了一个筛选视图的功能后,筛选出来的数据,如果使用sharepoint list默认的分页,点击下一页,它又会把所有数据给显示出来,不是我筛选出来的,这个该怎么解决?
  2. A
    过滤的逻辑不要写在按钮事件里。直接写到OnLoad中。

    直接用这个吧:http://camlquery.codeplex.com/

sharepoint 新建视图时,过滤条件里面如何取[Me]的参数

  1. Q
    我的需求是这样:开发了一个工厂门岗放行系统,将‘等待审批’状态的单据做了一个视图;希望只有本人及审批人员可见;本人可见很简单:created by = [Me] 就可以;但审批人这个属性我用的是文本型approrver_id ; 我希望的过滤结果是 created by = [Me] or approrver_id = Username() ;

    我的问题是,在创建视图时,过滤条件哪里,似乎不支持函数??

    审批人员之所以无法用[personal or group]型,因为我发现,即使开发时在infopath里面指定的类型为[personal or group],但发布到sharepoint时, 它也自动拆分成了3个值:username,userid,usertype ;
  2. A
    貌似这个对你有用的:
     http://www.makdeniz.com/how-to-filter-sharepoint-2010-tasks-which-are-assigned-to-you-and-the-group-your-are-member-of/

sharepoint筛选视图中,创建时间筛选,能添加时分秒么?

  1. Q
    如要创建时间大约2013-09-10的,直接写这个日期就可以。

    如果要小于“2013-09-10T12:12:12Z”包含时间部分要用什么格式呢?
  2. A
    确实 麻烦 哦

SharePoint 安全机制与模式 想法

  1. Q
    如果你了解些 关于Sharepoint安全方面的内容 。
    请来聊一下。
    我写了一篇文章,感觉知识不够啊 。
    http://blog.csdn.net/duanchuanttao/article/details/40822567
  2. A
    感觉,sharepoint的安全更多在服务器层面,我们之前都是装硬件防火墙,服务器杀毒软件什么的;当然,好的管理才是安全的保障,定期备份、修改密码、操作记录什么的;出现问题也好排查,不过真的在项目里,非常少用。
    sharepoint里很少出现sql注入、挂马什么的,至少未曾见到,不过对于安全,基本没在意,呵呵。

Ext.grid.PropertyGrid里的内容如何设置居右

  1. Q
    cis.repository.smap.PropertyGridPanel.superclass.constructor.call(this, {
    		id : 'propGrid',
    		title : this.resourceBundle.FieldLabel.RESULT,
    		frame : true,
    		
    		// autoHeight:true,
    		hideHeaders : true,
    		autoWidth : true,
    		nameWidth : 400,
    		valueWidth : 600,
                      source : {}
    
    
    });
    
    
    Ext.extend(cis.repository.smap.PropertyGridPanel, Ext.grid.PropertyGrid, {});

    如何设置PropertyGridPanel里固定左边表头居右,右边输出内容居左呢??? 很急啊,请教大家了
    问题补充:
    楼下的 这个样式放哪里 能否详细点,你这样我还是不清楚。
    问题补充:
    我是需要source里的固定的表头居右,输出内容居左。 这样式往哪里加啊?
    问题补充:
    你有QQ 或MSN 吗, 我这问题很急
    问题补充:
    这个好像没有用
    问题补充:
    这是我的JSP页面setUserInfo.jsp,按你的加了样式
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%@ include file="../../../common/gui_lib.jsp"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    	<head>
    		<title></title>
    		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    		<script type="text/javascript"
    			src="../../../scripts/repository/ux/XPropertyGrid.js"></script>
    		<script type="text/javascript"
    			src="${pageContext.request.contextPath}/scripts/repository/mobilehome/setUserInfo.js"></script>
    
    		<script type="text/javascript"
    			src="../../../scripts/repository/ux/RowFitLayout.js"></script>
    		<style>  
          .ext-ie .x-menu-item-icon {left: -24px;}   
          .ext-strict .x-menu-item-icon {left: 3px;}   
          .ext-ie6 .x-menu-item-icon {left: -24px;}   
             
          .x-props-grid .x-grid3-hd-name{   
            text-align:right;   
          }   
          .x-props-grid .x-grid3-td-value{   
            text-align:left;   
          }   
      </style>
    
    
    
    		<script type="text/javascript">
         Ext.onReady(function() {
           Ext.QuickTips.init();
           
           var  formpanecondition = new  cis.repository.smap.QueryCondition();
           var  exPropertyGrid = new cis.repository.smap.PropertyGridPanel();
    		 
    		
    		   
         var view=new Ext.Viewport(
              { 
                layout:'row-fit',
                frame:true,
                items:[formpanecondition,exPropertyGrid]
                });
                
              view.doLayout();
              renderTo:'tab1';
            });
            
    </script>
    
    	</head>
    	<body>
    		<div id="tab1"></div>
    	</body>
    </html>
    
    


    这是我的JS文件setUserInfo.jsp
    Ext.ns("cis.repository.smap");
    
    include('scripts/repository/locale/queryHomeUserInfo_zh.js');
    include('scripts/repository/locale/common_zh.js');
    
    cis.repository.smap.QueryCondition = function() {
    
    	var sequenceX = new Ext.form.TextField({
    				allowBlank : false,
    				fieldLabel : this.resourceBundle.FieldLabel.PHONENO,
    				// labelSeparator : '',
    				name : 'sequenceX',
    				anchor : '95%'
    			});
    
    	var queryButton = new Ext.Button({
    
    		text : BUTTON_SEARCH,
    		minWidth : COMMONDATA_QUERY_BUTTON,
    		handler : function() {
    
    			var mk = new Ext.LoadMask("propGrid", {
    				msg : MSG_DATA_LOADING,
    				removeMask : true
    					// 完成后移除
    				});
    			mk.show(); // 显示
    			// var updatePropertyBt = Ext.getCmp("edit-menuitem-btn");
    			if (sequenceX.getValue() != '') {
    				var sequence = sequenceX.getValue();
    				Ext.Ajax.request({
    							url : '../../../extend/mobilehome/searchUserInfo.action',
    							method : 'POST',
    							timeout : "120000",
    							params : {
    								phoneNuber : sequence
    
    							},
    							success : function(form, action) {
    
    								// Ext.getCmp("propGrid").setSource({
    								// "msisdn" : "msisdn",
    								// "prefAreaFlag1" : "prefAreaFlag1"
    								// });
    								mk.hide();
    								var result = Ext.util.JSON
    										.decode(form.responseText);
    								// alert(result.success);
    								// alert("result:" + result.data);
    								// alert(result.msg);
    								// var msisdn = "13957160043";
    								if (result.success == "true") {
    									var gridPanel = Ext.getCmp("propGrid");
    									//alert("---="+result.data.msisdn);
    									gridPanel.setSource({
    										"用户号码" : result.data.msisdn,
    										"业务状态" : result.data.serviceState,
    										"内部套餐号" : result.data.innerPkgid
    											 ,
    											 "优惠区提醒开关" :
    											 result.data.serviceFlag1,
    											 "非优惠区提醒开关" :
    											 result.data.serviceFlag2,
    											 "提醒方式" :
    											 result.data.serviceFlag3,
    											 "业务申请时间" :
    											 result.data.createTime,
    											 "业务开通时间" : result.data.beginTime,
    											 "业务取消时间" : result.data.endtime,
    											 "最近一次提醒注册优惠区时间" :
    											 result.data.lstRegnotifyTime,
    											 "是否启用后备优惠区域1" :
    											 result.data.prefAreaFlag1,
    											 "优惠区1的一天内注册次数" :
    											 result.data.regareAcnt1,
    											 "优惠区域1的最近一次定位时间" :
    											 result.data.lstDetectTime1,
    											 "是否启用后备优惠区域2" :
    											 result.data.prefAreaFlag2,
    											 "优惠区2的一天内注册次数" :
    											 result.data.regareAcnt2,
    											 "优惠区域2的最近一次定位时间" :
    											 result.data.lstDetectTime2,
    											 "是否启用后备优惠区域3" :
    											 result.data.prefAreaFlag3,
    											 "优惠区3的一天内注册次数" :
    											 result.data.regareAcnt3,
    											 "优惠区域3的最近一次定位时间" :
    											 result.data.lstDetectTime3,
    											 "是否启用后备优惠区域4" :
    											 result.data.prefAreaFlag4,
    											 "优惠区4的一天内注册次数" :
    											 result.data.regareAcnt4,
    											 "优惠区域4的最近一次定位时间" :
    											 result.data.lstDetectTime4
    
    										});
    
    									// alert("sdkfjslfjsf");
    									// gridPanel.load();
    									// alert(result.data);
    									// gridPanel.load(result.data);
    									// updatePropertyBt.enable();
    
    								} else {
    									Ext.Msg.show({
    												title : MSG_TITLE,
    												msg : result.msg,
    												buttons : Ext.Msg.OK,
    												icon : Ext.Msg.ERROR
    											});
    								}
    							},
    							failure : function(form, action) {
    								// alert("failure");
    								mk.hide();
    								Ext.Msg.show({
    											title : MSG_TITLE,
    											msg : MSG_EXCEPTION,
    											buttons : Ext.Msg.OK,
    											icon : Ext.Msg.ERROR
    										});
    							}
    						});
    
    			} else {
    				Ext.MessageBox.alert(MSG_TITLE, MSG_FIX_ERROR);
    			}
    		}
    	});
    
    	var resetbutton = new Ext.Button({
    				text : this.resourceBundle.FieldLabel.RESET,
    				handler : function() {
    					queryPhoneNumber.reset();
    				}
    
    			});
    	cis.repository.smap.QueryCondition.superclass.constructor.call(this, {
    				id : 'websmapquerycondition',
    				title : MSG_QUERYCONDITON,
    				width : '100%',
    				collapsible : true,
    				height : 70,
    				bodyStyle : "padding:5px 10px 5px 10px",
    				frame : true,
    				defaults : {
    					anchor : '90%'
    				},
    				items : [{
    							layout : "form",
    							xtype : 'panel',
    							baseCls : "x-plain",
    							labelAlign : 'right',
    							defaults : {
    								baseCls : "x-plain"
    							},
    							items : [{
    										layout : "column",
    										items : [{
    													columnWidth : .33,
    													layout : 'form',
    													height : 25,
    													labelAlign : 'left',
    													labelWidth : 55,
    													items : [sequenceX]
    												}, {
    													columnWidth : .1,
    													layout : 'form',
    													height : 25,
    													buttonAlign : 'right',
    													items : [queryButton]
    												}]
    									}]
    						}]
    			});
    };
    
    Ext.extend(cis.repository.smap.QueryCondition, Ext.form.FormPanel, {});
    
    function updateFNOs(source) {
    	var jsonDataStr = null;
    
    	if (source) {
    		jsonDataStr = Ext.encode(source);
    	}
    	if (jsonDataStr) {
    
    		var mk = new Ext.LoadMask("propGrid", {
    					msg : MSG_DATA_LOADING,
    					removeMask : true
    				});
    		mk.show();
    
    		var requestCg = {
    			url : '../../../extend/mobilehome/editUserInfo.action',
    			method : 'post',
    			params : {
    				jsonData : jsonDataStr
    			},
    			timeout : 120000,
    			callback : function(options, success, response) {
    
    				// alert(success + "\t" + response);
    
    				mk.hide();
    				mk.destroy();
    
    				if (!success) {
    					Ext.MessageBox.show({
    								title : MSG_TITLE,
    								msg : MSG_EXCEPTION,
    								icon : Ext.MessageBox.ERROR,
    								buttons : Ext.MessageBox.OK
    							});
    				} else {
    					if (response) {
    
    						var infoData = Ext.decode(response.responseText);
    						var msg = infoData.msg;
    						var operateRslt = infoData.success;
    
    						if (operateRslt && operateRslt != "true") {
    
    							Ext.MessageBox.show({
    										title : MSG_TITLE,
    										msg : msg,
    										icon : Ext.MessageBox.ERROR,
    										buttons : Ext.MessageBox.OK
    									});
    
    						} else {
    
    							Ext.MessageBox.show({
    										title : MSG_TITLE,
    										msg : msg,
    										icon : Ext.MessageBox.INFO,
    										buttons : Ext.MessageBox.OK
    									});
    						}
    					}
    				}
    			}
    		}
    		Ext.Ajax.request(requestCg);
    
    	} else {
    		return false;
    	}
    
    }
    
    cis.repository.smap.PropertyGridPanel = function() {
    	var menubar = new Ext.Toolbar({
    				items : [{
    							id : 'edit-menuitem-btn',
    							text : "修改",
    							disabled : true,
    							iconCls : 'edit',
    							icon : '../../../images/default/button/edit.gif',
    							handler : function() {
    								var grid = Ext.getCmp("propGrid");
    								if (grid) {
    									var source = grid.getSource();
    									updateFNOs(source);
    									this.disable();
    								}
    							}
    						}]
    			});
    
    	var pStore = new Ext.grid.PropertyStore({});
    	cis.repository.smap.PropertyGridPanel.superclass.constructor.call(this, {
    		id : 'propGrid',
    		title : this.resourceBundle.FieldLabel.RESULT,
    		frame : true,
    		
    		// autoHeight:true,
    		hideHeaders : true,
    		autoWidth : true,
    		nameWidth : 400,
    		valueWidth : 600,
    		// tbar : menubar,
    		style:".x-props-grid .x-grid3-hd-name{ text-align:right;}",
    		customEditors : {
    			"是否启用后备优惠区域1" : new Ext.grid.GridEditor(new Ext.form.ComboBox({
    						editable : false,
    						displayField : 'prefAreaFlag1',
    						mode : 'local',
    						triggerAction : 'all',
    						selectOnFocus : true,
    						store : new Ext.data.SimpleStore({
    									fields : ['prefAreaFlag1'],
    									data : [['未开通'], ['使用正式优惠区'], ['使用后备优惠区']]
    								})
    					}))
    		},
    		source : {
    			"用户号码" : "",
    			"业务状态" : "",
    			"内部套餐号" : "",
    			"优惠区提醒开关" : "",
    			"非优惠区提醒开关" : "",
    			"提醒方式" : "",
    			"业务申请时间" : "",
    			"业务开通时间" : "",
    			"业务取消时间" : "",
    			"最近一次提醒注册优惠区时间" : "",
    			"是否启用后备优惠区域1" : "",
    			"优惠区1的一天内注册次数" : "",
    			"优惠区域1的最近一次定位时间" : "",
    			"是否启用后备优惠区域2" : "",
    			"优惠区2的一天内注册次数" : "",
    			"优惠区域2的最近一次定位时间" : "",
    			"是否启用后备优惠区域3" : "",
    			"优惠区3的一天内注册次数" : "",
    			"优惠区域3的最近一次定位时间" : "",
    			"是否启用后备优惠区域4" : "",
    			"优惠区4的一天内注册次数" : "",
    			"优惠区域4的最近一次定位时间" : ""
    		},
    		
      
    
    		buttons : [{
    			text : '提交',
    			handler : function() {
    				var grid = Ext.getCmp("propGrid");
    				if (grid) {
    					var source = grid.getSource();
    
    					var jsonDataStr = null;
    
    					if (source) {
    						jsonDataStr = Ext.encode(source);
    					}
    					if (jsonDataStr) {
    
    						var mk = new Ext.LoadMask("propGrid", {
    									msg : MSG_DATA_LOADING,
    									removeMask : true
    								});
    						mk.show();
    
    						var requestCg = {
    							url : '../../../extend/mobilehome/editUserInfo.action',
    							method : 'post',
    							params : {
    								jsonData : jsonDataStr
    							},
    							timeout : 120000,
    							callback : function(options, success, response) {
    
    								// alert(success + "\t" + response);
    
    								mk.hide();
    								mk.destroy();
    
    								if (!success) {
    									Ext.MessageBox.show({
    												title : MSG_TITLE,
    												msg : MSG_EXCEPTION,
    												icon : Ext.MessageBox.ERROR,
    												buttons : Ext.MessageBox.OK
    											});
    								} else {
    									if (response) {
    
    										var infoData = Ext
    												.decode(response.responseText);
    										var msg = infoData.msg;
    										var operateRslt = infoData.success;
    
    										if (operateRslt
    												&& operateRslt != "true") {
    
    											Ext.MessageBox.show({
    														title : MSG_TITLE,
    														msg : msg,
    														icon : Ext.MessageBox.ERROR,
    														buttons : Ext.MessageBox.OK
    													});
    
    										} else {
    
    											Ext.MessageBox.show({
    														title : MSG_TITLE,
    														msg : msg,
    														icon : Ext.MessageBox.INFO,
    														buttons : Ext.MessageBox.OK
    													});
    										}
    									}
    								}
    							}
    						}
    						Ext.Ajax.request(requestCg);
    
    					} else {
    						return false;
    					}
    				}
    			}
    		}, {
    			text : this.resourceBundle.FieldLabel.RESET,
    			handler : function() {
    				Ext.getCmp("propGrid").getSource();
    			}
    		}],
    		buttonAlign : 'center'
    
    	});
    };
    
    Ext.extend(cis.repository.smap.PropertyGridPanel, Ext.grid.PropertyGrid, {});
    

    问题补充:
    第二个是setUseInfo.js文件。
    问题补充:
    你本地测试的NAME所对应的 ,明显是居左么。 怎么没问题啊?
    问题补充:
    我的结果:
    Ext.grid.PropertyGrid里的内容如何设置居右

    问题补充:
    我加了.x-props-grid .x-grid3-col-name{  
      text-align:right;  


    第一列内容还是居左的。
    问题补充:
    好了 好了,谢谢你的帮助,很感谢。EXTJS还有很多不懂的地方,希望多多指教 。
    问题补充:
    我能知道你的MSN吗,[email protected]
  2. A
    晕,你不是说只是标题右对齐么...

    内容的话:

    /*第一列表头对齐方式*/
    .x-props-grid .x-grid3-hd-name{
      text-align:right;
    }
    /*第一列内容对齐方式*/
    .x-props-grid .x-grid3-col-name{
      text-align:right;
    }
    /*第二列表头对齐方式*/
    .x-props-grid .x-grid3-td-value{
      text-align:left;
    }
    /*第二列内容对齐方式*/
    .x-props-grid .x-grid3-col-value{
      text-align:left;
    }
    

【散分】一个视图!

  1. Q
    什么是索引视图?
    多年以来,Microsoft® SQL Server™ 一直支持创建称为视图的虚拟表。通常,这些视图的主要作用是:

    提供一种安全机制,将用户限制到一个或多个基表的某个数据子集中。

    提供一种机制,允许开发人员自定义用户通过逻辑方式查看存储在基表中的数据的方式。
    通过 SQL Server 2000,SQL Server 视图的功能得到了扩展,实现了系统性能方面的收益。可在视图上创建唯一的聚集索引及非聚集索引,来提高最复杂的查询的数据访问性能。在 SQL Server 2000 和 2005 中,具有唯一的聚集索引的视图即为索引视图。本文所讨论的内容适用于 SQL Server 2005,其中有许多内容也适用于 SQL Server 2000。 
    从数据库管理系统 (DBMS) 的角度看来,视图是对数据(一种元数据类型)的一种描述。当创建了一个典型视图时,通过封装一个 SELECT 语句(定义一个结果集来表示为虚拟表)来定义元数据。当在另一个查询的 FROM 子句中引用视图时,将从系统目录检索该元数据,并替代该视图的引用扩展元数据。视图扩展之后,SQL Server 查询优化器会为执行查询编译一个执行计划。查询优化器会搜索针对某个查询的一组可能的执行计划,并根据对执行每个查询计划所需的实际时间的估计,选择所能找到的成本最低的计划。
    对于非索引视图,解析查询所必需的视图部分会在运行时被具体化。任何计算(比如:联接或聚合)都在每个引用视图的查询执行时完成1。在视图上创建了唯一的聚集索引后,该视图的结果集随即被具体化,并保存在数据库的物理存储中,从而在执行时节省了执行这一高成本操作的开销。
    在查询执行中,可通过两种方式使用索引视图。查询可直接引用索引视图,或者更重要的是,如果查询优化器确定该视图可替换成本最低的查询计划中的部分或全部查询,那么就可以选定它。在第二种情况中,使用索引视图替代基础表及其一般索引。不必在查询中引用视图以使查询优化器在查询执行时使用该视图。这使得现有的应用程序可以从新创建的索引视图中受益,而不必进行更改。
    注意 索引视图是 SQL Server 2000 和 2005 各版本的一个功能。在 SQL Server 2000 和 2005 的 Developer 和 Enterprise 版本中,查询处理器可使用索引视图来解析结构上与该视图相匹配的查询,即便不按名称来引用视图。在其他版本中,必须按名称来引用视图,并对视图引用使用 NOEXPAND 提示来查询索引视图的内容。
    通过索引视图改善性能
    运用索引提高查询性能不算是一个新概念;但是,索引视图提供了一些借助标准索引无法取得的性能收益。索引视图可通过以下方式提高查询性能:

    可预先计算聚合并将其保存在索引中,从而在查询执行时,最小化高成本的计算。

    可预先联接各个表并保存最终获得的数据集。

    可保存联接或聚合的组合。
    该图说明了当查询优化器使用索引视图时,通常所能取得的性能改进。所列举的查询在复杂性上有所不同(比如:聚合计算的数量、所用表的数量或谓词的数量)并包含来自真实的生产环境的具有数百万行的表。
    【散分】一个视图!

    在视图上使用非聚集索引
    其次,视图上的非聚集索引可提供更好的查询性能。与表上的非聚集索引类似,视图上的非聚集索引可提供更多选项,供查询优化器在编译过程中选择。例如,如果查询包含聚集索引所未涉及的列,那么优化器可在计划中选择一个或多个辅助索引,避免对索引视图或基表进行费时的完全扫描。
    对架构添加索引会增加数据库的开销,因为索引需要持续的维护。在索引数量和维护开销间寻求适当的平衡点时,应谨慎权衡。
    应用索引视图的优点
    在实施索引视图前,分析数据库工作负荷。运用查询及各种相关工具(比如:SQL Profiler)方面的知识来确定可从索引视图获益的查询。频繁发生聚合和联接的情况最适合使用索引视图。无论是否频繁发生,只要某个查询需要很长的响应时间,同时快速获得响应的开销很高,那么就适合使用索引视图。例如,一些开发人员发现为高级主管们在月末运行的报告,创建预先计算和存储查询的应答的索引视图很有用。
    不是所有的查询都能从索引视图中获益。与一般索引类似,如果未使用索引视图,就无法从中受益。在这种情况下,不仅无法实现性能改善,而且会在磁盘空间、维护和优化方面产生额外的成本。然而,当使用索引视图时,可大大改善(在数量级上)数据访问。这是因为查询优化器使用存储在索引视图(大幅降低了查询执行的成本)中预先计算的结果。
    查询优化器仅考虑对具有高成本的查询使用索引视图。从而避免出现这样的情况:在查询优化成本高于使用索引视图所节约的成本时尝试匹配各种索引视图。在成本少于 1 的查询中很好使用索引视图。
    从实施索引视图中获益的应用程序包括:
    •        决策支持工作负荷
    •        数据集市
    •        数据仓库
    •        联机分析处理 (OLAP) 存储和源
    •        数据挖掘工作负荷
    从查询类型和模式方面来看,获益的应用程序一般包含:
    •        大型表的联接和聚合
    •        查询的重复模式
    •        几组相同或重叠的列上的重复聚合
    •        相同键上相同表的重复联接
    •        以上各项的组合
    相反,执行许多写入操作的联机事务处理 (OLTP) 系统或者频繁更新的数据库应用程序可能无法运用索引视图,因为同时更新视图和底层基表会带来更高的维护成本。
    查询优化器如何使用索引视图
    SQL Server 查询优化器自动决定何时对给定的查询执行使用索引视图。不必在查询中直接引用视图以供优化器在查询执行计划中使用。所以,现有的应用程序可运用索引视图,而不用更改应用程序本身;只是必须创建索引视图。
  2. A
    也许吧

DB2 视图优化问题求解

  1. Q
    DB2 视图优化问题求解


    大家好,DB2 数据库中有个视图执行很慢,视图是2个表和1个视图的关联。
    表一数据30W不到,表二数据68W,表一表二是关联主子表。
    以上是DB2数据库中的视图的ACCESS PLAN ,请各位帮忙分析下,如何调整使得这个视图速度查询快些。

    发现data is sorted 消耗很大。为什么要数据排序?
  2. A
    用left join 代替where 连接这三个表 单据对生产对详细物料 

关于”查看所有网站内容“的问题 麻烦帮一下

  1. Q
    Sharepoint "查看所有网站内容”只有在管理员登陆时才显示,其他用户时不显示。 请问该怎么设置 急求 谢谢
  2. A
    <SharePoint:ClusteredSPLinkButton
    id="idNavLinkViewAllV4"
    runat="server"
    PermissionsString="ViewFormPages"


    那个链接需要当前用户有ViewFormPages的权限。
    查看你的Permission Level是不是没有勾选View Pages那个Base Permission:
    关于”查看所有网站内容“的问题 麻烦帮一下

扩展了SHAREPOINT站点后用户权限问题。。

  1. Q
    我把http://server:80扩展到INTERNET区域,IIS站点为http://server:88并采用了FORMS验证方式,其下有三个网站集
    http://server/ 
    http://server/pwa 
    http://server/ssp/admin 

    当我打开http://server:88的时候出现FORMS验证窗口,输入帐户admin以后应该是SHAREPOINT的默认网站内容,但是它说我没有权限查看该网站,而我用的这个帐户是管理员权限的,如果此时我打开 http://server:88/pwa(PROJECT SERVER的站点),则可以以查看pwa的内容,并且是以admin登陆的,权限是管理员。
    我奇怪的是,为什么我能查看这个sharepoint的子站,但是却没有权限访问sharepoint的默认网站
  2. A
    可能需要在“管理中新”-》“应用程序管理”界面中的web应用程序的策略下面修改一下权限。只是猜测,我用Sharepoint也遇到了很多莫名的问题。。。。。。。。。。。。