• 文档的移动,保存和修改


    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();
    
    }
    

      

  • 相关阅读:
    [django]自定义标签和过滤器
    [js]js中6种错误处理机制
    [js] Array.slice和类数组转数组
    [js]this和call.call
    [py]python的time和datetime模块获取星期几
    CentOS 普通用户提升root权限
    CentOS ACL
    CentOS 文件隐藏属性
    CentOS 文件特殊权限SUID,SGID,SBIT
    CentOS 用户管理useradd、usermod等
  • 原文地址:https://www.cnblogs.com/dingkui/p/2599642.html
Copyright © 2020-2023  润新知