PSPCommunity.org ورود | ثبت نام | كمك
ارسال اطلاعات يك Data View به صفحه گسترده (Excel)

سلام دوستان

در اين پست روش ارسال اطلاعات يك Data View به اكسل را توضيح خواهم داد.

فرض كنيد يك data view در يك صفحه داريد . جاوا اسكريپت زير را به ضفحه اضافه كنيد:

·         <Script Language="Javascript">

 

function isIE() // Function to Determine IE or Not

{

 return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);

}

 

function exportToExcel() // Function to Export the Table Data to Excel.

{

var isIEBrowser = isIE();

if(isIEBrowser== false)

{

alert('Please use Internet Explorer for Excel Export Functionality.');

return false;

}

else

{

var strTableID = "detailsTable";  // It's the Table ID of Table in Webpart

 

var detailsTable = document.getElementById(strTableID);

var objExcel = new ActiveXObject("Excel.Application");

var objWorkBook = objExcel.Workbooks.Add;

var objWorkSheet = objWorkBook.Worksheets(1);

 

for (var intRowIndex=0;intRowIndex<detailsTable.rows.length;intRowIndex++)

{

for (var intColumnIndex=0;intColumnIndex<detailsTable.rows(intRowIndex).cells.length;intColumnIndex++)

{

if(intColumnIndex != 3)

objWorkSheet.Cells(intRowIndex+1,intColumnIndex+1) = detailsTable.rows(intRowIndex).cells(intColumnIndex).innerText;

}

}

 

objExcel.Visible = true;

objExcel.UserControl = true;

}

}

 

</Script>

<button onclick="exportToExcel();">Export to Excel File</button>

 

 در تگي كه قرمز رنگ شده است به جاي detailsTable  ، شما ID جدولي    را بنويسيد كه ديتاها در آن قراردارند.

( اگر جدول شما ID نداشت به آن ID بدهيد.)

 

 

باگ : Expire شدن MOSS 2007 پس از نصب سرويس پك 2

 هفته قبل تصميم گرفتيم Office Project Server  را به شرپونت متصل كنيم. تمام كارهاي نصب به درستي انجام شد. زماني كه سايت مربوط به آن را باز كردم خطايي را نمايش مي داد . اين خطا نشان مي داد كه شرپوينت expire  شده است.

جالب اينجا بود كه سايت ها دچار مشكل نشده بودند فقط در اين سايت office project server فعال شده بود اين خطا را مي داد. پس از جستجو متوجه شدم كه اين يك باگ   سرويس پك 2 شرپوينت است

با نصب سرويس پك 2 بر روي Moss 2007 ، تاريخ لايسنس شيرپوينت (license)   منقضي  خواهد شد .  

براي مشاهده وضعيت لايسنس مي توانيد مسير زير را انتخاب كنيد:

Central Administration à Oprations-àUpdate and Migration àConvert  license type

  دراينجا مشاهده خواهيد كرد كه شرپوينت شما trial شده است.

نحوه رفع اين مشكل :

مايكروسافت برا رفع اين مشكل يك HotFix  ارائه داده است. شما مي توانيد اين HotFix را از آدرس زير دانلود كنيد:

http://support.microsoft.com/kb/971620

بعد از نصب اين HotFix  نياز هست كه سرور خود را reboot كنيد .

سپس  لايسنس شرپوينت خود را در مسير زير وارد كنيد:

Central Administration à Oprations-àUpdate and Migration àConvert  license type

براي مشاهده اطلاعات بيشتر درباره اين باگ مي توانيد لينك زير را مشاهده كنيد:

http://blogs.msdn.com/sharepoint/archive/2009/05/21/attention-important-information-on-service-pack-2.aspx

رفع مشكل كار نكردن جستجوي سايت شرپونتي( نتایج منطبق با ضوابط جستجو پیدا نشد)

سلام به همه دوستان

چند وقتي بود كه جستجوي بالاي صفحات سايت كار نمي كرد .  هربار كلمه اي را سرچ مي كردم . هيچ  گزينه اي نمايش داده نمي شد. تنظيمات سرچ   را در SSP چك كردم .  زماني كه مسير  زير را چك كردم به يك خطا رسيدم .

Shared Services Administration:SSP > Search Settings >Error in log

خطا به شرح زير بود :

Access is denied. Check that the Default Content Access Account has access to this content, or add a crawl rule to crawl this content. (The item was deleted because it was either not found or the crawler was denied access to it.)

بعد از جستجو در گوگل فهميدم  در مسير زير بايد به جاي  user\domain از user@domain استفاده مي كردم. براي مثال  به جاي Test\leilash بايد از leilash@test.com استفاده مي كردم.

 Shared Services Administration:SSP > Search Settings > Default Content Access Account  

 [fix.GIF]

