예제 #1
0
def Daochu_zichanbaobiao(exePath, imPath, exPath, fundName, gzPath, gzName,
                         gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW,
                         year, month, day, blacklist, email_server_url,
                         email_server_port, sender_email, sender_passwd,
                         reciever_email, jijinListTotal, jijinListSelected):
    from pywinauto.application import Application
    from pywinauto.keyboard import send_keys
    from pywinauto import mouse
    from pywinauto import timings
    from time import sleep

    from common import restart_if_app_exist, verify_control_exception, send_email_to_admin
    from login import process_app_login

    # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssReport.exe"
    restart_if_app_exist(cwPath)
    sleep(3)

    app = Application(backend="win32").start(cwPath)

    #处理登录
    process_app_login(app, cwName, cwPW)
    sleep(1)

    #---------------------------------------------------------------------------------------------------
    #打开报表左侧“资产估值表”
    dlg_main = app["ThunderRT6MDIForm"]
    dlg_main.set_focus()
    mouse.click(coords=(182, 227))  #TODO
    sleep(1)
    mouse.click(coords=(78, 347))  #TODO
    #dlg_main["ThunderRT6PictureBoxDC7"].set_focus()
    #dlg_main["ThunderRT6PictureBoxDC7"].click()
    sleep(1)

    #输入日期
    dlg_main["DTPicker20WndClass2"].set_focus()
    SendKeys(year)
    SendKeys("{RIGHT}")
    SendKeys(month)
    SendKeys("{RIGHT}")
    SendKeys(day)
    SendKeys("{ENTER}")
    sleep(2)

    #点击基金浏览
    dlg_main["基金列表>>"].set_focus()
    dlg_main["基金列表>>"].click()
    sleep(2)
    mouse.click(coords=(384, 127))
    #mouse.click(coords=(406,145))
    #mouse.click(coords=(402,157))
    #点击浏 览
    dlg_main["浏 览"].set_focus()
    dlg_main["浏 览"].click()
    sleep(2)

    while True:  #等待保存成功后的弹窗
        try:
            if verify_control_exception(app.top_window(), blacklist):
                send_email_to_admin("helloworld", email_server_url,
                                    email_server_port, sender_email,
                                    sender_passwd, reciever_email,
                                    exPath + "/对帐结果管理.xls")
                sleep(300)

            try:
                if not dlg_main["Progress Bar"].exist():
                    break
            except Exception:
                break
            app.top_window()["确定"].set_focus()
            app.top_window()["确定"].click()
            sleep(1)
        except Exception:
            None

    #点击保存excel
    dlg_main["msvb_lib_toolbar"].click(coords=(71, 10))
    #输出excel
    dlg_outxls = app["输出EXCEL"]
    dlg_outxls.set_focus()
    dlg_outxls.Edit2.set_text(exPath)
    dlg_outxls.Edit3.set_text(r"对帐结果管理.xls")
    dlg_outxls["确 定"].click()
    sleep(2)

    #等待保存的进度条出现
    while True:  #等待保存成功后的弹窗
        try:
            if verify_control_exception(app.top_window(), []):
                send_email_to_admin("helloworld", email_server_url,
                                    email_server_port, sender_email,
                                    sender_passwd, reciever_email,
                                    exPath + "/对帐结果管理.xls")
                sleep(300)

            try:
                app["导出EXCEL文件Dialog"]["是(Y)"].set_focus()
                app["导出EXCEL文件Dialog"]["是(Y)"].click()
            except Exception:
                None
            try:
                if dlg_outxls["ProgressBar20WndClass"].exists():
                    break
            except Exception:
                None
        except Exception:
            None

    #等待进度条完成
    while True:  #等待保存成功后的弹窗
        try:
            if verify_control_exception(app.top_window(), []):
                send_email_to_admin("helloworld", email_server_url,
                                    email_server_port, sender_email,
                                    sender_passwd, reciever_email,
                                    exPath + "/对帐结果管理.xls")
                sleep(300)

            try:
                app["导出EXCEL文件Dialog"]["确定"].set_focus()
                app["导出EXCEL文件Dialog"]["确定"].click()
                sleep(1)
            except Exception:
                None
            try:
                if not dlg_outxls["ProgressBar20WndClass"].exists():
                    break
            except Exception:
                break
        except Exception:
            None

    #退出
    try:
        dlg_main.close()
    except timings.TimeoutError:
        app.top_window()["是(Y)"].click()
