请教思路,比如在组合框中放供应商,销售商等,是窗体初始化时就将供应商添加到组合框中,还是每次选择供应商时,弹出一个窗体让用户选择呀?
就是下列这个图这样,当然这只是举例说明.
比如:用户输入时要选择"供应商",所以将用到组合框控件,好象组合框控件还是比较方便的.(如果有更好的控件,请告我)
用户从组合框中选择后,我在程序中实际上用到的是供应商的编码.
现在有一个思路难住我了:那就是我如何设计,我能想到的思路有以下两种:
方法1.窗体启动时,初始化组合框,将现有的所有供应商添加到组合框中.(当然,数据库中一定有一个表来存放供应商编码与名称的对应表)
这样用户可以选择了.
但是这种方法有点问题,
问题A:如果窗体初始化时,某个供应商不存在,然后用户新增一个供应商.那么用户在本窗体的组合框中,是看不到这个供应商的,所以必须关了这个窗体再打开才行.
问题B:这个组合框用于显示数据时,有些历史数据中,供应商编码在当前组合框中并不存在,这就会导致组合框显示为空.
为了理解,我举例,假如当前组合框中有三条.001-供应商一,002-供应商二,003-供应商三.
但是我要显示的数据,供应商编码为:abc-老供应商,可是这个供应商目前不存在了,没有出现在组合框中.那么组合框中就显示为空,什么都没有,但是实际上应该显示"老供应商"方法2:
在窗体上不用组合框,用只读的文本框显示供应商的编码与名称.用户选择供应商时,单独打开一个窗体(这个窗体中有组合框,显示的是各个供应商),
这样做的好处是:解决了第一种方法的问题B,因为窗体中用只读文本框显示供应商.这样不管什么历史数据,都会显示,不会受制于当然已有的组合框.同时也解决了问题A,因为每次用户选择供应商时,都是新开一个窗体,从而保证了,新开窗体中组合框中的供应商信息是实时最新的.但是不好之处是:会增加很多窗体,一个入库单窗体中,每个类似的组合框都要对应一个相应的组合框.所以请大家说说,经典的处理方法是什么?大家平时是如何设计的,如何处理此类问题的.
就是下列这个图这样,当然这只是举例说明.
比如:用户输入时要选择"供应商",所以将用到组合框控件,好象组合框控件还是比较方便的.(如果有更好的控件,请告我)
用户从组合框中选择后,我在程序中实际上用到的是供应商的编码.
现在有一个思路难住我了:那就是我如何设计,我能想到的思路有以下两种:
方法1.窗体启动时,初始化组合框,将现有的所有供应商添加到组合框中.(当然,数据库中一定有一个表来存放供应商编码与名称的对应表)
这样用户可以选择了.
但是这种方法有点问题,
问题A:如果窗体初始化时,某个供应商不存在,然后用户新增一个供应商.那么用户在本窗体的组合框中,是看不到这个供应商的,所以必须关了这个窗体再打开才行.
问题B:这个组合框用于显示数据时,有些历史数据中,供应商编码在当前组合框中并不存在,这就会导致组合框显示为空.
为了理解,我举例,假如当前组合框中有三条.001-供应商一,002-供应商二,003-供应商三.
但是我要显示的数据,供应商编码为:abc-老供应商,可是这个供应商目前不存在了,没有出现在组合框中.那么组合框中就显示为空,什么都没有,但是实际上应该显示"老供应商"方法2:
在窗体上不用组合框,用只读的文本框显示供应商的编码与名称.用户选择供应商时,单独打开一个窗体(这个窗体中有组合框,显示的是各个供应商),
这样做的好处是:解决了第一种方法的问题B,因为窗体中用只读文本框显示供应商.这样不管什么历史数据,都会显示,不会受制于当然已有的组合框.同时也解决了问题A,因为每次用户选择供应商时,都是新开一个窗体,从而保证了,新开窗体中组合框中的供应商信息是实时最新的.但是不好之处是:会增加很多窗体,一个入库单窗体中,每个类似的组合框都要对应一个相应的组合框.所以请大家说说,经典的处理方法是什么?大家平时是如何设计的,如何处理此类问题的.
解决方案 »
- 用VB编写保护其它软件的程序
- RDS使用中的UseRemoteProvider属性问题
- -->spread高手请进,datasave方法好象不能存储经过程序修改过的数据??
- CALG...100分,帮你升一下..
- Activex Exe 变量
- 新下载的控件如何注册使用----感谢rappercn(rapper)给我的控件
- 同志们,帮我看看这个程序,我刚学MSComm控件??在线!!
- 急急急急急
- 悲惨的元旦!呜~~~呜~~~
- langzhi:怎样取得和修改系统日期、时间?
- 我在word的normal.dot里的NewMacros写了一个sub Autoexec(就是打开word文档时自动执行),但是有的文档打开第一次就行,有的就不行
- 请问vc里如下的语句,在vb里应该怎么写?
--------------------------------------------------------------------------------------------
可以在用户新增供应商的时候再调用一次加载数据的代码,重新用最新数据填充组合框
,不一定非得在Form_Load事件中填充组合框。
,不一定非得在Form_Load事件中填充组合框。
----------------------------------------------
有可能是另外一个用户新增的供应商.我的系统是c/s模式.如果这样,就无法刷新我自已窗体中的组合框,(当然了,可以用time控件定时刷新组合框,可是太没有必要了,也没有这样设计的)
也可能就是自已新增的供应商.(新增供应商是打开一个新的窗体新增的,我想在那个窗体中重新初始化入库单窗体中的组合框,毕竟不是一个好的方法)
·用一个全局的 RecordSet 存放供应商,程序启动时读入;
·如果是打开窗体进行输入,那么就从全局 RecordSet 中选取有效的供应商填充 ComboBox;
·如果是打开窗体显示历史纪录,那么就按编码从全局 RecordSet 中定位单个(无论是否有效)供应商显示;
·如果用户发现某个需要的供应商不存在,按 F5,程序就重新到数据库读取,然后刷新列表。
这样速度和刷新都兼顾了。
第二种方法比较容易控制数据量大的显示和查找,比如用Treeview且做成多级目录。我是两种方法都有,一般数据量大就用方法二。至于类似的情况会用到多个窗体的话,如果数据通用性较强的话,你可以做成一个通用窗体,在调用时只要传递给它相应的参数。或者你把窗体上相关的信息做在一张表里,调用窗体时,只要指定某个主ID,窗体就能显示是供应商数据还是其他什么数据了。
为了理解,我举例,假如当前组合框中有三条.001-供应商一,002-供应商二,003-供应商三.
但是我要显示的数据,供应商编码为:abc-老供应商,可是这个供应商目前不存在了,没有出现在组合框中.那么组合框中就显示为空,什么都没有,但是实际上应该显示"老供应商"
他这个入库单既可新建单据,又需要查询以前单据.
实际上楼主思路很清晰,不需要别人指导编程了.只是让大家帮忙选择一下界面.
方法1比较简洁方便,只要不存在问题B就可选用(问题A可以在供应商右面放一个刷新按钮).
考虑到问题B,推荐选用方法2,实际上很多ERP等大型软件也是这么做的.