delphi老版本如D6.0,D7.0,如何做通用高级查询的?

jeetliang 2017-11-30 02:57:53
delphi老版本如D6.0,D7.0,如何做通用高级查询的?也就是在一个框内选字段名,再加或和与组成查询语句,同时这个界面可以被共用,查询框根据不同的单据变动里面的查询字段名,有没有高手大神提供下思路?或模板
...全文
704 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsh341999 2017-12-11
  • 打赏
  • 举报
回复
给你个思路吧,如图:
tanqth 2017-12-11
  • 打赏
  • 举报
回复

单独的查询窗体

查询字段自动提取,可设置为中文名

多条件任意组合

使用代码简单

配合ADO连接直接使用。
lyhoo163 2017-12-11
  • 打赏
  • 举报
回复
思路够复杂的。
日月路明 2017-12-09
  • 打赏
  • 举报
回复
引用 11 楼 jeetliang 的回复:
字符串串接我肯定是会写的呀,我是想要能公用的高级查询,如采购单查询用了,出货单查询也能用这个FORM,只是里面的表字段变了而已
#9已经回答你了“这个问题说简单就简单,说难也难,我们自己做了一个,思路并不复杂: 类似6楼的界面,接收参数为TDataSet,下拉框用DataSet的字段的DisplayTitlet填充,便于用户阅读,剩下的就简单了,根据设置的条件,拼接条件字符串 ”, 我们的界面就是通用的,不是针对某种特定单据设计的
jeetliang 2017-12-09
  • 打赏
  • 举报
回复
字符串串接我肯定是会写的呀,我是想要能公用的高级查询,如采购单查询用了,出货单查询也能用这个FORM,只是里面的表字段变了而已
xiaocongzhi 2017-12-04
  • 打赏
  • 举报
回复
可以搞几列分别表示字段说明,字段名(隐藏与字段说明联动),比较关系(and/or等),根据所选的字段说明,比较关系连接成相应的SQL语句
日月路明 2017-12-04
  • 打赏
  • 举报
回复
我们的界面
日月路明 2017-12-04
  • 打赏
  • 举报
回复
这个问题说简单就简单,说难也难,我们自己做了一个,思路并不复杂: 类似6楼的界面,接收参数为TDataSet,下拉框用DataSet的字段的DisplayTitlet填充,便于用户阅读,剩下的就简单了,根据设置的条件,拼接条件字符串
ron_xin 2017-12-02
  • 打赏
  • 举报
回复
可以考虑用EHDBGRID,里面自带搜索过滤功能。
wensoft80 2017-12-02
  • 打赏
  • 举报
回复
ooolinux 2017-12-01
  • 打赏
  • 举报
回复
以下CB代码参考一下吧,刚学时学书里做的,控件都没有命名。
	AnsiString sql="select * from 员工信息表 where";
	AnsiString str="";
	if(ComboBox3->Text=="是")
		str+=" 是否管理人员=true and";
	else if(ComboBox3->Text=="否")
		str+=" 是否管理人员=false and";
	if(Edit1->Text!="")
		str+=" 员工号='"+Edit1->Text+"' and";
	if(Edit2->Text!="")
		str+=" 姓名='"+Edit2->Text+"' and";
	if(ComboBox1->Text!="")
		str+=" 性别='"+ComboBox1->Text+"' and";
	if(Edit3->Text!="")
		str+=" 出生日期=#"+Edit3->Text+"# and";
	if(ComboBox2->Text!="")
		str+=" 学历='"+ComboBox2->Text+"' and";
	if(Edit4->Text!="")
		str+=" 电话='"+Edit4->Text+"' and";
	if(ComboBox4->Text!="")
		str+=" 部门='"+ComboBox4->Text+"' and";
	if(ComboBox5->Text!="")
		str+=" 职位='"+ComboBox5->Text+"' and";
	str+=" year(出生日期)>1900"; //"  1=1" 应该也可以
	sql+=str;
ooolinux 2017-12-01
  • 打赏
  • 举报
