如何删除表单而不点击它?

时间:2014-03-27 08:57:27

标签: axapta

我在AOT和Project中有一个表单。如果我点击AOT中的那个表格,axapta就会停止工作。如果我点击项目axapta停止工作。这是一个可以删除的测试表单。有没有办法如何永久删除AOX中的表单而不点击它?

我尝试在文件系统中找到一个表单,但我找不到它。

1 个答案:

答案 0 :(得分:0)

AOS因AOT中的节点损坏而崩溃

警告:此帖子仅提供信息,请勿尝试在生产环境中复制此处描述的问题。 !!!!

问题:

当我们使用一个循环引用创建“视图”时出现问题。之后,每当我们尝试点击“数据字典\表格”或“数据字典\视图”时,AOS就会崩溃。

如何重现问题:

警告:此帖子仅提供信息,请勿尝试在生产环境中复制此处描述的问题。 !!!!

  1. 进行备份。另外,复制AxCus.AOD文件。
  2. 创建一个简单的视图(例如View1)。
  3. 手动添加新的DataSource。然后,打开DataSource的属性对话框,并在表字段中指定您创建的视图的名称(例如View1)。
  4. 如果您不想让AOS崩溃,请停止此操作!!!。
  5. 展开DataSource节点。将CreatedBy字段拖到视图的字段中。它将创建CreatedBy1字段。
  6. 如果您确定要继续,请保存。执行此操作后,您的AOS将崩溃。 (哎呀!)
  7. 您可以尝试使用以下方法删除损坏的节点(例如View1或CreatedBy1字段)来恢复错误:如何删除AOT对象(AX / Axapta)或其他:如何通过代码删除AOT节点(UtilIdElements解)。他们都不会工作!!!。

    解决方案:

    经过多次尝试,唯一的解决方案是在二进制编辑器中打开AxCus.AOD文件(Visual Studio就足够了)并执行后续步骤。

    警告:如果使用此方法或其他方法修改AxCus.AOD文件,则可能会出现严重问题。修改系统文件需要您自担风险。

    1. 进行备份。另外,复制AxCus.AOD文件。
    2. 停止AOS并在二进制编辑器中打开AxCus.AOD。
    3. 找到“CreatedBy1”字段数据(或损坏的节点名称)。通常,它应该接近文件的末尾。 (详见图片)。
    4. 更改参考数据。它高于该字段的名称。将值FF FF(65,535)放在父级和字段ID中。
    5. 保存文件。
    6. 删除索引文件axapd.aoi。
    7. 再次启动AOS。
    8. 删除损坏的视图。
    9. 包含已损坏节点的图片:

      具有固定节点的图像:

      受损节点很可能在AOT中保持活动状态,因此您可以尝试以下代码将其删除:

      static void Job1(Args _args) { UtilIdElements utilElement; ;

      ttsbegin;

      选择utilElement 其中utilElement.id == 65535; //我们在AxCus.AOD文件中写入的ID无效

      if(utilelement) { utilElement.delete();

      ttscommit; info('记录现在应该删除。'); } 其他 { ttsAbort; info('无法删除记录,或者找不到记录。'); } }

      Link to the source