همچنين سرويس Office Sharepoint Server Search نيز نبايد از local system  استفاده كند . كاربري با دسترسي بالاتر نياز است.( براي چك كاربر اين سرويس به control panel ---<  Services---<  Office Sharepoint Server Search  برويد.(

 [service.GIF]

همچنين مراحل زير را اجرا كنيد :

1-  start را كليك كنيد . در run  عبارت  regedit را بنويسيد سپس enter را بزنيد.

2- مسير HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa را پيدا كنيد

3- روي Lsa راست كليك كنيد و در قسمت new گزينه DWORD Value را انتخاب كنيد

4- كلمه DisableLoopbackCheck را تايپ كنيد

5- روي DisableLoopbackCheck راست كليك كنيد و modify را انتخاب كنيد

6- در قسمت value عدد 1 را به جاي 0 تايپ كنيد ، سپس ok كنيد

7- Registery را ببنديد و كامپيوتر خود را reset كنيد.
  

استفاده از شرطي هاي(IF) تو در تو در ستون محاسبه اي در يك ليست
گاهي نياز هست با توجه به اطلاعاتي كه در  يكي از ستون هاي يك ليست وجود دارد ، ستون ديگر موجود در اين ليست به شكل اتوماتيك پر شود .  
در اين موارد ما از ستون محاسبه اي استفاده مي كنيم. در ستون هاي محاسبه اي مي توانيم از شرطي هاي تو در تو استفاده كنيم كه همان If, else if   است.
در اينجا با يك مثال استفاده از اين دستور را توضيح مي دهيم.
فرض كنيد ليستي وجود دارد كه در يكي از ستون هاي آن با نام "Mark" نمرات دانشجويان وارد مي شود . حال مي خواهيم در ستون ديگري با نام "MarkLevel" فيلد محاسبه اي داشته باشيم كه به اين صورت عمل كند. اگر نمره بالاتر و مساوي 90 بود درجه آزمون "A" ، اگز نمره بالاتر و مساوي 80 بود "B"، اگر بالاتر و مساوي 70 بود "C" در غير اين صورت "D" شود.
در ستون محاسبه اي فرمول زير را وارد مي كنيم:
=IF(Mark>89;"A";IF(Mark>79;"B";IF(Mark>69;"C";"D")))
رفع مشکل جاوا اسکریپت Expand در DataView ها

 

زمانی که از Dataview در یک صفحه استفاده می کنیم و این data view را بر اساس فیلد خاصی گروه بندی می کنیم.و گروه ها را به حالت بسته یا collapse نمایش می دهیم. یا زمانی که یک لیست را که بر اساس فیلد خاصی گروه بندی کرده ایم به XSL تبدیل می کنیم (Convert to XSL) در مرورگرهایی مانند فایر فاکس با کلیک بر" + " کنار هر گروه نمی توان آن گروه را باز یا Expand کرد.

برای حل این مشکل در صفحه ای که Dataview استفاده کرده ایم، جاوا اسکریپت زیر را اضافه میکنیم :(لینک جاوااسکریپت)

<script type="text/javascript">

function ExpGroupBy(formObj)

{

  if ((browseris.w3c) && (!browseris.ie)) {

        document.all=document.getElementsByTagName("*");

  }

  docElts=document.all;

  numElts=docElts.length;

  images=formObj.getElementsByTagName("IMG");

  img=images[0];

  srcPath=img.src;

  index=srcPath.lastIndexOf("/");

  imgName=srcPath.slice(index+1);

  if (imgName=='plus.gif')

  {

        fOpen=true;

        displayStr="";

        img.src='/_layouts/images/minus.gif';

  }

  else

  {

        fOpen=false;

        displayStr="none";

        img.src='/_layouts/images/plus.gif';

  }

  oldName=img.name;

  img.name=img.alt;

  img.alt=oldName;

  spanNode=img;

  while(spanNode !=null)

  {

        spanNode=spanNode.parentNode;

        if (spanNode !=null &&

              spanNode.id !=null &&

              spanNode.id.length > 5 &&

              spanNode.id.substr(0, 5)=="group")

              break;

  }

  parentNode=spanNode;

  while(parentNode !=null)

  {

        parentNode=parentNode.parentNode;

        if (parentNode !=null &&

              parentNode.tagName=="TABLE")

              break;

  }

  lastNode=null;

  if (parentNode !=null)

  {

        lastNode=parentNode.lastChild;

        if (lastNode !=null && lastNode.tagName=="TBODY")

              lastNode=lastNode.lastChild;

        if (lastNode !=null && lastNode.tagName=="TR" && lastNode.lastChild !=null)

              lastNode=lastNode.lastChild;

  }

  for(var i=0;i<numElts;i++)

  {

        var childObj=docEltsIdea;

        if (childObj==spanNode)

              break;

  }

  ID=spanNode.id.slice(5);

  for(var j=i+1; j<numElts; j++)

  {

        var childObj=docElts[j];

        if (childObj.id.length > 5 &&

              childObj.id.substr(0, 5)=="group")

        {

              curID=childObj.id.slice(5);

              if (curID <=ID)

                    return;

        }

        parentNode=childObj;

        while(parentNode !=null)

        {

              parentNode=parentNode.parentElement;

              if (parentNode==spanNode)

                    break;

        }

        if (parentNode==spanNode)

              continue;

        if (childObj !=img &&

              childObj.tagName=="IMG" &&

              childObj.src &&

              childObj.src.slice(childObj.src.length - 25)=='/_layouts/images/plus.gif')

        {

              childObj.src='/_layouts/images/minus.gif';

              oldName=childObj.name;

              childObj.name=childObj.alt;

              childObj.alt=oldName;

        }

        if (childObj.tagName==spanNode.tagName &&

              childObj.id !="footer")

        {

              childObj.style.display=displayStr;

        }

        if ((childObj.tagName=="TABLE" && lastNode==null) || childObj==lastNode)

              break;

  }

}

//-->

</script>