|
|
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
испытала работу 2 гридов: 1) Janus gridex, 2) True dbgrid. вот что получилось: + 1) у 1 есть recordnavigator, встроенный в ячейку календарь, сортировка по столбцам как в explorer (появляется стрелочка вверх, вниз), свойство newrowpos (положение новой записи: вверху или внизу), и самое главное, подцепляемый в настройках рекордсет (ни в одном гриде еще такой функции не было). остальные функции схожи со вторым. 2) у 2 есть marquestyle. очень полезная вещь. позволяет подкрашивать выделяемую ячейку. есть еще вверху строка для фильтра (filterbar). и еще есть свойство showcolumnfooters. у 1 я его не нашла. остальное похоже. Вопрос: есть ли какой-нибудь грид, который смог объединить в себя 2 этих пункта, т.е. достоинства 1 и 2 гридов, которые я перечислила? я не нашла его, может кто знает. подскажите!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 12:10:34 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Это например DevExpress QuantumGrid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 12:48:41 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
там точно все-все характеристики, которые я взяла с двух гридов, присутствуют? и recordnavigator, и рекордсет, подсоединяемый в свойствах, и filterbar? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 12:53:23 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Рекомендую еще посмотреть VSFlexGrid, которым я пользуюсь с 2000 года. Что есть у него: 1. Просто огромное количество событий, свойств и методов на все случаи жизни. 2. Возможность очень легкого перемещения строк с помощью мыши путем минимального программирования. 3. Легко можно использовать любой собственный контрол (попап, календарь и т.д. ) для ввода значения в ячейку. 4. Построение деревянных структур. 5. Частичное и полное подсуммирование. 6. Использование графики в ячейках 7. Сохранение и восстановление информации между гридом и массивом. 8. Сохранение и восстановление информации грида на диск. 9. Для каждой ячеки можно прописать буквально все свойства (шрифт, цвет, фона, выравнивание и т.д.) 10. Возможность знать старое и новое значение ячейки при окончании редактирования. 11. Практическая работа с ячейками грида, как с элементами массива. 12. Возможность именования колонок, а сл-но обращения к ним по имени, а не по индексу. 13. И много-много всякого другого, сейчас не упомню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 15:05:44 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
нет, vsflexgrid мне не подходит. посмотрела quantrumgrid. немного не то, что я хотела. там нет recordnavigator, и filter как в excele. а мне нужна просто строка, где я сама могу написать sql-запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 05:50:01 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
вместе с True dbgrid поставляется Truedatacontrol, ложишь его на форму, подцепляешь тот же рекордсет - и вот тебе recordnavigator; щелчок на caption обрабатываешь, устанавливая свойство sort, равное полю колонки, по caption которой щелкнули - и вот у тебя сортировка столбцов; Set TDBGrid.DataSource = рекордсет, и вот у тебя подцеплен рекордсет про календарик тоже написать, или сами сообразим показать календарь при щелчке на ячейку? янус - тоже хороший грид, quantrumgrid - вообще супер, гридов, в которых просто надо писать sql и больше ВООБЩЕ ничего не делать - ИМХО НЕТ, даже в акцессе и в poweb builder'овском datawindow(ИМХО: лучший грид на свете) приходится уйму кода писать ------------------ arbeit macht frei ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 10:39:25 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
да, с True DBgrid я полностью разобралась. всё бы ничего, но особенно меня смущает тот факт, что надо сортировку кодом писать. в остальных гридах она автоматическая. а так пока для меня это самый лучший грид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 10:44:01 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Bob, не могли бы вы подробнее об этом sort. можно код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 11:00:43 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
НастенькаBob, не могли бы вы подробнее об этом sort. можно код. первый щелчок - сортировка по этому полю asc, щелкаешь снова - desc, потом без сортировки и так по кругу, картиночка в заголовок колонки подгружается, где показано куда отсортированы записи Private Sub TDBGrid1_HeadClick(ByVal ColIndex As Integer) Dim max_col As Long Dim i As Long Dim msg As Long Dim key_str_str As String Dim rs As ADODB.Recordset 'РЕКОРДСЕТ Dim str_sq As String Dim str_sq2 As String On Error Resume Next Set rs = New ADODB.Recordset str_sq = s.last_kv_select Call sql_parts(str_sq) str_sq2 = strselect & " " & strwhere & " " ''Очистка от старых сортировок 'Set TDBGrid1.DataSource = s.rs_kontr_vrem("") max_col = TDBGrid1.Columns.Count - 1 ''Очистка столбцов от картинок If ColIndex <> 100 Then For i = 0 To max_col TDBGrid1.Splits(0).Columns(i).HeadingStyle.ForegroundPicturePosition = dbgFPTextOnly Next i If pr_s_s = ColIndex Then If pr_s > 1 Then pr_s = 0 Else pr_s = pr_s + 1 Else pr_s_s = ColIndex For i = 0 To max_col TDBGrid1.Splits(0).Columns(i).HeadingStyle.ForegroundPicturePosition = dbgFPTextOnly Next i pr_s = 1 End If If pr_s = 1 Then TDBGrid1.Splits(0).Columns(ColIndex).HeadingStyle.ForegroundPicturePosition = 2 rs.Source = str_sq2 & " order by " & TDBGrid1.Columns(ColIndex).DataField & " ASC" TDBGrid1.Splits(0).Columns(ColIndex).HeadingStyle.ForegroundPicture = LoadResPicture(101, vbResBitmap) ElseIf pr_s = 0 Then rs.Source = str_sq2 'Set TDataLite1.DataSource = s.rs_kontr_vrem("") Else TDBGrid1.Splits(0).Columns(ColIndex).HeadingStyle.ForegroundPicturePosition = 2 rs.Source = str_sq2 & " order by " & TDBGrid1.Columns(ColIndex).DataField & " DESC" TDBGrid1.Splits(0).Columns(ColIndex).HeadingStyle.ForegroundPicture = LoadResPicture(102, vbResBitmap) End If 'If ColIndex = 2 Then MsgBox "Сортировка по этому полю НЕВОЗМОЖНО!!!", vbInformation End If pr_s_s = ColIndex rs.ActiveConnection = s.cnn_upr rs.CursorLocation = adUseServer rs.CursorType = adOpenKeyset rs.LockType = adLockOptimistic rs.Open Set TDataLite1.DataSource = rs Set TDBGrid1.DataSource = TDataLite1 Set TDBGrid2.DataSource = s.rs_user Set Me.txtprim.DataSource = TDataLite1 Set rs = Nothing End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 13:31:46 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Настенькано особенно меня смущает тот факт, что надо сортировку кодом писать. в остальных гридах она автоматическая. а так пока для меня это самый лучший грид. Ну это скорее достоинство чем недостаток. Два довода: 1. Сортировку можно провести по нескольким выделенным колонкам. (Переместить сортируемые колонки в порядке сортриовки - выделить - отстортировать. По-моему удобнее чем разрабатывать для этого отдельную форму). 2. Сортировку можно провести используя другое (невидимое) поле. Например, есть видимое текстовое поле "Номер+Литера" и есть скрытое поле "Номер". Или еще пример: запрос возвращает вместо Null фразу "Нет данных" и нам надо такие строчки закинуть в конец списка или в начало. И это - совсем не экзотические требования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 14:35:23 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Код в поддержку агументов в пользу TDBGrid: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 15:08:05 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Странно, а че так много кода? я сама сделала сортировку. вот код, работает без ошибок. Private Sub TDBGrid1_HeadClick(ByVal ColIndex As Integer) For I = 0 To TDBGrid1.Columns.Count - 1 TDBGrid1.Columns(I).HeadFont.Bold = False TDBGrid1.Columns(I).HeadingStyle.ForegroundPicture = Null Next I If rcd.State = 1 Then rcd.Close rcd.CursorLocation = adUseClient If a = 1 Then rcd.Sort = rcd.Fields(ColIndex).Name & " Asc" TDBGrid1.Columns(ColIndex).HeadingStyle.ForegroundPicture = LoadPicture(App.Path & "\1.bmp") a = 2 Else rcd.Sort = rcd.Fields(ColIndex).Name & " Desc" TDBGrid1.Columns(ColIndex).HeadingStyle.ForegroundPicture = LoadPicture(App.Path & "\2.bmp") a = 1 End If rcd.Open Set TDBGrid1.DataSource = rcd TDBGrid1.Columns(ColIndex).HeadFont.Bold = True End Sub я прямо в коде подгружаю картинку. и еще на form_load переменной a = 1. и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 11:02:52 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
еще подскажите, пож-та. как сделать универсальный фильтр (rcd.filter), который будет корректно фильтровать и стринговые поля, и integer, и smalldatetime. у меня пока ничего не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 11:05:14 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Универсальный фильтр :-) хотя и не совсем оно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 12:10:06 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Что-то там много всего. мне нужно совсем немного кода. пример: пишу rcd.filter = 'name like ' '" & text1.text & "*''. это работает, когда name - string. например, мы не знаем его типа, оно может быть 3 типов: string, integer, smalldatetime. нужно написать эту строку, чтобы она работала корректно для этих трех типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 12:25:25 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
авторЧто-то там много всего. мне нужно совсем немного кода. Может там и много написано, зато есть ответы на все твои вопросы. автормы не знаем его типа, оно может быть 3 типов: Почему это не знаем? rcd.Fields(x).Type еще никто не отменял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 12:35:35 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
про type понятно. проверять тип, и в зависимости от него, писать фильтр. а может можно как-нибудь универсально для всех типов, не проверяя тип поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 12:51:07 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Ну, примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 12:59:39 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
О, это хороший пример. сейчас его проверю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 13:01:11 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
_bobSet TDBGrid.DataSource = рекордсет, и вот у тебя подцеплен рекордсет Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. и ничего :( в гриде только одна пустая строчка. при этом, если проверить, rs содержит ответ от sp_who. может чего не хватает? help please ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2005, 15:28:04 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Надо выполнить TDBGrid1.ClearFields или в дизайнере очистить все настройки, связанные с типом источника данных грида и его колонок. Если в дизайнере настроить одно из: -Указать DataSource и т.п. -Определить DataField хотя бы для одной колонки то грид не принимает настройки нового рекордсета (остается со старыми настройками) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 08:45:58 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Имеется в виду то, что настройки сделанные для одного рекордсета в дизайн-тайм не позволят потом отображать данные другого рекордсета (если имена полей другие). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 08:52:44 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
Недавно обсуждалось. cn.CursorLocation = adUseClient rs.Open cmd, ,adOpenStatic, adLockBatchOptimistic set rs.ActiveConnection = Nothing (не обязятельно) WorobjoffИмеется в виду то, что настройки сделанные для одного рекордсета в дизайн-тайм не позволят потом отображать данные другого рекордсета (если имена полей другие). Колонки действительно будут пустыми, но количество строчек будет соответствовать прикрученному рекордсету. Проблема в рекордсете, а не в колонках грида. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 09:50:55 |
|
||
|
Сравнение двух гридов!!!
|
|||
|---|---|---|---|
|
#18+
AntonariyКолонки действительно будут пустыми, но количество строчек будет соответствовать прикрученному рекордсету. Проблема в рекордсете, а не в колонках грида. Точно, я ж на его код совсем не посмотрел! Как всегда лень прочитать внимательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 10:45:46 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33109228&tid=2167451]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
88ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 421ms |

| 0 / 0 |