예제 #2
0
def Daochu_shuju(exePath, imPath, exPath, jijinCurrent, gzPath, gzName, gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW,
                 year, month, day, blacklist, email_server_url, email_server_port, sender_email, sender_passwd,
                 reciever_email, jijinListTotal, jijinListSelected):
    from pywinauto.application import Application
    from pywinauto.keyboard import SendKeys
    from pywinauto import mouse
    from pywinauto import timings
    from time import sleep
    from common import restart_if_app_exist, verify_control_exception, send_email_to_admin, choose_jijin_in_list
    from login import process_app_login

    # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssGz.exe"
    restart_if_app_exist(gzPath)
    sleep(3)
    app = Application(backend="win32").start(gzPath)

    process_app_login(app, gzName, gzPW)
    sleep(3)

    #打开数据管理
    dlg_main = app["ThunderRT6MDIForm"]
    dlg_main.set_focus()
    ctl_sysnvg = dlg_main["系统功能导航"]
    ctl_sysnvg.ThunderRT6UserControlDC6.click()
    sleep(3)

    # #输入日期
    dlg_main["DTPicker20WndClass2"].set_focus()
    SendKeys(year)
    SendKeys("{RIGHT}")
    SendKeys(month)
    SendKeys("{RIGHT}")
    SendKeys(day)
    SendKeys("{ENTER}")
    sleep(2)

    #输入文件路径
    dlg_main["按时间段读取Edit2"].set_text(imPath)

    #进入到数据管理页面
    ctl_treedview = dlg_main["TreeView20WndClass"]
    ctl_treedview.set_focus()
    # SendKeys("{LEFT}")
    # gd.getCtn1()

    # 选择基金
    dlg_main["TreeView20WndClass1"].set_focus()
    choose_jijin_in_list(jijinListTotal, jijinListSelected, jijinCurrent)
    sleep(1)
    ctl_treedview = dlg_main["TreeView20WndClass2"]
    ctl_treedview.set_focus()
    ctl_treedview.click(coords=(60, 100))
    sleep(1)
    dlg_main["读取数据"].set_focus()
    dlg_main["读取数据"].click()
    sleep(1)
    while True: #等待保存成功后的弹窗
        try:
            if verify_control_exception(app.top_window(), blacklist):
                send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd,
                                    reciever_email, exPath + "/对帐结果管理.xls")
                sleep(300)
            try:
                if app["数据接口管理Dialog"]["读取完毕"].exists():
                    app["数据接口管理Dialog"].set_focus()
                    app["数据接口管理Dialog"]["确定"].click()
                    break
            except Exception:
                None
            SendKeys("{ENTER}")
            #app.top_window()["是(Y)"].set_focus()
            #app.top_window()["是(Y)"].click()
            sleep(1)
        except Exception:
            None

    #退出
    try:
        dlg_main.close()
    except timings.TimeoutError:
        app.top_window()["是(Y)"].click()
