Delphi Cxgrid中修改一个单元格,影响另一个单元格的值的实现方法
第一种方法就是使用表格中列的PropertiesValidate方法实现,例如修改单据的数量列,希望重新计算当前行的金额列
//编辑数量时发生 procedure TfrmSkdLr.cxgrdbclmnTV_SlPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
var
fValue: Double;
AHandler: TcxEditValidateEvent;
begin
AHandler := TcxTextEdit(Sender).Properties.OnValidate;
TcxTextEdit(Sender).Properties.OnValidate := nil;
try
try
fValue := DisplayValue;
msqry_Mx.Edit;
msqry_Mx.FieldByName('Jk_Sl').AsFloat := MyRound(fValue, Sys_Slxsw);
CalculateRecord(1); //行重新计算的方法
msqry_Mx.Post;
except
DisplayValue := msqry_Mx.FieldByName('Jk_Sl').AsFloat;
end;
finally
TcxTextEdit(Sender).Properties.OnValidate := AHandler;
end;
end;
第二种方法是使用TableView的EditValueChanged方法实现,比如修改应出勤天数 或者 实际出勤天数 信息后重新计算薪资金额
procedure Tfrm_Xscqwh.cxTV2EditValueChanged(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem);
var
sItemName, sFieldName: string;
begin
sItemName := AItem.Name; //取得正在编辑列的名称
if (sItemName = 'cxgrdbclmn_Ycq') or (sItemName = 'cxgrdbclmn_Sjcq') then //判断是否编辑了需要重新计算的列
begin
sFieldName := TcxGridDBColumn(AItem).DataBinding.FieldName; //取得正在编辑列绑定的数据字段名称
//将正在编辑单元格的值EditingValue写到数据集对应字段中
msqry_Mx.Edit;
msqry_Mx.FieldByName(sFieldName).Value := cxTV2.Controller.EditingController.Edit.EditingValue;
RecalculMoney; //调用行重新计算本行其他列值的方法
end;
end;
Delphi Cxgrid中修改一个单元格,影响另一个单元格的值的实现方法的更多相关文章
- oracle中修改表已有数据的某一列的字段类型的方法,数据备份
1.在开发过程中经常会遇到表中的某一个字段数据类型不对,比如说需要保存的数据带小数,但是在最初设计的时候是给的number(10)类型,开始保存是整数的时候满足要求,后来在保存小数的时候 会发现自动四 ...
- 编写一个矩形类,私有数据成员为矩形的长( len)和宽(wid),wid设置为0,有参构造函数设置和的值,另外,类还包括矩形的周长、求面积、取矩形的长度、取矩形的长度、取矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。
class Rectangle { private double len, wid; public Rectangle()//求矩形周长 { len = 0; wid = 0; } public Re ...
- CSS中display对布局的影响以及元素display的默认值
比如div元素,它的默认display属性值为“block”,成为“块级”元素(block-level):而span元素的默认display属性值为“inline”,称为“行内”元素.
- .NET中TextBox控件设置ReadOnly=true后台取不到值的解决方法
在.NET 2.0 下,当页面上的某个TextBox 设置了属性ReadOnly="True"时,通过客户端脚本给其赋值后,在后台代码中访问其Text属性却无法获得该值.经过尝试, ...
- shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
let a = [1, 2, 3]; let b = a.shift(); console.log(a); // [2, 3] console.log(b); // 1 返回值 从数组中删除的元素; ...
- MVC中”从客户端检测到有潜在危险的Request.Form值“的解决方法
从客户端检测到有潜在危险的Request.Form值: 在webForm中,可以在aspx页面顶部 <%@ Page Language="C#" AutoEventWireu ...
- Delphi - cxGrid设定合并单元格
在cxGrid中选中需要合并的字段,单击F11调出属性控制面板,展开Options,设置CellMerging的Value为True.
- WCF中修改接口或步骤名称而不影响客户端程序
WCF中修改接口或方法名称而不影响客户端程序 本篇接着"从Web Service和Remoting Service引出WCF服务"中有关WCF的部分. 运行宿主应用程序. 运行We ...
- 在Android系统中修改Android.mk使其同时编译rgb2565和rgb2888(向out/host/linux-x86/bin/下新增加一个工具命令)【转】
本文转载自:http://blog.csdn.net/mu0206mu/article/details/7514559 在Android系统中修改android.mk使其同时编译rgb2565和rgb ...
- jquery中修改一个元素的值或内容
jquery中修改一个元素的值或内容,比如数值增加可以使用这个方法取得原值并+1 $this.text(function(i,ot){return Number(ot)+1;});
随机推荐
- OpenWRT/iStoreOS 不从头编译内核安装4G LTE网卡 Quectel EM05-CE记录
我的机器是x86装了iStoreOS,有4G网卡Quectel EM05 https://www.quectel.com/cn/product/lte-em05 主要参考资料如下 https://ww ...
- MySQL原理简介—5.存储模型和数据读写机制
大纲 1.为什么不能直接更新磁盘上的数据 2.为什么要引入数据页的概念 3.一行数据在磁盘上是如何存储的 4.一行数据中的NULL值是如何处理的 5.一行数据的数据头存储的是什么 6.一行数据的真实数 ...
- Java中private方法能重写吗?
问题:Java中private方法能重写吗? 下面是测试代码 public class A { private void print() { System.out.println("A&qu ...
- JVM调优总结:典型配置举例
原文出处:http://developer.51cto.com/art/201201/311739.htm 一篇非常棒的关于JVM性能调优的文章,转载用于自己经常查阅 以下配置主要针对分代垃圾回收算法 ...
- 性能检测工具之Lighthouse
转载:https://mp.weixin.qq.com/s?src=11×tamp=1618929340&ver=3020&signature=oXyx*RDLXjN ...
- vue 适配不同分辨率显示问题
新建 js 文件 rem.js class DevicePixelRatio { constructor() { // this.flag = false; } // 获取系统类型 _getSyste ...
- Astro Zen Blog |一个优雅、极简、强大的博客
介绍 Astro Zen 博客项目 如果你想部署一个自己的静态博客,又不想到处折腾,并且是熟悉的前端技术栈,你可以尝试下:Astro Zen Blog! Astro Zen Blog 是一个使用 As ...
- 规模法则(Scaling Law)与参数效率的提高,
上一篇:<人工智能大语言模型起源篇(三),模型规模与参数效率> 规模法则与效率提高 如果你想了解更多关于提高变换器效率的各种技术,我推荐阅读2020年的<Efficient Tran ...
- Datadog发布云成本现状报告:83%的容器支出被闲置资源浪费
原文链接:https://www.datadoghq.com/state-of-cloud-costs/ 编译:CloudPilot AI 尽管灵活多样的云服务为云成本优化提供了诸多机会,但企业在提升 ...
- Qt编写linux上视频流播放器(支持海康大华宇视等各种网络摄像机)
一.前言 在windows上的视频流播放器有很多,而且各个监控厂家无论大厂还是小厂,基本上都提供了客户端,甚至很多第三方的监控平台软件厂商,也都提供了windows的版本,基本的都没有提供linux版 ...