|
|
#3
iswith2025-12-11 12:53
*========================================================================================
* 类: oNetPy
* 功能: 通过 .NET 互操作实现 Visual FoxPro 9 与 Python 的深度集成,
* 系统平台:
* 最低支持 >= Win7
* Win7 使用3.8.10
* Win10/Win11 使用3.13.7
* Net 4.7 架框
* 描述:
* 本类封装了与 NetPy.dll 的交互,提供初始化 Python 环境、执行 Python 脚本、
* 调用 Python 函数以及管理 Python 对象等核心功能。通过此类,VFP 开发者可以
* 无缝利用 Python 强大的生态系统(包括数据分析、AI、Web 爬虫等能力)。
* 主要功能:
* - 初始化 Python 运行时环境
* - 执行 Python 脚本字符串或文件
* - 调用 Python 模块中的函数并传递参数
* - 在 Python 和 VFP 之间双向传递数据
* - 管理 Python 模块搜索路径
* - 安全错误处理与诊断
* 依赖:
* - NetPy.dll: 核心桥接库
* - clrhost.dll: . NET CLR 托管运行时
* - NetPy.Runtime.dll Netpy.Runtime 运行时
* - Python 3.x: 目标 Python 环境 (需配置 pythonXX.dll 路径 系统安装的或随项目包目录“Python”下 python38.dll)
* 使用场景:
* 1. 在 VFP 应用中集成 Python 机器学习模型
* 2. 使用 Python 处理复杂数据分析和可视化
* 3. 扩展 VFP 的 Web 服务调用能力
* 4. 增强 VFP 的文档处理功能 (Excel/PDF 等)
* 5. 构建混合型桌面应用 (VFP 前端 + Python 后端 )
* 作者: [ZHZ]
* 版本: 1.0
* 创建日期: 2025-08-17
* 14天版文件结构:
* ClrHost.dll — .NET CLR 托管运行时 7.29版
* NetJson. dll — Json解析支持库(这个可以替代自己的Json解析库)
* NetPy.dll — 核心桥接库
* NetPy.Runtime.dll — Netpy.Runtime 运行时
* NetPy.pjx|NetPy.pjt — VFP项目文件
* netjson.prg — Json解析 VFP 类库
* netpy.prg — 运行PY脚本 VFP 类库
* netpy_set_environment.prg — 设置NetPy运行环境(解释器与库搜索路径
* netpy_basic_imagezip_addtext_setvar_byte.prg— 基础实例 基础实例 使用 Python 读取、压缩并添加水印到 JPG 图像,然后通过字节数组的方式回传到VFP
* netpy_basic_callback_vfp_class_method.prg — 基础实例 演示如何在Python脚本中回调VFP类的方法
* netpy_basic_callfunc.prg — 基础实例 演示使用 NetPy 的 CallFunc 方法调用 Python 标准库函数或自定义封装函数
* netpy_basic_execpy.prg — 基础实例 演示如何通过oNetPy执行Python代码
* netpy_basic_getarray. prg — 基础实例 演示如何 在 VFP 和 Python 之间传递数组数据
* netpy_package_manager.prg — 基础实例 演示在 NetPy 中使用第三方 Python 库的三种方法
* netpy_basic_setvar_getvar.prg — 基础实例 演示多种数据类型在VFP和Python之间的传递
* netpy_crypto_utils.prg — 演示使用 Python 实现常用加解密及签名功能
* netpy_barcode_generator.prg — 使用 NetPy 调用 Python 实现条形码生成功能
* Vip版文件结构:
* ClrHost.dll — .NET CLR 托管运行时 7.30版
* NetJson.dll — Json解析支持库(这个可以替代自己的Json解析库)
* NetPy.dll — 核心桥接库
* NetPy.Runtime.dll — Netpy.Runtime 运行时
* Packages.7z — 实例除QT外的PY库包(解压到NetPy项目“Packages”),根据实际生产项目需要把没引用的包删除以减小包大小。
* python.7z — 在没有安装PY系统上支持执行PY脚本运行时,最低支持Win7(解压到NetPy项目“python”)
* NetPy.pjx|NetPy.pjt — VFP项目文件
* netjson.prg — Json解析 VFP 类库
* netpy.prg — 运行PY脚本 VFP 类库
* netpy_set_environment.prg — 设置NetPy运行环境
* netpy_basic_imagezip_addtext_setvar_byte.prg— 基础实例 演示 读取图片,处理了图片压缩并添加水印到 JPG 图像以字节数组的方式回传到VFP显示
* netpy_basic_callback_vfp_class_method.prg — 基础实例 演示如何在Python脚本中回调VFP类的方法
* netpy_basic_callfunc.prg — 基础实例 演示使用 NetPy 的 CallFunc 方法调用 Python 标准库函数或自定义封装函数
* netpy_basic_execpy.prg — 基础实例 演示如何通过oNetPy执行Python代码
* netpy_basic_getarray. prg — 基础实例 演示如何 在 VFP 和 Python 之间传递数组数据
* netpy_basic_lib.prg — 基础实例 演示在 NetPy 中使用第三方 Python 库的三种方法
* netpy_basic_setvar_getvar.prg — 基础实例 演示多种数据类型在VFP和Python之间的传递
* netpy_chart_gen_month_sales.prg — 演示使用Matplotlib生成高质量图表并返回图片路径
* netpy_chart_generator.prg — 演示使用Matplotlib生成高质量图表并返回图片路径
* netpy_crypto_utils.prg — 演示使用 Python 实现常用加解密及签名功能
* netpy_crypto_utils_gm_simple.prg — 演示使用 Python 实现SM国密算法功能(Sm2,Sm3,Sm4)
* netpy_excel_reader.prg — 读取 Excel 文件内容到 VFP 二维数组
* netpy_nlp_analyzer. prg — 使用 Python NLP 库分析客户反馈文本,进行中文情感分析,将分析评分结果保存回 VFP Cursor
* netpy_paddle_ocr.prg — 图像识别
* netpy_qt5_form.prg — 完整的 PyQt5 表单集成方案
* netpy_report_excel.prg — 生成专业销售分析Excel报表
* netpy_report_pdf.prg — 生成专业财务报表PDF
* netpy_report_word.prg — 生成专业项目报告docx
* netpy_sendemailwithattachment.prg — 调用Python脚本发送带附件的邮件
* netpy_web_crawler.prg — 调用 Python 实现网页爬虫
* netpy_barcode_generator.prg — 使用 NetPy 调用 Python 实现条形码生成功能
* netpy_thread.prg — 使用 NetPy 调用 Python 实现多线程任务处理
* netpy_web_api_flask.prg — 使用 NetPy 和 Python Flask 库启动 REST API 服务器
* 注意:
* 1. NetPy 仅支持单实例化,不支持多实例化。在 VFP 环境中,全局上下文需在唯一的实例化对象内进行构造,这样思维模式较为简单。
* 2. 在Py多线程中通过_vfp所有包装调用(DoCmd,SetVar,Eval,ExecScript)要非常小心使用,这属于烧脑篇达到企业级vip可以咨询慢慢学会理解使用。
* 后语:
* 实际上,Python生态非常庞大,几乎可以完成任何现代编程任务。以下是在VFP中通过NetPy调用Python的其他亮点功能:
* 1. 数据分析和可视化
* - 库: pandas, numpy, matplotlib, seaborn
* - 功能: 数据清洗、统计分析、生成图表
* - VFP整合: 将VFP的Cursor数据导出为CSV或直接传递给Python分析,然后将结果(如图表图片)返回VFP显示。
* 2. 机器学习与预测
* - 库: scikit-learn, tensorflow, keras, pytorch
* - 功能: 分类、回归、聚类、深度学习
* - VFP整合: 使用VFP收集业务数据,传给Python训练模型,然后将模型预测结果返回VFP。
* 3. 办公自动化
* - 库: openpyxl (Excel), python-docx (Word), PyPDF2 (PDF)
* - 功能: 读写Office文档、生成报告、处理PDF
* - VFP整合: 在VFP中触发生成复杂的Excel报表或Word文档,弥补VFP在Office高级操作上的不足。
* 4. 自然语言处理(NLP)
* - 库: nltk, spaCy, jieba(中文分词)
* - 功能: 文本分类、情感分析、关键词提取
* - VFP整合: 分析VFP中存储的客户反馈文本,返回情感倾向和关键词。
* 5. 图像处理
* - 库: OpenCV, Pillow
* - 功能: 图像识别、尺寸调整、滤镜应用
* - VFP整合: 在VFP中管理图片路径,调用Python处理图片并返回处理后的图片路径或显示在VFP表单中。
* 6. 网络服务与API调用
* - 库: requests, flask, fastapi
* - 功能: 调用第三方API(如支付接口、地图服务)、构建小型Web服务
* - VFP整合: 在VFP中调用Python的requests库访问REST API,然后将结果解析回VFP。
* 7. 数据库连接
* - 库: sqlalchemy, pymysql, psycopg2
* - 功能: 连接各种现代数据库(MySQL, PostgreSQL, MongoDB等)
* - VFP整合: 当VFP需要与远程数据库交互时,通过Python作为桥梁进行数据同步。
* 8. 系统运维
* - 库: psutil, shutil
* - 功能: 监控系统资源、文件操作
* - VFP整合: 在VFP应用中监控服务器状态,清理临时文件等。
* 9. Web爬虫
* - 库: requests, BeautifulSoup, Scrapy, Selenium
* - 功能: 数据采集、自动化测试
* - VFP整合: 爬取数据并导入VFP数据库。
|