ActiveX control view HTML format files in X++
remark by Jimmy July 2th 2010
LoadHtmlFile method
boolean loadHtmlFile() { container con; URL URL; ; element.lockWindowUpdate(true); if (docuRef.docuValue().File) { //file in database DocuFileWatchDog::create(); //update old files URL = DocuActionFile::saveTempFile(docuRef); htmlView.navigate(URL); DocuOpenFile::add(docuRef, URL); curUrl = URL; DocuFileWatchDog::createDelayed(); //ensure that watchdog is started } else { URL = docuRef.completeFilename(); con = WinAPI::findFirstFile(URL); if (!conpeek(con, 2) && conpeek(con, 1) == -1) return false; htmlView.navigate(URL); curUrl = URL; } return true; element.lockWindowUpdate(false); }
saveTempFile method
static public Filename saveTempFile(DocuRef docuRef, boolean internetCache = true) { BinData binData; Filename filename; FilePath filePath; str endSlash(str _str) { return (strscan(_str, '\\',strlen(_str),-1)) ? _str : _str + '\\'; } ; binData = new BinData(); binData.setData(docuRef.docuValue().file); filePath = endSlash(internetCache ? WinAPI::getFolderPath(#CSIDL_INTERNET_CACHE) : xInfo::directory(DirectoryType::Temp)); filename = docuRef.completeFilename(filePath); binData.saveFile(filename); return filename; }
completeFilename method
display Filename completeFilename(FilePath path = this.path()) { ; if (this.docuType().TypeGroup == DocuTypeGroup::Note) { return ''; } return path + this.docuValue().fileName(); }