PSPCommunity.org ورود | ثبت نام | كمك

آرش آقاجانی (Arash Aghajani)

Technical Persian Blog Focus on Microsoft SharePoint Products and Technologies

اخبار

بيشترين بازديد شده

How to submit the rows of a repeating table in InfoPath Form to SharePoint List - Step by Step

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

در این پُست به طور مختصر به توضیح در مورد فرمهای InfoPath و نحوه استفاده از فرمهای InfoPath در شیرپوینت مطالبی رو عنوان کردم. در مقاله حاضر تصمیم دارم تا با مثالی کاربردی نحوه ثبت اطلاعات جداول Repeating فرمهای InfoPath را در یک لیست شیرپوینت تشریح کنم. پس با من همراه باشید...

برای اینکار روشهای مختلفی در سایتها نوشته شده، ولی من براساس تجربیات شخصیم با یک مثال کاربردی این روش را برای شما دوستان توضیح میدم.

1- ابتدا در سایت شیرپوینت یک لیست جدید به نام Customers ایجاد نمایید.

2- در این لیست 6 فیلد از نوع متنی یا متن تک خطی ایجاد نمایید. نام فیلدها به صورت زیر باشند :

FirstName, LastName, PersonalID, Tel, Email, Address

 1

3- حال  InfoPath 2007 را باز کنید و در پنجره getting started گزینه Design a Form Template را کلیک کنید.

4- در صفحه باز شده در قسمت Based on: بر روی Blank کلیک کنید و در پایین پنجره گزینه Enable Browser-Compatible features only را انتخاب نمایید و پنجره را با OK ببندید.

5- در محیط برنامه از منوی سمت راست Data Source را انتخاب نمایید. بر روی myfields کلیک راست نمایید و از طریق منوی آن 2 گروه به نامهای group1 و row ایجاد کنید. دقت کنید که گروه row از نوع Repeating باشد. بر روی row کلیک راست کنید و 7 فیلد به نامهای زیر ایجاد نمایید.( تمام فیلدها از نوع Text باشند)

 12

6- حال بر روی row کلیک راست کنید و گزینه Repeating Table را انتخاب کنید. این کار باعث ایجاد سطری از فیلدهای شما به صورت جدول قابل تکرار یا Repeating می شود. سپس از منوی سمت راست گزینه controls را انتخاب کنید و یک Button زیر جدول قرار دهید. (شکل های زیر)

 3

 11

7- یک فایل txt در ویندوز بسازید و code زیر را داخل آن کپی کنید و سپس این فایل را با نام Template و با پسوند XML ذخیر نمایید. (Template.xml)

<?xml version="1.0" encoding="UTF-8"?>
<Batch OnError="Continue">
    <Method ID="1" Cmd="New">
        <Field Name='Title'></Field>
        <Field Name="FirstName"></Field>
        <Field Name="LastName"></Field>
        <Field Name="PersonalID"></Field>
        <Field Name="Tel"></Field>
        <Field Name="Email"></Field>
        <Field Name="Address"></Field>
    </Method>
</Batch>

8- از منوی سمت راست و قسمت Data Source یک فیلد دیگر به نام ListName در گروه myfields ایجاد کنید و از نوع text باشد. مقدار پیش فرض یا Default Value این فیلد را GUID لیستی که در مرحله 2 در شیرپوینت ساختیم، درج کنید.

13

9- در برنامه InfoPath از منوی Tools، گزینه Data Connections را کلیک کنید. Add را کلیک کنید. Create a new connection را انتخاب و سپس گزینه Receive Data را انتخاب نمایید.سپس Next را کلیک کنید.گزینه XML Document انتخاب شده باشد و Next را کلیک کنید. از طریق browse آدرس فایل Template.XML را انتخاب کنید و سپس دوبار Next و در انتها Finish را کلیک کنید. در پنجره Data Connections و Data Source نام Template را مشاهده خواهید کرد.

10

10- در همان پنجره Data Connection مجدداً دکمه Add را کلیک کنید و سپس گزینه Submit data را از قسمت Create a new Connection انتخاب نماببد. Next و سپس گزینه To a Web Service را از پنجره بعدی انتخاب کنید و Next . در پنجره بعدی آدرس سایت و Web Service مربوط به لیست ها رو به صورت زیر وارد کنید :

 http://ServerName/_vti_bin/lists.asmx?WSDL

 5

