*========================================================================================
* 类: 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数据库。