Find operation returns matches for deleted items

After deleting some alarms from a Citect 2018R2 update 07 system (including deleting various alarm records, variable tags, labels, Cicode file updates and removing genie instances from Pages) I then ran a 'Find' on one of the deleted alarm references to ensure I'd not missed anything.

But instead if getting the expected '0 matches' result the 'Find' produced multiple hits for the deleted alarm reference, all of which with 'Item' and 'Location' columns blank in the Find results window. So double-clicking on any of them (or clicking Go To button) has no effect. All of the matches were with 'Graphics' checked under Search options, if Graphics is un-checked then no matches are found.

I've now tried Packing the project, performing Update Pages on the project, and even (as a test) deleting the applicable Page and trying again. None of these things have resolved the issue.

Are the matches being detected in the pgdynobj.DBF file?

Has anyone else seen this before and can anybody suggest how it can be resolved?

Thanks

Parents
  • There are a couple things in play here. In V8.10 the Update Pages mechanism was changed (this is also true for 8.20 which this issue was raised against). The change was subtle, but it basically brought back ownership of tracking page changes into Citect Studio/Graphics Builder. So if you edited any files outside, it could cause issues.

    Way way back in my project delivery days, I also observed similar issues. It wasn't the CTG that was at fault, but actually the pages*.dbf files that had not been cleaned up correctly. The blame lies squarely with Graphics Builder. The CTG file is the master of graphics info. When saving pages, it updates the CTG then DBFs. The DBF files are simply there for the compiler. I really whish the compiler could be enhanced to read the CTG directly and we remove the pages*.DBF entirely.

    Anyway, the solution at the time was to delete all pg*.dbf files from the project (and all include projects) - except for the pglang.dbf. Then do an update pages. The problem with this approach is that it won't work on new Citect Studio, due to the aforementioned change to the update pages functionality. So the only solution now is to either open each page manually and save, or use Graphics Builder Automation interface to do the same. This will then gaurantee that the info in the DBF matches what is in the CTG. The CTF is simply a bitmap equivalent of CTG for loading pages faster in runtime.
Reply
  • There are a couple things in play here. In V8.10 the Update Pages mechanism was changed (this is also true for 8.20 which this issue was raised against). The change was subtle, but it basically brought back ownership of tracking page changes into Citect Studio/Graphics Builder. So if you edited any files outside, it could cause issues.

    Way way back in my project delivery days, I also observed similar issues. It wasn't the CTG that was at fault, but actually the pages*.dbf files that had not been cleaned up correctly. The blame lies squarely with Graphics Builder. The CTG file is the master of graphics info. When saving pages, it updates the CTG then DBFs. The DBF files are simply there for the compiler. I really whish the compiler could be enhanced to read the CTG directly and we remove the pages*.DBF entirely.

    Anyway, the solution at the time was to delete all pg*.dbf files from the project (and all include projects) - except for the pglang.dbf. Then do an update pages. The problem with this approach is that it won't work on new Citect Studio, due to the aforementioned change to the update pages functionality. So the only solution now is to either open each page manually and save, or use Graphics Builder Automation interface to do the same. This will then gaurantee that the info in the DBF matches what is in the CTG. The CTF is simply a bitmap equivalent of CTG for loading pages faster in runtime.
Children
No Data