多次使用到类似功能都没有一个很快的解决方案,以致每次遇到此问题时都绞尽脑汁
1.Edit + StringGrid
    此时用edit 接受每条记录数据录入,然后在ADD按钮后更新到 StringGrid,双击StringGrid某行删除,确定后Submit按钮提交看到别的程序中使用类似excel datasheet的功能很好用,不知道是如何实现的,或者有更加舒服的方式去录入修改

解决方案 »

  1.   

    excel datasheet,这是第三方控件了再有,你干吗用edit去输入呢,stringgrid直接就可以输入,干吗搞这么麻烦
      

  2.   


    直接錄入用 DBGrideh 
     
      

  3.   


    我也很喜欢用edit+stringgrid
    用edit是因为edit更容易控制输入。stringgrid输入控制起来麻烦点,要写几个事件。
      

  4.   

    我个人不赞同直接在dbgrid上输入数据
      

  5.   

    DBGrid太难控制,如订单
    订单号==》多个ITEM,如何设计界面,以及配置DBGrid
      

  6.   

    楼主最好去找一些有关delphi数据库软件开发的书看看。
    订单是一个订单号对应多个货号~~~一般都用主从档形式
      

  7.   

    建议用临时表,即ADO+DS+DBGRID,任何操作都在临时表上,最后提交时从临时表插入就行了
      

  8.   

    谢谢楼上各位,主从档我知道,只就DBGrid等数据控件的使用还不够精,也就基本使用。
    就比如下单吧,在下单这个界面上应该如果设计功能,ID是自动生成的,格式为IYYYYMMDD0001,所以建了一个seek表用来存放最后一个seed1.如果同时有10个人同时下单,是不是在输入界面上不能生成将要下单的ID,而是在提交时根据当时情况(及开事务独占seek表,算出正确id,提交
    结束,结束事务)获得写入正确ID,所以在界面上只要考虑订单内容(名细)即可。那此时只需要用DBGrid来控制便可
    2.如果想在界面上可以同时获得修改订单功能,那么便需要Edit/DBEdit与DBGrid配合使用可否针对上面两条的要求那说一下呢
      

  9.   

    1.只有当用户点击Save Order按钮时,才要为其申请Order ID,如果想省事,用敏感控件时也要选择一个可以离线的数据集,而后将数据整体提交(如ClientDataSet等)!
    2.在订单管理界面上,可以分上下二部分,上部分可放一些客户的基础信息,下部分用多个TabSheet组成,每个TabSheet对应于与Order表相关联的子表,
    如Shipping Addr信息标签,订单产品标签(OrderItem表),优惠码信息(OrderCoupon表),付款信息(OrderPayment表),运送产品信息(这个和订单产品不一样,因为有些产品是不经物流的,如服务运费等)
    不知道我说清楚没有
      

  10.   

    2.如果想在界面上可以同时获得修改订单功能,那么便需要Edit/DBEdit与DBGrid配合使用 
    --------------------------------------------------
    这个我在第1点已经说了,配合使用没问题,但最好用离线数据集
      

  11.   

    其实用一个表,还是主从表都无所谓,当然一般都用主从表来实现
    也不用啥临时表,也不用啥缓存技术,完全可以用stringgrid或者listview来实现,提交的时候先保存主表,再获得主表主键,保存从表
      

  12.   

    @liangpei2008
    我的意思是具体的设置,而不是界面构置,因为1,2已交代,假如用EDIT 和 DBGrid来实现:功能:使用edit或者dbedit同DBGrid实现订单录入及修改假如有表 :
        tb_orders:OrderID,OPDate,OP    存放订单基本信息
        tb_orderdtls:OrderID,ItemID,Qty    存放订单详细信息
        seek:存放种子,不作考虑界面控件:
    edit_OrderId:留空时为添加订单/否则查询已有订单
    dbgrid_OrderDtls:用来增加记录或修改记录数据:
    ADOConnection:已连接数据库
    ADOQuery:
    DataSource:
    等等如果关联操作已达到上述要求
      

  13.   

    Master  表 dsInsert  時肯定是新增單據,AppendNewRecord  時肯定要取好單號 Detail   表在新增時取 Master  表的主鍵。 Detail  表隨著 Master 表的 onAfterScroll  表變化。Master ,Detail  在POST時 BeforePost  檢查  Requie  屬性,是否必填項
      

  14.   

    請記住Detail  表要是在緩存下,否則會有很多麻煩
      

  15.   

    感觉思路有问题,如果用stringgrid,数据量大时,很难处理刷新的问题,还是用DBGrid或者第三方的控件吧
      

  16.   

    简单的操作用dbgrid,如果对录入过程有特殊要求,建议用stringgrid配合其它控件.批量数据进出,建议用事务
      

  17.   

    你要想方便可以用dbgrid或dbgrideh
    dbgrideh是第三方组件,需要安装之后才能使用.
      

  18.   

    我也很喜欢用edit+stringgrid 
    用edit是因为edit更容易控制输入。stringgrid输入控制起来麻烦点,要写几个事件。
      

  19.   

    如果列表的栏位比较多的话,直接在GRID里很难录入的,比如一会儿是日期、一会儿是下拉框的;我现在比较喜欢先在EDIT里录入,然后暂时存储在STRINGGRID中....
      

  20.   

    录入界面可以随便安排,修改也可以用DBGRID or STRINGADD,这个根据实际需要,都很好控制。但要注意增加它们的容错能力即可。
      

  21.   

    本人简单单据就 主从一次性提交 保存了,用的gridview多行编辑模式,苦于 每个ITEM 中 物料选择 弹出窗口来选 不爽;
    期待 autocompleteextender来解决中....
      

  22.   

    主单信息,如客户名称等使用Edit输入;
    明细,当然在grid中直接输入
      

  23.   

    我习惯采用:
    内存表+dbgrid(只读,仅用于浏览多条记录),双击取当前记录到下面的panel里(各个edit/combobox/...,非db控件)
    保存、添加由专门的按钮提交刷新记录:
    数据库====isapi(相当于一个数据库网关)=webserver -------> win32客户端(https客户端)=内存表提交:
    win32客户端的非db控件里的信息=win32客户端(https客户端) ---------> webserver=isapi(相当于一个数据库网关)===数据库
      

  24.   

    dbEdit + DbGrideh 最方便
      

  25.   

    你用dbgrid不错!
    你要精确控制数据输入,你给数据集加上静态字段,然后在OnValidate中写数据验证!
      

  26.   

    这么长啊,也添一份砖.个人感觉,DBGRID也比较难控制.怪不得这么多的人会自己再编一个DBGIRD模式的东东.