delphi新小白求助

Augustine000 2019-03-05 05:12:26
问题描述:在Delphi7中的dbgrid的列名如何实现程序运行后用户可以点击更改功能,一般老方法是操作时点击后弹出窗口利用edit文本赋值去改变,我想的是直接去改变DBGrid上列的数据,包括增加一列和该列的数据,已存在的列数据变动直接改就可以了,但是新增的列该怎么处理呢???我用的是ADOconnection,datasource,adoquery,dbgrid.
...全文
296 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
woniugongzuoshi 2019-03-12
  • 打赏
  • 举报
回复
这还不简单,首先初始化的时候就要保证你adoquery有这个字段,同时dbgrid也对应好,只是在dbgrid中把该字段对应的column的visible设为false,在相应事件触发时,把这个column的visible设为true就行了。做人别那么实诚,有时候编程跟变魔术一样,客户看见的是一回事,后台实现不一定一板一眼照那么来。
victor_yang 2019-03-12
  • 打赏
  • 举报
回复
客户可以在DBGRID上编辑数据,但你在操作数据时不能在DBGRID上操作,应该操作query
新记录,客户可以向下键头新增,但你就要query.append
编辑数据,客户可以直接在dbgrid上修改,但你就要
query.edit;
query.fieldbyname('field').asstring='.....';
query.post;

我做了20年的信息系统都是这么做的,没有任何问题,你多摸索下。
Augustine000 2019-03-08
  • 打赏
  • 举报
回复
何为表格型?[/quote] 表格型为类似excel填充数据方式,非表格型就是在另外弹窗编辑框输入数据并通过类型检查,最后通过DBGrid显示数据。这两天在用StringGrid数据填充,头都大了。所以就有了问有没有更好的办法去解决的问题?我是纯小白来的,有些问题很基础还请见谅。
  • 打赏
  • 举报
回复
不用那么复杂,TStringGrid支持EditMask,写一个OnGetEditMask事件处理(在其Events中双击),以下是Delphi帮助中的例子:
procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Longint; var Value: string);
begin
if StringGrid1.Cells[ACol, 0] = 'Phone Number' then
Value := '!\(999\)000-0000;1';
end;
lyhoo163 2019-03-07
  • 打赏
  • 举报
回复
引用 5 楼 Augustine000 的回复:
[quote=引用 4 楼 lyhoo163 的回复:]
DBGrid的列,都是与数据集相关联,如果要增加列,要对应表中有的字段,方能编辑。


这种关系我花了好长时间才明白,还有个事情,如果非得用表格型输入数据(现在是窗口弹出文本编辑保存输入数据同时作数据类型格式检查),是不是非得用stringgrid或者listview这两种,有没有更好的办法呢?[/quote]

何为表格型?
linghengmao 2019-03-07
  • 打赏
  • 举报
回复
直接在DBGRID上改,要增加的判断是非常多的吧。
lyhoo163 2019-03-06
  • 打赏
  • 举报
回复
DBGrid的列,都是与数据集相关联,如果要增加列,要对应表中有的字段,方能编辑。
victor_yang 2019-03-06
  • 打赏
  • 举报
回复
我用的方式就是
1、用户在grid上自由编写
2、保存写的时候做完整性判断,写一段给你看看

while not QueryBill4.Eof do
begin
with QueryBill1 do //这一段是自己保存前做处理
begin
First;
while not Eof do
begin
Edit;
FieldByName('iOrder').AsInteger:=SHDBGridEh1.SumList.RecNo;
Next;
end;
end;
with QueryBill2 do //这个就是完整性分析
begin
First;
while not Eof do
begin
if Trim(FieldByName('iOrder').AsString)='' then //如果有错就提示并且停止保存,还可以停到有错一行显示给客户看
begin
RzPageControl1.ActivePageIndex:=1;
MessageDlg('工艺清单里的顺序号不能为空!',mtWarning,[mbOK],0);
Result:=False;
Exit;
end;
Next;
end;
end;
QueryBill4.Next;
end;



这样写客户感觉会比较自由,操作简便,就是开发者在保存前要做很细致的检查,发现录入有错误就停止并提示,直到客户录入的数据全部正确才能保存。要求开发人员对各列数据的要求都很清楚,才能及时发现有错误的数据。
当然了,客户也很少会故意乱写的,他也不想整天提示数据有错。
Augustine000 2019-03-06
  • 打赏
  • 举报
回复
@doloopcn,昨天又看了下很多网上说的,dbgrid是显示数据的,和数据库关联,不能做类型和错误检查,用弹窗的方式带编辑文本等是最好的,防止很多错误输入,看来还是得用老方法。同样也很感谢你。
Augustine000 2019-03-06
  • 打赏
  • 举报
