我有一個表格有一些5個文本字段。首先,我在工作區填寫表格並將其分配給工作流程中的其他人員。我的要求是,我分配表單的人不應該能夠編輯表單數據,只能說三個特定的字段。我怎樣才能達到相同的目的? 我想鎖定這些特定的字段,它不應該是可編輯的。如何使一個字段不可編輯
1
A
回答
0
基於XFA的表單中的每個字段都有可以在任何事件上設置的訪問屬性。訪問屬性可以設置爲以下項目之一:
"open|protected|readOnly|nonInteractive"
例如,設置了一個名爲「城市」包含在子窗體「AddressSubform」文本字段,您可以設置訪問屬性以下方法,使之不可編輯:
AddressSubform.City.access = "readOnly";
此JavaScript代碼段需要在像按鈕的點擊事件觸發,就形成一個場或出口初始化如果窗體是特定形式的狀態。
在你提到的用例中,你需要跟蹤誰填寫了表單。一般來說(最佳實踐),通過在LiveCycle表單中設置一個表單狀態變量來跟蹤它。因此,當您在工作區中完成表單時,您需要確保表單狀態設置爲其他值。一旦其他用戶收到表單,就可以在表單的initialize事件中檢查新的表單狀態,並按照代碼片段中的說明設置這些字段。
0
您可以在數據中設置一個標誌來指示是否需要鎖定字段。您需要在表單呈現發生之前設置標誌。您可以使用setValue
服務。然後,您只需通過檢查數據中的標誌,即可將initialize
腳本添加到您想要進行讀取的字段中。
var flag = xfa.resolveNode("xfa.datasets.data.Root.config.flag").value;
if(flag == "lock"){
this.access = "readOnly";
} else {
this.access = "";
}
請注意,上述代碼假設您的數據XML結構如下。
<Root>
<config>
<flag>lock</flag>
</config>
<restOfData>
...
</restOfData>
</Root>
1
我做這個方便的交易:分析你xfa form
xml
通過這樣的:
private string MakeReadOnly(string xml)
{
string formName = GetFormName(xml);
return @"
ProcessAllFields(xfa.form." + formName + @");
function ProcessAllFields(oNode) {
if (oNode.className == 'exclGroup' || oNode.className == 'subform' || oNode.className == 'subformSet' || oNode.className == 'area') {
for (var i = 0; i < oNode.nodes.length; i++) {
var oChildNode = oNode.nodes.item(i); ProcessAllFields(oChildNode);
}
} else if (oNode.className == 'field') {
oNode.access = 'readOnly'
}
}";
}
private string GetFormName(string xml)
{
string formName = string.Empty;
int subFormStart = xml.IndexOf("<subform", 0);
if (subFormStart > -1)
{
int nameTagStart = xml.IndexOf("name", subFormStart);
int nameStart = xml.IndexOf("\"", nameTagStart);
int nameEnd = xml.IndexOf("\"", nameStart + 1);
formName = xml.Substring(nameStart + 1, (nameEnd - nameStart) - 1);
}
return formName;
}
然後調用它像這樣:
stamper.Writer.CloseStream = false;
stamper.Close();
reader.Close();
:
PdfAction readOnlyAction = PdfAction
.JavaScript(MakeReadOnly(xfa.DomDocument.InnerXml), stamper.Writer);
stamper.Writer.AddJavaScript(readOnlyAction);
權之前,調用它
你去了。只讀XFA字段!
相關問題
- 1. 文本字段使可編輯,不可編輯使用jquery
- 2. 使用javascript讓字段不可編輯
- 3. RadGrid使字段不可見編輯
- 4. 如何使文本字段的部分不可編輯?
- 5. 如何使文本字段不可編輯?
- 6. 如何使輸入字段不可編輯
- 7. mvc DataAnnotations如何使字段不可編輯在3.5
- 8. 內聯可編輯網格 - 字段不可編輯CRM 2013
- 9. 在iPhone上提供可編輯和不可編輯的字段
- 10. 如何在Jasper報告中編輯可編輯的PDF字段
- 11. 是否有可能使一個xml字段在IOS中不可編輯
- 12. 如何使用JQuery + JEditable一次編輯/保存多個字段?
- 13. 多個可編輯的字段使用jQuery單擊一次
- 14. 可編輯文本字段
- 15. 使額外的WordPress的個人資料字段不可編輯
- 16. Sitecore Glassmapper字段不可編輯
- 17. Tapestry5不可編輯的文本字段
- 18. 輸入字段的值不可編輯
- 19. JavaScript輸入字段不可編輯?
- 20. JqGrid表單編輯 - 如何發佈不可編輯的字段到服務器
- 21. 編輯和不可編輯的輸入字段,然後選擇
- 22. 可編輯JComboBox與編輯字段中的不同文本
- 23. 不可編輯編輯字段突出顯示問題
- 24. jeditable - 多個可編輯的字段,觸發正確的編輯
- 25. 如何使用GWT編輯器框架編輯多值字段?
- 26. 使文本字段可查看但不可編輯
- 27. 如何編輯一個對象數組的單個字段?
- 28. 如何在iTextSharp中設置pdf不可編輯的字段
- 29. 在DetailsView中編輯一個字段
- 30. 編輯其中一個GridView字段