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

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

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

ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1
 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
  cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, dxmdaset, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGrid, cxCalendar;
 
type
  TForm2 = class(TForm)
    cxGrid1DBTableView1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    dxMemData1: TdxMemData;
    dxMemData1ds: TDateTimeField;
    dxMemData1de: TDateTimeField;
    DataSource1: TDataSource;
    cxGrid1DBTableView1RecId: TcxGridDBColumn;
    cxGrid1DBTableView1ds: TcxGridDBColumn;
    cxGrid1DBTableView1de: TcxGridDBColumn;
    procedure DataSource1UpdateData(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
 
{$R *.dfm}
 
procedure TForm2.DataSource1UpdateData(Sender: TObject);
var
 bm: Pointer;
 cds, cde: Variant;
begin
  with dxMemData1 do begin
    dxMemData1.DisableControls;
    bm := dxMemData1.GetBookmark;
    try
      cds := FieldByName('ds').Value;
      cde := FieldByName('de').Value;
      // Если изменилась дата начала периода
      if cds <> FieldByName('ds').OldValue then begin
        // Если первая запись, не даем менять дату начала периода
        if RecNo = 1 then begin
          Edit;
          FieldValues['ds'] := FieldByName('ds').OldValue;
          Post;
        end else begin
          Prior;
          Edit;
          FieldValues['de'] := cds;
          Post;
        end;
      // Если изменилась дата конца периода
      end else if cde <> FieldByName('de').OldValue then begin
        // Если последняя запись, не даем менять дату конца периода
        if RecNo = RecordCount then begin
          Edit;
          FieldValues['de'] := FieldByName('de').OldValue;
          Post;
        end else begin
          Next;
          Edit;
          FieldValues['ds'] := cde;
          Post;
        end;
      end else
        Exit;
 
      GotoBookmark(bm);
    finally
      FreeBookmark(bm);
      EnableControls;
    end;
  end;
end;
 
end.

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 11:44 31-08-2007
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress 2
ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru