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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
JohnSilver182
ААА, ты про это. Я думал что ты говоришь про мой случай

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 12:56 14-01-2010
victorman2010

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток. Свой вопрос я уже задавал, но конкретного ответа так и не получил. Попробую описать ситуацию более подробно:
По нету приходят xml файлы. Моя программа открывает его (вывожу в cxGrid), редактирует и потом обратно записывает в xml. xmlMapper'om созданы два транспорт файла (.xtr). Использую компоненты: xmlTransform, xmlTransformProvider, ClientDataSet, DataSourse, cxGrid. Суть проблемы: колонка с датой в xml файле имеет вид 40152.9238028009 (xmlMapper'om никак не преобразуеш), если преобразовать в delphi (cxDateEdit1.Date := FloatToDateTime(StrToFloat(ClientDataSet2.FieldByName('datetime').AsString));) то получится 05.12.2009 22:10:16, но это если в cxDateEdit, в грид никак не получается. Подскажить пож что делать? Заранее благодарен.
Читаю файл:
  ClientDataSet1.Close;
  XMLTransform1.SourceXmlFile := 'C:\_zx.xml';
  XMLTransform1.TransformationFile := 'OXtrans.xtr';
  ClientDataSet1.XMLData := XMLTransform1.data;
  ClientDataSet1.Open;
Сохраняю файл:
  XMLTransformProvider1.XMLDataFile := 'C:\_zx.xml';
  XMLTransformProvider1.TransformRead.TransformationFile := 'OXtrans.xtr';
  XMLTransformProvider1.TransformWrite.TransformationFile := 'toxml.xtr';
  ClientDataSet1.ApplyUpdates(-1);

Всего записей: 33 | Зарегистр. 16-12-2009 | Отправлено: 09:35 15-01-2010
jonikDk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
victorman2010
может добавить дополнительное поле в сxgrid, которое будет равно FloatToDateTime(StrToFloat(ClientDataSet2.FieldByName('datetime').AsString)) и по OnChange менять исходное поле.

Всего записей: 1613 | Зарегистр. 01-03-2004 | Отправлено: 10:37 15-01-2010
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что-то не могу понять. Подскажите.
Нужно в цикле проверить значения всех строк вертикальной сетки (cxVerticalGrid)

Код:
 
  for I := 0 to vgTrans.Rows.Count - 1 do
    begin
      if not (vgTrans.Rows[i] as TcxCategoryRow) then
        if vgTrans.Rows[i]. <как добраться до значения>?
 
    end;
 

 
Дело в том, что все строки обязательны к заполнению.
Не могу понять, как узнать в цикле по всем строкам, что такая-то строка не пустая.

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:57 15-01-2010
victorman2010

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может я чего то не понимаю или не знаю, пробовал создать поле в самом гриде и записывать в него:
 
procedure TfrmMain.cxGrid2DBTableView1DateTimeGetDataText(
  Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: string);
begin
сxGrid2DBTableView1dn.EditValue := FloatToDateTime(StrToFloat(ClientDataSet2.FieldByName('datetime').AsString));
end;
 
В дата сете создал поле вычисляемое fieldkind - fkCalculated. При загрузке файла поле остается пустым. Может как то я не правильно запись делаю? Коммит для грида может нужно какой то сделать?
 
Поле создано как fkCalculated и в гриде отображается, запись не происходит...А еще только что заметил, что ручками там ничего не напишеш. Не в нем не в просто текстовым, созданном в самом гриде. Получается дополнительные поля что то блокирует для записи, потому что в тех что загружаются из файла писать (корректировать) можно.

Всего записей: 33 | Зарегистр. 16-12-2009 | Отправлено: 11:20 15-01-2010
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
victorman2010
Калькулируемые поля нельзя редактировать. Данные для этого поля нужно менять в событии.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 11:56 15-01-2010
victorman2010

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите тогда пож как это реализовать, потому что ClientDataSet2.FieldByName есть, а
ClientDataSet2.ParamByName нету?
 
Добавлено:
И какой тогда мне смысл делать калькулируемое поле, т.к. мне нужно записать, отредактировать, а потом снова время преобразовать (напр. 40152.9238028009 )
 
Добавлено:
volser
Файлы приходят с таким форматом, при конвертации из xml все поля строковые получаются.
Дату отобразил:
 
procedure TfrmMain.ClientDataSet2CalcFields(DataSet: TDataSet);
begin
    ClientDataSet2.FieldByName('dn').AsDateTime := FloatToDateTime(StrToFloat(ClientDataSet2.FieldByName('datetime').AsString));
end;
 
Только поле калькулируемое, я его редактировать не могу, может есть возможность по другому сделать?