def Daochu_jijinzichan(exePath, imPath, exPath, fundName, gzPath, gzName, gzPW,
                       cwPath, cwName, cwPW, o32Path, o32Name, o32PW, year,
                       month, day, blacklist, email_server_url,
                       email_server_port, sender_email, sender_passwd,
                       reciever_email, jijinListTotal, jijinListSelected):
    from pywinauto.application import Application
    from pywinauto.keyboard import SendKeys
    from pywinauto import timings
    from time import sleep
    from pywinauto import mouse
    from common import restart_if_app_exist, verify_control_exception, send_email_to_admin
    from login import process_app_login
    # exepath = r"F:\O32测试环境\trade\trade.exe"
    restart_if_app_exist(o32Path)
    sleep(3)
    app = Application(backend="win32").start(o32Path)

    #如果有提示更新,点击确定
    sleep(1)
    SendKeys("{ENTER}")
    sleep(1)
    try:
        app["提示"]["确定"].set_focus()
        app["提示"]["确定"].click()
        sleep(2)
    except Exception:
        None

    #登陆
    app["TfrmLogin"].wait('exists enabled visible ready')
    app["TfrmLogin"].set_focus()
    app["TfrmLogin"]["登录Edit2"].set_text("0")
    sleep(2)
    app["TfrmLogin"]["登录Button"].set_focus()
    app["TfrmLogin"]["登录Button"].click()
    sleep(5)

    #如果有警告,点击是
    try:
        app["警告"]["是(Y)"].set_focus()
        app["警告"]["是(Y)"].click()
        sleep(5)
    except Exception:
        None

    try:
        app["自动更新"].set_focus()  # 自动更新界面点关闭
        app["自动更新"]["关闭(Esc/Enter)"].click()
        sleep(5)
        app["警告"]["是(Y)"].set_focus()
        app["警告"]["是(Y)"].click()
        sleep(5)
    except Exception:
        None

    #主界面出现
    dlg_main = app["TfrmMain"]

    dlg_main.wait('exists enabled visible ready')

    #点击信息查询->综合信息查询
    mouse.click(coords=(86, 780))  #TODO
    sleep(3)
    mouse.click(coords=(68, 311))  #TODO
    sleep(5)

    #等待综合信息查询界面出现
    #dlg_main["基金资产[4]"].wait('exists enabled visible ready')
    #dlg_main["基金资产[4]"].set_focus()
    dlg_main["基金资产[4]"].click()
    mouse.click(coords=(324, 118))  #TODO
    sleep(3)
    mouse.click(coords=(137, 89))  #TODO
    SendKeys("-1")
    sleep(2)
    mouse.click(coords=(142, 109))  #TODO
    #dlg_main["THsEdit"].set_text("-1  所有基金")
    #dlg_main["THsEdit"].set_text("2  银华优势")
    sleep(20)

    #点击输出框后点保存
    dlg_main["TPanel"].set_focus()
    mouse.click(coords=(455, 142))  #TODO
    sleep(5)
    app["另存为"]["保存(S)"].set_focus()
    app["另存为"]["保存(S)"].click()
    sleep(1)
    SendKeys("{LEFT}")
    sleep(1)
    SendKeys("{ENTER}")
    sleep(3)

    #qiut
    try:
        dlg_main.close()
    except timings.TimeoutError:
        app.top_window()["是(Y)"].click()
