Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пакетная обработка записей в cxGrid, DevExpeess 
:(
    Опции темы
Akella
Дата 24.4.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Вопрос по обработке всех строк грида (шестая версия)

судя по примеру из справки, то в процедуру обработки записей можно передать только 2 параметра:
а как несколько? см. код
Код

procedure TForm1.SetSaleDate(ARowIndex: Integer; ARowInfo: TcxRowInfo);


procedure TForm1.SetSaleDate(ARowIndex: Integer; ARowInfo: TcxRowInfo);
begin
  with tvOrders.DataController do Begin
  if ARowInfo.Level = Groups.GroupingItemCount then
    Values[ARowInfo.RecordIndex, tvOrdersSaleDate.Index] := Now(); 
  end;
end;


....

procedure TForm1.F1(...);
Var
 S : String;
begin
  S := 'тра-ля-ля';
  with tvOrders.DataController do
    ForEachRow(True, SetSaleDate);<<--- как обработать переменную S в процедуре SetSaleDate????
....

end;


Добавлено через 31 секунду
исп. глобальных переменных не предлагать  smile 
PM MAIL   Вверх
Alex
Дата 24.4.2007, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



честно, ничего не понял smile 


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Akella
Дата 24.4.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



вот согласно примеру из справки нужно делать так:

Код

procedure TDM.ForEachFilial(slFolders:TStringList;ARowIndex: Integer; ARowInfo: TcxRowInfo);
begin
//cxFilials - это сам грид, (типа стринггрид)
with fmAdmSrv.cxFilials.DataController do begin
  if ARowInfo.Level = Groups.GroupingItemCount then
    if ExtVat = 10 then
      Values[ARowInfo.RecordIndex, fmAdmSrv.cxFilialsDoOutGoing.Index] := 'что=то присваиваем';


    end;//if
  end;
end;



вот так вызываем
Код

procedure TDM.DBUpdate();
var
  ExtVar: integer;
begin
  ExtVar := 10;
  cxFilials.DataController.ForEachRow(false, ForEachFilial);

Как узнать значение ExtVat в процедуре ForEachFilial????


В ForEachFilial можно использовать только методы формы или глобальные переменные формы, но процедура ForEachFilial() может же быть вызвана из другой функции или процедуры? Может, у этой вызывающей процедуры есть свои переменные и параметры, как эти переменные и параметры передать в вызываемую ForEachFilial() ????

Добавлено через 2 минуты и 12 секунд
ExtVar: integer объявлена в вызывающей процедуре и поэтому вызываемая процедура ForEachFilial не знает ничего об ExtVar

Добавлено через 5 минут и 23 секунды
согласно справки:

Код

private
  procedure ForEachFilial(ARowIndex: Integer; ARowInfo: TcxRowInfo);

PM MAIL   Вверх
Akella
Дата 24.4.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



завёл в заблуждение... smile 
нужно пробежаться по всем строкам грида, при чем грид не подключен к датасету
PM MAIL   Вверх
Alex
Дата 24.4.2007, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



Если задача просто пробежаться по гриду, то гораздо проще написать:
Код

for n:= 0 to GridCheck1.Table.DataController.RecordCount - 1 do



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Akella
Дата 25.4.2007, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



угу, дошло, только если в режиме GridMode, то
Код
for n:= 0 to GridCheck1.DataController.RecordCount - 1 do

PM MAIL   Вверх
Akella
Дата 25.4.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Как узнать в этом случае, что запись выделенная? Т.е. нужно пробежаться только по выделенным записям
PM MAIL   Вверх
Akella
Дата 25.4.2007, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



нашел cxFilials.DataController.IsRowSelected(i)
PM MAIL   Вверх
Alex
Дата 25.4.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162





--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0692 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.