static void listDocuHandling_InvalidPaths(Args _args)
{
DocuRef docuRef;
DocuValue docuValue;
SysOperationProgress progress;
Common common;
;
setPrefix("Invalid document handling file references");
// Initialize progress indicator
select count(RecId) from docuRef;
progress = new SysOperationProgress(1, true);
progress.setTotal(docuRef.RecId);
progress.setCaption(funcname());
while select docuRef
join docuValue
where docuValue.RecId == docuRef.ValueRecId
{
progress.setText(docuRef.Name);
common = docuRef.refCommon();
setPrefix((docuRef.Name) ? int642str(docuRef.RecId) + ' - ' + docuRef.Name : int642str(docuRef.RecId));
if (!common.RecId)
{
error(strfmt("Referenced record %1 in %2 does not exist", docuRef.RefRecId, docuRef.refTablename()));
}
// Check if the file exists
if (docuRef.docuType().FilePlace != DocuFilePlace::Database
&& !WinAPI::fileExists(docuValue.Path + docuValue.fileName()))
{
info(docuValue.Path + docuValue.fileName());
if (common.RecId)
info(common.caption(), strMin(), SysInfoAction_TableField::newBuffer(common));
}
progress.incCount();
}
progress.kill();
}