سپس Next را کلیک کنید.در پنجره بعدی و از ستون سمت چپ UpdateListItems را انتخاب و Next را کلیک کنید.

6 

در صفحه بعدی و در قسمت Parameters گزینه اول یعنی tns:listName را انتخاب و از طریق دکمه جلوی TextBox مربوط به Field or Group ، فیلد ListName را از Data Source Main انتخاب کنید و سپس بر روی گزینه دوم یعنی tns:Updates را انتخاب و از طریق دکمه Field or group ، گروه فیلد اول Data Source با نام Template(Secondary) را انتخاب کنید. نام این گروه فیلد Batch می باشد. در قسمت Include: مقدار XML Subtree,Including selected element را برگزینید.در انتها Next و در پایان Finish را کلیک کنید. ( شکل زیر )

 7

11- خُب خسته نباشید! حال زمان نوشتن کد برای ثبت اطلاعات می باشد... با من همراه باشید. :)

12- از منوی Tools برنامه گزینه Form Options را کلیک کنید. از قسمت Category بخش Programming را انتخاب کنید. در سمت راست پنجره ، در پایین پنجره در قسمت Form template code Language زبان #C را انتخاب کنید و پنجره را با OK ببندید.

 8

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

 9

14- حال بر روی دکمه Edit Form Code کلیک کنید. تا پنجره کد مربوط به Event این دکمه در Visual Studio باز شود.

15- کد #C زیر را در پایین متد btnSubmit_Clicked مربوط به Event دکمه وارد کنید :

public void btnSubmit_Clicked(object sender, ClickedEventArgs e)
    {        
        XPathNavigator secDSNav = DataSources["Template"].CreateNavigator();
        XPathNodeIterator iter = secDSNav.Select("/Batch/Method");
        int methodNodesCount = iter.Count;

        XPathNavigator firstMethodNav =
        secDSNav.SelectSingleNode("/Batch/Method[1]",
        NamespaceManager);
        XPathNavigator lastMethodNav =
        secDSNav.SelectSingleNode("/Batch/Method[" + methodNodesCount.ToString() + "]",
        NamespaceManager);

        firstMethodNav.DeleteRange(lastMethodNav);
        XPathNavigator root = MainDataSource.CreateNavigator();
        XPathNodeIterator rows = root.Select(
        "/my:myFields/my:group1/my:row", NamespaceManager);
        
        int counter = 1;
        while (rows.MoveNext())
        {            
            string Title = rows.Current.SelectSingleNode(
            "my:Title", NamespaceManager).Value;
            string FirstName = rows.Current.SelectSingleNode(
            "my:FirstName", NamespaceManager).Value;
            string LastName = rows.Current.SelectSingleNode(
            "my:LastName", NamespaceManager).Value;
            string PersonalID = rows.Current.SelectSingleNode(
            "my:PersonalID", NamespaceManager).Value;
            string Tel = rows.Current.SelectSingleNode(
            "my:Tel", NamespaceManager).Value;
            string Email = rows.Current.SelectSingleNode(
            "my:Email", NamespaceManager).Value;
            string Address = rows.Current.SelectSingleNode(
            "my:Address", NamespaceManager).Value;            
            
            AddMethodNode(Title, FirstName, LastName, PersonalID, Tel, EMail, Address);            
            counter++;
        }
       
        DataConnections["WSSubmit"].Execute();

    }

    private void AddMethodNode(string f1,string f2,string f3,string f4,string f5,string f6,string f7)
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.AppendFormat("<Method ID=\"1\" Cmd=\"New\">");
        sb.AppendFormat("<Field Name=\"Title\">{0}</Field>", f1);
        sb.AppendFormat("<Field Name=\"FirstName\">{0}</Field>", f2);
        sb.AppendFormat("<Field Name=\"LastName\">{0}</Field>", f3);
        sb.AppendFormat("<Field Name=\"PersonalID\">{0}</Field>", f4);
        sb.AppendFormat("<Field Name=\"Tel\">{0}</Field>", f5);
        sb.AppendFormat("<Field Name=\"Email\">{0}</Field>", f6);
        sb.AppendFormat("<Field Name=\"Address\">{0}</Field>", f7);        
        sb.AppendFormat("</Method>");

        XmlDocument methodXML = new XmlDocument();
        methodXML.LoadXml(sb.ToString());

        XPathNavigator secDSNav = DataSources["Template"].CreateNavigator();
        XPathNavigator batchNav = secDSNav.SelectSingleNode("/Batch", NamespaceManager);
        batchNav.AppendChild(methodXML.DocumentElement.CreateNavigator());
    }

