Тогда дальнейшее обсуждение - уже не в тему.
» Использование DevExpress 2
myst3000
Могу сказать про Oracle - в нем данные на основе запросов типа select * не позволяют вносить изменения.
Для этого требуется добавить внутренний идентификатор rowid (выглядит так - select t.rowid, t.* from table_name t).
Возможно, что у DISQLite3 тоже есть подобные ограничения.
X11, именно не обязательно, но желательно. А то, грид не всегда правильно понимает какой столбец - идентифицирующий.
Могу сказать про Oracle - в нем данные на основе запросов типа select * не позволяют вносить изменения.
Для этого требуется добавить внутренний идентификатор rowid (выглядит так - select t.rowid, t.* from table_name t).
Возможно, что у DISQLite3 тоже есть подобные ограничения.
X11, именно не обязательно, но желательно. А то, грид не всегда правильно понимает какой столбец - идентифицирующий.
korobovmax
Спасибо за совет - не помогает Не знаю, что и делать
Спасибо за совет - не помогает Не знаю, что и делать
1. Лезть на форум по SQLite.
2. Лезть на форум по БД.
3. Курить маны.
4. Поискать и посмотреть примеры.
5. Сделать простой тестовый пример и с ним поиграться.
2. Лезть на форум по БД.
3. Курить маны.
4. Поискать и посмотреть примеры.
5. Сделать простой тестовый пример и с ним поиграться.
X11
1. Как раз пишу им
2, 3, 4. Уже укурился окончательно - ночь воскресенья, а я как будто только что проснулся утром в субботу
5. сомо собой
Спасибо!
Может кто сталкивался еще с проблемой редактирования записей в DSQLite3?
1. Как раз пишу им
2, 3, 4. Уже укурился окончательно - ночь воскресенья, а я как будто только что проснулся утром в субботу
5. сомо собой
Спасибо!
Может кто сталкивался еще с проблемой редактирования записей в DSQLite3?
Как правило, забываешь какую-то мелочь...
Ладно хватит оффтопить, а нас накажут модераторы.
Ладно хватит оффтопить, а нас накажут модераторы.
myst3000 может быть проблема что у датасета не стоит cached updates или стоит какой нить unidirectional. И еще как вариант не стоит привязка UpdateObject к Query.
Извиняюсь за возможный флуд но подскажите как решить проблему использую ФаерБирд-Фибы-ДевЕкспресс КвантумГрид
Var s:string;
begin
s:=tbl.FinditembyID(0).editValue;
....
end;
Мне возвращает все время пустое значение.
Var s:string;
begin
s:=tbl.FinditembyID(0).editValue;
....
end;
Мне возвращает все время пустое значение.
sergiuz1303
Где этот код расположен?
Где этот код расположен?
sergiuz1303
Видимо у вас нет фокуса ни на одной из строк вьюшки...
Видимо у вас нет фокуса ни на одной из строк вьюшки...
afiget
код расположен гдехочь в моем случаи это было на обработке нажатаии кнопки.
Dennica
если бы я этого не знал я бы не задавал навенрное тут это вопрос. Я сначала выделяю строку в гриде а потом обработую ее.
А также нашел другой путь через Фибы
qr.FieldByFieldNo(1).AsString;
код расположен гдехочь в моем случаи это было на обработке нажатаии кнопки.
Dennica
если бы я этого не знал я бы не задавал навенрное тут это вопрос. Я сначала выделяю строку в гриде а потом обработую ее.
А также нашел другой путь через Фибы
qr.FieldByFieldNo(1).AsString;
Столкнулся с проблемой - приложение, использующее DevX (Grid, Bars, Editors) - временами при попытке перетащить окно мышкой (неважно, модальное окно или главная форма) приложение просто зависает, жрет около 40% CPU. Это продолжается секунд 30, потом все оживает. Но при попытке перетащить или просто кликнуть на заголовке окна - та же байда.
D2007, DevX версии за 23.05.08 (местный инсталл), скины отключены
Никто не сталкивался с подобным?
D2007, DevX версии за 23.05.08 (местный инсталл), скины отключены
Никто не сталкивался с подобным?
Цитата:
код расположен гдехочь в моем случаи это было на обработке нажатаии кнопки.
А, так бы сразу и сказал. Ну тогда, ошибка в 17 строке.
ЗЫ
PostEditValue делал?
sergiuz1303
Цитата:
Воот, теперь вы поняли, что вопросы нужно задавать корректно. По той информации, что вы дали я указал на самую вероятную проблему. В следующий раз не надейтесь ни на чьи телепатические способности, а сразу описывайте, чего вы там знали, а чего нет, и что делали. То что вы написали какие компоненты использовали для доступа к данным вообще значение не имело, т.к. результат вы пытались получить, используя девовский вью. А учитывая то, что при выполнении двух условий код работоспособный оставалось понят, что именно у вас не было выполнено. Первое я сказал, ну а про второе осмелюсь предположить вы и сами все знаете.
Цитата:
если бы я этого не знал я бы не задавал навенрное тут это вопрос. Я сначала выделяю строку в гриде а потом обработую ее.
Воот, теперь вы поняли, что вопросы нужно задавать корректно. По той информации, что вы дали я указал на самую вероятную проблему. В следующий раз не надейтесь ни на чьи телепатические способности, а сразу описывайте, чего вы там знали, а чего нет, и что делали. То что вы написали какие компоненты использовали для доступа к данным вообще значение не имело, т.к. результат вы пытались получить, используя девовский вью. А учитывая то, что при выполнении двух условий код работоспособный оставалось понят, что именно у вас не было выполнено. Первое я сказал, ну а про второе осмелюсь предположить вы и сами все знаете.
Цитата:
вернее так:
хочу в датасет, который подключается к cxDBLookupComboBox.Properties.ListSource подгружать данные не все сразу, а только те которые нужны пользователю, те формирую запрос после ввода с клавиатуры.
......
поставил DropDownListStyle=lsEditList заработало, но криво. при вводе не всегда открывается DropDownBox или открывается, но отображается 1 запись с полосой прокрутки, хотя DropDownRows=8. к тому же мне нужен lsEditFixedList, а не lsEditList.
1. если запрос возвращает одну запись то в LookupComboBox она отображается, но DropDownBox развернут весь(DropDownRows=8) те вместо остальных 7-ми записей - пустое пространство. с этим еще жить можно.
2. если запрос возвращает несколько записей то DropDownBox развернут не на 8 записей, а на одну. причем не всегда, закономерность так и не понял. вот это очень плохо.
помогите.
neznayka3
свойство DropDownAutoSize = True? Если да, то попробуйте поставить в false и в ручную подобрать высоту и ширину используя проперти DropDownHeight и DropDownWidth.
свойство DropDownAutoSize = True? Если да, то попробуйте поставить в false и в ручную подобрать высоту и ширину используя проперти DropDownHeight и DropDownWidth.
С
Цитата:
проблем никогда не замечал. Если поставить, должно работать. По-умолчанию, кстати, false.
Цитата:
DropDownAutoSize = True
проблем никогда не замечал. Если поставить, должно работать. По-умолчанию, кстати, false.
Dennica
afiget
Цитата:
работает, спасибо.
afiget
Цитата:
DropDownAutoSize = True
работает, спасибо.
afiget
Цитата:
При обычном использовании согласен, проблем не возникает. Криво начинает отрабатывать когда навешиваешь функции использующие фильтрацию через датаконтроллер у пропертисов. Так, у меня есть пара функций позволяющих организовать инкриментную фильтрацию лукапкомбо по мере ввода по подстроке и по неск. колонкам. Вот когда я их навешиваю приходится отключать автосайз.
Цитата:
С
Цитата:DropDownAutoSize = True
проблем никогда не замечал. Если поставить, должно работать. По-умолчанию, кстати, false.
При обычном использовании согласен, проблем не возникает. Криво начинает отрабатывать когда навешиваешь функции использующие фильтрацию через датаконтроллер у пропертисов. Так, у меня есть пара функций позволяющих организовать инкриментную фильтрацию лукапкомбо по мере ввода по подстроке и по неск. колонкам. Вот когда я их навешиваю приходится отключать автосайз.
Доброго времени суток.
Нашёл такую странность. Динамически выводятся различные данные в cxGrid несколькими процедурами.
Грид находится на панели.
При попытке печати Panel с помощью dxComponentPrinter иногда грид не обновляется, то есть печатаются данные прошлой процедуры.
То есть в гриде новые данные, а dxComponentPrinter.Preview - старые.
Кроме того, если в гриде поменять ширину колонок или раскрыть-закрыть группы, в превью остаётся старый вид.
Что я забыл сделать? Печатаю обычно, dxComponentPrinter1.Preview(true, PanelLink);
Нашёл такую странность. Динамически выводятся различные данные в cxGrid несколькими процедурами.
Грид находится на панели.
При попытке печати Panel с помощью dxComponentPrinter иногда грид не обновляется, то есть печатаются данные прошлой процедуры.
То есть в гриде новые данные, а dxComponentPrinter.Preview - старые.
Кроме того, если в гриде поменять ширину колонок или раскрыть-закрыть группы, в превью остаётся старый вид.
Что я забыл сделать? Печатаю обычно, dxComponentPrinter1.Preview(true, PanelLink);
народ,а что за косяк .
у меня 8.2
студия 2008.
язык vb
добавляю компонент от dev ,например barmanager.
удаляю его.
но в коде дизайнера,код не удален!там все осталось.
и так со всеми компонентами. как исправить этот глюк?
у меня 8.2
студия 2008.
язык vb
добавляю компонент от dev ,например barmanager.
удаляю его.
но в коде дизайнера,код не удален!там все осталось.
и так со всеми компонентами. как исправить этот глюк?
brookson
Может код, выводящий панель на печать, стоить внутри блока блокировки обновления вьюшки или датасэта? Типо..
cxGrid1TableView1.BeginUpdate;
... закачка новых данных ...
dxComponentPrinter1.Preview(true, PanelLink);
cxGrid1TableView1.EndUpdate;
А так, вроде никогда такого глюка не замечал.
Может код, выводящий панель на печать, стоить внутри блока блокировки обновления вьюшки или датасэта? Типо..
cxGrid1TableView1.BeginUpdate;
... закачка новых данных ...
dxComponentPrinter1.Preview(true, PanelLink);
cxGrid1TableView1.EndUpdate;
А так, вроде никогда такого глюка не замечал.
Dennica
Цитата:
Да нет, всё честно.
Код:
procedure TF_REPORTS.BtnPrintPanelClick(Sender: TObject);
begin
dxComponentPrinter1.Preview(true, PanelLink);
end;
Цитата:
Может код, выводящий панель на печать, стоить внутри блока блокировки обновления вьюшки или датасэта?
Да нет, всё честно.
Код:
procedure TF_REPORTS.BtnPrintPanelClick(Sender: TObject);
begin
dxComponentPrinter1.Preview(true, PanelLink);
end;
Странная производительность у ТриЛистовых эдиторов
В ТриЛисте есть 3 столбца, данных для которых - процента (0-100)
Если специально назначать редактор ПрогрессБарЭдит из ЭдитРепозитори или создавать свой ПрогрессБарЭдит, то уже при отрисовки 100 записей начинаются лаги.
Пример: при указанных 100 записях время загрузки записей изменяется с 1 секунды до 8!
Кто-нибудь сталкивался с такой проблемой?
В ТриЛисте есть 3 столбца, данных для которых - процента (0-100)
Если специально назначать редактор ПрогрессБарЭдит из ЭдитРепозитори или создавать свой ПрогрессБарЭдит, то уже при отрисовки 100 записей начинаются лаги.
Пример: при указанных 100 записях время загрузки записей изменяется с 1 секунды до 8!
Кто-нибудь сталкивался с такой проблемой?
korobovmax
Список связан с датасэтом?
Если не отрисовывать прогресс скорость загрузки/перемещения по записям нормальная?
У меня тоже есть пару мест в прогах где используется этот контрол, прикрученный к датасэтам, и скорость его работы оставляет желать лучшего. Эксперементально вычислил что при выставлении OptionsData.SyncMode := False скорость становится приемлемой, но в некоторых случаях этот флажок мне снять нельзя =(. Как его можно ускорит ь еще я так и не нашол.
Список связан с датасэтом?
Если не отрисовывать прогресс скорость загрузки/перемещения по записям нормальная?
У меня тоже есть пару мест в прогах где используется этот контрол, прикрученный к датасэтам, и скорость его работы оставляет желать лучшего. Эксперементально вычислил что при выставлении OptionsData.SyncMode := False скорость становится приемлемой, но в некоторых случаях этот флажок мне снять нельзя =(. Как его можно ускорит ь еще я так и не нашол.
Связан, но хитро Есть самописное дерево (SQLTree), которое собирает ноды из таблиц в памяти в дерево и дает ноды DX-овскому дерево. Можно сказать, аналог dxMemData, который можно подсунуть Гриду.
Соответственно, используется не DB-шное дерево, а TcxTreeList, у которого SyncMode'а нет
Без него и с использование других контролов все нормально по скорости.
Соответственно, используется не DB-шное дерево, а TcxTreeList, у которого SyncMode'а нет
Без него и с использование других контролов все нормально по скорости.
korobovmax
Я бы вместо ПрогрессБарЭдит использовал 100 картинок разной ширины в ImageComboBox либо делал отрисовку сам. В зависимости от способностей в программировании
Есть еще вариант со своим компонентом: одной картинкой шириной в 1 пиксель (ну или сколько там нужно для отображения 1 процента) и растягиваением этой картинки на нужное кол-во пикселей в зависимости от значения в процентах.
Я бы вместо ПрогрессБарЭдит использовал 100 картинок разной ширины в ImageComboBox либо делал отрисовку сам. В зависимости от способностей в программировании
Есть еще вариант со своим компонентом: одной картинкой шириной в 1 пиксель (ну или сколько там нужно для отображения 1 процента) и растягиваением этой картинки на нужное кол-во пикселей в зависимости от значения в процентах.
Можно так сделать.
Оба варианта привлекательны. Скорее всего, попробую второй, потому что, как я думаю, проще сделать Пики и Оверхеды (подсветка красным, в случае превышения заданной позиции) - такие штуки ПрогрессБара использую.
Еще немного помогает BeginUpdate/EndUpdate до и после раскрытия нода (у меня, считай - загрузки данных). 6.5 вместо 8
Оба варианта привлекательны. Скорее всего, попробую второй, потому что, как я думаю, проще сделать Пики и Оверхеды (подсветка красным, в случае превышения заданной позиции) - такие штуки ПрогрессБара использую.
Еще немного помогает BeginUpdate/EndUpdate до и после раскрытия нода (у меня, считай - загрузки данных). 6.5 вместо 8
Доброе время суток!
Столкнулся с проблемой при обработке события OnCustomDrawCell в гриде пишу такой вот код
if AViewInfo.GridRecord.Values[0]=1 then
begin
ACanvas.Canvas.Brush.Color := clMoneyGreen;
ACanvas.Canvas.Font.Color := clRed;
end;
Все красиво работает когда открываеться таббличка первый раз.
Но если я меняю значения в первом столбце с 0 на 1 или наоборот (хотя фактически это не так важно) то начинаються глюки. То есть есть изменяю первую строчку то тоже ничего но если я начинаю изменять последующие к примеру там третью то после обработки события OnCustomDrawCell текст в третей строчке заменяеться на текст из первой строчки причем по всем столбцам.
Подскажите что нужно изменить.
П.С. Использую Firebird подключаюсь через Фибсы.
изменение через кнопку или через обработку события OnCellClick
Столкнулся с проблемой при обработке события OnCustomDrawCell в гриде пишу такой вот код
if AViewInfo.GridRecord.Values[0]=1 then
begin
ACanvas.Canvas.Brush.Color := clMoneyGreen;
ACanvas.Canvas.Font.Color := clRed;
end;
Все красиво работает когда открываеться таббличка первый раз.
Но если я меняю значения в первом столбце с 0 на 1 или наоборот (хотя фактически это не так важно) то начинаються глюки. То есть есть изменяю первую строчку то тоже ничего но если я начинаю изменять последующие к примеру там третью то после обработки события OnCustomDrawCell текст в третей строчке заменяеться на текст из первой строчки причем по всем столбцам.
Подскажите что нужно изменить.
П.С. Использую Firebird подключаюсь через Фибсы.
изменение через кнопку или через обработку события OnCellClick
sergiuz1303
Надо либо ImmediatelyPost установить,
либо в событии OnFocusedItemChange пинать грид, чтобы перерисовался.
Добавлено:
Также посмотрите демо CustomDrawTableViewDemo ->
форма CustomDrawTableViewDemoMainForm -> обработчик tvCarsCustomDrawCell.
Данные для условия берутся из GridRecord.DisplayTexts[Index].
Потом ACanvas.Canvas.FillRect(ARec);
Наконец, самое важное: ADone := True.
Надо либо ImmediatelyPost установить,
либо в событии OnFocusedItemChange пинать грид, чтобы перерисовался.
Добавлено:
Также посмотрите демо CustomDrawTableViewDemo ->
форма CustomDrawTableViewDemoMainForm -> обработчик tvCarsCustomDrawCell.
Данные для условия берутся из GridRecord.DisplayTexts[Index].
Потом ACanvas.Canvas.FillRect(ARec);
Наконец, самое важное: ADone := True.
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
Предыдущая тема: Язык программирования на русском языке
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.