Всего записей: 33 | Зарегистр. 16-12-2009 | Отправлено: 12:14 15-01-2010
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
victorman2010
После импорта заводите в ClientDataSet2 еще одно поле типа DateTime и заполняете это поле по данным "строкового" поля:
ClientDataSet2.FieldByName('dn').AsDateTime := FloatToDateTime(StrToFloat(ClientDataSet2.FieldByName('datetime').AsString));
 
Вешаете обработчик на OnChange, в котором делаете обратную конвертацию в строку:
ClientDataSet2.FieldByName('datetime').AsString:=FloatToStr(ClientDataSet2.FieldByName('dn').AsDateTime);
 
Перед сохранением удаляете вспомогательное поле типа DateTime.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 20:26 15-01-2010 | Исправлено: afiget, 20:27 15-01-2010
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто знает, TdxMemData можно сохранить в файл? И восстановить потом.
А то в сохранять в поток и восстанавливать из потока как-то не кошерно.

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 22:09 16-01-2010 | Исправлено: X11, 01:12 17-01-2010
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
 
procedure LoadFromTextFile(FileName : String); dynamic;
procedure SaveToTextFile(FileName : String); dynamic;
 
procedure LoadFromBinaryFile(FileName : String);
procedure SaveToBinaryFile(FileName : String);
 
procedure LoadFromStream(Stream : TStream);
procedure SaveToStream(Stream : TStream);

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 22:26 16-01-2010
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
А какая разница? Делаешь поток в файл (TFileStream) и все.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 00:43 17-01-2010
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну я с потоками и работаю. Подумал просто, что может быть есть что-то типа экспорта в разные форматы у dxMemData

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 01:12 17-01-2010
AvGSoft

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Установил 48 девок, пробую поиск FindNodeByText(...) курсор переходит на найденую запись но если она находиться за областью видимости дерево не скролится к этому месту автоматом, если ручками протянуть то курсор видно. Такая же ситуация и в 47 девках была, но там еще и с клавиатуры не скролилось, сейчас скролиться, но поиск не скролит. Где копнуть? Вроде говорили, что в 48 должны были исправить, может что не так я делаю.

Всего записей: 262 | Зарегистр. 03-07-2006 | Отправлено: 10:44 18-01-2010
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день. Есть грид в нем какие-то данные. Есть проблема с фильтром по столбцам с датой и временем
Как сделать так, чтобы фильтр по столбцам или настраиваемый фильтр могли нормально фильтровать по датам, но в поле показывалось и дата, и время???

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 13:47 18-01-2010
vladman

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

Цитата:
пробую поиск FindNodeByText(...) курсор переходит на найденую запись но если она находиться за областью видимости дерево не скролится к этому месту автоматом, если ручками протянуть то курсор видно

Попробуйте после успешного результата поиска выполнить  

Код:
<Your>cxTreeList.FocusedNode.MakeVisible;

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 14:39 18-01-2010
AvGSoft

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman
Пробывал не помогает. Уже не знаю что и делать. На обычном cxTreeList работает и работоло на 47 версии, а cxDBTreeList не хочет

Всего записей: 262 | Зарегистр. 03-07-2006 | Отправлено: 14:44 18-01-2010
asi81



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryogen2003
Навверно можно создать 3 столбца, 1- дата 2- время  3 - дата+время. Показывать в таблице только последний столбец. А в настраиваемом фильтре разрешить фильтрацию по 1ым двум столбцам.  В отдельном от грида фильтре можно указывать какие именно столбцы могут учавствовать в фильтре. Что касается втроенного в грид фильтра - то не знаю, не пробовал.

Всего записей: 86 | Зарегистр. 08-06-2009 | Отправлено: 14:44 18-01-2010
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
asi81
Нееее, без лишних полей надо

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 14:46 18-01-2010
vladman

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

Цитата:
Как сделать так, чтобы фильтр по столбцам или настраиваемый фильтр могли нормально фильтровать по датам, но в поле показывалось и дата, и время???

Для понимания фразы "нормально фильтровать по датам" привели бы скин как у вас получается фильтровать "ненормально".

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 14:52 18-01-2010
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
Да это легче описать просто
Нету никакой фильтрации, если присутствует в дате еще и время  
То есть в фильтре колонки выбираешь выбор и попадаешь в "настройку фильтра", там выбираешь "равно" и дату, например 17.01.2010. Итог, не одной записи. Хотя за вчерашнее число таких записей пять.
 
http://img18.imageshack.us/i/image1km.gif/
http://img687.imageshack.us/i/image2f.gif/
http://img25.imageshack.us/i/image3rr.gif/

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 15:25 18-01-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 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