Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

К сожалению, последовательным, в отношении постов быть не получается. Да, и DevExpress, с которым я сейчас плотно работаю, и о котором я в последнее время много рассказываю, постоянно подбрасывает интересные задачи… Поэтому, еще одна подрубрика. Продолжение “Заметок на полях” будет. Но TIPS & TRICKS это, скорее, для того, что бы не забыть как сделать то-то и то-то… Если кто-то столкнется с аналогичными задачами и кому-то это сэкономит время – я буду рад.

Для тех, кого заинтересовала тема Scheduller’а, будут интересна серия постов в блоге Delphi в Internet.

А пока…

В “Заметках” я много рассказывал о настройках View для Grid. Настройки эти, как вы помните, могут производится  и в Run Time. Соответственно, уместно будет сохранение и восстановление определенных конфигураций представлений.

Для этой цели можно использовать следующие методы:

  • StoreToStream
  • StoreToIniFile
  • StoreToRegistry

и

  • RestoreFromStream
  • RestoreFromIniFile
  • RestoreFromRegistry

Но, иногда удобно сохранять эти настройки в БД. Хотя бы для того, что бы их могли использовать другие пользователи.

Ниже примеры сохранения:

procedure TFMain.btnPrint_SaveClick(Sender: TObject);
var
sl: TStrings;
bs, Stream: TStream;
ttl: string;
begin
try
Stream:= TMemoryStream.Create;
PivotGrid.StoreToStream(Stream);

qryPMC.Insert;
ttl:= ShowNewPMSettingsDlg; // Это функция, которая возвращает имя конфигурации, что бы их как-то идентифицировать
qryPMC.FieldByName(‘Title’).asString:=ttl;
Stream.Position:=0; // Не забывайте об этом, иначе работать не будет
TMemoField(qryPMC.FieldByName(‘Config’)).LoadFromStream(Stream);
if ttl<>” then
qryPMC.Post
else
qryPMC.Cancel;

finally
FreeAndNil(Stream);

end;

end;

… и восстановления:

procedure TFMain.btnPrintLoadClick(Sender: TObject);
var
sl: TStrings;
Stream: TStream;

begin
Stream:= TMemoryStream.Create;
Stream.Position:=0;
TMemoField(qryPMC.FieldByName(‘Config’)).SaveToStream(Stream);
Stream.Position:=0;
PivotGrid.RestoreFromStream(Stream);
end;

Здесь я использую PivotGrid. Это уникальный компонент. О нем я планирую рассказать отдельно. Настройки View сохраняются аналогичным образом. Не забудьте перед обращением к потоку выставить в 0 его позицию.

Другие статьи серии:

DevExpress. TIPS & TRICKS #1
DevExpress. TIPS & TRICKS #2
DevExpress. TIPS & TRICKS #3
DevExpress. TIPS & TRICKS #4
DevExpress. TIPS & TRICKS #5
DevExpress. TIPS & TRICKS #5.5
DevExpress. TIPS & TRICKS #6
DevExpress. TIPS & TRICKS #7


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

2 комментария: DevExpress. TIPS & TRICKS #0

  • Придумал для своего БД-приложения написать универсальную форму с сеткой cxGrid для сохранения/вызова различных запросов-отчетов.
    То есть заводим таблицу, в которой будут сохраняться текст SQL-запроса, описание параметров, рекомендации пользователю по использованию отчета, настройки сетки (имена полей, ширина, тип данных и т.п.) для вменяемого отображения результатов запроса. К сетке добавляю метод “Экспортировать в MS Excel/OOo.Calc”.
    Есть целый класс пользовательских хотелок-обращений, которые решаются буквально написанием единственного запроса, который хотелось бы предоставить юзерам в дальнейшее многократное пользование, чтобы лишь параметры подставляли желаемые и меня больше с этим не дергали.
    Уперлось все именно в сохранение настроек cxGrid. Честно говоря, начал городить свой велосипед для формирования JSON- или XML-строки с последующим сохранением в поле записи. Спасибо за вашу подсказку с использованием потока и сохранением его содержимого в поле БД, попробую.

  • Отличный пост, спасибо.

    StoreToIniFile, RestoreFromIniFile лучше чем мой “велосипед” :-)

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика