Delphi语言实现专利年费记录在数据库中的构建

2013-12-19 02:14金立峰
关键词:表单专利权列表

金立峰 全 瑜

(绍兴市科技信息研究院,浙江 绍兴312000)

0 引言

专利年费是在专利权被授予后的期间内,专利权人为维持其专利权的有效性而在每年都应当缴纳的费用.

专利费用在专利权期限届满前终止.专利权人在其专利被授权之后,有缴纳专利年费的义务.而年费的数额是随着保护时间的增长而递增的,也就是说,每过一阶段(一般是几年),就要比前一阶段多缴纳一笔款.这样做的目的,是使年费在专利制度中起到经济杠杆的作用.如果专利权人认为他的专利权没有经济价值,他可以通过声明书面放弃专利权,提前终止专利权.若专利权人没有在规定期限内缴纳规定数额的年费,其专利权也会终止.专利权终止后,技术归入公知技术领域,成为社会公用技术,任何人都可以免费、自由使用.

专利年费的重要性是不言而喻的,而专利年费是专利事务所案件管理中最为复杂的环节,受案件类型、申请人、案件年限、年费分段及年费比例等诸多因素的影响.手工处理年费是非常繁琐及耗时的一件事情,特别是案件多的情况下,年费的计算、管理和查询往往要花费案件管理员非常多的时间和精力.因此实现专利事物管理系统工作电脑化,在专利事务所是非常必要的,是专利事务工作中的核心模块.

1 研究内容

专利年费功能是专利事物管理系统中的核心功能,在案件输入时根据各种案件信息自动生成年费数据.专利年费模块由前台应用软件和后台数据库构成,前台应用软件设计涉及年费部分主要有年费的生成、年费查询、年费列表预览、年费列表打印、相关年份年费通知等内容.后台数据库设计涉及年费部分主要由各种年费信息数据表单构成.本文研究内容只涉及年费记录的构建.

2 年费相关数据库表单设计

涉及年费的数据库表单有“年费比例表”“年费计算选项表”“年费列表”3个表单.

(1)年费比例表:该表单字段包括“案件类别”“阶段”(即年费时段)、“年费”(即年费额)、“始年份”和“终年份”.此表单为年费比例的参数表单,可以随着年费各项参数的变化进行适时改动.现今的年费比例各项参数设置如表1所示.

(2)年费计算选项表:该表单字段包括“案件类别”“申请人性质”“年数”(即专利年数)、“年费比例”“年费分段”(专利年限内不同时段费用不同,所以必须分段).此表单为年费计算的参数表单,可以随着专利缴费政策的改变而进行改变.现今年费计算的各项参数设置如表2所示.

(3)年费列表:该表单字段包括“申请案号”(即专利的申请案号)、“始日期”(专利年限内不同费用时期的开始时间)、“终日期”(专利年限内不同费用时期的结束时间)、“费用通知日期”(事务所用来通知专利权人交年费的时间,这里设置为提前30天)、“费用”“手续费(事务所每年代办手续的费用,这里设置为50元)”“年度”、“法律状态”(是指受理或授权等的状态).年费列表示例见表3.

3 案件年费计算

所谓的年费计算,主要是案件分年段的计算,即如何生成如表3所示的数据.分析年费表单可得,这里动态变化的字段是“始日期”“终日期”“费用通知日期”“费用”和“年数”.对于一个案件来讲,专利缴费年限一般为10年或者20年.因此对于一个案例在数据库中所占的记录也是10条或者是20条记录.

3.1 各动态字段的实现

3.1.1 yyyy-mm-dd格式的实现

表3所示,“始日期”“终日期”和“费用通知日期”都是yyyy-mm-dd格式,由于每台计算机操作系统的里面系统设置日期格式并不是都一样,需要统一格式转换成yyyy-mm-dd.

日期转换代码:

year1:=yearof(DateTimePicker1.Date);

month1:=inttostr(monthof(DateTimePicker1.Date));

day1:=inttostr(dayof(DateTimePicker1.Date));

if (strtoint(month1)<10)and(strtoint(day1)<10)then

else if (strtoint(month1)<10)and(strtoint(day1)>=10)then

else if (strtoint(month1)>=10)and(strtoint(day1)<10)then

else if (strtoint(month1)>=10)and(strtoint(day1)>=10)then

经过日期转换后,最终参数monthday值为“-mm-dd”格式,加上year1参数后实现了yyyy-mm-dd格式.

3.1.2 始日期、终日期、费用通知日期的实现

表3所示,终日期比始日期延迟一年,并提早1天.实现代码如下:

始日期字段值:inttostr(year1)+monthday;

终日期字段值:inttostr(strtoint(inttostr(year1+1)+monthday)-1);

费用通知日期比始日期提早30天,即费用通知日期字段值:始日期字段值-30.

3.1.3 费用的实现

表3所示,不同年份,费用的数额都在变化.对于费用的计算会涉及“年费比例表”和“年费计算选项表”这两个表单里面的参数.因此首先要弄清楚几个数据库控件与相应数据库表单之间的关系.

Query1:数据集query控件,连接“年费列表”表单.

Query2:数据集query控件,连接“年费比例表”表单.

Table1:数据集table控件,链接“年费计算选项表”表单.

费用的计算代码如下:

申报案件在1~3年内,政策规定只收取相应比例的费用:

Query1.FieldByName(‘费用’).AsFloat:=query2.FieldByName(‘年费’).Value * table1.FieldByName(‘年费比例’).Value;

申报案件超出3年,需收取全额费用:

Query1.FieldByName(‘费用’).AsFloat:=query2.FieldByName(‘年费’).Value.

3.1.4 年度的实现

表3所示,年份值随着记录递增.考虑专利类型不同,有10年或20年两种.年度的记录主要是通过“年费计算选项表”的“年数字段”使用for语句实现.

实现代码:

i:=table1.FieldByName(‘年数’).Value;

for j:=1 to i do

query1.FieldByName(‘年度’).value:= j;

3.2 年费列表记录构建

每个案件在年费列表中都以10条或者20条的记录表示,每条记录的字段实现在3.1中已经表述.在动态实现各字段的基础上,根据不同案件来实现记录的生成.实现过程如下:

通过table1数据集打开“提前通知选项表”,定位到案件对应的“案件类别”和“申请人性质”字段值.

设置整形参数i和j,其中i:=table1.FieldByName(‘年数’).Value;

通过query2数据集打开“年费比例表”,筛选出对应案件的记录,并以“阶段”字段的升序排列,并定位到第一条数据.

year1:=yearof(DateTimePicker1.Date);

for j:=1 to i do

begin

query1.insert;

(年度、申请案号、始日期、终日期、法律状态、手续费、通知费用日期字段填入相应的相对应的值.其中第一年的年费在申报专利时已经交掉,因此不需要记录对应的通知费用日期字段值,只需从第二年开始记录.)

if (j>=query2.FieldByName(‘始年份’).Value)and(j<=query2.FieldByName(‘终年份’).Value) then

begin

if j<=3 then

(收取相应比例的年费)

else

(收取相应全额年费)

end

else

begin

(进入年费比例表下一阶段,并进行年费全额年费记录)

end;

query1.Post;

year1:=year1+1;

end.

4 结束语

专利年费计算模块通过在数据库中创建“年费比例表”和“年费计算选项表”2个参数表单,结合程序代码,设置程序运行参数,用精简的语句实现专利年费的记录,有效提升了程序执行效率,解决了专利系统软件中核心模块功能的设计.

猜你喜欢
表单专利权列表
电子表单系统应用分析
学习运用列表法
扩列吧
论实用新型专利权终止对同日申请的发明专利授权的影响
——兼评专利法第九条
浅谈网页制作中表单的教学
论FRAND原则对标准必要专利权行使的限制
论专利权无效判定的基础
专利权与生命权如何平衡?——白血病患者陆勇案引发思考
列表画树状图各有所长
不含3-圈的1-平面图的列表边染色与列表全染色