Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DevExpress

Обмен опытом, обсуждение нюансов и решение проблем возникающих при использовании библиотеки компонент Developer Express




 
DLL со скинами из библиотеки dxSkins, автор Ziltoid Подробнее... линк обновлен
Продолжение, Первая часть, вторая часть, третья часть

Полезные утилиты:
DxAutoInstaller v2.1.10 Простой и удобный тул для установки девок из исходников
https://mega.nz/#!aJRQzSqI!N7RgfcG1tfF45Z3OgcmBDHT_ZcWlIgJQ5eHHgQ9VupE

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:48 31-12-2009 | Исправлено: G787, 21:12 29-07-2018
kirdub

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у View есть событие OnCustomDrawCell

Всего записей: 10 | Зарегистр. 21-04-2010 | Отправлено: 18:39 21-01-2011
kniazkinP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kirdub
Да, я видел! Но я так понял, что в его свойствах нету Column.Title.Caption и cxGrid1.Canvas.TextOut/ Что с этим сделать можно? В идеале, мне надо чтобы мой первый стоблец был порядковым номером записи. Надеюсь я понятно объяснил Просто этот код хорошо работает на dbgrid

Всего записей: 26 | Зарегистр. 16-01-2011 | Отправлено: 19:02 21-01-2011
marser

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kniazkinP
А зачем так изощренно? Cоздайте в DataSet вычисляемое поле (тип Integer), например FieldNum. В обработчике события OnCalcFields напишите FieldNum.Value := DataSet.RecNo и показываете это поле в гриде.
 
Добавлено:
kniazkinP
в параметрах OnCustomDrawCell есть вся необходимая Вам информация.

Цитата:
Что с этим сделать можно?
Изучать.

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 19:13 21-01-2011 | Исправлено: marser, 19:15 21-01-2011
kniazkinP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В обработчике события OnCalcFields напишите FieldNum.Value := DataSet.RecNo и показываете это поле в гриде.

Сделал! Но при удалении записи с помощью navigatora, запись как бы не удаляется, а нумерация продолжается... Допустим было 1,2,3 удалил 3, а следующая строка стала 4ой..
Я так поняло надо использовать свойство FullRefresh. Правильно? У какого объекта оно?

Всего записей: 26 | Зарегистр. 16-01-2011 | Отправлено: 19:28 21-01-2011 | Исправлено: kniazkinP, 19:32 21-01-2011
marser

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kniazkinP

Цитата:
Я так поняло надо использовать свойство FullRefresh. Правильно? У какого объекта оно?

DataSet.Refresh или cxGridDBTableView.DataController.Refresh. Только у меня такое ощущение что у Вас подход неправельный. Зачем нужно выводить номер записи в DataSet? Какую информацию он несёт?
 
Добавлено:
kniazkinP
Или вы хотите что бы строчки в гриде были пронумерованы? Тогда причем тут номер записи в DataSet?

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 19:44 21-01-2011 | Исправлено: marser, 19:50 21-01-2011
kniazkinP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По сути никакую информацию он не несет. Хотя объясню подробнее. Есть 39 маленьких баз, которые одинкаовы, но внутри них информация разная. Соответственно их заполняют. Тут вопрос - либо в ручную вводят номер строки или автоматом. А потом эти 39 баз я складываю в одну с помощью запроса
Код:
with Query1 do
  begin
    SQL.Clear;
    SQL.Add('insert into OtchetT select * from tch1.DB');
    ExecSQL;
 
    SQL.Clear;
    SQL.Add('insert into OtchetT select * from tch3.DB');
    ExecSQL;
 

Соответственно номера получаются с первой базы 1,2,3.. со второй 1,2,3,4... Вот как с этим бороться?
 
Добавлено:
Ну точнее не номер строки, а порядковый номер.
 
Добавлено:
По сути, самое просто будет пронумеровать строки в гриде, даже если добавляются новые или удаляются. Как это можно сделать?

Всего записей: 26 | Зарегистр. 16-01-2011 | Отправлено: 19:52 21-01-2011 | Исправлено: kniazkinP, 19:58 21-01-2011
marser

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kniazkinP
И в схGridDBTableView Вы выводите таблицу OtchetT и хотите, чтобы строчки были последовательно пронумерованы? Я правельно понял?

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 20:46 21-01-2011 | Исправлено: marser, 20:47 21-01-2011
kniazkinP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да! Чтобы и в каждой базе tch1.DB, tch3.DB.. и в таблице OtchetT были верно пронумерованные порядковые номера! Стоит пятым по счёту и пусть имеет такой номер 5. И не важно что он там где-то стоял 1 или 18..