16- حال دکمه F5 را جهت build پروژه فشار دهید. سپس پنجره VS را ببندید و پنجره Button Properties را OK نمایید.

17- چون این فرم طراحی شده ما قابلیت Browser-enable را دارا می باشد. پس بهتره قبل از Publish ، آنرا از لحاظ خطاهای مختلف چک کنیم.برای اینکار از منوی سمت راست گزینه Design Checker را کلیک کنید.اگر خطا یا Error ای دریافت نکردید، مشخصه که فرم شما مشکلی جهت Publish ندارد.

18- اکنون می توانید با انتخاب Preview از منوی بالایی برنامه فرم طراحی شده را تست کنید. با درج اطلاعات در هر ردیف جدول Repeating Table ، و زدن دکمه Submit کلیه اطلاعات هر ردیف به صورت یک سطر در لیست شیرپوینتی شما درج خواهد شد.

در صورت تمایل می توانید این فرم را به عنوان یک Content Type در کتابخانه فرمهای شیرپوینت Publish کنید. در مقاله بعدی نحوه Publish این فرم در شیرپوینت را تشریح خواهم کرد. همچنین به تشریح تکنیکهای حرفه ای کار با فرمهای InfoPath خواهم پرداخت.

منتظر سوالات و نظرات شما دوستانم هستم.

شاد و موفق باشید. :)

Posted: Wednesday, May 20, 2009 8:32 PM توسط Arash

نظرات

mahmood56 گفته:

ممنون آرش جان، واقعا مطلب پرکاربردی رو عنوان کردید.

مرسی.

# May 21, 2009 9:50 AM

sh_ziyaee گفته:

من با این خطا مواجه شدم

System.NullReferenceException

Object reference not set to an instance of an object.

  at sample1.FormCode.btnsubmit_Clicked(Object sender, ClickedEventArgs e)

  at Microsoft.Office.InfoPath.Internal.ButtonEventHost.OnButtonClick(DocActionEvent pEvent)

  at Microsoft.Office.Interop.InfoPath.SemiTrust._ButtonEventSink_SinkHelper.OnClick(DocActionEvent pEvent)

# May 23, 2009 1:38 PM

Arash گفته:

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

1- GUID ليست رو درست وارد نكرده باشيد! اگر اينطور نيست GUID رو داخل {} قرار بديد و تست كنيد.

2- ممكنه فيلدهاي تعريفي شما در فايل XML با فيلدهاي ليست و فيلدهايي كه در كد برنامه تعريف كرديد يكسان نباشند! اين مورد را دقيقتر چك كنيد.

3- فراموش نكنيد كه فيلد Title رو حذف نكرده باشيد.

لطفاً نتايج كار رو به من اطلاع بديد.

# May 23, 2009 5:44 PM

sh_ziyaee گفته:

حق با شما بود. فیلد title حذف کرده بودم . با گذاشتن اون ، درست شد .

ممنون

# May 24, 2009 7:38 AM

Arash گفته:

من در حال آماده كردن ادامه اين مطلب و نحوه Publish فرمهاي Infopath در شيرپوينت هستم. اگر دوستان به مشكلي در زمينه Publish فرمها برخورد كرده اند به پُست زير در انجمن سايت مراجعه كنند :

http://pspcommunity.org/forums/thread/815.aspx

# May 25, 2009 2:48 PM

aram.azari گفته:

دوست عزيز آرش

مطلب خيلي خوبي در مورد اينفوپت كار كرده بوديد.

