17 个解决方案
#1
感觉还是要根据条件来看吧,首先从作业界面上划分,建不同的父类窗体,一般简单就是grid之类的,复杂的就是双档,即单头、单身、单尾、左边有的会有list列表。这部分估计占大头,要写不少东西,
接下来就是每个单子上控件的生成,我一般做法是继续分类,当然这部分控件也可以重写的,一般是固定几种控件类型,再在控件上深入。就combobox而言,单独一个Columns估计搞不定,要一些更加详细的信息或者获取Items和keyItems的途径,如果是软件公司的话,一般也会写控件设定这些值和grid的字段绑定。
细化后,一步一步来吧,应该不难
接下来就是每个单子上控件的生成,我一般做法是继续分类,当然这部分控件也可以重写的,一般是固定几种控件类型,再在控件上深入。就combobox而言,单独一个Columns估计搞不定,要一些更加详细的信息或者获取Items和keyItems的途径,如果是软件公司的话,一般也会写控件设定这些值和grid的字段绑定。
细化后,一步一步来吧,应该不难
#2
录入界面是根据数据库动态生成的-0-这个我见过,上家公司的一位高手开发过,代码量挺大的,也没细看,
表中应有字段显示长度,默认值,显示名称等等记录,挺繁琐的
表中应有字段显示长度,默认值,显示名称等等记录,挺繁琐的
#3
不难实现,只不过,维护这些字段的表信息量会很大,要很精确;
还可以做成能够进行2次开发,让用户来自定义
还可以做成能够进行2次开发,让用户来自定义
#4
最简单的,以一个2列的stringgrid:
列1:字段名
列2:字段内容
一行对应一个字段
列1:字段名
列2:字段内容
一行对应一个字段
#5
我很早以前也想实现这个功能,帮顶了。。。。。
#6
应该不像4L说得那么简单吧,有枚举类型和图片类型的不好办咧,另外就算用stringgrid来做,把数据修改回数据库时也要按照数据库字段的类型再进行一次转换,比如使用sql语句插入的话,要注意数字文本,byte日期等的引号
,对于图片类型的字段要进行后续处理等等
反正技术上能实现,就是个力气活,我以前用C#实现过
,对于图片类型的字段要进行后续处理等等
反正技术上能实现,就是个力气活,我以前用C#实现过
#7
funxu,那段实现了的C#代码还有不?
发小弟学习一下,痛哭流涕,万分感谢哦
lzg827@sina.com
发小弟学习一下,痛哭流涕,万分感谢哦
lzg827@sina.com
#8
251450368@qq.com也来一个?哈哈
#9
是的,主要就是让用户实现自定义,我公司产品也是这样,表格类的我已经做好,想写一个新的组件继承于scrollBox,可是字段的长度,属性这个东西太多,有点蒙了
#10
抱歉哦,因为公司有邮件监控,任何工作相关的代码都不能发出去滴~
#11
#12
COPY出来,发给大家
#13
都说了,是公司的代码,你们想人家被开除啊!呵呵。。。。
#14
动态创建控件的难度不是很大,根据数据库内容设置属性也不是很难,关键需要处理好以下四个问题:
1、每次需要动态创建的控件数量不能太多,否则影响窗体加载速度。
解决方法:可以动态创建一次,然后序列化成XML(NativeXML)或者DFM等文件格式,每次动态加载序列化后的内容。
2、动态创建控件的布局管理是一个非常难受的事情,强力建议使用Delphi2010、XE、XE2等新版本。
3、空间焦点跳转的控制。
4、空间事件的加载。
建议:参考微软Visual Stdio 2010之后推出的类似产品LightSwitch
1、每次需要动态创建的控件数量不能太多,否则影响窗体加载速度。
解决方法:可以动态创建一次,然后序列化成XML(NativeXML)或者DFM等文件格式,每次动态加载序列化后的内容。
2、动态创建控件的布局管理是一个非常难受的事情,强力建议使用Delphi2010、XE、XE2等新版本。
3、空间焦点跳转的控制。
4、空间事件的加载。
建议:参考微软Visual Stdio 2010之后推出的类似产品LightSwitch
#15
可以考慮使用類似於 EControl_FormDesinger 這樣的控件來做運行時界面設計。
而字段的定義(數據字典)則在數據庫中定義,FormDesinger輕松搞定動態界面布局後,設計的核心放在數據字典上,數據決定界面,支持數據的變化,程序設計的核心才能回歸問題域本質,不用過多考慮界面。
動態定義字段,加載編輯界面,這個問題挺普遍的。但 Delphi 就是不主動支持。
可以考慮按以下步驟測試:
1、數據來源:SQL語句,及對應的字段定義
2、動態生成數據集,並按數據字典設定字段。
3、將多個數據集綁定到一個預定義的Form上,預設的Form比一個全新的Form更好用,因為裡面可以有預寫的框架代碼,並針對不同的功能設定一樣預定義功能。這些框架代碼一般是解決權限問題及常用功能如:查找過濾報表編輯增刪改...等。
4、用FormDesinger設定預定Form。在 Form 上加上DBEDIT,DBCOMBOBOX...這樣的字段編輯控件。
5、程序加載運行。
要好用,必須擴展“字段定義”,如果時間充足則可以考慮:
1、只使用 TField中的屬性是不夠的,可考慮加上:字段編碼規則,字段輸入格式化規則,字段外鍵定義(Lookup),Tree節點樹支持,....等等
2、多表連接時的更新支持及表之間的關聯更新(也可考慮用觸發器實現關聯更新)。
3、什麼數據將被重復利用的問題,因為不同的 Form 往往共用很多相同可類似的 DataSet , 共用可以提高效率,簡單的全局數據就夠用了,但項目實踐中發現如果有區域共用區則更好。即進入某一模塊則創建一個共用區域,加載不同的Form,會充實共用區的數據,模塊退出該區域共用區的數據被清除。
將程序設計的中心從界面中解脫出來,回歸“數據是活的”這個本質,從而嚐試解決, 數據是活的,程序是死的這個編程難題。
而字段的定義(數據字典)則在數據庫中定義,FormDesinger輕松搞定動態界面布局後,設計的核心放在數據字典上,數據決定界面,支持數據的變化,程序設計的核心才能回歸問題域本質,不用過多考慮界面。
動態定義字段,加載編輯界面,這個問題挺普遍的。但 Delphi 就是不主動支持。
可以考慮按以下步驟測試:
1、數據來源:SQL語句,及對應的字段定義
2、動態生成數據集,並按數據字典設定字段。
3、將多個數據集綁定到一個預定義的Form上,預設的Form比一個全新的Form更好用,因為裡面可以有預寫的框架代碼,並針對不同的功能設定一樣預定義功能。這些框架代碼一般是解決權限問題及常用功能如:查找過濾報表編輯增刪改...等。
4、用FormDesinger設定預定Form。在 Form 上加上DBEDIT,DBCOMBOBOX...這樣的字段編輯控件。
5、程序加載運行。
要好用,必須擴展“字段定義”,如果時間充足則可以考慮:
1、只使用 TField中的屬性是不夠的,可考慮加上:字段編碼規則,字段輸入格式化規則,字段外鍵定義(Lookup),Tree節點樹支持,....等等
2、多表連接時的更新支持及表之間的關聯更新(也可考慮用觸發器實現關聯更新)。
3、什麼數據將被重復利用的問題,因為不同的 Form 往往共用很多相同可類似的 DataSet , 共用可以提高效率,簡單的全局數據就夠用了,但項目實踐中發現如果有區域共用區則更好。即進入某一模塊則創建一個共用區域,加載不同的Form,會充實共用區的數據,模塊退出該區域共用區的數據被清除。
將程序設計的中心從界面中解脫出來,回歸“數據是活的”這個本質,從而嚐試解決, 數據是活的,程序是死的這個編程難題。
#16
EControl_FormDesinger 这个东西我也下载试过,可是都是安装不了的,楼上有没有 for d2007的安装。。感谢。不是太常上网,感谢前辈们的帮助
#17
有哪位高人可以实现啊,我也想这么搞
#1
感觉还是要根据条件来看吧,首先从作业界面上划分,建不同的父类窗体,一般简单就是grid之类的,复杂的就是双档,即单头、单身、单尾、左边有的会有list列表。这部分估计占大头,要写不少东西,
接下来就是每个单子上控件的生成,我一般做法是继续分类,当然这部分控件也可以重写的,一般是固定几种控件类型,再在控件上深入。就combobox而言,单独一个Columns估计搞不定,要一些更加详细的信息或者获取Items和keyItems的途径,如果是软件公司的话,一般也会写控件设定这些值和grid的字段绑定。
细化后,一步一步来吧,应该不难
接下来就是每个单子上控件的生成,我一般做法是继续分类,当然这部分控件也可以重写的,一般是固定几种控件类型,再在控件上深入。就combobox而言,单独一个Columns估计搞不定,要一些更加详细的信息或者获取Items和keyItems的途径,如果是软件公司的话,一般也会写控件设定这些值和grid的字段绑定。
细化后,一步一步来吧,应该不难
#2
录入界面是根据数据库动态生成的-0-这个我见过,上家公司的一位高手开发过,代码量挺大的,也没细看,
表中应有字段显示长度,默认值,显示名称等等记录,挺繁琐的
表中应有字段显示长度,默认值,显示名称等等记录,挺繁琐的
#3
不难实现,只不过,维护这些字段的表信息量会很大,要很精确;
还可以做成能够进行2次开发,让用户来自定义
还可以做成能够进行2次开发,让用户来自定义
#4
最简单的,以一个2列的stringgrid:
列1:字段名
列2:字段内容
一行对应一个字段
列1:字段名
列2:字段内容
一行对应一个字段
#5
我很早以前也想实现这个功能,帮顶了。。。。。
#6
应该不像4L说得那么简单吧,有枚举类型和图片类型的不好办咧,另外就算用stringgrid来做,把数据修改回数据库时也要按照数据库字段的类型再进行一次转换,比如使用sql语句插入的话,要注意数字文本,byte日期等的引号
,对于图片类型的字段要进行后续处理等等
反正技术上能实现,就是个力气活,我以前用C#实现过
,对于图片类型的字段要进行后续处理等等
反正技术上能实现,就是个力气活,我以前用C#实现过
#7
funxu,那段实现了的C#代码还有不?
发小弟学习一下,痛哭流涕,万分感谢哦
lzg827@sina.com
发小弟学习一下,痛哭流涕,万分感谢哦
lzg827@sina.com
#8
251450368@qq.com也来一个?哈哈
#9
是的,主要就是让用户实现自定义,我公司产品也是这样,表格类的我已经做好,想写一个新的组件继承于scrollBox,可是字段的长度,属性这个东西太多,有点蒙了
#10
抱歉哦,因为公司有邮件监控,任何工作相关的代码都不能发出去滴~
#11
#12
COPY出来,发给大家
#13
都说了,是公司的代码,你们想人家被开除啊!呵呵。。。。
#14
动态创建控件的难度不是很大,根据数据库内容设置属性也不是很难,关键需要处理好以下四个问题:
1、每次需要动态创建的控件数量不能太多,否则影响窗体加载速度。
解决方法:可以动态创建一次,然后序列化成XML(NativeXML)或者DFM等文件格式,每次动态加载序列化后的内容。
2、动态创建控件的布局管理是一个非常难受的事情,强力建议使用Delphi2010、XE、XE2等新版本。
3、空间焦点跳转的控制。
4、空间事件的加载。
建议:参考微软Visual Stdio 2010之后推出的类似产品LightSwitch
1、每次需要动态创建的控件数量不能太多,否则影响窗体加载速度。
解决方法:可以动态创建一次,然后序列化成XML(NativeXML)或者DFM等文件格式,每次动态加载序列化后的内容。
2、动态创建控件的布局管理是一个非常难受的事情,强力建议使用Delphi2010、XE、XE2等新版本。
3、空间焦点跳转的控制。
4、空间事件的加载。
建议:参考微软Visual Stdio 2010之后推出的类似产品LightSwitch
#15
可以考慮使用類似於 EControl_FormDesinger 這樣的控件來做運行時界面設計。
而字段的定義(數據字典)則在數據庫中定義,FormDesinger輕松搞定動態界面布局後,設計的核心放在數據字典上,數據決定界面,支持數據的變化,程序設計的核心才能回歸問題域本質,不用過多考慮界面。
動態定義字段,加載編輯界面,這個問題挺普遍的。但 Delphi 就是不主動支持。
可以考慮按以下步驟測試:
1、數據來源:SQL語句,及對應的字段定義
2、動態生成數據集,並按數據字典設定字段。
3、將多個數據集綁定到一個預定義的Form上,預設的Form比一個全新的Form更好用,因為裡面可以有預寫的框架代碼,並針對不同的功能設定一樣預定義功能。這些框架代碼一般是解決權限問題及常用功能如:查找過濾報表編輯增刪改...等。
4、用FormDesinger設定預定Form。在 Form 上加上DBEDIT,DBCOMBOBOX...這樣的字段編輯控件。
5、程序加載運行。
要好用,必須擴展“字段定義”,如果時間充足則可以考慮:
1、只使用 TField中的屬性是不夠的,可考慮加上:字段編碼規則,字段輸入格式化規則,字段外鍵定義(Lookup),Tree節點樹支持,....等等
2、多表連接時的更新支持及表之間的關聯更新(也可考慮用觸發器實現關聯更新)。
3、什麼數據將被重復利用的問題,因為不同的 Form 往往共用很多相同可類似的 DataSet , 共用可以提高效率,簡單的全局數據就夠用了,但項目實踐中發現如果有區域共用區則更好。即進入某一模塊則創建一個共用區域,加載不同的Form,會充實共用區的數據,模塊退出該區域共用區的數據被清除。
將程序設計的中心從界面中解脫出來,回歸“數據是活的”這個本質,從而嚐試解決, 數據是活的,程序是死的這個編程難題。
而字段的定義(數據字典)則在數據庫中定義,FormDesinger輕松搞定動態界面布局後,設計的核心放在數據字典上,數據決定界面,支持數據的變化,程序設計的核心才能回歸問題域本質,不用過多考慮界面。
動態定義字段,加載編輯界面,這個問題挺普遍的。但 Delphi 就是不主動支持。
可以考慮按以下步驟測試:
1、數據來源:SQL語句,及對應的字段定義
2、動態生成數據集,並按數據字典設定字段。
3、將多個數據集綁定到一個預定義的Form上,預設的Form比一個全新的Form更好用,因為裡面可以有預寫的框架代碼,並針對不同的功能設定一樣預定義功能。這些框架代碼一般是解決權限問題及常用功能如:查找過濾報表編輯增刪改...等。
4、用FormDesinger設定預定Form。在 Form 上加上DBEDIT,DBCOMBOBOX...這樣的字段編輯控件。
5、程序加載運行。
要好用,必須擴展“字段定義”,如果時間充足則可以考慮:
1、只使用 TField中的屬性是不夠的,可考慮加上:字段編碼規則,字段輸入格式化規則,字段外鍵定義(Lookup),Tree節點樹支持,....等等
2、多表連接時的更新支持及表之間的關聯更新(也可考慮用觸發器實現關聯更新)。
3、什麼數據將被重復利用的問題,因為不同的 Form 往往共用很多相同可類似的 DataSet , 共用可以提高效率,簡單的全局數據就夠用了,但項目實踐中發現如果有區域共用區則更好。即進入某一模塊則創建一個共用區域,加載不同的Form,會充實共用區的數據,模塊退出該區域共用區的數據被清除。
將程序設計的中心從界面中解脫出來,回歸“數據是活的”這個本質,從而嚐試解決, 數據是活的,程序是死的這個編程難題。
#16
EControl_FormDesinger 这个东西我也下载试过,可是都是安装不了的,楼上有没有 for d2007的安装。。感谢。不是太常上网,感谢前辈们的帮助
#17
有哪位高人可以实现啊,我也想这么搞