- 博客(51)
- 收藏
- 关注
原创 .NET-依赖注入、配置系统、日志系统
如果 “长寿的”(比如 Singleton)引用了 “短命的”(比如 Scoped),等 “短命的” 被销毁后,“长寿的” 还拿着它的引用 —— 再用就会拿到 “已经死了的对象”,用餐厅类比:如果招牌是 “川菜馆”(接口,只说 “做川菜”),实际干活的可以是张师傅、李师傅(不同实现类)——想换厨师,直接换干活的人,不用换门口的招牌(业务代码不用改)。所以这个组件是 “一专多能”—— 名字叫 “依赖注入”,但把 “服务定位器” 的功能也包进去了,既支持被动注入,也支持主动取服务。
2026-01-01 10:35:06
673
原创 表单---菜单项按钮Needs Record属性
在 Dynamics 365 Finance and Operations (D365FO) 的中,属性用于控制该按钮是否。
2025-10-31 17:30:43
184
原创 财务----过账
在 Dynamics 365 for Finance and Operations (D365FO) 中,是财务与业务流程中的核心操作,本质是将业务交易或财务记录从 “临时状态” 正式记入系统的 “总账” 或相关业务模块的 “正式账簿”,并生成对应的会计分录,确保数据可追溯、可审计,最终反映到财务报表中。
2025-10-31 16:00:17
421
原创 Configuration Key
实体的配置键开没开?实体背后的表、字段开关开没开?改过开关的话,有没有刷新实体列表?做好这 3 步,就不会因为配置键出问题。
2025-10-31 15:44:35
364
原创 详解MenuItemDisplay配置中的Configuration Key、Maintain User License、Subscriber access level、View User Licen
配置键是 D365FO 中用于。
2025-10-31 15:44:19
426
原创 使用ssrs矩阵
数据集是 “粮仓”:主数据集存业务数据(维度值、余额等),维度数据集存动态列的名称和序号。矩阵是 “动态列工具”:用列组(基于维度序号)生成动态列,用表达式根据序号匹配维度值。固定列直接加:动态列右侧插固定列,绑定对应字段即可。
2025-10-24 22:41:36
443
原创 No report data table with name 数据集名 exists in report schema for data provider 数据提供类
数据提供程序的报表架构中不存在具有名称的报表数据表”时。win+R 输入:services.msc。
2025-10-24 22:17:21
183
原创 采购3---采购申请
采购申请的逻辑就是 “内部提需求→按工作流审批(状态跟着变)→批完后处理(生成订单 / 询价 / 合并凑单)”,核心是通过状态和流程控制 “不乱买、买得对、买得便宜”。不管是自己填申请,还是采购部门处理,都能按 “目的、状态、规则” 一步步来,避免混乱。
2025-10-20 17:41:50
842
原创 采购2----采购目录
采购目录的逻辑很简单:先给采购的东西 “分类 + 绑供应商产品”(基础),再建目录 “选更新方式 + 控显示”(搭建),最后发布并靠 “策略规则” 管谁能买啥(落地)。核心就是让采购 “有规可依、不瞎买”,同时方便员工找东西、公司查数据。整个流程其实就是 “搭骨架(确认类别层次)→建目录(填信息、选产品、激活)→开权限(配采购策略)→用起来(员工提申请)”,每步都有明确的系统入口和按钮,跟着走就行,特别是演示数据 USMF 里有现成的类别和产品,新手可以先在里面练手。
2025-10-20 17:10:04
967
原创 采购1------采购概述、采购工作流
简单说,就是覆盖 “从确定要买啥,到找供应商、下单、收东西、开发票、给供应商打钱” 的所有步骤。你可以提前定好采购规则(比如谁能批、花多少钱要报备)和流程,让买东西的过程符合公司实际需求。支出分析:公司在采购上花了多少钱,花在哪些地方。供应商绩效:哪个供应商送货快、质量好、价格低,方便后续优化合作。整个采购模块就是把 “买东西” 的全流程标准化、可控化 —— 从提需求到付款,每一步都有规则、有记录,还能看数据优化,避免乱花钱、找错供应商或者流程卡壳。
2025-10-20 15:44:06
1287
原创 总账---财务维度
财务维度就是给财务交易 “贴分类标签” 的工具,分自定义(自己定)和实体类(用系统数据),建完要激活才能用,还能控制公司权限、设自动填值。想删很难,有特殊需求可以用 “标记” 替代。高度可变维度是财务维度里的 “反面教材”—— 值独、用得短、组合多,既帮不了财务分析,还拖慢系统、加成本。关键是 “分清用途”:外部报告用低变高重用的维度,内部细跟踪用财务标记,别让高度可变维度占了财务维度的位置。
2025-10-17 15:52:18
813
原创 D365财务和运营应用---持续交互与数据集成
生成时会自动把 “生成版本号” 写进模型里;默认的版本号格式包含 “年、月、日 + 当天第几次生成”(比如 20241003.1,就是 2024 年 10 月 3 日第一次生成),也能自己改版本格式(参考 Visual Studio 的文档)。进 Azure DevOps→找到旧生成定义→点 “编辑”;切到 “任务” tab→点底部 “+ 添加任务”→在 “实用工具” 里找到 “PowerShell” 任务,添加进来;
2025-10-05 11:26:46
1044
原创 D365 SSRS报表
作用:提供所需数据。比如你查看学生信息时,只查看男学生信息,那么就要去筛选学生性别为男的信息,即在代码中就是写sql,而这个逻辑就写在此类中。比如这个SSRS报表展示的是学生信息,但你想有个性别参数来选择只看男生或女生信息。可以在生成报表前选择。首先选定数据集:new一个后,右击属性,选择数据源类型,然后选查询,选好要展示的字段。如果您正在创建的报表不采用任何参数,请将此类的内部留空。作用:暂时存储dp类检索出来的数据,后续用于在报表上展示。最后,为要在报表上显示的每条数据向表添加一个字段。
2025-09-30 16:30:44
202
原创 《保姆级 D365 工作流教程:覆盖所有核心知识点》下篇
创建工作流类型是 “让特定文档能使用工作流” 的前提步骤 工作流类型就像为 某类文档(如采购申请单、报销单)定制的 “工作流框架模板”。只有先建好这个 “框架”,后续才能基于它配置具体的工作流(如采购审核流、报销审批流)。其核心作用是明确 “这个工作流要服务于哪个文档、在哪个模块用、能包含哪些操作、关键节点要触发什么动作”,为后续工作流配置划定范围和规则。在创建工作流类型时,必须明确定义以下 5 个关键元素:1、定义 “工作流文档”即:明确服务对象核心含义:确定这个工作流类型要 “绑定” 到哪个具体文档 —
2025-09-30 15:07:14
1072
原创 《保姆级 D365 工作流教程:覆盖所有核心知识点》中篇
1. 选 “队列”→切换到 “基于队列的选项卡”;首先要进入指定页面才能查看历史记录,具体路径是:在系统导航窗格中,依次展开 “模块”→找到 “常见” 分类→选择 “查询”→再点击 “工作流”→最终进入 “工作流历史记录” 页面,这是集中展示所有工作流文档处理情况的核心入口。添加升级用户步骤:点击 “添加升级”→在 “分配类型” 选项卡选升级对象的分配方式(可选 “等级制度”“工作流用户”“用户”,配置逻辑与 “任务分配” 完全一致)→切换到 “时间限制” 选项卡,给该升级用户设完成时间(规则同上)。
2025-09-28 16:32:47
1066
原创 《保姆级 D365 工作流教程:覆盖所有核心知识点》上篇
1、工作流是一个系统工作流是个系统:它能提供给你需要的零件,而不需要你去造零件。比如想做 “报销流程” 工作流,你不用自己费劲去 “造一个‘‘指定财务审核’的角色”(不用手动建个 Excel 表格记谁是财务)、不用自己 “造一个‘按金额分审批人’的规则”(不用每次报销都手动算 “超过多少钱该找谁”)—— 系统里早就给你准备好这些 “现成零件” 了: 你要让财务 Ivan 核票,直接用系统里的 “责任人零件”,在流程里选 “Ivan”,系统就会自动把核票任务派给 Ivan,不用你手动发消息通知;
2025-09-25 17:46:22
1021
原创 WebAPI
API(接口)就像是一个桥梁,使得不同的软件系统可以相互通信并协同工作。例如,在网页上点击“分享到微博”的按钮时,实际上就是通过微博提供的API将内容发送到了该平台。Web API(网络应用程序编程接口)是指专门为通过互联网与其他软件或系统进行通信设计的一套协议和技术规范。它通常用于提供一种标准化的方式,以便不同的应用程序能够相互交换信息和服务。Web API 最常见的是基于 HTTP 协议,并且常常会返回 JSON 或 XML 格式的响应数据。跨平台兼容性:由于大多数 Web API 都是基于标准的 HT
2025-01-26 21:01:24
419
原创 Prism--对话服务
实现这样一个效果,点击打开对话框,出现对话框,并且传去参数。之后会返回一些信息。WPF也可以实现,只不过需要自己去定义事件 委托等等。Prism框架有现成的。在模块A中新建视图C的视图模型,继承IDialogAware,并且实现接口。1、在模块A视图中定义一个用户控件ViewC,用于写对话框样式。定义一个用于绑定的命令,构造函数中实例化命令。2、在主窗口视图模型中,定义一个对话框服务。在主窗口视图模型中,实现打开对话框传参功能。在模块A中新建视图C的视图模型,接收参数。定义一个打开对话框的方法。
2025-01-26 15:19:23
354
原创 MySQL
数据库系统能够结构化地存储大量数据,提供高效的数据管理和查询能力,将数据组织成表格形式,便于检索、更新和分析。数据一致性:通过事务处理和完整性约束,数据库可以保证数据的一致性和准确性,防止数据冗余和冲突。安全性:数据库支持用户权限管理,保护敏感信息,确保数据的安全访问。稳定性:数据库设计有备份和恢复机制,即使系统崩溃也能保持数据的持久存在。可扩展性:对于需要处理大量并发请求的应用,数据库能水平或垂直扩展以满足增长的需求。
2024-12-23 15:08:40
816
原创 NuGet
传统中,项目要使用某个程序集,得先去搜索下载相匹配的版本,再手工添加引用。很麻烦。而现在,都有一个类似于应用商店,点击即可下载安装,不用担心版本是否匹配。比如Linux中使用apt、yum命令行就可自动下载安装。Javascript中的npm。Java中的Maven、Gradle。Pyathon中的pip。.NET中这种工具就是NuGet。
2024-12-07 15:25:42
1138
原创 .Net学习
NET是开发平台,.NET Framework、.NET Core、Xamaarin/Mono的统称。.NET Framework是只能在Windows上开发的技术.NET Core是可以跨平台开发的技术Xamaarin/Mono是移动端开发的技术.NET Core:跨平台、免费、开源,可以在云计算上开发的技术跨平台指的是:程序可以运行在Windows、Linux、Mac操作系统上什么是云计算?背景:传统软件开发中服务器部署是:搞个机房,买上100台服务器放里头。
2024-12-06 14:08:52
1688
原创 WPF_3
x名称空间是为了映射这段字符串http://schemas.microsoft.com/winfx/2006/xaml而这个字符串,微软规定它里边包含的类和其他元素都是用来解析和分析我们的xaml代码的。这样一个名称空间,我们称它为xaml名称空间,而xaml名称空间的缩写就是一个X,正好是咱的第一个字母。那通过这句话呢,我们的这个xaml名称空间,也就是Xaml名称空间,就声明好了,声明好了之后呢,我们就可以使用它了。它里边包含的类和其他元素都是用来解析和分析我们的xaml代码的。
2024-12-02 18:35:18
447
原创 WPF_2
通过以上学习可知,想用一个控件,首先是要引用它所在的类库,然后用xmlns引用类库中的名称空间,才能使用控件。下方代码功能是:为员工计算每个月的工资,而且该计算工资功能是组件的形式,可以在程序其他地方显式或引用。以这个来作为事件处理器,响应者是窗体,事件订阅是 Click="Button_Click"在自定义的SalaryCaluculator.xaml中内容写成如下:。然后就在Grid中可以引用了,写如下四行代码引用,就欧克了。③自定义快捷键,点击工具,点击键盘,点击需要更改命令的快捷键。
2024-12-02 12:41:36
704
原创 委托、Lambda表达式
委托是类类型,也就是引用类型,能声明变量,创造实例。但委托是一种特殊的类,一般的类是用来反应现实事物的,而委托类只是用来包裹方法的,通过委托实例可以来间接调用这些包裹的方法。所以可以说。
2024-11-24 21:17:28
424
原创 结构体
拆箱时,会检查 object 类型的对象是否包含特定值类型的有效数据,如果是,则将数据从托管堆复制回栈(Stack),并返回值类型的实例。默认访问修饰符是public:尽管可以自定义,但结构体的所有成员默认具有公有访问权限。结构体是值类型,可装/拆箱,可实现接口,不能派生于其他结构体,不能有显式无参构造器。线程安全:结构体的实例通常是线程安全的,因为它们的实例不会改变共享状态。占用内存小:由于值传递,结构体通常比类更轻量级,占用较少的内存空间。不可继承:结构体是不可继承的,不能作为基类。
2024-11-24 11:38:51
357
原创 泛型、部分类、枚举
泛型有泛型类、泛型接口、泛型委托、泛型方法、泛型属性、泛型字段……可以看出泛型涉及极广,所以泛型极其重要,与接口相当。了解泛型字面意思,泛型指的就是泛化的东西,与其相对的就是特化(具体化)。比如:我伤心的时候喜欢听音乐,当我水逆时会听《好运来》。音乐就是泛化,伤心的时候只要是歌都能缓解情绪。而《好运来》就是特化。我们编程的时候,泛型不能直接用,要特化后才能用。
2024-11-23 12:36:15
1316
原创 接口、抽象类、面向对象设计、单元测试 一篇文章学会!
如果函数成员全被实现的话那么它就不是抽象类,即具体类如果抽象成员被private修饰,就意味着不能再被访问,更不可能被实现,无意义。编译器不允许去实例化一个抽象类,那么抽象类还剩两种作用:①当成基类,让派生类去实现抽象方法②抽象类作为基类可以去声明变量,让该变量去引用一个子类的实例,而子类中已经实现了基类中抽象方法。(多态)
2024-11-18 18:58:53
1368
原创 类的继承、重写、多态
以下代码,在父类写了构造器,子类未写。根据以下代码可看出,子类的实例能够通过方法间接使用到父类的私有(private)属性,也就是继承了私有属性,只是不能直接访问。细节:这里使用了带参数的构造器,是因为每个类都有默认的无参构造器,那样看不出来构造器是否有继承性,因为大家都有嘛。就相当于鸡家有个传家宝,鸡爹传给了鸡仔,但是传家宝被锁在保险箱里,鸡仔还不知道密码,这就是继承了,但没有访问权限。继承也称派生,父类=基类,子类=派生类,类都是继承Object的,或者说类的最顶端父类是Object。
2024-11-15 12:42:04
1001
原创 事件 详解
事件参数:由事件主体发出且与事件本身相关的数据叫做事件参数,如手机铃声响,并且发来了消息。这个消息就是事件参数。响应事件:也称处理事件,根据通知和事件参数来采取行动的行为叫做响应事件。而具体做的事叫做事件处理器事件的订阅者:事件的订阅者、事件消息的接收者、事件的响应者、事件的处理者、被事件所通知的对象,说的都是同一回事,这里就统称为事件的订阅者。事件的拥有者:事件的拥有者、事件的主体、事件的source(源头)、事件消息的发送者说的都是同一回事,这里就统称为事件的拥有者。事件参数。
2024-11-14 12:29:07
831
原创 Visual Studio 2022添加Form引用教程
③ 再引入Form,如图所示写上一行using System.Windows.Forms;②在搜索框中输入 System.Windows.Forms ,勾选后,再点确定。①右击引用,再点击添加引用。
2024-11-13 13:13:12
1594
原创 委托详解(经典,非常详细)
实例=对象,函数=方法,委托=函数指针委托(delegate)初理解:这儿有件事情我不亲自去做,而是交代给别人替我去做,即间接的做。
2024-11-11 08:24:22
1752
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