我尝试从我的代码编辑系统表单(动态添加,删除和编辑webresource) .

xml表单结构中的一个Web资源是(例如):

<row>
    <cell id="{8e331865-dcbd-4820-03e6-edb908641d02}" showlabel="false" colspan="1" auto="false" rowspan="15">
        <labels>
            <label description="Test" languagecode="1033" />
        </labels>
        <control id="WebResource_Test" classid="{9FDF5F91-88B1-47f4-AD53-C11EFC01A01D}">
            <parameters>
                <Url>a24_/DocumentUpload/index.html</Url>
                <Data>dfsfsdfsfsdfsfds</Data>
                <PassParameters>false</PassParameters>
                <ShowOnMobileClient>false</ShowOnMobileClient>
                <Security>false</Security>
                <Scrolling>auto</Scrolling>
                <Border>true</Border>
                <WebResourceId>{315563AC-5C70-E711-80D7-00155D10673A}</WebResourceId>
            </parameters>
        </control>
        <events>
            <event name="onload" application="false">
                <dependencies />
            </event>
        </events>
    </cell>
</row>

编辑工作正常,并删除(删除整个单元格,或解决Web资源控制的行) .

添加新的Web资源是个问题 . 从我的代码一切看起来都很好但是当我在CRM中打开表单(例如帐户表单)时,元素调整有点奇怪 . 之后我尝试在CRM表单编辑器中修复元素布局并发布,通常整个表单都被打破,有时我根本无法打开它 . 当我检查表单XML时,有一些新元素,(表单添加一些占位符),一些不可点击的元素/行...

甚至可以在CRM表单编辑器之外编辑表单吗?或者,当我添加新的Web资源时,有些事情我没有考虑到 .

我考虑的事情:

  • 每个资源/控件都有classid = "{9FDF5F91-88B1-47f4-AD53-C11EFC01A01D}" . 根据文件,它总是一样的

  • WebResourceId是来自实体webresource的CRM数据库中的资源的ID .

  • 每次更改内容时都会从代码中发布表单 .

我没有考虑的事情:

  • 我没有为我设置为webresource的每个行跨创建空行(我认为CRM编辑器都这样做) . 例如,如果行 Span 为6,我需要在我的Web资源行下创建额外的5个空行 .

  • Cell id . 我为此创建了新的guid,就这样,它没有与任何东西连接 . 我不确定它是否正常,或者应该在其他实体中链接 .