ผมได้ทำงานในโครงการที่ต้องแยกสิ่งที่แนบจากฟอร์ม InfoPath. มีทรัพยากรที่ดีบางสำหรับแยกฟอร์ม InfoPath (ซึ่งเป็นเพียงแฟ้ม XML, ดังนั้น จึงเป็นจริงค่อนข้างง่าย).
ในขณะที่ผมได้สร้างโครงการ, ผมเริ่ม โดยดาวน์โหลดแบบฟอร์ม InfoPath และบันทึกลงฮาร์ดดิสก์ของฉัน. รหัสของฉัน c# ถูกอ่านโดยตรงจากอินสแตนซ์นั้น. อย่างไรก็ตาม, แบบฟอร์ม InfoPath จริง ๆ อาศัยอยู่ภายในไลบรารีของฟอร์ม SharePoint. ฉันไม่น้อยครึ่งที่ต้อนรับของคนที่ค้นหาวิธีอ่านโดยตรงจากไลบรารี และเกือบได้, ซึ่ง ผมจะได้บันทึกแบบฟอร์มไดเรกทอรีชั่วคราวภายใน และอ่านจาก. อย่างไรก็ตาม, ไม่จำเป็นต้องผ่านห่วงที่เป็นคุณสามารถอ่านได้โดยตรงจากไลบรารี. ส่วนย่อยของโค้ดนี้น้อยแสดงว่า:
/// คลาสนิยามสิ่งที่นี่, รวมทั้งการ:
ส่วนตัว SPFile mySharePointFile; /* ส่วนหนึ่งของ SPList */ // รหัสเพิ่มเติมไปที่นี่ และภายในวิธีการเรียนเรามี: textReader = ใหม่ XmlTextReader(mySharePointFile.OpenBinaryStream()); textReader.WhitespaceHandling = WhitespaceHandling.ไม่มี; textReader.Read(); // ถ้าโหนดที่มีค่า ในขณะที่ (textReader.Read()) { |
จะคีย์บิตเหนือคือ ว่า เราสามารถอ่าน InfoPath โดยตรงผ่านการ OpenBinaryStream() วิธีโทรบน SPFile ที่เป็นพารามิเตอร์ไปที่ตัวสร้างบน XmlTextReader. ทำงานที่ดี.
</สิ้นสุด>
ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin
สวัสดี,
ต้องการความช่วยเหลือในนี้ , มี sharepoint 2007 ไซต์และ infopath กับตารางซ้ำ , สิ่งที่ฉันต้องทำคือเมื่อบันทึกฟอร์มในไลบรารีฟอร์ม sharepoint ต้องวนรอบ และบันทึกข้อมูลลงรายการโดยใช้ตัวจัดการเหตุการณ์การไลบรารีฟอร์ม SP.
ช่วยใดจะชื่นชมจริง ๆ.
ขอขอบคุณ