اما مشكلي كه در فرم هاي اينفوپت وجود دارد اين است كه مشكل عكس و attachment را حل نكرده است. كدهايي دراين زمينه نوشته شده كه فقط روي سرور شرپوينت عمل ميكند و وقتي كه روي كامپيوتر كاربران نصب ميكنيم (فرممان را به نصب كننده تبديل كرده ايم. اين فرم كار نميكند. اين اشكال فقط زماني پيش مي آيد كه اتچمنت را وارد فرم ميكنيم...

راه حلي داريد؟؟؟؟

# May 30, 2009 10:39 AM

ghafarnia گفته:

سلام، خسته نباشید، ممنون به خاطر این مقاله

من کارهایی که گفته بودید را انجام دادم به بخش کدنویسی که رسیدم به من گفت که باید VSTA را نصب کنم من VSTA را از سایت مایکروسافت دانلود کردم ولی بازهم همان error را به من داد لطفا راهنمایی کنید؟

# May 30, 2009 11:47 AM

Arash گفته:

سلام

همانطور كه در مكالمه اي كه داشتيم مطرح شد، شما نياز به نصب Infopath براي كلاينت ها داريد و پيشنهاد مي كنم سطح security فرم رو به حالت Full Trust قرار بديد.اگر پيغام خطا رو اينجا قرار بديد مي تونم بيشتر كمكتون كنم.

در مورد attachment هم اينطور كه مطلع شدم، خوشبختانه شما اين مشكل رو حل كرديد و پيشنهاد مي كنم به صورت يك مقاله در وبلاگتون منتشر كنيد تا ساير دوستان هم از تجربه شما استفاده كنند..

با تشكر

# June 1, 2009 9:56 AM

آرش آقاجانی (Arash Aghajani) گفته:

در مقاله (1) توضیحاتی در مورد فرمهای InfoPath و نحوه استفاده از آنها در شیرپوینت ارائه کردم.در مقاله

# June 4, 2009 3:01 PM

Emad گفته:

مطمئنا به اين روش نياز خواهم داشت. ممنون از توضيحات كامل و جامعي كه داديد.

# June 24, 2009 1:17 AM

Arash گفته:

جناب غفارنيا :

شما نيازي به دانلود VSTA نداريد.فقط كافيه برنامه نصب Office رو مجدداً اجرا كنيد و گزينه Update يا Add/Remove رو انتخاب كنيد و در قسمت مربوط به infopath از component هاي زير مجموعه آن گزينه VSTA رو در بخش Programming چك مارك كنيد و اجازه نصب رو بهش بديد! همين.

توجه كنيد كه VSTA به صورت خودكار در زمان نصب infopath نصب نميشه!

اگه مشكلي بود مطرح كنيد..

موفق باشيد

# July 4, 2009 12:56 PM

Hossein گفته:

با سلام

ممنون از مطلب خوبتون

من تمام مراحلی که شما ذکر کرده بودید را یک به یک انجام دادم ولی موقع اجرای برنامه با خطای زیر روبرو شدم لطفا مرا راهنمایی کنید

System.Security.SecurityException

Request failed.

  at Microsoft.Office.InfoPath.MsxmlNavigator.IsValidNode(MsxmlNode test)

  at Microsoft.Office.InfoPath.MsxmlNavigator.MoveToFirstChild()

  at MS.Internal.Xml.XPath.XPathChildIterator.MoveNext()

  at MS.Internal.Xml.XPath.ChildrenQuery.Advance()

  at MS.Internal.Xml.XPath.ChildrenQuery.Advance()

  at MS.Internal.Xml.XPath.Query.MoveNext()

  at MS.Internal.Xml.XPath.Query.get_Count()

  at MS.Internal.Xml.XPath.XPathSelectionIterator.get_Count()

  at Template3.FormCode.btnSubmit_Clicked(Object sender, ClickedEventArgs e)

  at Microsoft.Office.InfoPath.Internal.ButtonEventHost.OnButtonClick(DocActionEvent pEvent)

  at Microsoft.Office.Interop.InfoPath.SemiTrust._ButtonEventSink_SinkHelper.OnClick(DocActionEvent pEvent)

با تشکر

# August 3, 2009 12:07 AM

Arash گفته:

Hossein@

اين طور كه مشخصه،خطاي عدم دسترسي يا محدوديت در دسترسي مي باشد.شما بايد در تنظيمات فرم، سطح دسترسي رو بر روي Full Trustقرار بديد و بعد فرم رو اجرا كنيد :

منوي Tools>Form Options> Tab Security and Trust و سپس از بخش Security Level گزينه Full Trust رو انتخاب كنيد.

اگر مشكل برطرف نشد، اطلاع بديد.

# August 3, 2009 9:48 AM

Negeen گفته:

با سلام

من یک تازه وارد در Infopath هستم وبا مشکل آقای حسین برخورد کردم و با انجام راهنمایی شمل مشکل من برطرف گردید ولی اکنون با مشکل جدیدی روبروشده ام که موقع اجرای دکمه با error روبرو مواجه می شود ممنون می شوم اگر مرا راهنمایی کنید.

System.Collections.Generic.KeyNotFoundException

The given key was not present in the dictionary.

  at System.ThrowHelper.ThrowKeyNotFoundException()

  at System.Collections.Generic.Dictionary`2.get_Item(TKey key)

  at Microsoft.Office.InfoPath.Internal.DataConnectionsHost.get_Item(String name)

  at Template3.FormCode.btnSubmit_Clicked(Object sender, ClickedEventArgs e)

  at Microsoft.Office.InfoPath.Internal.ButtonEventHost.OnButtonClick(DocActionEvent pEvent)

  at Microsoft.Office.Interop.InfoPath.SemiTrust._ButtonEventSink_SinkHelper.OnClick(DocActionEvent pEvent)

من چندین بار ID و فیلدهای لیست خود را چک کرده ام و از درست بودن آن مطمئنمضمن اینکه ID را با {} و بدون {} هم امتحان کردم ولی مشکل رفع نشد.

با تشکر از راهنمایی و مطلب خوب شما

# August 4, 2009 10:25 PM

Arash گفته:

Negeen@

در بالای صفحه کد در قسمت :

<#@ Template Language="C#" Debug="false" #>

مقدار Debug را برابر true قرار بدید.

فکر کنم مشکل برطرف بشه؟

# August 4, 2009 11:03 PM

Negeen گفته:

سلام

ممنون از راهنماییتون ولی کجا این کد کجا قرار داره و کجا این تغییر را باید اعمال کنم

# August 6, 2009 6:39 PM

DPCO گفته:

با سلام

من از روشی که شما ارائه دادید فرمم را درsharepoint به یک لیست submit کردم.لیستم را از طریق document>create>custom list ایجاد کردم.و در infopath آدرس URL آن رابه GUID تبدیل کردم.

در هنگام submit پیغام انجام شدن submit میآید ولی در sharepoint چیزی اضافه نمیشود.

ضمنا من با infopath2007 کار میکنم و فایل Xmlو infopath را درکامپیوتر خودم ایجاد کرده و sharepoint بر روی سرور است که با اکانتadmin با آن کار میکنم. لطفا راهنمایی کنید.

# August 30, 2009 1:57 PM

Arash گفته:

DPCO@

سلام

مراحلی که شما انجام دادید درست هستند.دلیل عدم submit اطلاعات در لیست چند مورد میتونه باشه :

1- اینکه نام ستون های لیست رو در XML فایل ممکنه درست وارد نکرده باشید! این مورد رو حتماً چک کنید.یکبار با عدم تناسب اسمی فیلدها در xml و لیست شرپوینت برخورد کردم که مانند مورد شما، اطلاعاتی در لیست ثبت نمی شد!

2- ممکنه GUID رو درست وارد نکرده باشید!ً به پاسخی که به کاربر sh_ziyaee در بالا دادم توجه کنید و اون موارد رو چک کنید.

3- کد #C رو دیباگ کنید و با گذاشتن breakpoint در کد، برنامه رو trace کنید و ببینید مقادیر توسط متد AddMethod درست خوانده و درج می شوند یا نه!

# August 31, 2009 10:00 PM

DPCO گفته:

سلام- خسته نباشید.

من دارم با شیرپوینت کار میکنم و نیاز دارم که در یک لیست ستونی از نوع time تعریف کنم ولی از بین انواع خود شیرپوینت نوع time وجود نداردو فقط نوع date/time موجود می باشد.

در صورت امکان راهنمایی کنید.

# September 2, 2009 12:30 PM

ahadi گفته:

سلام

ممنون از پست خوبتان.

من در ابتدا با استفاده از این روش نتوانستم رکورد به لیستم اضافه کنم. سایت و لیست سفارشی من فارسی هستند. پس از چک کردن فایل monifest.xsn (که از Save as resource کردن فرم بدست می آید)متوجه شدم که نام ستون های فارسی در شرپوینت بصورت زیر ذخیره شده است

عنوان=Title

پست-الکترونیک = _x067e__x0633__x062a__x0020__x06

تلفن = _x062a__x0644__x0641__x0646_

با تصحیح فایل XML به این نامها در نهایت توانستم رکورد به لیستم اضافه کنم. اما مشکلی که در حال حاضر دارم ناخوانا بودن فرم است.چگونه میتوانم نام فیلدهای Repeating Table جدید را به معادل فارسی آن تبدیل کنم؟

از همکاری شما ممنونم

# November 8, 2009 1:25 PM

ahadi گفته:

سلام

ممنون از پست خوبتان.

من در ابتدا با استفاده از این روش نتوانستم رکورد به لیستم اضافه کنم. سایت و لیست سفارشی من فارسی هستند. پس از چک کردن فایل monifest.xsn (که از Save as resource کردن فرم بدست می آید)متوجه شدم که نام ستون های فارسی در شرپوینت بصورت زیر ذخیره شده است

عنوان=Title

پست-الکترونیک = _x067e__x0633__x062a__x0020__x06

تلفن = _x062a__x0644__x0641__x0646_

با تصحیح فایل XML به این نامها در نهایت توانستم رکورد به لیستم اضافه کنم. اما مشکلی که در حال حاضر دارم ناخوانا بودن فرم است.چگونه میتوانم نام فیلدهای Repeating Table جدید را به معادل فارسی آن تبدیل کنم؟

از همکاری شما ممنونم

# November 8, 2009 1:33 PM

Arash گفته:

@ahadi

خواهش میکنم.

شما باید فیلدهای RepTable رو از نوع لاتین تعریف کنید، بعد که توسط اونها Table رو ایجاد کردید، میتونید Text یا Caption ستونهای جدول رو در حالت دیزاین فارسی کنید و به دلخواه نمایش بدید.

# November 14, 2009 9:13 PM

کاوش گفته:

GUID رو چه جوری باید بسازیم

میشه کمی توضیح بدید این GUID  چیه ؟

من لیست و ساختم اما نمی دونم GUID  از کجا بیارم؟

با تشکر

# April 6, 2010 12:01 AM

reza_accp گفته:

سلام

من هم مشکل Negeen رو دارم

ممنون میشم راهنمایی کنید

System.Collections.Generic.KeyNotFoundException

The given key was not present in the dictionary.

  at System.ThrowHelper.ThrowKeyNotFoundException()

  at System.Collections.Generic.Dictionary`2.get_Item(TKey key)

  at Microsoft.Office.InfoPath.Internal.DataConnectionsHost.get_Item(String name)

  at Template1.FormCode.btnSubmit_Clicked(Object sender, ClickedEventArgs e)

  at Microsoft.Office.InfoPath.Internal.ButtonEventHost.OnButtonClick(DocActionEvent pEvent)

  at Microsoft.Office.Interop.InfoPath.SemiTrust._ButtonEventSink_SinkHelper.OnClick(DocActionEvent pEvent)

# July 31, 2010 12:28 PM

srmoosavi گفته:

سلام

ضمن تشكر از مطالب ارزندتون

من كلي تو سايت گشتم تا يك سوال بپرسم جايي رو پيدا نكردم

موضوع سوالم در خصوص InfoPath بود به همين دليل هم اينجا رو انتخاب كردم

اما سوال:

من تو InfoPath ميخوام يه DatePicker فارسي داشته باشم. متاسفانه همه جستجوهام تا الان بي نتيجه بود. ممنون ميشم اگه راه حلي برام داشته باشيد.

# September 2, 2010 4:03 PM

سامان گفته:

ممنون از مطلب مفیدتون.

اگه امکانش هست، در این مورد راهنمایی کنید: در مورد اینکه من بخوام با چند فرم InfoPath که همگی در یک لیست هستند یک فرم رو ویرایش کنم.

مثلا لیست 10 فیلد دارد که فرم اولی 3 تای ان را پر می کند، و بعد فرم بعدی یکی از فیلد های قبلی را ویرایش می کند و 2 تا دیگه رو هم پر می کند و بهمین ترتیب.

چون اگر حالت معمول پابلیش شوند اسم های جدا میگیرند و هر کدام مال خود را ادیت می کنند

# December 6, 2010 3:05 PM

سامان گفته:

ممنون از مطلب مفیدتون.

اگه امکانش هست، در این مورد راهنمایی کنید: در مورد اینکه من بخوام با چند فرم InfoPath که همگی در یک لیست هستند یک فرم رو ویرایش کنم.

مثلا لیست 10 فیلد دارد که فرم اولی 3 تای ان را پر می کند، و بعد فرم بعدی یکی از فیلد های قبلی را ویرایش می کند و 2 تا دیگه رو هم پر می کند و بهمین ترتیب.

چون اگر حالت معمول پابلیش شوند اسم های جدا میگیرند و هر کدام مال خود را ادیت می کنند

# December 7, 2010 11:35 AM

سيد ميثم گفته:

سلام

من مقاله يا كتابي فارسي در مورد tfs ميخام اگه ميتونيد كمكم كونيد بم ميل بزنيد

ممنون

meisam_mah@yahoo.com

# January 6, 2011 12:30 PM

تينا بيك رسولي گفته:

مي تونيد كمك كنيد كه چه طوري يك Drop Down در اينفوپت را مي توان فيلتر كرد بر اساس ستون هاي يك ليست شيرپوينت؟

# January 31, 2011 6:41 PM

ناشناس گفته:

عالیه

# July 5, 2011 8:12 PM

حمیدرضا گفته:

سلام ممنونم از مطلب فوق العادتون آقا من نفهمیدم این GUID چیه و ازکجا باس تولیدش کرد مرحله ی دوم رو پیچوندم و تا انتها قدم به قدم اومدم و از سوالات دوستان هم نهایت استفاده رو کردم اما تو مرحله ی آخر همون errore خانوم نگین و رضا رو میده چه کار کنمش میشه راهنمایی کنید ؟

System.Collections.Generic.KeyNotFoundException

The given key was not present in the dictionary.

  at System.ThrowHelper.ThrowKeyNotFoundException()

  at System.Collections.Generic.Dictionary`2.get_Item(TKey key)

  at Microsoft.Office.InfoPath.Internal.DataConnectionsHost.get_Item(String name)

  at Template1.FormCode.btnSubmit_Clicked(Object sender, ClickedEventArgs e)

  at Microsoft.Office.InfoPath.Internal.ButtonEventHost.OnButtonClick(DocActionEvent pEvent)

  at Microsoft.Office.Interop.InfoPath.SemiTrust._ButtonEventSink_SinkHelper.OnClick(DocActionEvent pEvent)

راستی من از wss استفاده میکنم حالا مشکل سر چیه ؟

باقی مرحله ها مشکلی نداشتم همین آخری گیر کرد

محله دوم رو هم که کلا پیچوندمش

خواهشا سریع جواب بده خیلی گیرم

ممنونم دوست عزیز

# July 5, 2011 8:16 PM

حمیدرضا گفته:

سلام از setting لیستی که تو شیرپوینت درست کردم از url ش همون کدهارو برداشتم و اول آخرشو زدم درست شد فکر کنم GUID دراومد اما باز هم همون error رو میده موندم چه کنم ؟!؟

برای به دست آوردن GUID آکاهی از GUID لیست هدف (برای این کار کافی هست وارد قسمت setting لیست مورد نظر شوید از داخل address bar قسمت

List=%7BBC235268%2D9FD2%2D4083%2D98F8%2D7F98592690BA%7D

GuID لیست را مشخص می کند

%7Bمعادل }  

%7D معادل {

%2D معادل -

# July 5, 2011 9:33 PM

mrafiei گفته:

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

http://www.infopathdev.com/blogs/matt/archive/2006/02/02/Add-SharePoint-List-Items-with-InfoPath.aspx

# December 1, 2012 2:00 PM

sharepointuser گفته:

سلام

ممنون از پست خوبتون

من می خواهم یک فرم Infopath 2010 را که بر روی لیست قرار دارد بگونه ای طراحی کنم که برخی از اطلاعات را از یک جدول در SQL بیاورد و مابقی اطلاعاتی که وارد می شود را درون جدولی دیگری در SQL ذخیره کند. لطف می کنید مطلب آموزشی در این زمینه ارائه کنید؟ من زیاد با مباحث وب سرویس و نحوه نوشتن آن آشنایی ندارم

# July 11, 2013 12:03 PM
نظرات افراد ناشناس غير فعال مي باشد