def Shengcheng_guzhibiao(exePath, imPath, exPath, jijinCurrent, gzPath, gzName,
                         gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW,
                         year, month, day, blacklist, email_server_url,
                         email_server_port, sender_email, sender_passwd,
                         reciever_email, jijinListTotal, jijinListSelected):
    from pywinauto.application import Application
    from pywinauto.keyboard import SendKeys
    from pywinauto import timings
    from time import sleep
    from pywinauto import mouse
    from common import restart_if_app_exist, verify_control_exception, send_email_to_admin, choose_jijin_in_list
    from login import process_app_login

    # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssGz.exe"
    restart_if_app_exist(gzPath)
    sleep(3)

    app = Application().start(gzPath)

    #处理登录
    process_app_login(app, gzName, gzPW)
    sleep(1)

    #打开数据管理
    dlg_main = app["ThunderRT6MDIForm"]
    ctl_sysnvg = dlg_main["msvb_lib_toolbar"]
    ctl_sysnvg.click(coords=(415, 15))
    sleep(1)

    #输入日期
    dlg_main["DTPicker20WndClass2"].set_focus()
    SendKeys(year)
    SendKeys("{RIGHT}")
    SendKeys(month)
    SendKeys("{RIGHT}")
    SendKeys(day)
    sleep(2)

    # 选择基金
    dlg_main["TreeView20WndClass2"].set_focus()
    choose_jijin_in_list(jijinListTotal, jijinListSelected, jijinCurrent)

    #勾选生成估值余额对账数据
    dlg_main["生成估值余额对账数据"].check()
    sleep(1)
    #勾选发送估值余额对账数据
    dlg_main["发送估值余额对账数据"].check()
    sleep(1)

    #点击生成
    dlg_main["生 成"].set_focus()
    dlg_main["生 成"].click()
    sleep(1)
    status = True
    while status:  #判断各种异常的弹框,都点确定
        #app.top_window().set_focus()
        try:
            if verify_control_exception(app.top_window(), blacklist):
                send_email_to_admin("helloworld", email_server_url,
                                    email_server_port, sender_email,
                                    sender_passwd, reciever_email,
                                    exPath + "/对帐结果管理.xls")
                sleep(300)
            f**k = app.top_window()["确定"]
            if app["基金资产估值表Dialog"]["产生完毕!"].exists():
                app["基金资产估值表Dialog"].set_focus()
                app["基金资产估值表Dialog"]["确定"].click()
                status = False
            else:
                #SendKeys("{ENTER}")
                f**k.click()
                sleep(1)
        except Exception:
            None

    #退出
    try:
        dlg_main.close()
    except timings.TimeoutError:
        app.top_window()["是(Y)"].set_focus()
        app.top_window()["是(Y)"].click()
예제 #5
0
def Guanli_dianziduizhang(exePath, imPath, exPath, fundName, gzPath, gzName, gzPW, cwPath, cwName, cwPW, o32Path, 
	o32Name, o32PW, year, month, day, blacklist, email_server_url, email_server_port, sender_email, 
	sender_passwd, reciever_email, jijinListTotal, jijinListSelected):
    from pywinauto.application import Application
    from pywinauto.keyboard import SendKeys
    from pywinauto import timings
    from time import sleep

    from common import restart_if_app_exist, verify_control_exception, send_email_to_admin, choose_jijin_in_list
    from login import process_app_login
    # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssGz.exe"
    restart_if_app_exist(gzPath)
    sleep(3)

    app = Application(backend="win32").start(gzPath)

    #处理登录
    process_app_login(app, gzName, gzPW)
    sleep(1)

    #打开数据管理
    dlg_main = app["ThunderRT6MDIForm"]
    dlg_main.set_focus()
    ctl_sysnvg = dlg_main["系统功能导航"]
    ctl_sysnvg.ThunderRT6UserControlDC6.click()
    sleep(1)

    #点击电子对账管理
    dlg_main.set_focus()
    dlg_main.menu_select("电子对帐 -> 对帐结果管理")
    sleep(1)

    #输入日期
    dlg_main["DTPicker20WndClass2"].set_focus()
    SendKeys(year)
    SendKeys("{RIGHT}")
    SendKeys(month)
    SendKeys("{RIGHT}")
    SendKeys(day)
    sleep(2)

    #选择基金
    dlg_main["基金列表>>"].set_focus()
    dlg_main["基金列表>>"].click()
    sleep(2)
    choose_jijin_in_list(jijinListTotal, jijinListSelected, fundName, False, True)

    #点击查询等待结果输出
    dlg_main["查询"].set_focus()
    dlg_main["查询"].click()
    sleep(1)

    #点击右键菜单
    dlg_main["数据管理"].set_focus()
    dlg_main["数据管理"].ThunderRT6UserControlDC.click(button=u'right', coords=(300,300))
    #选择菜单
    #app.menu_select["报表输出 -> 输出为Excel文件"]
    SendKeys("{DOWN 6}")
    sleep(2)
    SendKeys("{RIGHT}")
    sleep(2)
    SendKeys("{ENTER}")

    #输出excel
    dlg_outxls = app["输出EXCEL"]
    dlg_outxls.set_focus()
    dlg_outxls.Edit2.set_text(exPath)
    dlg_outxls.Edit3.set_text(r"对帐结果管理.xls")
    sleep(2)
    dlg_outxls["确 定"].set_focus()
    dlg_outxls["确 定"].click()
    sleep(3)

    while True: #等待保存成功后的弹窗
        try:
            if verify_control_exception(app.top_window(), blacklist):
                send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd,
                                    reciever_email, exPath + "/对帐结果管理.xls")
                sleep(300)
                
            try:
                if app["导出EXCEL文件Dialog"]["确定"].exists():
                    app["导出EXCEL文件Dialog"].set_focus()
                    app["导出EXCEL文件Dialog"]["确定"].click()
                    break
            except Exception:
                None
            app.top_window()["是(Y)"].set_focus()
            app.top_window()["是(Y)"].click()
            sleep(1)
        except Exception:
            None

    #退出
    try:
        dlg_main.close()
    except timings.TimeoutError:
        app.top_window()["是(Y)"].click()

    #dlg_login.print_control_identifiers()
