How check to exists signatures in Word or Excel file:
void veryfyDocuFile(Common _common)
{
DocuRef docuRef;
ComExcelDocument_RU excelDocument;
ComWordDocument_RU wordDocument;
COM document;
COM signatures;
COM sign;
FilePath filePath;
Filename fileName;
str endSlash(str _str)
{
return (strscan(_str, '\\',strlen(_str),-1)) ? _str : _str + '\\';
}
while select docuRef
order by TypeId desc
where docuRef.RefCompanyId == _common.dataAreaId
&& docuRef.RefTableId == _common.TableId
&& docuRef.RefRecId == _common.RecId
{
if (docuRef.isValueAttached())
{
if(docuRef.docuType().FilePlace != DocuFilePlace::Database && docuRef.docuValue().Type != DocuValueType::URL)
{
fileName = docuRef.completeFilename();
}
else if(docuRef.docuType().FilePlace == DocuFilePlace::Database)
{
fileName = DocuActionFile::saveTempFile(docuRef);
}
try
{
switch(docuRef.docuValue().FileType)
{
case 'xls', 'xlsm', 'xlsx', 'xltm':
excelDocument = new ComExcelDocument_RU();
#StartSafeCall_RU
excelDocument.open(fileName, false);
#EndSafeCall_RU
if(excelDocument.getComDocument() != null)
document = excelDocument.getComDocument();
if(document)
{
#StartSafeCall_RU
signatures = document.Signatures();
#EndSafeCall_RU
}
if(signatures && signatures.Count() >= 1)
info(strFmt("Docu %1 have a sign!", docuRef.docuValue().OriginalFileName));
else
info(strFmt("Docu %1 don't have a sign!", docuRef.docuValue().OriginalFileName));
excelDocument.saved(false);
excelDocument.closeDocument();
excelDocument.Quit();
break;
case 'doc', 'docx':
wordDocument = new ComWordDocument_RU();
wordDocument.open(fileName, true);
document = wordDocument.getComDocument();
signatures = document.Signatures();
if(signatures.Count() >= 1)
info(strFmt("Docu %1 have a sign!", docuRef.docuValue().OriginalFileName));
else
info(strFmt("Docu %1 don't have a sign!", docuRef.docuValue().OriginalFileName));
wordDocument.saved(false);
wordDocument.closeDocument();
wordDocument.quitApplication();
break;
default : error("Check error");
}
}
catch(Exception::Error)
{
error('ExceptionError');
}
}
else
info("@SYS26665");
}
}
Комментариев нет :
Отправить комментарий