public class ROG_Document { Object obj; FormDataSource FDS; Common common; QueryRun qr; Str parmStr; Int hwnd; ROG_DocumentTable documentTable; HRMApplicantTable applicantTable; userid userid; ROG_Document _documentPack; ROG_DocumentHelper documentHelper; } Object dialog() { FormRun dialogForm; Args args = new Args("ROG_SelectUserid"); ; args.caller(_documentPack); dialogForm = classfactory.formRunClass(args); dialogForm.init(); dialogForm.run(); dialogForm.wait(); return dialogForm; } object FDS(FormDataSource _fds = FDS) { ; FDS = _fds; return FDS; } str getOnlyFileName(Str _str) { str _name; int i; int position; boolean flg; ; if(_str) { if (strfind(_str,"\\",1,strlen(_str))) { do { i = strfind(_str,"\\",position,strlen(_str)); _str = substr(_str,i,strlen(_str) - i); } while(i); return substr(_str,1,strlen(_str) - strfind(_str,".",1,strlen(_str)) - 1); } else return ""; } else return ""; } object obj(object _obj = obj) { ; obj = _obj; return obj; } Common parmCommon(Common _common = common) { ; common = _common; return common; } ROG_Document parmDocument(ROG_Document _ROG_Document = _documentPack) { ; _documentPack = _ROG_Document; return _documentPack; } int parmhwnd(int _hwnd = hwnd) { ; hwnd = _hwnd; return hwnd; } Str parmstr(Str _parmStr = parmStr) { ; parmStr = _parmStr; return parmStr; } userid parmUserid(userid _userid) { ; userid = _userid; return userid; } void run() { ; documentTable = ROG_DocumentTable::find(common.TableId,common.RecId); if(common.TableId == tablenum(HRMApplicantTable)) { applicantTable = common; this.RunHRMApplicantTable(); } } void RunHRMApplicantTable() { ; if(parmStr == "save") { this.saveDocument(); } else if(parmStr == "saveas" ) { this.saveAsDocument(); } else if(parmStr == "open") { ROG_Document::openDocument(documentTable.FilePath); } else if(parmStr == "companyOpen") { ROG_Document::openDocument(documentTable.FilePathROG); } else if(parmStr == "companySave") { this.saveCompanyDocument(); } } void saveAsDocument() { Filename onlyFilename; Filename curFileExtension; Filename toFileName; ; documentHelper = new ROG_DocumentHelper(); documentHelper.parmDocumentHelper(documentHelper); if(documentHelper.prompt()) { info(documentHelper.parmUserid()); this.parmUserid(documentHelper.parmUserid()); if(userid) { info(userid); [onlyFilename,curFileExtension] = Docu::splitFilename(documentTable.FilePath); toFileName = documentTable.completeFilename(onlyFilename,curFileExtension,userid); winAPI::copyFile(documentTable.FilePath,toFileName); winAPI::deleteFile(documentTable.FilePath); ttsbegin; documentTable.selectForUpdate(true); documentTable.FilePath = toFileName; //documentTable.createdBy = documentTable.update(); ttscommit; } else { info("@ROG101"); } } } void saveAsDocumentbackup() { FormRun form; Args a = new Args("FOG_SelectUserid"); Filename onlyFilename; Filename curFileExtension; Filename toFileName; ; a.caller(_documentPack); form = ClassFactory.formRunClass(a); form.init(); form.run(); form.wait(); if(userid) { info(userid); [onlyFilename,curFileExtension] = Docu::splitFilename(documentTable.FilePath); toFileName = documentTable.completeFilename(onlyFilename,curFileExtension,userid); winAPI::copyFile(documentTable.FilePath,toFileName); winAPI::deleteFile(documentTable.FilePath); ttsbegin; documentTable.selectForUpdate(true); documentTable.FilePath = toFileName; documentTable.update(); ttscommit; } } void saveAsDocumentDialog() { FormRun _dialog; FormRun form; Args a = new Args("ROG_SelectUserid"); Filename onlyFilename; Filename curFileExtension; Filename toFileName; ; /* a.caller(_documentPack); form = ClassFactory.formRunClass(a); form.init(); //form.run(); //form.wait(); _dialog = new dialog("ffd",_documentPack,"fds",formstr(ROG_SelectUserid)); //dlf = _dialog.addField(typeid(userid)); //formstr(ROG_SelectUserid); */ this.dialog(); if(userid) { info(userid); [onlyFilename,curFileExtension] = Docu::splitFilename(documentTable.FilePath); toFileName = documentTable.completeFilename(onlyFilename,curFileExtension,userid); winAPI::copyFile(documentTable.FilePath,toFileName); winAPI::deleteFile(documentTable.FilePath); ttsbegin; documentTable.selectForUpdate(true); documentTable.FilePath = toFileName; documentTable.update(); ttscommit; } } void saveCompanyDocument() { str filename; FileNameFilter filter;// = ['Image Files','*.jpg']; Bindata binData = new BinData(); Filename onlyFilename; Filename curFileExtension; Filename toFileName; ; filename = Winapi::getOpenFileName(hwnd,filter,'', "@SYS53008", '',''); if ((filename) && (StrScan(filename,".doc",1,strlen(filename)) > 0)) { //if (binData.loadFile(filename)) { [onlyFilename,curFileExtension] = Docu::splitFilename(filename); if (onlyFilename) { toFileName = documentTable.completeFilename(onlyFilename,curFileExtension); if(toFileName) { if(filename == toFileName) { info("@HFM1587"); } else { winapi::copyFile(filename, toFileName,true); ttsbegin; documentTable.selectForUpdate(true); documentTable.FilePathROG = toFileName; documentTable.update(); ttscommit; } } else { throw error("@ROG94"); } } } } } void saveDocument() { str filename; FileNameFilter filter;// = ['Image Files','*.jpg']; Bindata binData = new BinData(); Filename onlyFilename; Filename curFileExtension; Filename toFileName; ; filename = Winapi::getOpenFileName(hwnd,filter,'', "@SYS53008", '',''); if ((filename) && (StrScan(filename,".doc",1,strlen(filename)) > 0)) { //if (binData.loadFile(filename)) { [onlyFilename,curFileExtension] = Docu::splitFilename(filename); if (onlyFilename) { toFileName = documentTable.completeFilename(onlyFilename,curFileExtension); if(toFileName) { if(filename == toFileName) { info("@HFM1587"); } else { winapi::copyFile(filename, toFileName,true); ttsbegin; documentTable.selectForUpdate(true); documentTable.FilePath = toFileName; documentTable.update(); ttscommit; ttsbegin; applicantTable.selectForUpdate(true); //info(useridStr.valueStr()); applicantTable.ROG_createBy = applicantTable.createdBy; applicantTable.update(); ttscommit; } } else { throw error("@ROG94"); } } } } } boolean setUserid(userid _userid) { ; if(_userid) { userid = _userid; return true; } else { return false; } } static Str checkFolderChar(Str pFolderName) { Str mReturn = ""; Int mLoop; ; for (mLoop=1; mLoop<=StrLen(pFolderName); mLoop++) { if ((substr(pFolderName, mLoop, 1) != "\\") && (substr(pFolderName, mLoop, 1) != "/") && (substr(pFolderName, mLoop, 1) != ":") && (substr(pFolderName, mLoop, 1) != "*") && (substr(pFolderName, mLoop, 1) != "?") && (substr(pFolderName, mLoop, 1) != '"') && (substr(pFolderName, mLoop, 1) != "<") && (substr(pFolderName, mLoop, 1) != ">") && (substr(pFolderName, mLoop, 1) != "|")) { mReturn = mReturn + substr(pFolderName, mLoop, 1); } } return mReturn; } public static ROG_Document construct() { return new ROG_Document(); } static void openDocument(str filename) { COM wordApplication; COM wordDocuments; COM wordDocument; COM wordRange; ; wordApplication = new COM("word.application"); wordDocuments = wordApplication.Documents(); //wordDocument = wordDocuments.add("F:\\Resume\\andyl\\Testdocdoc.doc");//add(filename); wordDocument = wordDocuments.add(filename); wordApplication.visible(TRUE); } server static void main(Args args) { ROG_Document _document = ROG_Document::construct(); ; //breakpoint; _document.obj(args.caller()); _document.parmCommon(args.record()); _document.FDS(_document.obj().dataSource()); _document.parmstr(args.parm()); _document.parmhwnd(_document.obj().hwnd()); _document.parmDocument(_document); _document.run(); }