اگر با فرمساز پاورفرم در پلتفرم شیرپوینت کار کرده باشید حتما متوجه شدید چه امکاناتی با کدنویسی میتوانید به فرمتان اضافه نمایید. اگر میخواهید تمامی پرکاربرد ترین
.فرمول های پاورفرم را در یکجا داشته باشید این مقاله برای شما نوشته شده
فرمول های مربوط به دکمه:
|
1 2 3 |
form.SaveAndExit(); form.CancelRecord(); form.SaveRecord(); |
فرمول های مربوط به یوزرها:
|
1 2 3 4 5 6 7 |
form.CurrentUser(); form.LoginName(); form.UserFullName(); form.UserID(); |
فرمول درج خودکار شماره ردیف در گرید:
|
1 2 3 4 5 6 |
items = form.GetControl("c_grdIR").InputControl.GetAllItems(); var Row=0; for (var i=0; i < items.length; i++){ Row= Row + 1 ; items[i].SetValue('Row',Row); } |
نمایش و عدم نمایش section ها براساس یوزرهای گروه شیرپوینتی:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
if (form.UserInGroup("Group Name")) { form.ShowSection("Section Key"); } else { form.HideSection("Section Key "); } |
منتقل کردن کاربر به آدرس مورد نظر (ریدایرکت):
|
1 2 3 4 5 6 7 |
f = function(){ location.href = "https://parastoohozuri.ir/blog/" ; } form.Form.SaveRecord(f); alert(" سپاس از همراهی شما اطلاعات ثبت شد."); |
پنهان کردن ستون های گرید در یک مرحله خاص:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var vSteporder = form.DataItem.StepOrder; var ctrl =form.GetControl("firstGrid"); if(vSteporder == 0){ $(ctrl.InputControl.CTRL_GRID).data("kendoGrid").hideColumn("ProductStatus"); $(ctrl.InputControl.CTRL_GRID).data("kendoGrid").hideColumn("PrdComments"); $(ctrl.InputControl.CTRL_GRID).data("kendoGrid").hideColumn("Description"); } else{ $(ctrl.InputControl.CTRL_GRID).data("kendoGrid").showColumn("ProductStatus"); $(ctrl.InputControl.CTRL_GRID).data("kendoGrid").showColumn("PrdComments"); $(ctrl.InputControl.CTRL_GRID).data("kendoGrid").showColumn("Description"); |
نمایش و عدم نمایش تب ها در یک مرحله خاص:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
form.HideTab(0); form.HideTab(1); var step=form.DataItem.StepOrder; if (step == 1 || step == 2) { form.SelectTab(1); form.ShowTab(1); } else { form.SelectTab(0); form.ShowTab(0); } |
مقداردهی فیلدی از گرید براساس تغییر مقدار فیلدی دیگر در گرید:
|
1 2 3 |
if(fieldName == 'EngExpert'){ item.SetValue('StepOrder',2); } |
نمایش ارور به هنگام تکمیل نکردن فیلدیی در گرید هنگام ذخیره فرم:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
var grid = form.GetControl("InitialreviewGridProduction").InputControl.GetAllItems(); for (var i = 0; i < grid.length; i++){ if (grid[i].ProductStatus ==""){ var vkhali="Yeskhali"; break; } } if( vkhali =="Yeskhali"){ alert("لطفا تایید یا رد بودن هر آیتم را در ستون نظر تولید مشخص نمایید") } if( vkhali !="Yeskhali" ){ form.SaveAndExit(); } |
انتقال آیتمی از یک گرید به گریدی دیگر:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
var grid = form.GetControl("HistoryGrid").InputControl.GetAllItems() ; var SelectID = form.GetControl("HistoryGrid").InputControl.GetSelectedItem().ID for (var i=0; i < grid.length; i++) { gridID = grid[i].ID ; if (gridID == SelectID ){ Var_Title = grid[i].Title ; Var_Row = grid[i].Row ; Var_Brand= grid[i].Brand; Var_situation= grid[i].situation; Var_Count= grid[i].Count; Var_Conflicttime= grid[i].Conflicttime; Var_Department= grid[i].Department; Var_RespUnit= grid[i].RespUnit; } } var item = new Object(); item.Title = Var_Title ; item.Row = Var_Row; item.Brand = Var_Brand ; item.situation = Var_situation ; item.Count = VarVar_Department ; item.RespUnit = Var_RespUnit ; form.GetControl("firstGrid").InputControl.AddNewRow(item); |
گرفتن خروجی اکسل از گرید:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var grid = form.GetControl("c_Procurement").InputControl; var cols = []; cols.push({field:"Generalformnumber", title:"شماره درخواست"}); cols.push({field:"Row", title:"ردیف"}); cols.push({field:"Title", title:"کد کالا"}); cols.push({field:"DesProducts", title:"شرح کالا"}); cols.push({field:"Mark", title:"مارک"}); cols.push({field:"typee", title:"تیپ"}); cols.push({field:"Specifications", title:"مشخصات فنی"}); cols.push({field:"PieceCode", title:"کد قطعه"}); cols.push({field:"Desc", title:"توضیحات"}); cols.push({field:"MeasurementUnit", title:"واحد سنجش"}); cols.push({field:"RequestValue", title:"مقدار درخواست"}); cols.push({field:"PrjNumber", title:"سفارش"}); cols.push({field:"DateRequired", title:"تاریخ نیاز"}); cols.push({field:"Responsible", title:"مسئول"}); cols.push({field:"Finalreason", title:"توضیحات"}); grid.ExportToExcel(cols, "OrdersExport.xls", "SheetName"); |
غیرقابل ویرایش کردن ستون های یک گرید در یک مرحله خاص:
|
1 2 3 4 5 |
var vSteporder=form.DataItem.StepOrder; if(( e.FieldName == 'Title' || e.FieldName == 'Specifications'|| e.FieldName == 'PieceCode'|| e.FieldName == 'PrjNumber'|| e.FieldName == 'DateRequired'|| e.FieldName == 'RequestValue'|| e.FieldName == 'MeasurementUnit'|| e.FieldName == 'Desc') && ( vSteporder== 1 || vSteporder== 2 ) ){ e.Cancel=true;} |
انتقال چندین رکورد از یک گرید باکمک check box به گریدی دیگر:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
var grid = form.GetControl("c_Control13").InputControl.GetAllItems() ; for (var i=0; i < grid.length; i++) { var Tick=grid[i].Transfer; if (Tick == "1"){ Var_Average = grid[i].Averageconsumption ; Var_Desc = grid[i].Desc; Var_MeasurementUnit = grid[i].MeasurementUnit; Var_RequestValue = grid[i].RequestValue; Var_DateRequired = grid[i].DateRequired; Var_PrjNumber = grid[i].PrjNumber; Var_PieceCode = grid[i].PieceCode; Var_Specifications = grid[i].Specifications; Var_typee = grid[i].typee; Var_DesProducts = grid[i].DesProducts; Var_Mark = grid[i].Mark ; Var_Title = grid[i].Title ; var item = new Object(); item.Averageconsumption = Var_Average ; item.Desc = Var_Desc; item.MeasurementUnit = Var_MeasurementUnit ; item.RequestValue = Var_RequestValue ; item.DateRequired = Var_DateRequired ; item.PrjNumber= Var_PrjNumber ; item.PieceCode = Var_PieceCode ; item.Specifications = Var_Specifications ; item.typee = Var_typee ; item.DesProducts = Var_DesProducts; item.Mark = Var_Mark ; item.Title = Var_Title ; form.GetControl("c_Control5").InputControl.AddNewRow(item); } } |
قراردادن یک رکورد پیش فرض در گرید:
|
1 2 3 4 5 6 7 8 9 10 |
form = ALL_FORMS[0].Form.FormTemplate; if(form.IsNewRecord()){ for (var i = 0; i < 10; i++) { var item = new Object(); form.GetControl("c_Entry").InputControl.AddNewRow(item); } } |
حذف رکورد انتخاب شده در گرید:
|
1 |
form.GetControl("dg_Details").InputControl.DeleteSelectedItem() |
lookup زدن به چندین لیست برای نمایش اطلاعات در گرید:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
if (fieldName == "RowNumber"){ function callback(e){ if (e.ErrorMessage) { alert(e.ErrorMessage); } else { if (e.ListItems.length > 0) { item.SetValue('ProductName' ,e.ListItems[0].PanelName); item.SetValue('Title' ,e.ListItems[0].Typep); item.SetValue('Numberdevices' ,e.ListItems[0].PanelQ); item.SetValue('Numberitem' ,e.ListItems[0].Cell); } else { // alert("no items found"); } } } } criteria = []; var ss = new pf.SearchSpec(); RowNumber = item.RowNumber; ss.FieldName = "FRow"; ss.FieldValue = RowNumber; ss.Operator = "Equals"; ss.Type = "Text"; var dd= new pf.SearchSpec(); dd.FieldName = "Title"; dd.FieldValue = form.GetControl("c_PrjNumberTxt").GetValue(); dd.Operator = "Equals"; dd.Type = "Text"; criteria.push(ss); criteria.push(dd); form.LoadRecords("http://portal……../", "پروژهها - اطلاعات", "", criteria, null, null, false, 0, callback); } |
تغییر رنگ:
|
1 |
form.GetControl('c_G1QScore').SetCellColor("#fc0328"); |
سه متد مقدارگیری از یک کنترل:
|
1 2 3 4 5 |
GetValue() GetValue_Name () Getvalue_Value() |
رنگی کردن پس زمینه یک ردیف از گرید براساس یک شرط خاص:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var grid1 = form.GetControl('c_FirstStep1').InputControl.GetAllItems(); for (var i = 0; i < grid1.length; i++) { var vPrioritization1 = grid1[i].Prioritization1; var vComplianceschedul1 = grid1[i].Complianceschedul1; var vNotusingnetwork1= grid1[i].Notusingnetwork1; var vDoingstructured1= grid1[i].Doingstructured1; var vOrderinout1= grid1[i].Orderinout1; var vAppearancebeauty1= grid1[i].Appearancebeauty1; if (vPrioritization1== "" || vComplianceschedul1 == "" || vNotusingnetwork1=="" || vDoingstructured1 =="" || vOrderinout1 == "" || vAppearancebeauty1 == "" || vPrioritization1== " " || vComplianceschedul1 == " " || vNotusingnetwork1==" " || vDoingstructured1 ==" " || vOrderinout1 == " " || vAppearancebeauty1 == " ") { var row = document.querySelector("#c_FirstStep1_Grid > div.k-grid-content > table > tbody > tr:nth-child(" + (i + 1) + ")"); row.style.backgroundColor = "#f53131"; EmptyCell="yes"; } } |
اطلاع رسانی بارگذاری شدن مدرک در یک داکیومنت گرید:
|
1 2 3 4 5 6 |
var grid = form.GetControl("c_Control12").InputControl; grid.DocumentUploaded.AddHandler(function (e3) { alert("بارگذاری گردید"); }); |
فرمول جهت نمایش درست چک باکس ها در گرید:
|
1 2 3 |
var myVar = setInterval(function(){ document.getElementsByClassName("k-edit-cell")[0].children[0].style.left=0; }, 50); |
فرمول جهت ایجاد دکمه در یک ستون گرید:
|
1 2 |
'<input type="button" class="k-button" onclick="OpenUrl()" value="ثبت"></input>' <script> function OpenUrl(){ form = ALL_FORMS[0].Form.FormTemplate; var SelectID = form.GetControl("dg_Order").InputControl.GetSelectedItem().ID var options = { title: "Planing", width: 1000, height: 600, url:_spPageContextInfo.webAbsoluteUrl + "/Lists/D_WorkOrderDetails/EditForm.aspx?ID=" + SelectID }; SP.UI.ModalDialog.showModalDialog(options); } </script> |
ضروری کردن فیلد در داکیومنت گرید:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
var grid = form.GetControl("c_DocsGrid").InputControl; grid.DocumentUploading.AddHandler(function (e) { pf.UploadValues(e); }); pf.UploadValues = function(e) { if(form.GetControl("c_Description").GetValue() == "") { form.MessageForm('لطفا مشخصات سند را تکمیل نمایید.'); e.Cancel=true; } else { e.Cancel = false; e.Callback(e); } } grid.DocumentUploaded.AddHandler(function (e) { form.GetControl("c_Control21").SetValue("سند با موفقیت آپلود شد."); form.GetControl("c_Description").SetValue(""); }); |
Placeholder در پاورفرم:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//کنترل textbox که multiline آن انتخاب شده $("#c_Risks textarea").attr('placeholder',"ریسک های سطح بالا پروژه و راهبردهای کاهش آن ها را شناسایی نمایید"); //یا document.querySelector("#c_Risks textarea").setAttribute("placeholder", "ریسک های سطح بالا پروژه و راهبردهای کاهش آن ها را شناسایی نمایید"); //کنترل از جنس textbox است $("#c_Foriegn").attr('placeholder',"شامل مشاوره(ها)/پیمانکار(ها)/تامین کننده(گان) را در لیست اعضای پروژه مشخص نمایید"); //یا document.querySelector("#c_Foriegn").setAttribute("placeholder", "شامل مشاوره(ها)/پیمانکار(ها)/تامین کننده(گان) را در لیست اعضای پروژه مشخص نمایید"); //کنترل از جنس Number است $('input').next('#c_Budget').prev('input').attr('placeholder', "بودجه اولیه انجام پروژه را شرح دهید"); //یا var input = document.querySelector("#c_Budget").previousElementSibling; if (input && input.tagName === "INPUT") { input.setAttribute("placeholder", "بودجه اولیه انجام پروژه را شرح دهید"); } |
استایل مربوط به Placeholder:
|
1 2 3 4 5 6 |
input::placeholder { color: #888888; /* رنگ متن Placeholder */ font-style: italic; /* سبک فونت */ font-size: 14px; /* اندازه فونت */ text-align:right !important; } |
فراخونی دیتا از ستون لیست:
|
1 |
form.DataItem.<ColumnName> |
PeoplePicker Default value :
|
1 |
=form.UserID() + ";#" + form.UserFullName() |
اضافه کردن User به گروه:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
var theSiteURL = form.Url(); var GroupName = form.GetControl("c_txtGroupSh").GetValue_Name(); var GridUserNames = form.GetControl("c_ExpertGd").InputControl.GetAllItems(); // اول اعضای فعلی گروه رو از شیرپوینت بخون form.LoadUsersInGroup(theSiteURL, GroupName, function(e) { if (pf.IsEmpty(e.ErrorMessage)) { // آرایهای از LoginNameهای اعضای فعلی برای مقایسه var currentMembers = e.Users.map(function(u) { return u.LoginName.toLowerCase(); }); for (var i = 0; i < GridUserNames.length; i++) { var userName = GridUserNames[i].LoginExpert; // پاکسازی فرمت Lookup if (userName && userName.indexOf(";#") !== -1) { userName = userName.split(";#")[1].trim(); } var checkName = userName.toLowerCase(); // فقط اگر کاربر فعلاً عضو گروه نباشد اضافه کن if (!currentMembers.includes(checkName)) { console.log("Adding new member:", userName); form.AddUserInGroup(theSiteURL, GroupName, userName, callback); } else { console.log("Already in group:", userName); } } }}) |
ساخت فولدرهای تو در تو:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
var idNo = form.FieldValue_Name("c_ProjectName"); var revNo = form.FieldValue_Name("c_PO"); var intRev = form.FieldValue_Name("c_VendorName"); var subFolder = form.FieldValue("FK_NotificationNo"); // فیلد جدید به فرض مثال برای سطح چهارم (میتونی اسمش رو تغییر بدی) function createFolders(listName) { var path1 = idNo; var path2 = idNo + "/" + revNo; var path3 = idNo + "/" + revNo + "/" + intRev; var path4 = idNo + "/" + revNo + "/" + intRev + "/" + subFolder; // سطح چهارم اضافه شد form.SaveRecord(form.Url(), listName, { FileLeafRef: path1, ContentType: "Folder" }, function (res1) { if (res1.ErrorMessage && res1.ErrorMessage.indexOf("already exists") === -1) { form.ShowFormMessage("Error Level 1 (" + listName + "): " + res1.ErrorMessage, "error", 2500); return; } form.SaveRecord(form.Url(), listName, { FileLeafRef: path2, ContentType: "Folder" }, function (res2) { if (res2.ErrorMessage && res2.ErrorMessage.indexOf("already exists") === -1) { form.ShowFormMessage("Error Level 2 (" + listName + "): " + res2.ErrorMessage, "error", 2500); return; } form.SaveRecord(form.Url(), listName, { FileLeafRef: path3, ContentType: "Folder" }, function (res3) { if (res3.ErrorMessage && res3.ErrorMessage.indexOf("already exists") === -1) { form.ShowFormMessage("Error Level 3 (" + listName + "): " + res3.ErrorMessage, "error", 2500); return; } // 🔹 مرحله چهارم form.SaveRecord(form.Url(), listName, { FileLeafRef: path4, ContentType: "Folder" }, function (res4) { if (res4.ErrorMessage && res4.ErrorMessage.indexOf("already exists") === -1) { form.ShowFormMessage("Error Level 4 (" + listName + "): " + res4.ErrorMessage, "error", 2500); return; } form.ShowFormMessage("Folders created successfully in " + listName, "success", 2500); }); }); }); }); } // اسم نمایشی لایبری را در فانکشن زیر قرار بدهید createFolders("QC Documents"); |
خواندن دو پست دیگر در خصوص آموزش پاورفرم و کنترل های آن را به شما کاربران عزیز پیشنهاد می کنم.
خواهشمند است با نظرات خودتان کمک کنید این مقاله را پربارتر کنیم و تمامی فرمول های پرکاربرد پاورفرم را یکجا داشته باشیم.
4 پاسخ
خیلی مفید و کاربردی
خوشحالم که براتون مفید بوده
بسیار عالی
ممنون از اینکه دانشتون رو به اشتراک میزارید
آرمین عزیز خوشحالم که براتون مفید بوده