﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / Visual Basic  / Сортировка в MSFlexGrid / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Wed, 03 Dec 2008 22:47:50 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Сортировка в MSFlexGrid</title><link>http://www.relib.com/forums/Topic896938-1-1.aspx</link><description>Спасибо за функцию :)&lt;/P&gt;&lt;P&gt;У меня тоже все замечательно работает!</description><pubDate>Mon, 30 Apr 2007 07:19:38 GMT</pubDate><dc:creator>systopler</dc:creator></item><item><title>RE: Сортировка в MSFlexGrid</title><link>http://www.relib.com/forums/Topic896938-1-1.aspx</link><description>&lt;A class=SmlBoldLinks id=_ctl1_ctlTopic_ctlPanelBar_ctlTopicsRepeater__ctl1_smAuthorName &amp;#111;nmouseover="&amp;#119;indow.status = &amp;#119;indow.location;return true;" title="View Insolent's Profile..." &amp;#111;nmouseout="&amp;#119;indow.status='';return true;" href="void('');"&gt;Insolent&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;U menya vse rabotaet:&lt;/P&gt;&lt;P&gt;Private Sub Command1_Click()&lt;BR&gt;    MSHFlexGrid1.Sort = 9  'flexSortCustom&lt;BR&gt;End Sub&lt;/P&gt;&lt;P&gt;Private Sub Form_Load()&lt;BR&gt;    With MSHFlexGrid1&lt;BR&gt;        .Cols = 2&lt;BR&gt;        .AddItem 1 &amp;amp; vbTab &amp;amp; Date&lt;BR&gt;        .AddItem 2 &amp;amp; vbTab &amp;amp; Date - 1&lt;BR&gt;        .AddItem 3 &amp;amp; vbTab &amp;amp; Date + 1&lt;BR&gt;        .AddItem 4 &amp;amp; vbTab &amp;amp; Date - 5&lt;BR&gt;    End With&lt;BR&gt;End Sub&lt;/P&gt;&lt;P&gt;Private Sub MSHFlexGrid1_Compare(ByVal Row1 As Long, ByVal Row2 As Long, Cmp As Integer)&lt;BR&gt;    CustomSort MSHFlexGrid1, 1, Row1, Row2, Cmp, True&lt;BR&gt;End Sub&lt;/P&gt;&lt;P&gt;Private Sub CustomSort(ByRef pGrid As MSHFlexGrid, _&lt;BR&gt;                       ByVal pCol As Long, _&lt;BR&gt;                       ByVal pRow1 As Long, _&lt;BR&gt;                       ByVal pRow2 As Long, _&lt;BR&gt;                       ByRef pCmp As Integer, _&lt;BR&gt;                       ByRef pSortAscending As Boolean)&lt;/P&gt;&lt;P&gt;    Dim varRow1 As Variant&lt;BR&gt;    Dim varRow2 As Variant&lt;/P&gt;&lt;P&gt;    On Error GoTo MethodError&lt;/P&gt;&lt;P&gt;    With pGrid&lt;BR&gt;    &lt;BR&gt;        If IsNumeric(.TextMatrix(pRow1, pCol)) And IsNumeric(.TextMatrix(pRow2, pCol)) Then&lt;BR&gt;        &lt;BR&gt;            varRow1 = CDbl(.TextMatrix(pRow1, pCol))&lt;BR&gt;            varRow2 = CDbl(.TextMatrix(pRow2, pCol))&lt;/P&gt;&lt;P&gt;        ElseIf IsDate(.TextMatrix(pRow1, pCol)) And IsDate(.TextMatrix(pRow2, pCol)) Then&lt;BR&gt;        &lt;BR&gt;            varRow1 = CDate(.TextMatrix(pRow1, pCol))&lt;BR&gt;            varRow2 = CDate(.TextMatrix(pRow2, pCol))&lt;BR&gt;            &lt;BR&gt;        Else&lt;BR&gt;        &lt;BR&gt;            varRow1 = CStr(Trim$(.TextMatrix(pRow1, pCol)))&lt;BR&gt;            varRow2 = CStr(Trim$(.TextMatrix(pRow2, pCol)))&lt;BR&gt;                    &lt;BR&gt;        End If&lt;BR&gt;        &lt;BR&gt;        If varRow1 &amp;lt; varRow2 Then&lt;BR&gt;            pCmp = -1&lt;BR&gt;        ElseIf varRow1 &amp;gt; varRow2 Then&lt;BR&gt;            pCmp = 1&lt;BR&gt;        Else&lt;BR&gt;            pCmp = 0&lt;BR&gt;        End If&lt;BR&gt;        &lt;BR&gt;        If Not pSortAscending Then&lt;BR&gt;            pCmp = pCmp * -1&lt;BR&gt;        End If&lt;BR&gt;        &lt;BR&gt;    End With&lt;/P&gt;&lt;P&gt;MethodError:&lt;BR&gt;    If Err.Number &amp;lt;&amp;gt; 0 Then&lt;BR&gt;        MsgBox "Error " &amp;amp; Err.Description &amp;amp; " in CustomSort"&lt;BR&gt;    End If&lt;BR&gt;   &lt;BR&gt;End Sub&lt;BR&gt;</description><pubDate>Fri, 26 May 2006 16:12:57 GMT</pubDate><dc:creator>VladConn</dc:creator></item><item><title>RE: Сортировка в MSFlexGrid</title><link>http://www.relib.com/forums/Topic896938-1-1.aspx</link><description>пиши собственную процедуру сортировки, основанную на каком-нибудь быстром алгоритме, я делал по способу Шелла:)</description><pubDate>Wed, 24 May 2006 00:11:21 GMT</pubDate><dc:creator>Insolent</dc:creator></item><item><title>Сортировка в MSFlexGrid</title><link>http://www.relib.com/forums/Topic896938-1-1.aspx</link><description>Сортировка MSFlexGrid.Sort по колонке, в которой содержатся данные типа Date или Date+Time происходит неверно. Как решить эту проблему, если данные берутся не из базы, а из массива ?</description><pubDate>Sun, 14 May 2006 11:10:52 GMT</pubDate><dc:creator>ulitsky</dc:creator></item></channel></rss>