예제 #6
0
def Zhizuo_pingzheng(exePath, imPath, exPath, jijinCurrent, gzPath, gzName, gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW,
                     year, month, day, blacklist, email_server_url, email_server_port, sender_email,
                     sender_passwd, reciever_email, jijinListTotal, jijinListSelected):
    from pywinauto.application import Application
    from pywinauto.keyboard import SendKeys
    from pywinauto import timings
    from time import sleep
    from pywinauto import mouse
    from common import restart_if_app_exist, verify_control_exception, send_email_to_admin, choose_jijin_in_list
    from login import process_app_login
    # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssGz.exe"
    restart_if_app_exist(gzPath)
    sleep(3)

    app = Application(backend="win32").start(gzPath)

    #处理登录
    process_app_login(app, gzName, gzPW)
    sleep(1)

    #打开数据管理
    dlg_main = app["ThunderRT6MDIForm"]
    ctl_sysnvg = dlg_main["系统功能导航"]
    ctl_sysnvg.ThunderRT6UserControlDC5.click()
    sleep(1)

    #输入日期
    dlg_main["DTPicker20WndClass2"].set_focus()
    SendKeys(year)
    SendKeys("{RIGHT}")
    SendKeys(month)
    SendKeys("{RIGHT}")
    SendKeys(day)
    sleep(2)

    # 选择基金
    dlg_main["TreeView20WndClass2"].set_focus()
    choose_jijin_in_list(jijinListTotal, jijinListSelected, jijinCurrent)

    #进入到数据管理页面
    ctl_treedview = dlg_main["非结转损益"]
    ctl_treedview.check()
    sleep(1)
    dlg_main["制作凭证"].set_focus()
    dlg_main["制作凭证"].click()
    sleep(1)
    status = True
    while status: #判断各种异常的弹框,都点yes
        try:
            if verify_control_exception(app.top_window(), blacklist):
                send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd,
                                    reciever_email, exPath + "/对帐结果管理.xls")
                sleep(300)
            try:
                if app["业务凭证管理Dialog"]["凭证制作完毕!"].exists():
                    status = False
            except Exception:
                None
            #SendKeys("{ENTER}")
            try:
                app.top_window()["是(Y)"].set_focus()
                app.top_window()["是(Y)"].click()
            except Exception:
                None
            try:
                app.top_window()["确定"].set_focus()
                app.top_window()["确定"].click()
            except Exception:
                None
            sleep(1)
        except Exception:
            None

    try:
        app.top_window()["确定"].set_focus()
        app.top_window()["确定"].click()
    except Exception:
        None

    #退出

    try:
        dlg_main.close()
    except timings.TimeoutError:
        app.top_window()["是(Y)"].click()

    #dlg_login.print_control_identifiers()