还有APEX TRUE DBGRID PRO 5.0 在那可以下载?

解决方案 »

  1.   

    http://download.pchome.net/php/search.php?pid=0&searchstr=vsflexgrid
    去下载吧!
      

  2.   

    摘抄:蒋匪软件窝->技术资料->网络编程----本文转载自网管联盟
    True DBGrid Pro 6.0是一个数据感知ActiveX grid控件。Book属性:该属性为指定行返回或设置一个书签,这个行在一个RowBuffer对象里,传递到一个未绑定事件处理过程。在非绑定模式中,一个书签包含了一个用户定义的值,该值不重复地标识数据的每一行。在UnboundReadData和UnboundAddData事件里,你的代码必须为取回或添加数据的列提供书签。在UnboundWriteData和UnboundDeleteRow事件里,网格控件传递这些书签中的一个作为参数,所以你的代码能做一个适当的动作。True DBGrid和the Microsoft Data Access Objects (DAO) library都使用书签来标识记录和操作数据库。一个书签是一个变量,不重复地标识数据库中一个特定的行。例如:它是一个行号的概念。习惯于使用行号来确定记录的程序员可能需要概念性修正。在一个关系数据库中,一个记录的顺序位置是不相关的,因为在数据库或一个查询结果集中的总行数一般是无效的。当执行某个操作如FindFirst or FindNext,当前记录向前移动一个不确定的行数,并且没有有效的方法来确定移动多少。为了避免耗时的计算操作,大多数关系数据库系统都放弃了使用行号而采用书签来处理。书签实际上非常易于使用。下面是要记录的基本规则:每一个记录或行都有一个不重复的书签 
    你可以通过设置网格或Data控件的书签属性来移动到指定记录上 
    TDBGrid1.Book = SomeBookData1.Recordset.Book = SomeBookSomeBook通常是一个你从Data控件、一个副本、或一个书签集里获得的书签。网格控件或Data控件的Book属性总是包含当前记录的书签。你可以通过移动动到第一或最后记录,或移动到当前书签相关位置来游历数据库 
    Data1.Recordset.MoveFirstData1.Recordset.MoveLastData1.Recordset.MoveNextData1.Recordset.MovePrevious在绑定模式,你一般不知道书签的格式或语法,所以不要试图读一个书签的细节或自己构建一个书签。在一个书签上执行唯一的合法操作是把它存成一个变量,给它指定适当的属性或方法,并与另一个书签比较来判定两个是否一样: 
    ' Saving a book:Dim SomeBook as VariantSomeBook = Data1.Recordset.Book' Assigning a book:Data1.Recordset.Book = SomeBook' To reliably compare books, you must first convert them' into strings:Dim Bk1 As String, Bk2 As StringBk1 = SomeBook1Bk2 = SomeBook2If Bk1 = Bk2 Then...End If 注意:在VB里可靠地比较两个书签,你必须首先把他们转换到字符串 你可以任意选择标识行的方法来作书签,但要注意的是每一行的书签必须保持不得重复。通常,你总是想能够用书签迅速地搜索记录,这样,当一个网格给你一个书签时,就要请求在你的数据集里的相关信息,你应该能够迅速定位这些网格请求的行。有一个重要的概念要记住,无论你为指定行提供给网格什么样的书签,那都是网格随后用来查寻行的依据。下面是三个使用书签的例子:1、如果你把数据和非绑定网格一起使用,你可以用一个关键字段的值来作为书签。使用这种方法,当提交书签时,你能很快地搜索和接收到相关的记录;2、如果你使用的数据库支持行号或记录号,这些可以方便地用作书签;3、如果你和一个自定义数据阵列一起使用网格,阵列的行索引是做书签的一个选择。书签不能超过255个字符,因为VB5的每个字符使用2个字节来存储,这意味着字符串书签不能超过127个字符。True DBGrid的非绑定模式支持tring, integral, and floating point书签,其他的数据类型必须转换成String才能被传进网格做书签。在从UnboundReadDataEx事件返回前,你必须用不重复的行标记填充RowBuf的Book阵列,和实际数据的Value阵列。例如:如果,offset 是1(或-1),那么你必须填进RowBuf,从StartLocation后的第几行(或先于StartLocation第几行)开始。RowBuf参数作为一个二维阵列,通过用适当的数据来设置它的Value属性,你的事件处理过程就可以从非绑定数据集传送行到grid。使用行缓冲的RowCount属性来判定grid需要多少数据行。使用它的ColumnCount属性来判定列的数量。如果ColumnCount是零,那么grid将请求一个单行的书签,如果ColumnCount不是零,那么grid将请求RowCount行数的数据和相应的书签。使用RowBuffer对象RowBuffer对象仅用在DataMode属性被设为1- Unbound 或 2 - Unbound Extended时,它仅存在于传送数据到网格或从网格传出数据时存在。你不能创建一个独立的RowBuffer对象。RowBuffer是一个可编程对象,对于在网格和你的数据源之间通过网格事件来改变数据。RowBuffer对象被作为一个参数传递进一个非绑定网格事件处理器。实际上,RowBuffer对象只能存在于非绑定事件的作用区域;你不能在代码里创建一个新的作为一个Column或Split对象。下面是RowBuffer对象属性的简要描述 RowCount属性RowCount是一个long,指出能在一个非绑定事件(read, write or add)里能被处理的最大行数,如果该属性的值超过了能被处理的行数,例如:当一个文件结尾条件被侦测到,那么你的事件处理代码应该改变这个属性,以反馈实际的行处理数量。该属性返回或设置被传递到非绑定事件处理过程中的RowBuffer对象的行数。在UnboundReadData事件中,该属性标识grid请求了多少行数据。在用Value和Book属性填充了这些行后,你的事件处理过程应该用实际取得的行数来设置RowCount属性。在UnboundAddData和UnboundWriteData事件中,该属性的值始终是1,因为一次只能添加或删除一行。但是可以把这个属性设为0来标识添加或删除操作失败。注意:当一个RowBuffer对象被传递到一个非绑定事件处理过程,RowCount属性的初始值总是反应出最大值。如果你试图超过这个最大值,将引发一个错误。RowBuffer.RowCount = Long ColumnCount 属性ColumnCount是integer,指出在一个非绑定事件应该处理的列数。该属性是只读的,不要试图改变它。非绑定事件处理所有列请求。Integer = RowBuffer.ColumnCount ColumnName属性ColumnName是一个string array,指定相应的网格列名到一个row buffer index。该属性是只读的。String = RowBuffer.ColumnName(ColIndex)' where ColIndex = 0 to ColumnCount – 1 Book属性Book是一个variant array,当RowBuffer用来在一个非绑定读事件中取数据时,它用来指定不重复的行标记RowBuffer.Book(RowIndex) = Variant' where RowIndex = 0 to RowCount - 1 Value属性Value是一个variant array,用来指定一个由RowBuffer行和列组成的数据值RowBuffer.Value(RowIndex, ColIndex) = Variant' where RowIndex = 0 to RowCount - 1' and ColIndex = 0 to ColumnCount - 1 ColumnIndex属性ColumnIndex是一个variant array,用来指定一个网格列索引,该属性是只读的。可以在UnboundReadDataEx事件里使用它,来标识哪一个数据列正在被请求。ColumnIndex属性让你判定列的索引,它用于列的标识,为了让用户用适当的列数据填入Value property array。Col = RowBuffer.ColumnIndex(RowIndex, ColIndex)' where RowIndex = 0 to RowCount - 1' and ColIndex = 0 to ColumnCount - 1 非绑定模式的事件在DataMode 1 – Unbound,当网格需要判定一个相关书签时,会触发第一个事件。在需要提取数据行时会触发另一个。第一个事件是可选的,并且能被实现用来提高性能;第二个事件是强制性的UnboundGetRelativeBook:当控件需要检索一个书签时被触发UnboundReadData:当控件请求非绑定数据显示时被触发 In DataMode 2 - Unbound Extended,网格触发一个单一事件去获得数据和相关书签。这个事件是强制的UnboundReadDataEx:当控件需要检索一个书签或请求非绑定数据显示时被触发 在模式1和2里,依据最终用户的权限设定,下面三个事件是可选的。UnboundWriteData:当网格控件的当前行被修改并且用户确认该修改时被触发。该事件提示你用户想要个性在非绑定数据集合里修改一行。当在代码里网格控件的Updata方面被执行时,也会触发该事件。 UnboundAddData:当用户在网格控件的新添加行里输入数据并确认时触发该事件。该事件提示你用户想要在非绑定数据集里添加新的行。 UnboundDeleteRow:当用户删除当前网格控件的行时触发该事件。该事件提示你用户想从非绑定数据集里删除一行。当网格控件的Delete方法在代码里执行时,也会触发该事件。 UnboundReadDataEx详细描述语法:object_UnboundReadDataEx (ByVal RowBuf As TrueDBGrid60.RowBuffer, StartLocation As Variant, ByVal Offset As Long, ApproximatePosition As Long)事件作用于TDBGrid和TDBDropDown控件参数: RowBuf是一个RowBuffer对象,用来传送数据行到网格。StartLocation是一个书签(book),和Offset一起指定数据传送的起始行。一个Null的StartLocation表示从头或从尾开始的数据。例如,如果StartLocation是Null并且Offset是2 (或-2),那么你就会从第二行(或最后两行)开始接收数据。Offset指定相于被传送数据第一行的相关位置,一个绝对数标识从相关位置的位移量。 True DBGrid Pro 6.0可以让用户在表格中浏览、编辑、添加和删除数据。使用建立在Visual Studio里最新的的数据绑定技术,包括OLE DB,True DBGrid Pro 6.0有一个完整的管理数据库接口,允许开发者在重要的特殊任务应用程序里集中,True DBGrid Pro 6.0还能与程序员自有数据源一起用非绑定或存储模式。 True DBGrid Pro 6.0设计成一个强大、通用并且易于使用的数据库开发工具,初级程序员可以不用写一行代码就能建立一个全功能的数据库浏览器。专业开发人员可能使用该控件的许多属性和事件来创建完善与界面友好的数据库前后端应用程序。 100% DBGrid compatibility
     True DBGrid Pro 6.0 supports all of the features of the Microsoft Data Bound Grid control (DBGrid).
     
    类似于Excel 和 Work的风格
     Style对象封装了font, color, picture, and formatting信息,在设计和运行时可以方便地定制网格部件的样式
     
    类似于Excel的分割
     开发人员和最终用户可以分割网格为独立的列
     
    固定的,不可卷动的列
     分割也可用于创建不可卷用的列
     
    In-Cell对象
     网格支持多种数据显示和编辑的in-cell对象,包括位图、命令按钮、check boxes和选项按钮
     
    Drop-down对象
     网络支持多种数据输入的下拉框,包括数据感知多列控件(TDBDropDown)、combo box、和多行text editor。也支持其他第三方下拉控件
     
    自动数据翻译
     数据库的值可以自动翻译为适当的文件或图形而无需编码。例如:数字能被渲染成一个字,甚至是一个位图
     
    数据敏感显示
     一个强大的常规表示工具,用于不同的
     
    拖放的特性
       
    交互式的可视编辑
     程序员可以创建列、从一个绑定数据源重建字段层、调整网络部件的大小,并且在设计时配置所有网络层的外貌,不用编码。
     
    灵活的非绑定模式
     事件驱动的非绑定模式可以处理任何数据源,理想地显示数据阵列、连接到一个数据库、或减少数据控件的开销
     
    非绑定列
     在其他列绑定到一个数据控件的时候,网格支持非绑定列
     
    基于阵列的存储模式
     XarrayDB对象就象一个VB阵列,而且做为网格的一个数据源。
     
    可重用网格层
     网格层可以存成一个文件,可以在以后的项目里使用。多层能在设计时被存到单个网格中,然后在下一次应用程序运行时调用。
     
    输入掩码
       
    多行显示
     单个记录的单元格可以跨越多行
     
    运行时的cell-tips
        
      

  3.   

    使用上总觉得true DBGrid不如VSflexGrid好。
      

  4.   

    to:WxmJun(FBI) vsflexgrid 2000下面注册成功没有,告诉我一声啊??
      

  5.   

    to wufang(牛牛):
        vsflexgrid 在WIN2000下注册成功,发布也成功! 
        但vsflexgrid 的说明文档太难找了,找了一天也找不到!
     
    to vbprog(只想学会VB):
       为什么 true DBGrid不如VSflexGrid好.但true DBGrid的说明档比VSflexGrid多呢?
      

  6.   

    to WxmJun(FBI)
    比如要相邻两格合并,某一格要特殊底色等,True DBGrid就不如VSFlexGrid方便。
      

  7.   

    to WxmJun(FBI)
    vsflexgrid按装后不是有一个很详细的帮助吗?你没看见?
      

  8.   

    TO 牛兄: http://www.csdn.net/expert/topic/397/397500.shtm
      

  9.   

    http://www.vckbase.com/ocx/ocx_report/
      

  10.   

    TO wufang(牛牛):
    这控件我暂时不用了,因为工程太紧了。送分来了