回复
引用 4 楼 lyhoo163 的回复:
DBGrid的列,都是与数据集相关联,如果要增加列,要对应表中有的字段,方能编辑。
这种关系我花了好长时间才明白,还有个事情,如果非得用表格型输入数据(现在是窗口弹出文本编辑保存输入数据同时作数据类型格式检查),是不是非得用stringgrid或者listview这两种,有没有更好的办法呢?
doloopcn 2019-03-06
  • 打赏
  • 举报
回复
DBGrid默认就是可以修改的,最后一行带“*”的就是可以添加新行 的

不过DBGrid对数据检测的功能不尽人意,所以很多人都习惯用Edit代替输入,然后手工进行POST
Delphi XE2 正式版的破解程序,有效哦。 Delphi XE2 官方完整 delphicbuilder_xe2_win_dl.iso下载地址: http://altd.embarcadero.com/download/radstudio/xe2/delphicbuilder_xe2_win_dl.iso 文件大小: 2.33G MD5: de8b9f897e2ad678643b64898470b707 Delphi Prism XE2 - ISO 1.28G http://altd.embarcadero.com/download/prism/xe2/prism_xe2_win.iso RadPHP XE2 - ISO 343M http://altd.embarcadero.com/download/radphp/xe2/radphp_xe2_win.iso 建议大家用迅雷下载 ************************************** 英巴卡迪诺发布版RAD Studio XE2开发工具套件 日前,英巴卡迪诺宣布发布版RAD Studio XE2软件开发工具套件,版包含了10多年来最深入全面的特性升级。RAD Studio XE2中包含了版本的Delphi、C++Builder、Prism和RadPHP。主要特性包括完整的Delphi 64位Windows支持,通过全的FireMonkey富商业应用平台支持Mac OSX和iOS,以及通过RadPHP XE2支持安卓web和移动应用开发。 对Delphi XE2和C++Builder XE2来说,一个极其重要的特性就是FireMonkey,业界第一款用于创建商业软件的原生的能全面利用到CPU和GPU计算能力的富应用平台。使用 FireMonkey,Delphi和C++Builder开发人员能开发出视觉绚丽的高清和3D应用程序,并与后台的企业级数据库如Oracle、微软 SQL Server、IBM DB2、Sybase和其他数据库互联互通。FireMonkey应用以原生方式运行在Windows PC和Mac上,可以完全利用到现代GPU的处理能力,以不可置信的细节处理能力和优异的性能表现展现数据和用户界面。FireMonkey还可以使 Delphi XE2用户为移动(iOS)设备创建原生的高清和3D应用程序。 Delphi和C++Builder为应用开发提供原生开发方式,而RadPHP XE2则支持web开发和移动设备应用的开发。使用RadPHP XE2,开发人员可以轻松为移动智能电话和平板电脑创建支持触碰和UI优化的web应用。开发人员可以部署他们的移动Web应用为原生移动应用到苹果公司的iOS应用商店和安卓的应用市场。在他们的移动Web应用中,可以直接访问移动设备的硬件,如相机、GPS和重力感应器。 其他增特性包括: Delphi XE2 和C++Builder XE2 Delphi XE2包括完整的Windows 64位对FireMonkey、编译器、调试器、RTL 和VCL的支持; dbExpress具有的对InterBase XE, FireBird 2.5, SQL Anywhere 12 和ODBC的连接能力; 的DataSnap移动连接器,带有原生的平台组件和示例以创建从移动客户端到Delphi DataSnap服务器的连接,支持安卓(Java), iOS (Objective C), 黑莓(Java) 和Windows Phone 7 (C#); 增和更的扩展工具,包括FastReport,用于快速设计和生成报表;Documentation Insight,用于Delphi的源代码文档工具; TeeChart、IBX、InstallAware、IP*Works、Aqtime、FinalBuilder、IntraWeb和Indy 的64位版本。 TeeChart、Indy和FinalBuilder还支持Mac平台; C++Builder XE2中还包含了的代码审计和QA度量工具; LiveBindings使用户能连接任意类型的信息到任意的FireMonkey用户界面和图形对象上。用户可以绑定实时数据到标准的用户界面控件、高清或3D图形元素上,以创建可视化任意类型数据的崭方式; RadPHP: 集成式为移动优化的Web开发; 部署应用到Web, iOS, 或安卓; 扩展的Zend框架组件集; Embarcadero Prism: 来自RemObjects的全的.NET Oxygene编译器; 匿名接口实现; FastReport.net

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