回复
以下CB代码参考一下吧,刚学时学书里做的,控件都没有命名。 AnsiString sql="select * from 员工信息表 where"; AnsiString str=""; if(ComboBox3->Text=="是") str+=" 是否管理人员=true and"; else if(ComboBox3->Text=="否") str+=" 是否管理人员=false and"; if(Edit1->Text!="") str+=" 员工号='"+Edit1->Text+"' and"; if(Edit2->Text!="") str+=" 姓名='"+Edit2->Text+"' and"; if(ComboBox1->Text!="") str+=" 性别='"+ComboBox1->Text+"' and"; if(Edit3->Text!="") str+=" 出生日期=#"+Edit3->Text+"# and"; if(ComboBox2->Text!="") str+=" 学历='"+ComboBox2->Text+"' and"; if(Edit4->Text!="") str+=" 电话='"+Edit4->Text+"' and"; if(ComboBox4->Text!="") str+=" 部门='"+ComboBox4->Text+"' and"; if(ComboBox5->Text!="") str+=" 职位='"+ComboBox5->Text+"' and"; str+=" year(出生日期)>1900"; //" 1=1" 应该也可以 sql+=str;
lyhoo163 2017-11-30
  • 打赏
  • 举报
回复
通过SQL语句,就可以设置比较高级的查询。
jjpweb 2017-11-30
  • 打赏
  • 举报
回复
字符串串接。
tanqth 2017-11-30
  • 打赏
  • 举报
回复
我很早前自己做了一个控件ADO查询的。
Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境.   相比于基于Delphi的Dev-C++共享C++IDE,Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢,再也不必忍受VS.NET的庞大和高昂的价格。   虽然Code::Blocks从一开始就追求跨平台目标,但是最初的开发重点是Windows系统下的版本,从06年3月21日版本:1.0 revision 2220开始,Code::Blocks在它的每日构建中正式提供Linux版本(分两个版本:ubuntu.deb和fc4.rpm)。这样 Code::Blocks在1.0发布时就会是跨越平台的C/C++IDE,它将支持Windows和Linux的主要版本。长期以来C++开发员在Linux没有好用、通用的C++ IDE的局面就要结束。而这个IDE对于Windows下的用户同样重要,由于它开放源码的特点,Windows用户可以不依赖于VS.NET,编写跨平台C++应用。   Code::Blocks提供了许多工程模板,这包括:控制台应用、DirectX应用、动态连接库、FLTK应用、GLFW应用、Irrlicht工程、OGRE应用、OpenGL应用、QT应用、SDCC应用、SDL应用、SmartWin应用、静态库、Win32 GUI应用、wxWidgets应用、wxSmith工程,另外它还支持用户自定义工程模板。在wxWidgets应用中选择UNICODE支持中文。   Code::Blocks支持语法彩色醒目显示,支持代码完成(目前正在重新设计过程中)支持工程管理、项目构建、调试。   Code::Blocks支持插件,目前的插件包括代码格式化工具AStyle;代码分析器;类向导;代码补全;代码统计;编译器选择;复制字符串到剪贴板;调试器;文件扩展处理器;Dev-C++ DevPak更新/安装器;DragScroll,源码导出器,帮助插件,键盘快捷键配置,插件向导;To-Do列表;wxSmith;;wxSmith MIME插件;wsSmith工程向导插件;WindowsXP外观。   Code::Blocks具有灵活而强大的配置功能,除支持自身的工程文件、C/C++文件外,还支持AngelScript、批处理、CSS文件、D语言文件、Diff/Patch文件、Fortan77文件、GameMonkey脚本文件、Hitachi汇编文件、Lua文件、MASM汇编文件、Mathlab文件、NSIS开源安装程序文件、Ogre Compositor脚本文件、Ogre Material脚本文件、OpenGL Shading语言文件、Python文件、Windows资源文件、XBase文件、XML文件、nVidia cg文件。识别Dev-C++工程、MS VS 6.0-7.0工程文件,工作空间、解决方案文件。   Code::Blocks基于wxWidgets开发,正体现了wxWidgets的强大。以前Borland C++ Builder X宣称基于wxWidgets开发跨平台、兼容性好、最优秀的C++ IDE环境,但没有实现;现在Code::Blocks+GNU GCC正在实现这个理想。让我们拭目以待。国内的Code::Blocks爱好者和跨平台开发员应该尽快建立中文Code::Blocks网站,提供Code::Blocks中文化支持,促进Code::Blocks在国内的发展。

2,507

社区成员

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

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