PowerForms در شیرپوینت (SharePoint) به عنوان ابزاری برای ایجاد و مدیریت فرمهای الکترونیکی در محیط شیرپوینت شناخته میشود. این ابزار به کاربران این امکان را میدهد که فرمهای سفارشی بسازند که میتوانند برای جمعآوری دادهها، نظرسنجیها، درخواستها و سایر فعالیتها مورد استفاده قرار گیرند.
ویژگیهای کلیدی پاورفرم در شیرپوینت
کاربران میتوانند فرمهای متنوعی با فیلدهای مختلف ایجاد کنند. این فرمها میتوانند برای نیازهای سازمان یا پروژه طراحی شوند.
جزئیات بیشترPowerForms دارای یک رابط کاربری ساده و قابل فهم است که به کاربران این امکان را میدهد بدون نیاز به دانش برنامهنویسی، فرمهای خود را طراحی کنند.
جزئیات بیشترفرمها میتوانند به راحتی با لیستها و کتابخانههای شیرپوینت ادغام شوند تا دادهها به طور مستقیم ذخیره و مدیریت شوند.
جزئیات بیشتربا استفاده از PowerForms، میتوان فرآیندهای تجاری را اتوماسیون کرد. به عنوان مثال، میتوان پس از ارسال فرم، یک جریان کاری تعریف کرد.
دادههای جمعآوری شده از طریق فرمها میتوانند برای تولید گزارشهای مختلف و تجزیه و تحلیل استفاده شوند.
کاربران میتوانند دسترسی به فرمها را کنترل کنند و تعیین کنند که کدام افراد یا گروهها اجازه مشاهده یا ویرایش فرمها را دارند.
چرا باید از پاورفرم استفاده کنیم ؟
در دنیای پررقابت امروز، سازمانهایی که قادر به تطبیق سریع با تغییرات هستند، میتوانند از رقبای خود پیشی بگیرند.
با تمرکز بر نیازهای مشتریان و پاسخ سریع به آنها، سازمانها میتوانند تجربه بهتری برای مشتریان خود فراهم کنند.
بیزاجی میتواند به کاهش هزینههای عملیاتی منجر شود، زیرا سازمانها میتوانند فرآیندهای خود را بهینهسازی کرده و از منابع موجود به بهترین شکل استفاده کنند.
سازمانهای چابک میتوانند به راحتی ایدههای جدید را آزمایش کنند و از موفقیتها و شکستهای خود بیاموزند.
کنترل های پاورفرم
ارائه آموزشهای مستمر به کارکنان برای افزایش مهارتها و تواناییهای آنها.
بیشتر بخوانیدform.UserFullName()
form.LoginName()
Current user بصورت یوزری
form.UserID()+";#"+form.UserFullName()
if (form.UserInGroup("104"))
{
form.ShowTab(1);
}
else if (form.UserInGroup("104"))
{
form.HideTab(1);
}
var user = form.CurrentUser();
var userId = user.ID;
for (var i=0;i<user.Groups.length;i++) {
var group = user.Groups[i];
var groupName = group.Name;
}
created = dataitem.GetValue("Created")
= form.UserID() +";#" + form.GetControl("c_FullName").GetValue();
var theNewDateValue= pf.AddDaysToDate(new Date(), 2);
alert(theNewDateValue);
اگر تاریخ بصورت string باشد :
var theDateValue = form.GetControl('c_Date').GetValue();
var theNewDateValue = pf.AddDaysToDateString(theDateValue, 2);
alert(theNewDateValue );
var dateInStringFormat = form.GetControl("c_WorkRentDate").GetValue();
var DateObject = pf.ParseDate(dateInStringFormat);
var date = DateObject.getTime();
var dateInStringFormat2 = form.GetControl("c_Now").GetValue();
var DateObject2 = pf.ParseDate(dateInStringFormat2);
var date2 = DateObject2.getTime();
if(date<=date2){
alert("تاریخ اعتبار اجاره نامه نبایداز تاریخ روز کوچکتر باشد!");
form.GetControl("c_WorkRentDate").SetValue("");
}
var c =form.GetControl("c_datetime").InputControl;
$(c.CTRL_DATE).parent().parent().css("display","none");
form.GetControl("c_ExpertCreater").SetValue("2");
$(".k-input").attr("autocomplete","false");
$(".k-input").attr("autocomplete","none");
var header = document.getElementById("myHeader");
var sticky = header.offsetTop;
function myFunction() {
if (window.pageYOffset > sticky) {
header.classList.add("sticky");
} else {
header.classList.remove("sticky");
From = form.GetControl("c_StartDate").GetValue();
To = form.GetControl("c_FinishDate").GetValue();
var startDate = new Date(From) ;
var endDate = new Date(To);
var diffDays = endDate.getTime() - startDate.getTime();
const oneDay = 1000 * 60 * 60 * 24;
const diffInDays = Math.round(diffDays / oneDay);
form.GetControl("c_MissionTime1").SetValue(diffInDays);
form.GetControl("c_PrintBtn").SetVisible(false);
<script>
function div(a, b) {
return parseInt((a / b));
}function gregorian_to_jalali(g_y, g_m, g_d) {
var g_days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var j_days_in_month = [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29];
var jalali = [];
var gy = g_y - 1600;
var gm = g_m - 1;
var gd = g_d - 1;
var g_day_no = 365 * gy + div(gy + 3, 4) - div(gy + 99, 100) + div(gy + 399, 400);
for (var i = 0; i < gm; ++i)
g_day_no += g_days_in_month[i];
if (gm > 1 && ((gy % 4 == 0 && gy % 100 != 0) || (gy % 400 == 0)))
/* leap and after Feb */
g_day_no++;
g_day_no += gd;
var j_day_no = g_day_no - 79;
var j_np = div(j_day_no, 12053);
/* 12053 = 365*33 + 32/4 */
j_day_no = j_day_no % 12053;
var jy = 979 + 33 * j_np + 4 * div(j_day_no, 1461);
/* 1461 = 365*4 + 4/4 */
j_day_no %= 1461;
if (j_day_no >= 366) {
jy += div(j_day_no - 1, 365);
j_day_no = (j_day_no - 1) % 365;
}
for (var i = 0; i < 11 && j_day_no >= j_days_in_month[i]; ++i)
j_day_no -= j_days_in_month[i];
var jm = i + 1;
var jd = j_day_no + 1;
jalali[0] = jy;
jalali[1] = jm;
jalali[2] = jd;
return jalali;
//return jalali[0] + "_" + jalali[1] + "_" + jalali[2];
//return jy + "/" + jm + "/" + jd;
}
function get_year_month_day(date) {
var convertDate;
var y = date.substr(0, 4);
var m = date.substr(5, 2);
var d = date.substr(8, 2);
convertDate = gregorian_to_jalali(y, m, d);
return convertDate;
}
function get_hour_minute_second(time) {
var convertTime = [];
convertTime[0] = time.substr(0, 2);
convertTime[1] = time.substr(3, 2);
convertTime[2] = time.substr(6, 2);
return convertTime;
}
function convertDate(date) {
var convertDateTime = get_year_month_day(date.substr(0, 10));
convertDateTime = convertDateTime[0] + "/" + convertDateTime[1] + "/" + convertDateTime[2] + " " + date.substr(10);
return convertDateTime;
}
function get_persian_month(month) {
switch (month) {
case 1:
return "فروردین";
break;
case 2:
return "اردیبهشت";
break;
case 3:
return "خرداد";
break;
case 4:
return "تیر";
break;
case 5:
return "مرداد";
break;
case 6:
return "شهریور";
break;
case 7:
return "مهر";
break;
case 8:
return "آبان";
break;
case 9:
return "آذر";
break;
case 10:
return "دی";
break;
case 11:
return "بهمن";
break;
case 12:
return "اسفند";
break;
}
}
function get_day(day) {
switch (day) {
case 1:
return "01";
break;
case 2:
return "02";
break;
case 3:
return "03";
break;
case 4:
return "04";
break;
case 5:
return "05";
break;
case 6:
return "06";
break;
case 7:
return "07";
break;
case 8:
return "08";
break;
case 9:
return "09";
break;
default:day
}
}
</script>
*/ اسکریپت برای تاریخ شمسی روی کنترل تاریخ
var dt=form.GetControl("c_ChildBirthDate11").GetValue();
arry = dt.split("-");
g_y = parseFloat(arry[0]);
g_m = parseFloat(arry[1]);
g_d = parseFloat(arry[2]);
shdt = gregorian_to_jalali(g_y ,g_m ,g_d)
Mdt = get_persian_month(shdt[1]);
day=get_day(shdt[2]);
form.GetControl("day1").SetValue(shdt[2]);
form.GetControl("month1").SetValue(Mdt);
form.GetControl("year1").SetValue(shdt[0]);
var date = pf.FormatANSIDate(new Date());
form.GetControl("c_Date").SetValue(date);
var items = form.GetControl("c_GridName").InputControl.GetAllItems();
for (var i=0; i < items.length; i++)
{
form.GetControl("c_Param1").SetValue(items[i].Param1);
form.GetControl("c_Param2").SetValue(items[i].Param2);
}
var item = form.GetControl("c_GridName").InputControl.GetSelectedItem();
form.GetControl("c_Label").SetValue(item.Title);
Grid = form.GetControl("c_Grid");
$(Grid.InputControl.CTRL_GRID).data("kendoGrid").hideColumn("FollowNumber");مخفی شدن
$(Grid.InputControl.CTRL_GRID).data("kendoGrid").showColumn("DateFollow");نمایان شدن
var grid = $("#grid").data("kendoGrid");
grid.removeRow("tr:eq(i)");
var gridItems =form.GetControl("c_HamyarServices").InputControl.GetAllItems();
a = Number(gridItems.length);
for (var i=0; i < a; i++)
{
ctrl = form.GetControl("c_HamyarServices");
$(ctrl.InputControl.CTRL_GRID).data("kendoGrid").removeRow("#c_HamyarServices_Grid tbody tr")
}
var index = 0 ;
var gridItems =form.GetControl("c_Grid").InputControl.GetAllItems();
for (var i=0; i < gridItems.length; i++) {
index += 1 ;
itemEach = gridItems[i] ;
itemEach.SetValue('Row' , index);
}
var item = form.GetControl("c_Grid1").InputControl.GetSelectedItem();
eachgridmenu = gridpack[i];
var gridchapter=item.Sub;
var griddateSend=item.Des;
var gridrow=item.Row;
item.Sub = gridchapter;
item.Des = griddateSend;
item.Row = gridrow;
form.GetControl("c_Grid2").InputControl.AddNewRow(item);
var a = form.GetControl("c_Control1").GetValue();
var b= form.GetControl("c_Control2").GetValue();
var c= form.GetControl("c_Control3").GetValue();
var d= form.GetControl("c_Control4").GetValue();
var item = new Object();
item.Title = a;
item.OrderStatus = b;
item.MaterialStatus = c;
item.RealizationTerms = d;
form.GetControl("c_Grid").InputControl.AddNewRow(item);
var sum = 0 ;
var items = form.GetControl("c_Grid").InputControl.GetAllItems();
for (var i=0; i < items.length; i++) {
eachItem = items[i];
var a = eachItem.PaymentPrice == "" ? 0 : parseFloat (eachItem.PaymentPrice) ;
sum += a;
}
form.GetControl("c_SumControl").SetValue(sum.toString());
sum = 0;
var gridItems = form.GetControl("c_Grid").InputControl.GetAllItems();
for (var i=0; i <gridItems.length ; i++)
{
itemEach = gridItems[i] ;
sum = Number(itemEach.Column1) + Number(itemEach.Column2);
itemEach.SetValue('Column3' , sum);
}
sum = 0;
sum2 = 0;
var a = form.GetControl("c_Control1").GetValue();
var gridItems = form.GetControl("c_Grid").InputControl.GetAllItems();
for (var i=0; i <gridItems.length ; i++)
{
itemEach = gridItems[i] ;
sum = Number(itemEach.Culomn1) * Number(a);
itemEach.SetValue('Culomn2' , sum);
}
if(e.FieldName=="Title" && e.DataItem.number=="7"){
e.Cancel=true;}
if(e.FieldName=="Title" && e.DataItem.number=="7"){
e.Cancel=true;}
var items = form.GetControl("c_grid").InputControl.GetAllItems();
//title ستون گرید فعلی
if (fieldName == "Title") {
function callback(e){
if (e.ErrorMessage){
alert("ارور");
}
else{
if (e.ListItems.length > 0){
// alert("items found");
//اولی مقدار ستون لیستی که میخواهیم دیتا بخونیم. دومی ستون گرید فعلی
var a=e.ListItems[0].Post;
item.SetValue("Position", a);
var b=e.ListItems[0].User;
item.SetValue("UserAccount", b);
}else{
alert("no items found");
}
}
}
criteria = [];
var ss = new pf.SearchSpec();
//ID ستون لیستی که میخوایم ازش بخونیم
ss.FieldName = "ID";
//ستون گرید فعلی Title
ss.FieldValue = pf.GetValueFromLookup(item.Title);
ss.Operator = "Equals"; //Equals,NotEquals,Greater,GreaterOrEqual,Less,LessOrEqual,IsNull,IsNotNull,BeginsWith,Contains,In
ss.Type = "Text";
criteria.push(ss);
form.LoadRecords("http://url", "اطلاعات فرزند", "", criteria, null, null, false, 0, callback);
}
var gridItems =form.GetControl("c_Grid").InputControl.GetAllItems();
form.GetControl("c_Count").SetValue(gridItems.length);
<script>
form = ALL_FORMS[0].Form.FormTemplate;
function RenderButton() {
debugger
var htmlButton = '<input type="button" ';
htmlButton += ' class="k-button sg-button" onclick="OpenUrl()" value="مشاهده"></input>'
return htmlButton;
}
function OpenUrl()
{
debugger
var SelectID = form.GetControl("c_Grid").InputControl.GetSelectedItem().ID ;
var Name = form.GetControl("c_Grid").InputControl.GetSelectedItem().LookUpID_title ;
Name1=Name.substring(Name.indexOf("#")+1);
var options = {
title: " پایگاه داده پروژه" + " "+ Name1,
width: 1500,
height: 1000,
url: "url" + SelectID +"&isdlg=1"};
SP.UI.ModalDialog.showModalDialog(options);
}
</script>
RenderButton(ID)
var grid = form.GetControl("c_Grid").InputControl;
var cols = [];
cols.push({field:"Title", title:"Client Ref"});
cols.push({field:"ProductName", title:"Product Name"});
cols.push({field:"CountryOfOrigin", title:"Country of Origin"});
grid.ExportToExcel(cols, "خروجی جدول.xls", "Sheet1");
var str = form.GetControl("c_LookupTxt").GetValue();
const myArray = str.split(";#");
var text = '<Values><Record><Value Name="Service">'
for(i=0; i<myArray.length-1; i++){
text += myArray[i];
if(i%2 == 0 || i==0){
text+=";#";
}else{
text+='</Value></Record><Record><Value Name="Service">'
}
}
text+=myArray[myArray.length-1]+'</Value></Record></Values>';
form.GetControl("c_value").SetValue(text);
<script>
form = ALL_FORMS[0].Form.FormTemplate;
function RenderLink(name) {
debugger
var htmlLink = '<a href="#" onclick="OpenUrl()">'+name+'</a>';
return htmlLink;
}
function OpenUrl() {
debugger
var SelectLink = form.GetControl("c_GridItem").InputControl.GetSelectedItem().__FullPath ;
var options = {
title: "فایل پیوستی",
width: 1500,
height: 800,
url: SelectLink};
SP.UI.ModalDialog.showModalDialog(options);
}
</script>
<script>
form = ALL_FORMS[0].Form.FormTemplate;
function RenderLink(name) {
debugger
var htmlLink = '<a href="#" onclick="OpenUrl()">'+name+'</a>';
return htmlLink;
}
function OpenUrl() {
debugger
var SelectLink = form.GetControl("c_GridItem").InputControl.GetSelectedItem().__FullPath ;
var options = {
title: "فایل پیوستی",
width: 1500,
height: 800,
url: SelectLink};
SP.UI.ModalDialog.showModalDialog(options);
}
</script>
<script>
document.querySelector("#div_PF_Main > div:nth-child(2)").hidden = true
</script>
<script>
form = ALL_FORMS[0].Form.FormTemplate;
function RenderLink(name) {
debugger
var htmlLink = '<a href="#" onclick="OpenUrl()">'+name+'</a>';
return htmlLink;
}
function OpenUrl() {
debugger
var SelectLink = form.GetControl("c_GridItem").InputControl.GetSelectedItem().__FullPath ;
var options = {
title: "فایل پیوستی",
width: 1500,
height: 800,
url: SelectLink};
window.open(SelectLink,"_blank")
}
</script>
<script>
document.querySelector("#div_PF_Main > div:nth-child(2)").hidden = true
</script>
<script>
form = ALL_FORMS[0].Form.FormTemplate;
function RenderLink(name) {
debugger
var htmlLink = '<a href="#" onclick="OpenUrl()">'+name+'</a>';
return htmlLink;
}
function OpenUrl() {
debugger
var SelectLink = form.GetControl("c_GridItem").InputControl.GetSelectedItem().__FullPath ;
var options = {
title: "فایل پیوستی",
width: 1500,
height: 800,
url: SelectLink};
window.open(SelectLink,"_blank")
}
</script>
var members = [];
var gridItems =form.GetControl("c_grid").InputControl.GetAllItems();
a = Number(gridItems.length);
for (var i=0; i < a; i++){
members.push(gridItems[i].Member);
}
if(hasDuplicates(members)){
alert("عضو تکراری در کارگروه وجود دارد!")
}else{
form.SaveAndExit();
}
form = ALL_FORMS[0].Form.FormTemplate;
function RenderButton() {
debugger
var htmlButton = '<input type="button" ';
htmlButton += ' class="k-button sg-button" onclick="OpenUrl()" value="مشاهده"></input>'
return htmlButton;
}
function OpenUrl() {
debugger
var SelectLink = form.GetControl("c_EntireDoc").InputControl.GetSelectedItem().UrlFile;
SelectLink1 =SelectLink.substring(SelectLink.indexOf(",")+1);
var options = {
title: "فایل پیوستی",
width: 1500,
height: 800,
url: SelectLink};
window.open(SelectLink1,"_blank");
}
<script>
function onCloseCallback_Reload(dialogResult, returnValue) {
ALL_FORMS[0].Form.FormTemplate.GetControl("c_Control1").ReloadValue();
}
function EditBook(){
form = ALL_FORMS[0].Form.FormTemplate;
var ID = form.GetControl("c_Control1").InputControl.GetSelectedItem().ID ;
var options = {
title: "ثبت آثار مولفین و مترجمان" ,
width: 1500,
height: 1000,
url: "url" + ID +"&isdlg=1",
dialogReturnValueCallback : onCloseCallback_Reload };
SP.UI.ModalDialog.showModalDialog(options);
}
</script>
با توجه به کد بالا این تکه کد در یکی از فیلد های گرید قرار میگیرد
'<input type="button" class="k-button" onclick="EditBook()" value="ویرایش"></input>'
var rows = form.GetControl("c_Grid").InputControl.GetAllItems();
var gridpack = form.GetControl("c_Grid2").InputControl.GetAllItems();
var item = form.GetControl("c_Grid2").InputControl.GetSelectedItem();
eachgridmenu = gridpack[i];
var result = true;
var service = item.ServiceDes
rows.forEach(row => {
if(row.ServiceDes == service){
result = false
}
});
if(result){
form.GetControl("c_Grid").InputControl.AddNewRow(item);
}
jQuery(document).ready(function ($) {
setTimeout(addColor, 1500)
function addColor(){
setTimeout(function () {
var trs = $("#scriptWPQ2 table:last-child tbody tr")
$(trs).each(function () {
var tds = trs.find('td')
var thistr = $(this)
tds.each(function(){
if($(this).text() == 'فوری'){
$(thistr).css('background','#b3e7ff')
}
})
})
},1500)
}
$(document).on("click", "#pagingWPQ2next,#pagingWPQ2prev", function () {
setTimeout(addIcon, 1500)
})
})
var c = form.GetControl("c_DEG");
var grid = $(c.InputControl.CTRL_GRID).data("kendoGrid");
moveGridRowUp(grid);
function moveGridRowUp(grid)
{
var row = grid.select();
if (row)
{
var dataItem = grid.dataItem(row);
var index = grid.dataSource.indexOf(dataItem);
var newIndex = Math.max(0, index - 1);
if (newIndex != index)
{
grid.dataSource.remove(dataItem);
grid.dataSource.insert(newIndex, dataItem);
}
}
}
var grid = $(form.GetControl("yourDataGrid").InputControl.CTRL_GRID).data("kendoGrid");
var dsSort = [];
dsSort.push({ field: "Title", dir: "asc" });
dsSort.push({ field: "Name", dir: "asc" });
grid.dataSource.sort(dsSort);
form = ALL_FORMS[0].Form.FormTemplate;
gridDetail = form.GetControl('Name_Grid') ;
HideBtn = gridDetail.InputControl.CTRL_BUTTON_DELETE;
HideBtn.disabled = true