Всего записей: 26 | Зарегистр. 16-01-2011 | Отправлено: 20:50 21-01-2011
marser

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kniazkinP
А какой смысл в этом номере? Что с ним потом делают? И в каком режиме Вы планируете использовать грид. Как обычный DBGrid или по полной программе (с сортировкой, группировкой, панель итогов, фильтр). И что при этом должно происходить с номерами?

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 21:03 21-01-2011 | Исправлено: marser, 21:04 21-01-2011
kniazkinP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Смысла я особого в этом номере не вижу. cxGrid буду использовать с сортировкой, фильтром. А номера я так думаю должны оставаться..

Всего записей: 26 | Зарегистр. 16-01-2011 | Отправлено: 21:07 21-01-2011
marser

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kniazkinP

Цитата:
А номера я так думаю должны оставаться

Т.е перенумерация не нужна. Ну тогда через вычисляемое поле DataSet или через OnCustomDrawCell.

Цитата:
Смысла я особого в этом номере не вижу

Поэтому я и насторожился - нестандартное желание. По-моему, бессмысленное усложнение программы.  
 
Добавлено:
kniazkinP
Только если через OnCustomDrawCell, ни о какой сортировки, групперовки, фильтрации по этой колонке речи быть не может.  
Можно еще попробовать через событие колонки OnGetDisplayText

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 21:26 21-01-2011 | Исправлено: marser, 21:35 21-01-2011
kniazkinP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Т.е перенумерация не нужна. Ну тогда через вычисляемое поле DataSet или через OnCustomDrawCell.

Как это сделать? Я сделал вот так -
Код:
procedure TStrukturnPodrazdel.Button2Click(Sender: TObject);
begin
table1.Refresh;
cxGrid1DBTableView1.DataController.Refresh;
end;

Но когда запись удаляешь и создаешь новую, индекс становится не верным.

Всего записей: 26 | Зарегистр. 16-01-2011 | Отправлено: 21:44 21-01-2011
vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kniazkinP
marser
Во дискуссию развили. Все давно украдено (читай придумано)  
до нас. А может и для нас

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 22:44 21-01-2011
marser

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kniazkinP
table1.Refresh и cxGrid1DBTableView1.DataController.Refresh это одно и тоже.
Метод cxGrid1DBTableView1.DataController.Refresh вызывает table1.Refresh.

Цитата:
Но когда запись удаляешь и создаешь новую, индекс становится не верным.

После удаления или вставки вызов table1.Refresh не помогает? Ну незнаю, попробуйте DataSet.Close и DataSet.Closе, или DataSet.Requery (если используете ADO). Да и неправельно это, каждый раз делать запрос к базе данных ради какой-то нумерации. Обращию внимание, что после сортировки в гриде порядок показа строк, естественно, не будет совпадать порядком следования записей в DataSet.

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 23:01 21-01-2011
kniazkinP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
vladman

Спасибо Вам огромное преогромное и разработчикам тоже!!!
 
Добавлено:
А как сделать чтобы начиналось не с нуля, а с 1? Тоже чтобы было как у людей

Всего записей: 26 | Зарегистр. 16-01-2011 | Отправлено: 23:03 21-01-2011
marser

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kniazkinP

Цитата:
А как сделать чтобы начиналось не с нуля, а с 1

Код:
AText := IntToStr(Sender.GridView.DataController.GetRowIndexByRecordIndex(ARecordIndex, false) + 1);

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 23:34 21-01-2011 | Исправлено: marser, 23:35 21-01-2011
kniazkinP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сделал в cxgrid таблицу, в один столбец добавил ComboBox. В него вписал два значения. Как сделать чтобы можно было только выбирать эти значения но самому вводить другие нельзя?

Всего записей: 26 | Зарегистр. 16-01-2011 | Отправлено: 12:55 22-01-2011 | Исправлено: kniazkinP, 12:55 22-01-2011
tatbesidovska

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день! Может кто знает,как сделать.
 
Нужно реализовать такую беду: Есть GridView, GridControl Devexpress овский, при нажатии на ячейку, открывается диалоговое окно с выбором файла, выбираем файл, предположим .xls (пользователь может выбрать может любой файл любого типа), закрывается окно, ссылка на этот файл попадает в ячейку, ну и соответственно затем сохраняется в базу данных SQL. Подскажите что-нить, и еще, в базе для этого поля тип данных какой должен быть? Спасибо

Всего записей: 42 | Зарегистр. 10-07-2009 | Отправлено: 13:01 22-01-2011
Chukotka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
в один столбец добавил ComboBox. В него вписал два значения. Как сделать чтобы можно было только выбирать эти значения но самому вводить другие нельзя?

Properties.DropDownListStyle := lsFixedList

Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 13:07 22-01-2011 | Исправлено: Chukotka, 13:07 22-01-2011
tanaseduard



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tatbesidovska
Тип поля в БД Varchar.
Для столбцы выставляешь Properties -> ButtonEdit.
При нажатии вызываешь диалог выбора файла, после сохраняешь в датасет.

Всего записей: 518 | Зарегистр. 21-11-2009 | Отправлено: 13:10 22-01-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru