TMS TDBPlanner的使用介绍

2024-04-06 02:58
文章标签 使用 介绍 tms tdbplanner

本文主要是介绍TMS TDBPlanner的使用介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TMS TPlanner and TDBPlanner日程与日历组件主要用来设计各种不同类型的计划日程应用程序。该组件已连续3年获得“Delphi Informant杂志读者选择奖”的最佳日程与日历组冠军。但是该组件唯一的缺点就是缺少帮助文件,只有一个英文的TMS Planner developers guide 使用文档。演示程序也不是很详细。近来因需要研究了一下TDBPlanner,感觉确实是很棒的组件,无须写太多代码就可以很轻松的将数据库与TDBPlanner绑定,直接在TDBPlanner上对数据库进行操作。下面就将一些使用心得介绍给大家。

一、              相应的组件介绍

(一)  TDBPlanner组件

TDBPlanner主要由12个显示区域和方式构成(如下图):

1.        TPlanner caption:表格标题。可通过Planner caption属性进行设置,可以选择是否显示。

2.        TPlanner navigator buttons:列导航按钮。可通过Planner NavigatorButtons属性进行设置,可以选择是否显示。

3.        TPlanner sidebar:工具条,可通过PlannerSidebar属性进行设置,可以选择是否显示。它可以设置在表格的左边、右边、顶部及左右两边同时显示。

4.        TPlanner header:表格头。可通过PlannerHeader属性进行设置,可以选择是否显示。

5.        TPlanner grid:表格主体。可通过PlannerDisplay属性进行设置。

6.        TPlannerItem:日程条目。条目通用显示方式,标题包括时间和文本。可在DefaultItem中进行设置。

7.        TPlannerItem:日程条目。超文本显示方式,标题为固定文本。

8.        TPlannerItem:日程条目。HTML显示方,该方式可以插入超文本链接。

9.        TPlanner footer:表格尾。通过进度条显示该列资源情况。

10.    TPlannerItem:可以在表格头显示的日程条目。

11.    TPlannerItem:背景日程条目。

12.    通过定制画出的表格头。

    可通过SidebarPosition属性设置Planner是横向显示还是竖向显示。

 

(二)  TDBDaySource组件

TDBDaySource组件是数据控件和TDbPlanner控件之间的桥梁,通过它可以将数据库字段与TDbPlanner的一些显示属性关联起来。

主要属性如下:

属性

说明

AutoHeaderUpdate

自动将日期数据填充到TDbPlanner的表格头。

AutoIncKey

当数据库主键使用自动增量时,应设置该值为true,这样TDBDaySourcedoes将不会自动产生一个GUID的主键值。

如果数据库主键不使用自动增量,则应当将该值设置为false,这样当增加一个Item的时候,TDBDaySourcedoes将自动产生一个GUID作为数据库的主键值。

DataSource

设置数据源

Day

设置TDbPlanner第一列的日期值

EndTimeField

设置保存结束时间的字段

KeyField

设置主键字段

NotesField

设置TPlannerItem的文字内容字段

StartTimeField

设置保存开始时间的字段

SubjectField

设置TPlannerItem的的标题字段

 

 

二、              演示程序

1、  数据库设置

在数据库中必需存在一下三个字段:

字段

类型

说明

开始时间

(StartTime)

全日期/时间

如果数据库不支持全日期/时间类型可以用长度位20的字符类型代替

结束时间

(EndTime)

全日期/时间

如果数据库不支持全日期/时间类型可以用长度位20的字符类型代替

主键(Key)

字符或者自动增量

如果是字符类型则长度需要为40,可参考TDBDaySource组件的AutoIncKey属性

当然了,为了记录日程信息,还需要以下两个字段:

字段

类型

说明

日程内容

(Notes)

字符或备注

 

日程标题

 (Sbuject)

字符

该字段可要可不要,因为在默认编辑状态下(不使用编辑控件),日程标题是不可修改的。

以上字段你可以通过TDBDaySource组件的属性关联起来,这样当TDbPlanner的属性内容发生改变的时候可以自动更新这些字段。

如果你还需要记录其它额外信息,可通过DBItemSource.OnFieldsToItem DBItemSource.OnItemToFields事件设置字段值。

例如:

下面的代码将映射数据库的COLOR字段到TPlannerItemColor属性,IMAGE字段映射到TPlannerItemImageID字段,CAPTION字段设置TPlannerItem的标题显示。

procedure TForm1.DBDaySource1FieldsToItem(Sender: TObject; Fields:TFields;Item: TPlannerItem);

begin

Item.Color := TColor(Fields.FieldByName('COLOR').AsInteger);

Item.CaptionBkg := Item.Color;

Item.ImageID := Fields.FieldByName('IMAGE').AsInteger;

if Fields.FieldByName('CAPTION').AsBoolean then

Item.CaptionType := ctTime

else

Item.CaptionType := ctNone;

end;

procedure TForm1.DBDaySource1ItemToFields(Sender: TObject; Fields:TFields;

Item: TPlannerItem);

begin

Fields.FieldByName('COLOR').AsInteger := Integer(Item.Color);

Fields.FieldByName('CAPTION').AsBoolean := Item.CaptionType =ctTime;

Fields.FieldByName('IMAGE').AsInteger := Item.ImageID;

end;

 

2、  程序设计

数据库建立后就可以开始建立演示程序了。

Form1上各放置一个TAdoConnection控件、TADOTable控件、TDataSource控件、TDBDaySource控件和TDBPlanner控件。

各控件属性设置如下:

a)         TADOConnection

属性

说明

ConnectionString

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Persist Security Info=False

 

LoginPrompt

False

 

Connected

True

 

 

b)        TADOTable

属性

说明

Connection

ADOConnection1

 

TableName

Test

 

Active

True

 

 

c)        TDataSource

属性

说明

DataSet

ADOTable1

 

 

d)        TDBDaySource

属性

说明

AutoIncKey

True

因为使用了自动增量作为主键,所以这里要设置为True

DataSource

DataSource1

 

StartTimeField

StartTime

 

EndTimeField

EndTime

 

KeyField

ID

 

SubjectField

Sunject

 

NotesField

Notes

 

AutoHeaderUpdate

True

 

DateFormat

yyyy-mm-dd

 

Day

2005-3-16

 

 

e)         TDBPlanner

属性

说明

Align

alClient

 

AutoInsDel

True

允许自动增加和删除Item

DefaultItem.CaptionType

ctTime

 

DefaultItem.ShowDeleteButton

True

显示TPlannerItem的删除按钮,这样可以直接删除TPlannerItem,同时也在数据库中删除了该记录。

EditDirect

True

允许在TDBPlanner上直接编辑Item

Sidebar.Position

spLeftRight

 

ItemSource

DBDaySource1

与数据库关联

 

要在TDBPlanner直接添加一个日程条目,只需在TDBPlannerRightClick中添加以下代码就行了:

    with DBPlanner1.CreateItemAtSelection do

    begin

        update;

    end;

如果不想右击鼠标添加条目,你也可以采用其它办法。

注意的地方就是添加的办法有两种:TDBPlanner.CreateItem and DBPlanner.CreateItemAtSelectionCreateItem需要你指定开始时间、结束时间。而CreateItemAtSelection则是在选择区域内建立。

删除日程条目可通过TDBPlanner.FreeItem(APlannerItem: TPlannerItem)操作删除。

修改日程的内容可直接单击条目修改。

是不是很方便,很简单就能实现一般的应用?在组件包中还提供了TSimpleItemEditorTDefaultItemEditorTPeriodItemEditor三个编辑控件对日程条目进行编辑,而且可以通过TPlannerRecurrencyEditor对弹出窗口进行语言设置。

演示程序源码: 下载

这篇关于TMS TDBPlanner的使用介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/878835

相关文章

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Springboot 中使用Sentinel的详细步骤

《Springboot中使用Sentinel的详细步骤》文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,... 目录步骤 1: 添加 Sentinel 依赖步骤 2: 配置 Sentinel步骤 3: 定义受保护的

Python中Markdown库的使用示例详解

《Python中Markdown库的使用示例详解》Markdown库是一个用于处理Markdown文本的Python工具,这篇文章主要为大家详细介绍了Markdown库的具体使用,感兴趣的... 目录一、背景二、什么是 Markdown 库三、如何安装这个库四、库函数使用方法1. markdown.mark