1。在DataGrid中,有一列是整型的。要实现以下这个功能:<60用红色显示该数据(cell的值);>60用黑色  (10‘)
2。如何给列加默认值  (5’)
3。在DataGrid中某一列,我想用下拉列表框,而不是用编辑框,该怎么做?(10‘)
4。在被ADOData绑定的text中,修改(删除,添加)好数据,如何在MSHFlexGrid同步显示数据  (10')
5。关于“查找”:
   要实现如下功能:
      要查“曙光公司”,只要输入“光”,所有带有光的公司都要显示出来。(20')

解决方案 »

  1.   

    关于查找:
        If IcbGhdw.Text <> "" Then
             If mStr = "" Then
                 mStr = "字段名 LIKE '" & "%" & IcbGhdw.Text & "%'"
             Else
                 mStr = mStr & " AND 字段名 LIKE '" & "%" & IcbGhdw.Text & "%'"
             End If
        End If
      

  2.   

    完整的查找过程,你参考一下吧'查找,过程
    Private Sub FindData()
    On Error GoTo mErr
        Dim mRst As New ADODB.Recordset
        Dim mItem As ListItem
        Lsw1.ListItems.Clear
        mRst.Open "SELECT * FROM tOutput1" & mGetWhere, mConnectString, adOpenKeyset, adLockPessimistic, adCmdText
        If mGetWhere <> "" Then
        Do Until mRst.EOF
            Set mItem = Lsw1.ListItems.Add(, , mRst("日期"))
            mItem.Tag = mRst("材料出库ID")
            If Not IsNull(mRst("单号")) Then mItem.SubItems(1) = mRst("单号")
            If Not IsNull(mRst("要货单位")) Then mItem.SubItems(2) = mRst("要货单位")
            If Not IsNull(mRst("类别")) Then mItem.SubItems(3) = mRst("类别")
            If Not IsNull(mRst("仓库")) Then mItem.SubItems(4) = mRst("仓库")
            If Not IsNull(mRst("仓管")) Then mItem.SubItems(5) = mRst("仓管")
            If Not IsNull(mRst("复核")) Then mItem.SubItems(6) = mRst("复核")
            If Not IsNull(mRst("制单")) Then mItem.SubItems(7) = mRst("制单")
            If Not IsNull(mRst("提货人")) Then mItem.SubItems(8) = mRst("提货人")
            If IsNumeric(mRst("金额")) Then mItem.SubItems(9) = Format(mRst("金额"), "#0.00")
            mRst.MoveNext
        Loop
        mRst.Close
        Set mRst = Nothing
        Else
            Lsw1.ListItems.Clear
            Lsw2.ListItems.Clear
        End If
        Exit Sub
    mErr:
        MsgBox Err.Number & Err.Description, vbCritical, mTitle
    End Sub'查找,函数
    Private Function mGetWhere() As String
    Dim mStr As String
        If Chk = 1 Then
            mStr = "日期>= '" & Format(dtpDay.Value, "yyyy-mm-dd") & "' and 日期<= '" & Format(DtpDay1.Value, "yyyy-mm-dd") & "'"
        End If
        '按单号查询
        If TextDH.Text <> "" Then
            If mStr = "" Then
                mStr = "单号 LIKE '" & "%" & TextDH.Text & "%'"
            Else
                mStr = mStr & " AND 单号 LIKE '" & "%" & TextDH.Text & "%'"
            End If
        End If
        '按经手人查询
        If IcbZSR.Text <> "" Then
             If mStr = "" Then
                 mStr = "提货人 LIKE '" & "%" & IcbZSR.Text & "%'"
             Else
                 mStr = mStr & " AND 提货人 LIKE '" & "%" & IcbZSR.Text & "%'"
             End If
        End If
        '按供应商查询
        If IcbGhdw.Text <> "" Then
             If mStr = "" Then
                 mStr = "要货单位 LIKE '" & "%" & IcbGhdw.Text & "%'"
             Else
                 mStr = mStr & " AND 要货单位 LIKE '" & "%" & IcbGhdw.Text & "%'"
             End If
        End If
        If leibie.Text <> "" Then
            If mStr = "" Then
                mStr = "类别 LIKE'" & "%" & leibie.Text & "%'"
            Else
                mStr = mStr & "AND 类别 LIKE '" & "%" & leibie.Text & "%'"
            End If
        End If
        If icbCk.Text <> "" Then
            If mStr = "" Then
                mStr = "仓库 LIKE'" & "%" & icbCk.Text & "%'"
            Else
                mStr = mStr & "AND 仓库 LIKE'" & "%" & icbCk.Text & "%'"
            End If
        End If
        If IcbCG.Text <> "" Then
            If mStr = "" Then
                mStr = "仓管 LIKE'" & "%" & IcbCG.Text & "%'"
            Else
                mStr = mStr & "AND 仓管 LIKE'" & "%" & IcbCG.Text & "%'"
            End If
        End If
        mGetWhere = IIf(Trim(mStr) = "", "", " WHERE " & mStr)
    End Function
      

  3.   

    3。在DataGrid中某一列,我想用下拉列表框,而不是用编辑框,该怎么做?(10‘)   到这边看看:
        http://expert.csdn.net/Expert/topic/2672/2672606.xml?temp=.3196375
      

  4.   

    1。在DataGrid中,有一列是整型的。要实现以下这个功能:<60用红色显示该数据(cell的值);>60用黑色  (10‘)
    自己判断,然后设置背景色、前景色
    2。如何给列加默认值  (5’)
    赋值前先赋默认值。
    4。在被ADOData绑定的text中,修改(删除,添加)好数据,如何在MSHFlexGrid同步显示数据  (10')
    如果mshflexgrid也绑定,则很麻烦;否则直接从row,column找到cell写text就可以。
      

  5.   

    请问:如果MSKFlexGrid不绑定ADOData,我用代码怎么写数据。用AddItem好象不行,每次都只有第一列有数据。
      

  6.   

    MSHFlexGrid1.Row = intRow
            MSHFlexGrid1.Col = intCol
            MSHFlexGrid1.Text = strTemp1
            MSHFlexGrid1.CellForeColor = vbRed
      

  7.   

    1.请问:如果MSKFlexGrid不绑定ADOData,我用代码怎么写数据。用AddItem好象不行,每次都只有第一列有数据。使用 rs 的GOROWS 和 VSFLEXGRID 的 BINDTOARRAY 方法
    例如:
    private vdata() as variantfunction bindtogrid()
            ...............
            vdata=rs.getrows
           vsflexgrid1.bindtoarray vdata
    end function
      

  8.   

    更正:使用 rs 的GETROWS 和 VSFLEXGRID 的 BINDTOARRAY 方法