PSPCommunity.org ورود | ثبت نام | كمك
نمایش ID در NewForm

مراحل زیر را دنبال نمایید تا شناسه هر آیتم شما قبل از ثبت از URL در ستون مربوطه ظاهر گردد :

1- در لیست مورد نظر خود نمای Newform  را انتخاب نمایید .

2- در انتهای URL بنویسید PageView=Shared&ToolPaneView=2&

3-یک Content Editor Webpart در صفحه اضافه کنید و کد زیر را در قسمت Source قرار دهید :

<script type="text/javascript">
_spBodyOnLoadFunctionNames.push("fillDefaultValues");
function fillDefaultValues() {
  var qs = location.search.substring(1, location.search.length);
  var args = qs.split("&amp;");
  var vals = new Object();
  for (var i=0; i &lt; args.length; i++) {
    var nameVal = argsIdea.split("=");
    var temp = unescape(nameVal[1]).split('+');
    nameVal[1] = temp.join(' ');
    vals[nameVal[0]] = nameVal[1];
  }
  setTextFromFieldName("ItemID", vals["ItemID"]);

  //two parameters to copy query string to field
  switchback("ItemID"); //another parameter to reset the field if changed
}
function setTextFromFieldName(fieldName, value) {
  if (value == undefined) return;
  var theInput = getTagFromIdentifierAndTitle("input","",fieldName);
  theInput.value=value;
}
function getTagFromIdentifierAndTitle(tagName, identifier, title) {
  var len = identifier.length;
  var tags = document.getElementsByTagName(tagName);
  for (var i=0; i &lt; tags.length; i++) {
    var tempString = tagsIdea.id;
    if (tagsIdea.title == title &amp;&amp; (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) {
      return tagsIdea;
    }
  }
  return null;
}
function switchback(fieldName){
    var switchInput = getTagFromIdentifierAndTitle("input","",fieldName);
    switchInput.onchange = fillDefaultValues;
}
</script>
قسمت دوم – Business Data Catalog

USING THE BDC WEB PARTS

تعداد زیادی وب پارت از BDC وجود دارد که به شما اجازه می دهد که دیتای BDC را در صفحات وب پارتی نمایش دهید و با استفاده از اتصال بین وب پارت ها این دیتا های BDC نیز که درون وب پارت ها قرار دارند به هم متصل شوند .

در اینجا ما بر روی وب پارت های Business Data Item وBussiness Data List بحث می نماییم .

Business Data Item فقط یک ردیف ازجدول را در یک زمان نمایش می دهد . Business Data List تمام آیتم های جدول که در فایل XML آمده را نمایش میدهد .

برای ایجاد وب پارت Business Data List ، این وب پارت را به صفحه تان اصافه نمایید وProperties آن را ویرایش نمایید .

گزینه Browse را بزنید و سپس جدول خود را که می خواهید اضافه نمایید را انتخاب نمایید .در اینجا برای مثال Production Product Entity آمده است .

با زدن OK تمام اطلاعت ستون ها از داخل فایل به وب پارت منتقل می شود و ما می توانیم با اینکه چه ستون هایی قابل نمایش باشند این وب پارت را مدیریت کنیم .در قسمت بالای وب پارت گزینه Edit View را بزنید برای اینکه بعضی از ستون ها را نمایش ندهیم که میتوان همچنین Pagination, Sorting, Filtering و ترتیب نمایش ستون ها را نیز تغییر داد .

وب پارت بعدی که می خواهیم راه اندازی کنیم وب پارت Business Data Item است که در یک زمان تنها یک آیتم را نمایش می دهد .می خواهیم یک آیتم را در یک زمان بوسیله استفاه از Connection بین وب پارت ها نمایش دهیم .

در همان صفحه یک وب پارت Business Data Item اضافه کنید و Properties آن را باز کنی سپس و برای آن موجودیت Product را انتخاب می نماییم .

برای افزودن Connection منوی وب پارت Business Data List را انتخاب و Connection را روی Business Data Item انتخاب می نماییم .

USING BDC DATA IN COLUMNS

می توانید دیتای BDC را در ستون های لیست و کتابخانه شیرپوینت جستجو و ذخیره کنید . بنابراین می تواند برای توصیف مستندات و یا آیتم های لیست استفاده شود . سپس می توانید مستندات یا آیتم های لیست را روی دیتای BDC فیلتر نمایید. می توانید نما ایجاد کنید و مستندات را بر مبنای MetaData جستجو کنید .

باز می شود متا دیتا را وقتی ایجاد می شود، نمایش می دهد .Word بالایی که در منوی

وقتی درون این Box ها کلیدی را وارد می کنید وجود آن در پایگاه داده بررسی می شود که اصلا وجود دارد یا خیر .

زمانیکه یک دیتای صحیح را وارد می کنید در این Box ها ، بقیه ستون ها اطلاعات دیگر را از پایگاه داده واکشی می کند و نمایش میدهد و به عنوان متا دیتا در برابر سند ذخیره می کند.

تبريك به مناسبت فرا رسيدن سال نو

Read Only كردن ستون های شيرپوينت

توی شيرپوينت ميشه يك ستون را مخفی كرد اما خيلی وقت ها مثلا توی زمانبندی پروژه ها يا حتی توي كنترل آيتم های ليست لازمه كه اون ستون فقط خواندنی يا (Read Only) باشه و افراد ديگه نتونند محتوای اون ستون را تغيير بدن ...اين كد رو توی يك وب پارت Content Editor webpart اضافه كنيد اين كد فوق العاده است ... اين كد برای ليست مربوط به پروژه طراحی شده اما شما بر حسب نياز خودتون نام ستون ها رو تغيير دهيد و ستون های‌ خود را اضافه كنيد :

<script type="text/javascript">

_spBodyOnLoadFunctionNames.push("fillDefaultValues");

function fillDefaultValues() {

var qs = location.search.substring(1, location.search.length);

var args = qs.split("&");

var vals = new Object();

for (var i=0; i < args.length; i++) {

var nameVal = argsIdea.split("=");

var temp = unescape(nameVal[1]).split('+');

nameVal[1] = temp.join(' ');

vals[nameVal[0]] = nameVal[1];

}

setLookupFromFieldName("Project", vals["ProjectID"]);

setLookupFromFieldName("Milestone", vals["MilestoneID"]);

}

function setLookupFromFieldName(fieldName, value) {

if (value == undefined) return;

var theSelect = getTagFromIdentifierAndTitle("select","Lookup",fieldName);

if (theSelect == null) {

var theInput = getTagFromIdentifierAndTitle("input","",fieldName);

ShowDropdown(theInput.id);

var opt=document.getElementById(theInput.opt);

setSelectedOption(opt, value);

OptLoseFocus(opt);

} else {

setSelectedOption(theSelect, value);

}

}

function setSelectedOption(select, value) {

var opts = select.options;

var l = opts.length;

if (select == null) return;

for (var i=0; i < l; i++) {

if (optsIdea.value == value) {

select.selectedIndex = i;

return true;

}

}

return false;

}

function getTagFromIdentifierAndTitle(tagName, identifier, title) {

var len = identifier.length;

var tags = document.getElementsByTagName(tagName);

for (var i=0; i < tags.length; i++) {

var tempString = tagsIdea.id;

if (tagsIdea.title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) {

return tagsIdea;

}

}

return null;

}

</script>

استفاده از فیلتر [Me] روی گروهای شیرپوینت

براي اينكه در هنگام استفاده از فيلتر [me] بتوان از گروه ها هم استفاده كرد ،‌بطوريكه افراد درون گروه هر كدام آيتم هاي ارجاع داده شده به خود را ببينند ، در Sharepoint Designer در قسمت ListViewXml يك دستور Where مي باشد ، كه آن را بر حسب فيلتر خود با اين كد جابجا نماييد :

&lt;Where&gt;&lt;Or&gt;&lt;Membership Type="CurrentUserGroups"&gt;&lt;FieldRef

Name="AssignedTo"/&gt;&lt;/Membership&gt;&lt;Eq&gt;&lt;FieldRef Name=&quot;

AssignedTo&quot;/&gt;&lt;Value Type=&quot;Integer&quot;&gt;&lt;UserID Type=&quot;

Integer&quot;/&gt;&lt;/Value&gt;&lt;/Eq&gt;&lt;/Or&gt;&lt;/Where&gt; 

اینفوپت 2010 :

برای مشاهده ویدیوی اینفوپت 2010 و امکانات آن بر روی لینک های زیر کلیک نمایید :

InfoPath 2010 Oneclick Publishing

InfoPath 2010 Picture Button

InfoPath 2010 Richer Browser Forms

نمایش فیلد ها در لیست ها

یک لیست از تعداد زیادی فیلد داریم و برای کاربران حالت خوبی ندارد که این فیلد ها رو پشت هم یکی پس از دیگری پر نمایند .

شکل زیر یک نمونه خوب است که می توانید آن را دنبال کنید :

ایجاد این فیلد ها کار سختی نیست ، برای اینکه ببینید چگونه می شود فرمی از فرم های پیش فرض شیرپوینت ایجاد کرد در مبحث قبل در بلاگم توضیح داده ام .

حال با توجه به مطلب قبل ، می توانید Table های پررنگ شده (Bold)را نگاه کنید . InputFormTextBox ،

<table /> ندارد، ولی InputFormCheckBox دارد .

چرا ؟

زیرا InputFormCheckBox درون ردیف Table ، (<tr/>) Renderedمی شود.

<table border="0" cellpadding="0" cellspacing="0" width="400px">
<wssuc:InputFormSection runat="server" id="firstNameSection" Visible="True">
    <template_title>
        First name <span class="ms-formvalidation">*</span>
    </template_title>
    <template_inputformcontrols>
        <wssuc:InputFormControl runat="server" Visible="True">
            <Template_Control>
                <table border="0" cellpadding="0" cellspacing="0">
                <tr>
                <td>
                    <SharePoint:InputFormTextBox class="ms-input" ID="firstNameField" width="300" Runat="server" />
                </td>
                <td>
                    <table border="0" cellpadding="0" cellspacing="0">
                    <SharePoint:InputFormCheckBox class="ms-input" ID="showFirstNameField" Runat="server" Text="Public" />
                    </table>
                </td>
                </tr>
                </table>
                <asp:Label runat="server" id="firstNameErrorLabel" Visible="false" CssClass="ms-formvalidation"></asp:Label>
            </Template_Control>
        </wssuc:InputFormControl>
    </template_inputformcontrols>
</wssuc:InputFormSection>
<wssuc:InputFormSection runat="server" Description="" id="lastNameSection" Visible="True">
    <template_title>
        Last name <span class="ms-formvalidation">*</span>
    </template_title>
    <template_inputformcontrols>
        <wssuc:InputFormControl runat="server" Visible="True">
            <Template_Control>
<table border="0" cellpadding="0" cellspacing="0">
                <tr>
                <td>
                    <SharePoint:InputFormTextBox class="ms-input" ID="lastNameField" Runat="server" width="300" />
                </td>
                <td>
                    <table border="0" cellpadding="0" cellspacing="0">
                    <SharePoint:InputFormCheckBox class="ms-input" ID="showLastNameField" Runat="server" Text="Public" />
                    </table>
                </td>
                </tr>
                </table>
                <asp:Label runat="server" id="lastNameErrorLabel" Visible="false" CssClass="ms-formvalidation"></asp:Label>
            </Template_Control>
        </wssuc:InputFormControl>
    </template_inputformcontrols>
</wssuc:InputFormSection>
</table>

وقتی از این راه استفاده می کنید می توانید خواسته هایتان را در فرم کنترل کنید .

ایجاد فرم در صفحه شیرپونت :

با یک application page شروع می کنیم ، کد زیر را در مسیر داده شده به عنوان صفحه Aspx

در فولدر Layout شیرپوینت به آدرس زیر کپی و ذخیره کنید .

(c:\program files\common files\microsoft shared\web server extensions\12\template\layouts\)

<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>
<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Import Namespace="Microsoft.SharePoint.Administration" %>
<%@ Import Namespace="Microsoft.SharePoint.Utilities" %>
<%@ Import Namespace="System.Reflection" %>
<%@ Import Namespace="System.Data" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>

<asp:content id="PageTitle" runat="server" contentplaceholderid="PlaceHolderPageTitle"> 
    Sample Application Page
</asp:content>

<asp:content id="PageTitleInTitleArea" runat="server" contentplaceholderid="PlaceHolderPageTitleInTitleArea"> 
    Sample Application Page
</asp:content>

<asp:content id="Main" runat="server" contentplaceholderid="PlaceHolderMain">
    This is a page provides an example of how to use the InputFormSection
    and InputFormControl control templates to create an application page
    that looks like the SharePoint OOTB Application Pages. <br /><br />
</asp:content>

وقتی آدرس صفحه ایجاد کرده را می زنیم http://siteurl/_layouts/pagename.aspx پنجره ای به شکل زیر باز می شود .

یک "register" برای هر یک از کنترل ها در صفحه ایجاد نمایید به صورت زیر :

<%@ Register TagPrefix="wssuc" TagName="InputFormSection" src="~/_controltemplates/InputFormSection.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="InputFormControl" src="~/_controltemplates/InputFormControl.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="ButtonSection"
src="~/_controltemplates/ButtonSection.ascx" %>

سپس ما یکtable در "PlaceHolderMain" ایجاد می نماییم :

<asp:content id="Main" runat="server" contentplaceholderid="PlaceHolderMain">
    This is a page provides an example of how to use the InputFormSection
    and InputFormControl control templates to create an application page
    that looks like the SharePoint OOTB Application Pages.<br /><br />

    <!-- Table to house form controls -->
    <table border="0" cellspacing="0" cellpadding="0" width="100%">
     <tr>
        <td>
        </td>
     </tr>
    </table>
    <!-- **************************** -->
</asp:content>

کنترل InputFormSection را در table درج نمایید به صورت زیر :

<asp:content id="Main" runat="server" contentplaceholderid="PlaceHolderMain">
    This is a page provides an example of how to use the InputFormSection
    and InputFormControl control templates to create an application page
    that looks like the SharePoint OOTB Application Pages.<br /><br />
    <!-- Table to house form controls -->
    <table border="0" cellspacing="0" cellpadding="0" width="100%">
     <tr>
        <td>
<wssuc:InputFormSection runat="server"
            Title="Sample Form Section"
            Description="This is a sample form section" >
        </wssuc:InputFormSection>
        </td>
     </tr>
    </table>
    <!-- **************************** -->
</asp:content>

نتایج اعمال بالا به صورت زیر نشان داده می شود :

حال "Template_InputFormControls" را اضافه می کنیم همان که کنترل اصلی را در صفحه قرار می دهد. در سمت راست فرم با آبی کم رنگ نشان داده شده است .

همپنین کنترل "ButtonSection" را اضافه می کنیم همان که Botton یا دکمه برای فرممان ایجاد می کند :

<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>
<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Import Namespace="Microsoft.SharePoint.Administration" %>
<%@ Import Namespace="Microsoft.SharePoint.Utilities" %>
<%@ Import Namespace="System.Reflection" %>
<%@ Import Namespace="System.Data" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0,
Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="wssuc" TagName="InputFormSection" src="~/_controltemplates/InputFormSection.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="InputFormControl" src="~/_controltemplates/InputFormControl.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="ButtonSection"
src="~/_controltemplates/ButtonSection.ascx" %>

<asp:content id="PageTitle" runat="server" contentplaceholderid="PlaceHolderPageTitle">
    Sample Application Page
</asp:content>

<asp:content id="PageTitleInTitleArea" runat="server" contentplaceholderid="PlaceHolderPageTitleInTitleArea">
    Sample Application Page
</asp:content>

<asp:content id="Main" runat="server" contentplaceholderid="PlaceHolderMain">
    This is a page provides an example of how to use the InputFormSection
    and InputFormControl control templates to create an application page
    that looks like the SharePoint OOTB Application Pages.<br /><br />
    <!-- Table to house form controls -->
    <table border="0" cellspacing="0" cellpadding="0" width="100%">
     <tr>
        <td>
        <wssuc:InputFormSection runat="server"
            Title="Sample Form Section"
            Description="This is a sample form section" >
<Template_InputFormControls>
               <asp:TextBox ID="txtSample" runat="server" />
            </Template_InputFormControls>
</wssuc:InputFormSection>
<wssuc:ButtonSection runat="server" TopButtons="true"
            BottomSpacing="5" ShowSectionLine="false">
            <Template_Buttons>
                <asp:Button UseSubmitBehavior="false" runat="server"
                    class="ms-ButtonHeightWidth" Text="OK"
                    id="BtnSubmitBottom" Enabled="true"/>
            </Template_Buttons>
        </wssuc:ButtonSection>
</td>
     </tr>
    </table>
    <!-- **************************** -->
</asp:content>

نتیجه به صورت صفحه ای به شکل زیر ایجاد شده است :

دریافت اطلاعات کاربر از Active Directory بدون کد نویسی در Infopath

اینفوپت را باز می نماییم سپس در منوی بالا گزینه Tools à Data Connections را انتخاب نموده و 'add' را کلیک می کنیم تا بتوانیم یک Connection برای فرم مان ایجاد کنیم و این همان Wizard برای Connection ها می باشد .

می خواهیم دریافت اطلاعات کاربر جاری از Web Service مورد نظر را داشته باشیم . بنابراین " choose receive data" را انتخاب و دکمه Next را می زنیم .

منبع دیتای ما یک Web Service است پس 'Web Service' را انتخاب می کنیم .

آدرس آن را مانند مثال زده شده را وارد نمایید : http://ServerName/_vti_bin/UserProfileService.asmx

یک لیست از متدهای متفاوت از آن Web Service نمایان می شود ، GetUserProfileByName را انتخاب نمایید .

در این صفحه می توانید مشخص نمایید که چه پارامترهایی به این متد فرستاده شود تا بکار گیرد.

گزینه Next را انتخاب نمایید و مطمئن شوید که گزینه 'Automatically retrieve data when form is opened' انتخاب شده باشد و تیک خورده باشد و به این Wizard با زدن گزینه "پایان" خاتمه دهید .

متد GetProfileByName در PropertyData ظاهر می شود ، می توان به عنوان جدول Repeating از اسم و مقدار آن ، پیاده سازی شود .

حال شما یک کاربر جاری دارید که می توانید مشخصات آن را بیاورید.در شکل زیر اسم کاربر آورده می شود :

  1. یک Text Box در فرم ایجاد می کنیم .
  2. Properties آن را باز می کنیم .
  3. در قسمت 'Default Value' ، گزینه "fx" را زده ،که می توان برای این Text Box یک مقدار پیش فرض معرفی کرد .

  1. گزینه 'Insert field or group' را انتخاب کنید :

  2. در منوی انتخابی باز شده ،the GetUserProfileByName را انتخاب نمایید .

  3. فیلد "Value" را پیدا می کنیم و انتخاب می کنیم ولی OK نمی زنیم .

  4. گزینه 'Filter Data...' را زده و 'Add' ...
  5. در منوی پایین افتادنی 'Select a field or group...' را انتخاب کرده و فیلد " Name"را در گروه 'PropertyData' انتخاب می نماییم.

  6. Box وسطی را همان 'is equal to' می گذاریم و سپس مقدار فیلد Name را روی FirstName می گذاریم .

  7. OK نمایید و فرم را Preview کنید ،خواهید دید مقدار First Name در Text Box شما ظاهر شده است .

    می توانید اطلاعات بیشتری را برای کاربر جاری به اینفوپت بیاورید . از جمله اطلاعات آورده شده در پایین را با سرویسuserprofileservice میتوان نمایش داد.

UserProfile_GUID , AccountName , FirstName , LastName , PreferredName , WorkPhone , Office , Department , Title,Manager , AboutMe , PersonalSpace , PictureURL , UserName , QuickLinks , WebSite , PublicSiteRedirect , SPS-Dotted-line , SPS-Peers , SPS-Responsibility , SPS-Skills , SPS-PastProjects , SPS-Interests , SPS-School , SPS-SipAddress , SPS-Birthday , SPS-MySiteUpgrade , SPS-DontSuggestList , SPS-ProxyAddresses , SPS-HireDate , SPS-LastColleagueAdded , SPS-OWAUrl , SPS-ResourceAccountName , SPS-MasterAccountName , Assistant , WorkEmail , CellPhone , Fax , HomePhone

قسمت اول – Business Data Catalog
معماری BDC

برای اتصال به داده های یک پایگاه داده در MOSS نیاز داریم ابتدا فایلی ایجاد نماییم و با استفاده از سرویس Shared Service آن فایل را به شیرپوینت انتقال می دهیم و این سرویس به ما این اطمینان را می دهد که داده های انتقال داده شده ما درون Web Application ما و در Farm ایجاد شده مان قابل دسترس است .

این فایل که یک فایل XML ای است ارتباط اطلاعاتی است که داده ها بعدا توسط شیرپوینت قابل استفاده باشد .درون این فایل XML ، فیلتر ، پارامترها و Action هایی قابل تعریف است .که می توان از آن طریق اطلاعات دریافتب را توسط فیلترهای تعریف شده توسط خودمان نمایش دهیم .از پارامتر ها برای ذخیره کردن رویه ها (Procedure) ، و ایجاد Action برای لینک به سایت ها و یا اعمال سفارشی که مورد نیاز مان است استفاده می نماییم .

این فایل می تواند برای واکشی اطلاعات از بسیاری از منابع اطلاعاتی مختلف شامل SQL, Oracle, Siebel, SAP و همچنین داده هایی که بوسیله Web Service قابل دستیابی است ، ایجاد شود .

در ابتدا که این فایل انتقال داده شد درون شیرپوینت ، موجودیت ها (جدول / پروسیچر ها) می توانند بوسیله وب پارت های زیادی در هر صفحه وب پارتی از شیرپوینت قابل استفاده باشد .

این وب پارت ها بعد ها می توانند برای اینکه مجوز دسترسی به فیلترها ، مخفی نمودن ستون ها ، و اتصال به وب پارت های دیگر ایجاد شوند که ممکن است همچنین شامل دیتا از BDC و یا حتی از یک منبع اطلاعاتی مختلف باشد .

زمانیکه لیست یا Library سفارشی ایجاد می نماییم ، دیتا های BDC میتوانند در ستون های این ایست ها قرار بگیرند و استفاده شوند.

فایل XML

این فایل XML ای بر پایه شمای BDCmetaman.Xsd قابل دسترس در شاخه زیر است :

(installdirectory:\Program Files\ Microsoft Office Servers\12.0\Bin)

همانطور که در شکل زیر نشان داده شده است این فایل را میتوان برای هر پایگاه داده که می خواهیم دیتاهایش را استفاده کنیم ، ایجاد نماییم .

انتقال فایل XML به شیرپوینت

ابتدا فایل ای که با موفقیت ایجاد شده را نیاز داریم به داخل شدهShared Service شیرپوینت انتقال دهیم به شکل زیر :

  1. محیط SharePoint 3.0 Central Administrationرا باز می نماییم .
  2. از منوی Quick Launch ، Shared Service مربوطه را انتخاب می نماییم .
  3. از قسمت Business Data Catalog ، 'Import Application Definition' را انتخاب می نماییم .

    شما می توانید تمام این فایل را یا بخشی از آن را توسط انتخاب "Resource" از قبیل Localised Name ،Properties ، و مجوزهای دسترسی انتقال دهید.

    وقتی که این فایل را انتقال دادید می توانید داده های منتقل شده از پایگاه داده را مشاهده نمایید .این صفحه این اجازه را به شما می دهد مه هر یک را ویرایش و انتقال و حتی پاک نمایید .

    این موجودیت ها می توانند توسط قسمت Business Data Catalog در منوی Shared Service نیز مشاهده شوند .

    در این موجودیت ها می توان ستون هایی که دارد را مشاهده نمود و یا مجوز های دسترسی افراد یا گروه ها را مشاهده یا تغییر داد ، با این مجوز ها میتوان مشخص کرد چه کسی می تواند موجودیت ها را ویرایش ، به روز رسانی یا حذف کند.

    چه کسی می تواند موجودیت در وب پارت ها را انتخاب نماید و در نهایت چه کسی مجوز دسترسی به افراد دهد .

آخرین گزینه در Business Data Catalog در منوی Shared Services ویرایش Business Data Profile Template است .

این صفحات پروفایل ، صفحات وب پارتی است که آیتم های این BDC رانمایش می دهند .این پروفایل ممکن است ، برای مثال، نام محصول مورد نظر را همراه با اطلاعات ریز تر و بیشتر از محصول را نمایش دهد.

این پروفایل به شکل اتوماتیک برای هر موجودیت که در وب پارت Business Data Item Builder است ،ایجاد می شود .

این وب پارت ، فقط برای پروفایل های BDC استفاده می شود و یک آیتم از مشخصات در آدرس URL ایجاد میکند و به وب پارت های متصل میفرستد . لینک نمایش داده شده برای مشاهده پروفایل ظاهر می شود و می توانید با کلیک بر آن ، صفحه پروفایل مورد نظر را مشاهده نمایید .

امکان نمایش سلسله مراتبی (hierarchical view) برای Content Type ها

.

امکان نمایش سلسله مراتبی ( hierarchical view ) برای Content Typeها :

های سایت را به شکل سلسله مراتبی نمایش می دهد . همچنین رابطه بین Content Type ، Feature این •

Content Type ها را نیز نمایش میدهد حتی اگر این محتویات Hidden یا مخفی باشند .

clip_image002

نحوه ایجاد عنوان " Comment "

اولین مرحله ، ایجاد مکانی برای نگهداری نظرات یا همان Comment ها می باشد. برای این کار ما از یک لیست سفارشی به نام "ArticleComment" استفاده می نماییم ، به این منظور لیستی سفارشی تهیه می نماییم که بتواند تمام نظرات از موضوعات مختلف را نگهداری نماید. بنابراین زمانی که تعدادی از نظرات فرستاده می شود با استفاده از View ها بر حسب موضوع فیلتر می گردد.

در لیست سفارشی خود (ArticleComment) این فیلد ها را قرار دهید :

1- ستون "عنوان" که به شکل پیش فرض قرار دارد را به " آدرس URL" تغییر دهید.

2- عنوان "نظرات" را به عنوان ستون دیگر اضافه نمایید .

آدرس URL ، صفحه مربوط به نظر وارد شده را نشان می دهد .

ما لیستی برای تمام نظراتمان داریم حال نیاز داریم یک وب پارت Date View ایجاد کنیم . بنابراین نظرات مربوط به موضوعات مختلف در مکان مربوط به خودشان نمایش داده می شوند. سپس ما این وب پارت Data View را به لیست سفارشی خود که در بالا ایجاد کردیم متصل می نماییم .

1- Sharepoint Designer را باز می نماییم .

2- سایت شیرپوینت خود را باز می نماییم .

3- _catalogs / masterpage را کلیک نمایید .

4- صفحه مورد نظر را باز مینماییم .

5- در منوی بالا یک Data View ایجاد می نماییم مانند شکل زیر :

clip_image002

بعد از ایجاد Data View ،صفحه به مانند شکل زیر نمایش داده می شود ، با کلیک بر روی آن می توان لیست سفارشی خود را به آن متصل نمود :

clip_image004

فیلد های ایجاد شده در لیستمان قابل درج در وب پارت Data View می باشد .

درج نمایید :

1- آدرس URL صفحه

2- نظرات

3- ایجاد توسط

با این فیلد ها که نمایش دهنده داده ها می باشند ، ما احتیاج به فیلتری داریم که بتواند نظر درج شده مربوط به موضوع خودش را نمایش بدهد.

1- بر روی پیکان سمت راست وب پارت Data View کلیک نمایید .

2- منویی به نام "Common Data View Tasks" که در شکل نشان داده شده است نمایان می شود .

3- پارامتر ها را وارد نمایید .
clip_image006

حال ما می توانیم پارامترها ی جدید اضافه نماییم ، که شکل زیر نمایان می شود :

clip_image008

بر روی "Filter" در " Common Data View Tasks " که در بالا گفته شد کلیک نمایید.سپس پنجره ای که نمایش دهنده نتیجه است مانند شکل زیر ظاهر می شود :

clip_image010

بر روی " Add XSLT Filtering "و کنترل "Edit" کلیک نمایید .

1- وارد نمایید : [@Tittle =Substring-after($ReferPageUrl, ‘pages’) ] به شکلی که در زیر نشان داده شده است .

2- OK نمایید .

این کد، متغیری که در سرور به نام ReferPageURL تعریف شده است را می گیرد. Substring-after تجزیه میکند همه چیز را پس از /Pages و مقدار جدیدی به @Tittle نسبت میدهد .برای مثال :

ReferPageURL = http://wwww.contoso.com/pages/windows7.aspx

@Title = windows7.aspx

clip_image012

این Data View تنظیم شده و به پایان رسیده است. حال ما احتیاج داریم کدی در صفحه Aspx خود بنویسیم که این قابل اجرا در Sharepoint Designer قسمت Code در پایین صفحه است .

clip_image014

وب پارت Data View را با Search کردن "WebPartPages:DataFormWebPart" پیدا می نماییم .

اولین چیزی که ما نیاز داریم اسم صفحه "عنوان" است .این متغیر (Pagename) بعدا در XSL ما استفاده می شود .

1- جدول Dvt_StyleName”> راجستجو کنید

2- اعلانی برای متغیر برای صفحه Aspx که در شکل زیر در قسمت کد تیره نوشته شده است تعیین کنید:

<xsl:variable name="dvt_StyleName">Table</xsl:variable>

<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[@Title=substring-after($ReferPageURL,'Pages/')]"/>

<xsl:variable name="dvt_RowCount" select="count($Rows)" />

<xsl:variable name="RowLimit" select="10" />

<xsl:variable name="FirstRow" select="$dvt_firstrow" />

<xsl:variable name="PageName" select="substring-after($ReferPageURL,'Pages/')" />

<xsl:variable name="LastRow">

نظر خود را در مورد موضوع مورد نظر قرار دهد . "Add Comment کاربر قادر است با زدن بر روی گزینه"

clip_image016

این لینک از نام صفحه به عنوان متغیری برای گذر از Query String استفاده میکند .

کد زیر را قبل از مرحله dvt 1.body وارد کنید.

<xsl:template name="dvt_1.head">

<xsl:param name="PageName"/>

<h6 class="fl">Comments</h6>

<a>

                <xsl:attribute name="href">/Lists/ArticleComment/NewForm.aspx?page=<xsl:value-of select="$PageName" /></xsl:attribute>

            Add Comment

</a>

</xsl:template>

همان صفحه ایجاد شده خومان در مراحل قبل ذخیره کنید . Article.aspx به نام

می بینیم که صفحه NewForm.aspx در زیر لیست ArticleComment به طور مستقیم بوسیله QueryString صدا زده می شود.

وقتی کاربر بر روی لینک Add Comment کلیک کند صفحه زیر را می بیند .

clip_image018

صفحه NewForm.aspx برای ویرایش در زیر لیست AddComment ، به شکل زیر باز می نماییم :

clip_image020

صفحه ای که باز می شود به صورت زیر است :

clip_image022

نیاز است تا کد را به صفحه اضافه نماییم برای اینکه بتواند اعمال دیگری را از طریق QueryString اجرا نماید .

قبل از اینکه کد وارد شود موارد زیادی باید اضافه شود در مد Design ، که XSL برای ما می سازد تا بتوان بعدا آن را تغییر و ویرایش کنیم .

افزودن یک لیست سفارشی فرم به ArticleComment که در شکل زیر آمده است :

بر روی MenuàSharepoint ControlsàCustom List Form کلیک می کنیم.

clip_image024

آدرس URLصفحه و ArticleComment صفحه نشان خواهد داد در شکل زیر آمده است :

clip_image026

حال کد می تواند اضافه شود :

با استفاده از Jquery ما می توانیم آدرس URL صفحه را پیدا کنیم و مقدار صفحه را به عنوان Tittle اضافه می کنیم.

<script type="text/javascript">

            $(function() {

                                    var page = queryStrVar('page');                //Return the name of the page from querystring

                                    $('input[title=PageURL]').val(page);        //Insert name into PageURL field

                        });

</script>

مرحله بعدی ، مخفی کردن 'Preview of List Form Web Part' می باشد . تگ <IsVisible> را پیدا کنید و مقدار آن را “False” کنید .

و سپس آخرین آیتم ، Submit نمودن نظرات می باشد .

<xsl:param name="Source">0</xsl:param>

<xsl:variable name="RedirectLoc">

            <xsl:value-of select="$Source"/>

</xsl:variable>

دارد .به صورت پیش فرض این کنترلms-toolbar اضافه کنید .یک کلاس از NewForm.aspx کد زیر را در 2 کنترل ورودی در صفحه نامیده می شوند .SaveButton و GoBackButton ها

<input type="button" value="Add Comment" class="button" name="btnSave" onclick="BLOCKED SCRIPT {ddwrt:GenFireServerEvent(concat('__commit;__redirect={/news/Pages/',$RedirectLoc,'}'))}" />

<input type="button" value="Cancel" class="button" name="btnCancel" onclick="BLOCKED SCRIPT {ddwrt:GenFireServerEvent(concat('__redirect={/news/Pages/',$RedirectLoc,'}'))}" />

این صفحه را ذخیره و Publish نمایید .