کنترل DocumentGrid در پاورفرم

آپلود سند در پاورفرم

یکی از سوالات متداول در مورد پاورفرم کار با فیلد داکیومنت گرید است.

در ادامه به بررسی کامل این فیلد کاربردی می پردازیم:

کنترل DocumentGrid یک بستری برای فهرست کردن اسناد یک کتابخانه در شیرپوینت است و ابزارهایی برای باز کردن، حذف یا آپلود یک سند از / به یک مکان خاص فراهم می کند:

دکمه «Open» سند انتخاب شده را باز می کند و به همین ترتیب حالت ReadOnly / Edit دقیقا مانند شیرپوینت عمل می کند.

دکمه «Refresh» اطلاعات جدول را بارگذاری مجدد می کند.
دکمه “Remove” سند را از کتابخانه حذف می کند.
دکمه “Upload” یک سند جدید را از حافظه ی محلی کاربر اضافه می کند (سند جدید با دکمه “Browse” انتخاب می شود)
برای شروع کار با داکیومنت گرید به یک ListQuery نیاز دارید و سپس آن را به فیلد داکیومنت گرید متصل کنید.

Value Properties

Value
کنترل DocumentList فقط مقدار خود را از یک ListQuery می گیرد. یک ListQuery از پیش تعریف شده که مجموعه ای از آیتم های کتابخانه را باز می گرداند. فرض کنید که لیست Query زیر در بخش مربوطه تعریف شده است:

کنترل DocumentGrid در پاورفرم

تعریف کوئری در پاورفرم

این ListQuery برای ارائه اطلاعات به کنترل DocumentGrid استفاده می شود:

کنترل DocumentGrid در پاورفرم

کوئری در پاورفرم

Extra Configuration

Allowupload
فعال / غیر فعال کردن دکمه آپلود
AllowDelete
فعال / غیر فعال کردن دکمه حذف

DataLoadedScript

شما می توانید یک اسکریپت بنویسید که هرگاه داده های متصل به dataagrid در حال بارگذاری هستند، درست قبل از اینکه آنها را در گرید قرار دهد، اجرا شود. از متغیر ‘item’ می توانید استفاده کنید. این قابلیت به شما این امکان را می دهد قبل از این که داده ای را نمایش دهید یک پیغام به شما بدهد.

if (items.length > 0)
{
alert(“The first item’s ID is: ” + items[0].ID);
}

Values

یکی از مهم ترین کارهایی که باید انجام دهید ایجاد ستون لوکاپ بین لیست و کتابخانه ی شماست. با این کار به راحتی می توانید اسناد مربوط به همان آیتم را در گرید نمایش دهید.
مثلا فرض کنید یک کتابخانه اسناد با نام «Order Documents» با یک ستون از جنس لوکاپ با نام «OrderID» دارید که سند «Order Documents» را به یک لیست به نام «Orders» لینک می کند. در این حالت شما نام و مقدار را به صورت زیر وارد میکنید:

Name= OrderID

Value = {c_ID}

(Value  می تواند به صورت استاتیک یا محاسبه شده بر اساس فیلدهای موجود باشد).

نکته: در صورتی که در حالت  New فرم هستید این مورد کار نمیکند زیرا فیلد شناسه هنوز مقدار نگرفته است.

Fields

Name: نام فیلد. این باید با یک حرف شروع شود و تنها حاوی حروف، اعداد و کارکترهای underscore  باشد

Header: هدر فیلد

Script

برای این کنترل گرید قابل اجرا نیست. از SelectionChangedScript و DataLoadedScript استفاده کنید

DocumentUploaded
این رویداد بعد از سند آپلود، با استفاده از کنترل DocumentGrid، اجرا خواهد شد.
مثال:

var grid = form.GetControl(“c_aDocumentGrid”).InputControl;

grid.DocumentUploaded.AddHandler(function (e3) {
alert(“Document Uploaded!”);
});

DocumentUploading

این کد زمانی  که دکمه آپلود در کنترل DocumentGrid را انتخاب می کنید، دقیقا قبل از ارسال اسناد، اجرا می شود.
مثال:

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

var grid = form.GetControl(“c_aDocumentGrid”).InputControl;

grid.DocumentUploading.AddHandler(function (e2) {
pf.UploadValues(e2);
});
pf.UploadValues = function(e) {

var conf = confirm(“Are you sure you want to upload this file?”);
// documents to be loaded
alert(grid.CTRL_ADD_FILES.value);
if(conf == true){
// continues uploading files
e.Cancel = false;
e.Callback(e);
}
else
{
// cancels uploading
e.Cancel = true;
}
}