zoukankan      html  css  js  c++  java
  • TcxScheduler的使用

    TcxScheduler有两种工作模式:

      一、非绑定模式

      非绑定模式下,数据被存储在文件系统中。要让scheduler工作在非绑定模式下,应使TcxScheduler.Storage属性绑定到TcxSchedulerStorage部件

      考虑到用户在不同的资源下安排用户事件,分如下步骤:

      1.定义不同的计划资源:

      在TcxSchedulerStorageResources.itmes创建2个资源,分别为其命名并将TcxSchedulerStorageResourceItem.ResourceID属性设置为12

      2.在TCustomForm.OnCreateTCustomForm.OnDestroy事件中:

    procedure TUnboundForm.FormCreate(Sender: TObject);

    const

    DlgMsg = 'There was no file found';

    FileName = 'c:unbound.dat';

    begin

    if FileExists(FileName) then

    // load the data from the file when the application starts up

    Storage.LoadFromFile(FileName)

    else

    ShowMessage(DlgMsg);

    end;

    procedure TUnboundForm.FormDestroy(Sender: TObject; var Action: TCloseAction);

    const

    FileName = 'c:unbound.dat';

    begin

    // save the data to the file when the application exits

    Storage.SaveToFile(FileName);

    end;

    3.下面的代码演示如何安排用户事件:

    with Storage.CreateEvent do

    begin

    // assign the newly created user event to the Nata Epelman resource

    ResourceID := 2;

    // specify the subject

    Caption := 'Anniversary';

    // this is the all-day event

    AllDayEvent := True;

    // synchronize with storage

    Post;

    end;

    每个TcxSchedulerEvent实例代表最终用户的一个事件,对应TcxStorage的一个记录。

      用户事件的开始与结束时间由TcxSchedulerEvent的start与finish属性(TDateTime类型,该类型的使用可参见http://masprb.blog.sohu.com/194187241.html)指定。

      用户事件如果是全天事件,由TcxSchedulerEvent的AllDayEvent属性指定(Boolean类型)。

      用户事件的标题、标签颜色、位置、细节、状态分别由TcxSchedulerEvent的Caption、LabelColor、Location、Message、State指定。

      TcxSchedulerStorage.CreateEvent过程创建一个TcxSchedulerEvent实例。

     绑定模式下,数据被存储在数据库系统中。要使scheduler工作在绑定模式下,应将TcxScheduler.Storage属性绑定到TcxSchedulerDBStorage部件。步骤如下:

    1.创建两个用以存储数据的表SchedulerTable、SchedulerResourcesTable,结构如下:

    create table schedulertable

    (

    ActualFinish int,

    ActualStart int,

    Caption varchar(255),

    EventType int,

    Finish datetime,

    ID int,

    LabelColor int,

    Location varchar(255),

    Message varchar(255),

    Options int,

    ParentID int,

    RecurrentceIndex int,

    RecurrenceInfo text,

    ReminderDate datetime,

    ReminderMinutesBeforeStart int,

    RemminderResourcesData text,

    ResourceID int,

    Start datetime,

    State int,

    TaskCompleteField int,

    TaskIndexField int,

    TaskLinksField text,

    TaskStatusField int

    );

    create table schedulerResourcesTable

    (

    ResourceID int,

    ResourceColor int,

    ResourceImageIndex int,

    ResourceName varchar(255)

    )

    insert into schedulerResourcesTable(ResourceID,ResourceName) values(1,'日常工作计划');

    insert into schedulerResourcesTable(ResourceID,ResourceName) values(2,'日常学习计划');

    2.控件的使用

      在窗体上分别放置2个DataSource与Table控件,如下图所示:

      

    3.控件的设置

      将cxSchedulerDBStorage的DataSource指向DS_Schduler,FieldNames中每个属性分别对应表中的相应字段。将cxSchedulerDBStorage的Resources的DataSource指向DS_Resource,ResourceColor、ResourceID、ResourceImageIndex、ResourceName分别指向表中相对应的字段。

    4.创建user event的示例代码:

    with SchedulerDBStorage.CreateEvent do

    begin

    ResourceID := 1; // assign the newly created user event to the Lesli Gritts resource

    Caption := 'Birthday'; // specify the subject

    AllDayEvent := True; // this is the all-day event

    Post; // synchronize with storage

    end;

  • 相关阅读:
    mysql 常用函数
    JSP 分页代码
    day15(Mysql学习)
    day14(编码实战-用户登录注册)
    Bootstrap第3天
    Bootstrap第2天
    Bootstrap 第一天
    day13(JSTL和自定义标签&MVC模型&javaweb三层框架)
    label 对齐
    Alert提示框之后跳转指定页面
  • 原文地址:https://www.cnblogs.com/hjsofware/p/7593915.html
Copyright © 2011-2022 走看看