CN103870252A - 资源管理方法和装置 - Google Patents
资源管理方法和装置 Download PDFInfo
- Publication number
- CN103870252A CN103870252A CN201210528693.2A CN201210528693A CN103870252A CN 103870252 A CN103870252 A CN 103870252A CN 201210528693 A CN201210528693 A CN 201210528693A CN 103870252 A CN103870252 A CN 103870252A
- Authority
- CN
- China
- Prior art keywords
- resource
- user
- type
- information
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种资源管理方法和装置,涉及通信领域。为解决现有技术用户无法根据需要改动资源对象,不便于用户使用的问题而发明。本发明公开的技术方案包括:用户需要自定义资源对象时,接收用户输入的资源类型信息;通过预设的用户控件根据所述资源类型信息新增并编辑资源类型;通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。该方案可以应用在资源管理等系统中。
Description
技术领域
本发明涉及通信领域,尤其涉及一种资源管理方法和装置。
背景技术
综合资源管理是网络运营管理的一个重要组成部分,通过采集各专业网络资源的动态信息,可以实现全网资源的统计、容量分析以及预警报告等;另外,可对网络的运营维护提供网络资源的生命周期管理。
现有技术资源管理方案包括:采用传统的软件工程开发模式,用户提出综合资源管理需求后,开发商进行需求分析、系统和模型设计、编码、产品测试发布,最终提交实现具备资源管理能力的系统。
然而,使用上述具备资源管理能力的系统实现资源管理时,由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用。
发明内容
本发明的实施例提供一种资源管理方法和装置,能够根据需要任意改动资源对象,方便用户使用。
一方面,提供一种资源管理方法,包括:用户需要自定义资源对象时,接收用户输入的资源类型信息;通过预设的用户控件根据所述资源类型信息新增并编辑资源类型;通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。
另一方面,提供一种资源管理装置,包括:
类型接收模块,用于用户需要自定义资源对象时,接收用户输入的资源类型信息;
类型编辑模块,用于通过预设的用户控件根据所述资源类型信息新增并编辑资源类型;
加载模块,用于通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。
本发明实施例提供的资源对象管理方法和装置,在用户需要自定义资源对象时,能够根据用户输入的资源类型信息在资源管理界面进行初始化加载,从而实现资源管理。由于能够在实践中根据需要进行定制,使得本实施例提供的技术方案解决了现有技术中由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的资源管理方法的流程图;
图2为本发明实施例二提供的资源管理方法的流程图;
图3为本发明实施例三提供的资源管理方法的流程图一;
图4为本发明实施例三提供的资源管理方法的流程图二;
图5为本发明实施例四提供的资源管理方法的流程图;
图6为本发明实施例五提供的资源管理方法的流程图;
图7为本发明实施例六提供的资源管理方法的流程图;
图8为本发明实施例七提供的资源管理方法的流程图;
图9为本发明实施例八提供的资源管理装置的结构示意图一;
图10为本发明实施例八提供的资源管理装置的结构示意图二;
图11为本发明实施例八提供的资源管理装置的结构示意图三;
图12为本发明实施例八提供的资源管理装置的结构示意图四;
图13为本发明实施例八提供的资源管理装置的结构示意图五;
图14为图9所示的的资源管理装置中加载模块的结构示意图;
图15为本发明实施例八提供的资源管理装置的结构示意图六;
图16为本发明实施例八提供的资源管理装置的结构示意图七。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种资源管理方法和装置,能够解决现有技术用户无法根据需要改动资源对象,不便于用户使用的问题。
实施例一
如图1所示,本发明实施例提供的资源管理方法,包括:
步骤101,用户需要自定义资源对象时,接收用户输入的资源类型信息。
在本实施例中,资源管理系统预先可以不定义任何资源对象;为了方便用户使用,该系统也可以预先定义一些资源基础对象,如任务、日程、活动、员工、组织和文件等;该资源基础对象可以初始化在资源对象类型表M_ResourceType中。其中,资源对象类型表M_ResourceType可以通过ResGuid(nvarchar(100))字段存储资源类型GUID、Name(nvarchar(100))字段存储资源类型名称、NewURL(nvarchar(200))字段存储资源新增或查看界面的反射路径、SearchURL(nvarchar(MAX))字段存储资源视图展示界面的反射路径、Remark(nvarchar(100))字段存储备注说明、CreateInID(bigint)字段存储创建人编号、CheckInID(bigint)字段存储录入人编号或CheckInTime(datetime)字段存储录入时间等;M_ResourceType也可以通过其他字段存储资源类型,在此不再一一赘述。
在本实施例中,当用户需要使用的资源对象不在系统提供的资源基础对象中时,用户可以根据需要自定义资源类型——在资源管理界面输入自定义资源类型的属性和对象等资源类型信息,使本地能够接收到该资源类型信息。其中,在资源管理界面输入自定义资源类型的属性和对象等资源类型信息,可以为在资源管理界面输入用户新创建的资源类型信息,也可以为在资源管理界面根据用户自己之前添加过的资源类型输入的资源类型信息,还可以为在资源管理界面根据他人添加过的资源类型输入的资源类型信息,在此不再一一赘述。
步骤102,通过预设的用户控件根据资源类型信息新增并编辑资源类型。
在本实施例中,接收到用户输入的资源类型信息后,可以通过预设的用户控件ctlNewResource新增并编辑自定义的资源类型;新增的资源类型可以存储在对象类型表M_ResourceType中,可以设置唯一资源类型GUID,该资源类型GUID可以存储在对象类型表M_ResourceType中的ResGuid字段中。该用户控件ctlNewResource还可以包含控件ctlAttributeList,用户控件ctlNewResource可以包含用于读取或新增的资源类型数据m_ResourceTypeData(类型为ResourceTypeData,为实体类)。
在本实施例中,在ctlAttributeList用户控件中可以分别使用lstFruitDatas(类型为List<ResourceFieldData>,集合类)和lstFruitObjectDatas(类型为List<ResourceObjectData>,集合类)记录从m_ResourceTypeData中读取或者用户新增的属性和对象的集合。
在本实施例中,为了能够新增和编辑资源类型的属性和对象信息,m_ResourceTypeData的ListResourceFieldData(类型为List<ResourceFieldData>,为集合类)可以存储用户自定义的资源类型的属性信息,m_ResourceTypeData的ListResourceObjectDat(类型为List<ResourceObjectData>,为集合类)可以存储用户自定义的资源类型的对象信息;为了方便后期对自定义资源类型的追踪、维护,还可以通过m_ResourceType的CtreteID(类型为long)存储创建自定义资源类型的创建者,并通过m_ResourceType的CheckInID(类型为long)存储最后编辑修改自定义资源类型的人员编号。还可以在m_ResourceTypeData中的CustomCaption(类型为string)为用户将添加的对象和属性进行有效的结合形成简短的语句来显示对资源的简单描述;为了防止用户创建出错带来的问题,还可以通过ctlNewResource中的public bool ValidateData()验证方法来确保用户创建的自定义资源类型符合系统的要求。
在本实施例中,用户控件ctlNewResource中可以包括以下变量:私有变量m_ResourceFieldData(类型为ResourceTypeData,为实体类),和调用服务的静态变量_ITaaServer(类型为ITAAServer),结构为:private static ITAAServer _ITaaServer
{
get
{
if (PluginHelper.MainFrame == null) return null;
return PluginHelper.MainFrame.GetProxy<ITAAServer>();
}
}
步骤103,通过预设的构造函数读取和填充该资源类型的数据,并在资源管理界面进行初始化加载。
在本实施例中, 用户控件ctlNewResource可以提供多个构造函数来实现外部的调用实现资源管理界面的初始化加载,如public ctlNewResource(ResourceTypeData p_data, params bool[] p_readOnly)、public ctlNewResource(string p_strResGuid, DateTime p_checkintime, params bool[] p_readOnly)、public ctlNewResource(long id, params bool[] p_readOnly)和public ctlNewResource(string p_strResGuid, long p_kindId) 这些构造函数都是继承于public ctlNewResource(){InitializeComponent();txtName.Properties.MaxLength=100; InitEventHandler()}构造函数。
在本实施例中,可以使用单线程加载方法通过预设的构造函数读取和填充所述资源类型的数据;为了保证系统的流畅性,避免用户在打开界面时,出现界面假死的情况,还可以在用户控件ctlNewResource中,使用多线程加载方法通过预设的构造函数读取和填充所述资源类型的数据;该多线程加载方法主要在用户控件中定义了多个BackGroundThread(后台线程处理)类,通过使用BackGroundThread中的IsBusy方法判断线程的是否忙,通过Start方法来实现线程的调用,Start方法主要包含两个基本参数线程开始处理的方法名和线程结束时处理的方法名。
在本实施例中,用户需要对资源管理界面初始化加载后的资源对象进行修改删除等操作时,资源管理系统可以在ctlNewResource中通过ctlAttributeList中抛出的删除属性对象事件ctlAttributeList1.DeleteItem += new EventHandler(ctlAttributeList1_DeleteItem);也可以在ctlNewResource中通过ctlAttributeList中编辑属性和对象事件ctlAttributeList1.AddTextItem += new AddOrEditTextItem(ctlAttributeList1_AddTextItem)。其中,用户添加对象时,在资源管理界面可以提供“为集合”选项,方便实际使用中包括一个使用对象包含多个东西的情况;比如在使用过程中需要添加多个文件在目标对象时,可以在添加该目标对象时勾选“为集合”选项。
用户可以通过对属性和对象的列表中内容的拖拽完成【自动组合资源名称】的组合,在控件初始化的时候定义拖拽方法DragViewManager m_DragViewManager = new DragViewManager(textEdit1, false, true);,通过定义m_DragViewManager的拖拽事件实现功能。在拖拽事件中又调用了私有方法SetDropText方法。SetDropText方法通过获取光标位置的坐标和文本框中现有文字的长度,放置拖拽的内容,方法内容如下:
void SetDropText(string strtext, string type)
{
if (string.IsNullOrEmpty(strtext)) return;
Graphics g = textEdit1.CreateGraphics();
int curs = textEdit1.PointToClient(Cursor.Position).X;
SizeF stringSize = g.MeasureString(textEdit1.Text, textEdit1.Font);
int length = textEdit1.Text.Length;
if (length == 0)
{
textEdit1.Text += "[" + strtext + "]";
}
else
{
float f = (curs / (stringSize.Width / length));
int le = (int)(curs / ((int)stringSize.Width / length));
if (f > (int)f + 0.5)
le += 1;
if (textEdit1.Text.Length <= le)
textEdit1.Text += "[" + strtext + "]";
else
textEdit1.Text = textEdit1.Text.Insert(le, "[" + strtext + "]");
}
//textEdit2.Text += ReadIniText(type);
textEdit1.Update();
textEdit2.Update();
}
上述的m_ResourceTypeData主要结构如下:
设计自定义资源属性控件位置
[DataMember]
public string FieldsDesiger
添加URL: 表示详细信息界面路径[可新增可查看],用“|”隔开,第一个代表URL,第二个代码参数,第三个代表xml文件路径(或编号)
用户自定义对象的描述
[DataMember]
public string CustomCaption
自定义属性数据
[DataMember]
public List<ResourceFieldData> ListResourceFieldData
自定义对象数据
[DataMember]
public List<ResourceObjectData> ListResourceObjectData
跟踪提醒数据
[DataMember]
PublicList<Server.ITAAService.Entity.UserDefinedEntity.TrackAwakeData> ListTrackAwakeData
本实施例提供的资源管理方法,可以通过上述过程实现资源管理;该过程主要包括通过对用户控件以及资源管理服务端的调用实现的。其中,通过对资源管理服务端的调用可以完成资源对象的添加、修改和删除等操作,该资源管理服务端采用的是windows通讯接口(Windows Communication Foundation,WCF)服务,为server后视图部署的服务端。
本发明实施例提供的资源对象管理方法,在用户需要自定义资源对象时,能够根据用户输入的资源类型信息在资源管理界面进行初始化加载,从而实现资源管理。由于能够在实践中根据需要进行定制,使得本实施例提供的技术方案解决了现有技术中由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用的问题。
实施例二
如图2所示,本发明实施例提供的资源管理方法,该方法与图1所示的相似,区别在于,还包括:
步骤104,根据预设的验证方法确定资源类型是否符合要求。
在本实施例中,可以通过ctlNewResource中的public bool ValidateData()验证方法来确定用户创建的自定义资源类型是否符合系统的要求;也可以通过其他验证方法确定资源类型是否符合要求,在此不再一一赘述。
此时,步骤103具体为,如果符合,通过预设的构造函数读取和填充该资源类型的数据,并在资源管理界面进行初始化加载。
本发明实施例提供的资源对象管理方法,在用户需要自定义资源对象时,能够根据用户输入的资源类型信息在资源管理界面进行初始化加载,从而实现资源管理。由于能够在实践中根据需要进行定制,使得本实施例提供的技术方案解决了现有技术中由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用的问题。并且,在初始化加载之前,首先确定资源类型是否符合要求,能够避免由于用户创建资源类型出错带来的问题。
实施例三
如图3所示,本发明实施例提供的资源管理方法,包括:
步骤301,用户需要自定义资源对象时,接收用户输入的资源类型信息。该步骤与图1所示的步骤101相似,在此不再一一赘述。
步骤302,从资源类型信息中获取资源属性信息和资源对象信息。
在本实施例中,为了便于构造函数读取资源类型的数据,可以首先通过步骤302从资源类型信息中获取资源属性信息和资源对象信息。可以通过用户控件ctlAttributeList中存储的public List<ResourceFieldData> GetResourceFieldDatas()从资源类型信息中获取资源属性信息,可以通过用户控件ctlAttributeList中存储的public List<ResourceObjectData> GetResourceObjectDatas()从资源类型信息中获取资源对象信息;还可以通过其他方式从资源类型信息中获取资源属性信息和资源对象信息,在此不再一一赘述。
步骤303,通过预设的用户控件根据该资源属性信息和资源对象信息新增并编辑资源类型。该步骤与图1所示的步骤102相似,在此不再一一赘述。
步骤304,通过预设的构造函数读取和填充资源类型的数据,并在资源管理界面进行初始化加载。该步骤与图1所示的步骤103相似,在此不再一一赘述。
进一步的,为了时用户能够在资源管理界面添加除资源属性和资源对象外的其他可用项,本实施例提供的资源管理方法,如图4所示,还可以包括:
步骤305,通过预设的用户控件判断资源类型信息是否包括除资源属性信息和资源对象信息外的可用资源信息。
在本实施例中,可用资源信息可以为密级属性信息,也可以为数量单位属性信息,还可以为定时提醒属性信息等,在此不作限制。其中,用户控件ctlAttributeList可以不对不同类的可用资源信息的个数进行限制;也可以进行限制,如:由于密级属性信息表示可以让用户设置多个人员和对象,数量单位属性信息表示资源的个数,因此密级属性信息和数量单位属性信息可以设置为一个;由于定时提醒属性信息对属性设置的定时提醒,因此可以为多个。
在本实施例中,可以通过调用用户控件ctlAttributeList中的bool IsHaveMiji()判断资源类型信息中是否包括密级属性信息;可以通过调用用户控件ctlAttributeList中的bool IsHaveTrake()判断资源类型信息中是否包括定时提醒属性信息;可以通过调用用户控件ctlAttributeList中的bool IsHaveCount()判断资源类型信息中是否包括数量单位属性信息。
此时,步骤303具体为,如果包括,通过预设的用户控件根据资源属性信息和资源对象信息及可用资源信息新增并编辑资源类型。
在本实施例中,用户为自定义的资源类型添加属性和对象时,该资源类型中的所有属性和对象是唯一的。上述的ResourceFieldData和ResourceObjectData结构如下:
ResourceFiledData主要结构于表结构相同,以下是ResourceFiledData的主要扩展内容:
[DataMember]
public List<Server.ITAAService.Entity.UserDefinedEntity.TrackAwakeData> ListTrackAwakeData
public override string ToString()
{
if (string.IsNullOrEmpty(FieldName)) return string.Empty;
return FieldName;
}
}
ResourceObjectData主要结构于表结构相同。
在本实施例中,用户自定义资源类型中的资源对象时,可以涉及到资源对象类型表M_ResourceType、对象属性表M_ResAttributes、对象属性值表M_ResourceField、关联对象表M_ResourceObject、关联对象值表M_ResourceObjectValue等数据库表。
其中,对象属性表M_ResAttributes存放自定义资源对象所具有一般属性,比如名称、地点、购入时间等;字段可以包括:表示属性ID的AtrributeID(bigint)、表示资源类型编号的ResTypeID(nvarchar(100))、表示名称的Name(nvarchar(100))、表示备注描述的Remark(nvarchar(500))、表示打开空间的URL的CtlURl(nvarchar(500))、表示参数的Param(nvarchar(500))(noshow表示不显示)等,在此不再一一赘述。
对象属性值表M_ResourceField存放自定义资源对象对应属性的具体值;字段可以包括:表示属性值ID FieldID(bigint)、表示资源类型编号ResTypeID(nvarchar(100))、表示类别编号KindID(bigint)(KindID>0表示某资源某类别属性,反之表示某资源属性)、表示名称FieldName(nvarchar(100))、表示属性类型FieldType(smallint)(整数类型 :0,小数类型:1,文本类型:2,日期类型: 3,判断类型:4,大文本类型: 5,空: 6,数字单位:7,货币:8,地点:9,数据字典:10,定时提醒 : 11,密级:12,数量单位:13)、表示是否必填Isessential(bit)、表示备注描述Remark(nvarchar(500))、表示对应数据字典类型或数量的单位EnumGuid(nvarchar(100))、表示最大值MaxValue(decimal(12, 2))、表示最小值MinValue(decimal(12, 2))、表示录入用户CheckInID(bigint)、表示录入时间CheckInTime(datetime)等,在此不再一一赘述。
关联对象表M_ResourceObject存放自定义资源对象与其他资源对象(包含自定义资源对象或基本资源对象)的关系数据;字段可以包括:表示对象ID ObjID(bigint)、表示名称ObjName(nvarchar(100))、表示资源类型ID ResTypeID(nvarchar(100))、表示关联对象类型ObjType(smallint)(0表示主对象,1表示关联对象)、表示关联对象资源类型ObjResGuid(nvarchar(100))、表示类别编号KindID(bigint)(KindID>0表示某资源某类别属性,反之表示某资源属性)、表示备注描述Remark(nvarchar(500))、表示是否必填Isessential(bit)、表示空间的url ControlURL(nvarchar(1000))、表示是否为集合类IsList(bit)、表示录入用户的ID CheckInID(bigint)、表示录入时间CheckInTime(datetime)、表示是否用菜单添加IsMenu(bit)等,在此不再一一赘述。
关联对象值表M_ResourceObjectValue存放自定义资源对象与其他资源对象(包含自定义资源对象或基本资源对象)的有关系具体数据;字段可以包括:表示对象值ID ID(bigint)、表示资源编号ResID(bigint)(可在此表中检索最大值递增)、表示资源类型编号ResTypeID(nvarchar(100))、表示字段编号ObjID(bigint)(对应M_ ResourceField中主键)、表示存放字符型数据值RelResID(bigint)、表示资源对象最后编辑的时间ResCheckInTime(datetime)、表示备注描述Remark(nvarchar(MAX))、表示录入用户ID CheckInID(bigint)、表示录入时间CheckInTime(datetime)等,在此不再一一赘述。
本发明实施例提供的资源对象管理方法,在用户需要自定义资源对象时,能够根据用户输入的资源类型信息在资源管理界面进行初始化加载,从而实现资源管理。由于能够在实践中根据需要进行定制,使得本实施例提供的技术方案解决了现有技术中由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用的问题。并且,在初始化加载之前,首先确定资源类型是否符合要求,能够避免由于用户创建资源类型出错带来的问题。
实施例四
如图5所示,本发明实施例提供的资源管理方法,该方法与图1所示的相似,区别在于,还包括:
步骤105,用户在资源类型的目标属性中添加或编辑定时提醒功能时,根据该目标属性显示对应的可选提醒条件。
在本实施例中,用户为资源类型的目标属性添加或编辑定时提醒时,为了方便使用,资源管理系统可以根据该目标属性的类型显示对应的可选提醒条件。该可选提醒条件可以为每个几天提醒、每周的某一天或某几天提醒、某个月或某几个月中的某天(某几天)提醒等,在此不作限制。
步骤106,接收用户从该可选提醒条件中选取的目标提醒条件。
在本实施例中,资源管理系统显示可选提醒条件后,用户可以根据需要从可选提醒条件中选取目标提醒条件,使资源管理系统能够接收该目标提醒条件。其中,通过可选提醒条件选择了大致的提醒时间后,可以通过设置目标提醒条件进行提醒时间和提醒内容的具体设置。
步骤107,获取该目标提醒条件对应的目标属性值。
步骤108,目标属性的属性值达到目标属性值时,显示定时提醒。
在本实施例中,资源管理系统可以为用户提供两种定时提醒方式,分别是定期提醒功能和对某一属性值达到某范围时进行提醒或者是对某一属性值增量/减量达到某一值时进行提醒。其中定期提醒功能是针对自定义资源类型或某具体自宝义资源对象数据;对某一属性值达到某范围时进行提醒和对某一属性值增量/减量达到某一值时进行提醒只针对于属性(除文本类型外的所有属性),可以是自定义资源类型定义时的属性,也可以是具体自定义资源对象的某属性值。
在本实施例中,定时提供功能可以通过用户控件ctlAttributeList实现。可以通过用户控件ctlAttributeList中_lstTrackDatas(类型为List<TrackAwakeData>,集合类)存储定时提醒数据。用户操作的定时提醒功能为通过用户控件MessageView实现的,用户控件MessageView可以通过public void FillData(List<TrackAwakeData> datas)填充数据,可以通过public List<TrackAwakeData> GetData()获取用户添加或编辑的定时提醒数据。
在本实施例中,TrackAwakeData实体结构与对应的表结构相同,TrackAwakeData主要扩展结构如下:
对象实体
[DataMember]
public List<ResourceObjectData> Objectdata
接收者
[DataMember]
public List<TrackAwakeAcceptData> RelationAccept
在本实施例中,用户添加定时提醒功能时,可能涉及到定时提醒设置表M_TrakeAwake、消息接收者表M_TrakeAwake、资源值改变表M_TrakeAwakeValue等数据库表。
其中,定时提醒设置表M_TrakeAwake用于存储用户添加的定时提醒数据;字段可以包括:定时提醒设置ID ID(bigint)、资源编号ResID(bigint)、资源类型ResGuid(nvarchar(100))、资源属性编号FieldID(bigint)、提醒属性值FieldValue(nvarchar(MAX))、提醒方式AwakeType(smallint)(定期/增量/范围)、运算符Operator(smallint) (小于等于,大于等于,大于,小于,等于,不等于)、周期性Periodicity(smallint) (无,每日,每周,每月,每年,指定)、提醒内容AwakeText(nvarchar(200))、上次提醒时间LastAwakeTime(datetime)、备注Remark(nvarchar(MAX))、数据状态DataStatus(smallint) (正常、注销)、录入人员ID CheckInID(bigint)、录入时间CheckInTime(datetime)等,在此不再一一赘述。
消息接收者表M_TrakeAwake用于存储用户添加的定时提醒数据时关联的提醒对象数据;字段可以包括:消息接收者ID ID(bigint)、提醒设置ID TrackAwakeID(bigint)、消息接收者类型AcceptType(smallint)(0:员工,1:部门,2:岗位,3:资源角色人)、消息接收者ID AcceptID(bigint)等,在此不再一一赘述。
资源值改变表M_TrakeAwakeValue用于存储最近将要提醒的资源;字段可以包括:资源值改变ID ID(bigint)、资源编号ResID(bigint)、资源类型ResGuid(nvarchar(100))、资源属性编号FieldID(bigint)、上一次改变值LastValue(nvarchar(100))、资源改变值ChangeNum(decimal(12, 2))、录入人员ID CheckInID(bigint)、录入时间CheckInTime(datetime)等,在此不再一一赘述。
本发明实施例提供的资源对象管理方法,在用户需要自定义资源对象时,能够根据用户输入的资源类型信息在资源管理界面进行初始化加载,从而实现资源管理。由于能够在实践中根据需要进行定制,使得本实施例提供的技术方案解决了现有技术中由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用的问题。
实施例五
如图6所示,本发明实施例提供的资源管理方法,包括:
步骤601至步骤602,用户需要自定义资源对象时,根据用户输入的资源类型信息新增并编辑资源类型。上述步骤与图1所示的步骤101至步骤102相似,在此不再一一赘述。
步骤603,接收用户设置的该资源类型的布局信息。
在本实施例中,用户可以在新增或编辑资源类型时,点击“切换到设计视图”按钮,使用户可以自行对添加的资源类型中的属性和对象进行界面的布局,使资源管理系统接收用户设置的资源类型的布局信息。
步骤604,获取该布局信息对应的xml格式文件。
在本实施例中,资源管理系统接收到界面的布局信息后,可以根据该布局信息生成xml格式的文件,并存储到数据库中。
步骤605,通过预设的构造函数读取和填充所述资源类型的数据,并根据xml格式文件在资源管理界面进行初始化加载。
在本实施例中,可以通过用户控件FieldsDesigerControl实现自定义资源类型界面,该用户控件FieldsDesigerControl提供多个公共方法实现界面设计,如:对属性或对象的只读控制public bool IsReadOnly、清除界面上所有控件public void Clear()、获取所有的自定义控件public List<Field> Fields、添加控件public void AddField、添加集合控件public void AddList(string text, string param)等。
本发明实施例提供的资源对象管理方法,在用户需要自定义资源对象时,能够根据用户输入的资源类型信息在资源管理界面进行初始化加载,从而实现资源管理。由于能够在实践中根据需要进行定制,使得本实施例提供的技术方案解决了现有技术中由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用的问题。
实施例六
如图7所示,本发明实施例提供的资源管理方法,该方法与图1所示的相似,区别在于,还包括:
步骤109,接收用户对资源管理界面中资源的使用或操作的活动信息。
步骤110,记录该活动信息。
在本实施例中,为了让用户一目了然哪些是输入的资源、哪些是产出的资源,可以在活动时,将所有涉及到的操作对象都定义为资源对象,将用户新增、修改、删除等操作的全部自动记录下来作为活动的资源数据。其中,可以将上述资源对象在使用上分为五大类——工作成果、人力资源、设备工具、参考资源和消耗资源;同时还可以根据上述资源对象的实际属性分为实体物资资源和电子信息资源。
用户在进行活动时,对系统所有资源的使用和操作,都将被记录到活动的实际情况列表中,所有被记录的资源都被系统默认为是参考资源,用户可以根据使用中的实际情况将这些资源标记为其它类型或修改成实体物资资源(电子信息资源)。
当用户将一个或者多个资源对象标记为工作成果时,在活动必须要有实际输出,用户需要将之与某一项实际输出关联。
在系统中被设置为实际输出的资源又被分为四大类,分别是正品、副产品、佐证产品和失败产品。
当用户将一个资源对象作为实际输出时,系统会将这个资源对象默认做为副产品。用户可以根据实际的使用情况标记为其他类型的产品。
在用户将资源对象作为实际输出后,用户需要通过【添加变化说明】的链接为实际输出进行描述,添加的变化说明可以是简单的文本说明,也可以上传word文档与该实际输出关联,用以辅助变化说明。
当用户开始一个活动(非执行计划日程)时,系统会将默认的将当前用户作为人力资源添加到计划输入和实际输入中,并且不可以标记为其他类型的资源。
在系统中所有的资源对象数据都有历史数据保存,每一次对资源对象数据的操作都做一次保存记录。系统中做这样的设定是方便用户在日后追踪某条资源对象变化的时候能够快速准确的定位到位。
所有资源数据的主表都复制一个重复的表,作为历史表,并添加开始时间、结束时间两个字段,如果是最新的数据那么结束时间为空,开始时间表示这条数据产生的时间,结束时间表示这条数据被修改的时间,这时段也就是表示这条数据存在的时段。在主表上添加新增、修改、删除数据的触发器,当主表数据变化时,那么就会插入或更新对应历史表的数据。
在需要显示的历史数据的资源对象视图中,都会加入ctlHistory用户控件,控件中对外提供了构造函数public ctlHistory(long p_lResID, string p_strGuid);具体结构如下:
/// <summary>
/// 构造函数
/// </summary>
/// <param name="p_lResID">资源ID</param>
/// <param name="p_strGuid">资源Guid</param>
public ctlHistory(long p_lResID, string p_strGuid)
: this()
{
m_lResID = p_lResID;
m_strGuid = p_strGuid;
InitTaskCreateColumns();
}
而历史数据的读取是通过从事先写好的xml配置文档提取些类型资源对应的插件模块和对应的标识串,在通过BaseOperator类获取历史数据,BaseOperator类中提供了多种获取历史数据,具体方法如下:
/// 比较实体数据
/// </summary>
/// <param name="p_newid">新ID</param>
/// <param name="p_newTime">时间</param>
/// <param name="p_oldid"> 旧ID</param>
/// <param name="p_oldTime">时间</param>
/// <param name="p_WtGetEntityData">获取实体的方法</param>
/// <param name="p_FilterHistory">删选条件的方法</param>
/// <returns></returns>
public static HistoryDataCollection GetHistoryData(long p_newid, DateTime p_newTime, long p_oldid, DateTime p_oldTime, WtGetEntityData p_WtGetEntityData, WtFilterHistory p_FilterHistory)
/// 比较实体历史数据
/// </summary>
/// <param name="p_Newdata">新值</param>
/// <param name="p_Olddata">旧值</param>
/// <param name="p_FilterHistory">删选条件的方法</param>
/// <returns></returns>
public static HistoryDataCollection GetHistoryData2(object p_Newdata, object p_Olddata, WtFilterHistory p_FilterHistory)
/// 比较实体数据--用字符串返回
/// </summary>
/// <param name="p_newid">新ID</param>
/// <param name="p_newTime">时间</param>
/// <param name="p_oldid"> 旧ID</param>
/// <param name="p_oldTime">时间</param>
/// <param name="p_WtGetEntityData">获取实体的方法</param>
/// <param name="p_FilterHistory">删选条件的方法</param>
/// <returns></returns>
public static string GetstrHistoryData(long p_newid, DateTime p_newTime, long p_oldid, DateTime p_oldTime, WtGetEntityData p_WtGetEntityData, WtFilterHistory p_FilterHistory)
/// 比较实体历史数据--用字符串返回
/// </summary>
/// <param name="p_Newdata">新值</param>
/// <param name="p_Olddata">旧值</param>
/// <param name="p_FilterHistory">删选条件的方法</param>
/// <returns></returns>
public static string GetstrHistoryData2(object p_Newdata, object p_Olddata, WtFilterHistory p_FilterHistory)
/// 获取比较数据的string
/// </summary>
/// <param name="p_data"></param>
/// <returns></returns>
public static string GetstrHistoryData(HistoryDataCollection p_data)
或者通过系统PluginHelper类中的方法public static object CreateExtObj(string classname, Object[] oParam)获取历史数据;方法结构如下:
/// 反射辅助 创建对象[错误时返回Type]
<param name="classname">格式abc.dll(找control) 或 abc.dll,class1(找类) 或 class1(找类)</param>
/// <param name="oParam">构造函数的参数</param>
/// <returns></returns>
public static object CreateExtObj(string classname, Object[] oParam)
{
return ReflectHelper.CreateExtObj(classname, oParam);
}
上述所说的xml配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<objects>
<object>
<!--日程[通用]-->
<Guid>DF744BE8-D4D3-4297-A804-0780458B7110</Guid> <strUrl>System.TAALibrary.dll,System.TAALibrary.ResourceMethod,GetAgendaHistoryData</strUrl> <strUrl2>System.TAALibrary.dll,System.TAALibrary.ResourceMethod,GetstrAgendaHistoryData</strUrl2>
</object>
</objects>
本发明实施例提供的资源对象管理方法,在用户需要自定义资源对象时,能够根据用户输入的资源类型信息在资源管理界面进行初始化加载,从而实现资源管理。由于能够在实践中根据需要进行定制,使得本实施例提供的技术方案解决了现有技术中由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用的问题。
实施例七
如图8所示,本发明实施例提供的资源管理方法,该方法与图1所示的相似,区别在于,还包括:
步骤111,接收到用户对资源管理界面中目标资源对象的右击菜单操作时,显示数据传送位置。
步骤112,接收用户从数据传送位置中选取的目标传送位置。
步骤113,向目标传送位置复制所述目标资源对象对应的数据。
在本实施例中,用户可以方便地在各个资源对象视图上使用右击菜单把数据发送至日程输入、活动输入、活动输出中等,不需要进行界面切换;用户也可以方便地在资源对象上右击菜单复制数据,然后到相应的列表或文本框中粘贴数据,也可以在本地复制一个或多个文件,到相应列表中粘贴剪切板文件,那么本地文件就会自动上传并显示在列表中。
右击菜单中还有一个对象专用菜单,先拿到选中数据的资源类型,资源主键编号,资源版本,资源修订时间,然后根据资源类型到原先配置好的xml文件中提取些类型资源对应的插件模块和对应的标识串,然后将资源类型,资源主键编号,资源版本,资源修订时间,标识串以消息发送到相应插件模块中,相应插件模块接收消息后,根据资源数据返回相应的菜单。这样有利于菜单的重复使用,提高了开发效率,也可以使得菜单在不同的功能模块中使用。
例如日程Xml配置结构如下:
<ModuleUrls>
<moduleUrl>
<!—日程-->
<Guid>DF744BE8-D4D3-4297-A804-0780458B7110</Guid>
<Url>System.TAALibrary.dll|AgeContextMenu</Url>
<Image>日程.png</Image>
</moduleUrl>
</ModuleUrls>
在本实施例中,右击菜单相关功能可以放在基本右击菜单上统一实现,该实现基本右击菜单的类SysStripMenuData继承与接口类ISysStripMenu实现的。其中,在接口类ISysStripMenu中定义了常用的方法,该index的类型为枚举类型ClientMenuEnum;接口类ISysStripMenu的结构如下:
public interface ISysStripMenu
{
ToolStripItem GetStripItem(ClientMenuEnum index);
获取菜单项
void SetItemVisble(ClientMenuEnum index, bool IsVisble);
设置某个菜单项是否显示
void SetItemEnable(ClientMenuEnum index, bool IsEnable);
设置某个菜单项是否灰化显示
void InsertStripItem(ClientMenuEnum index, List<ToolStripItem> ites);
在某个菜单项后添加多个菜单项
void RemoveItem(ClientMenuEnum index);
移除某个菜单项
event ReceiveEventHand ReceiveEvent;
接收复制和拖拽的数据事件
List<ToolStripItem> AllStripItem {
get;
}
获取所有的菜单项
}
客户端公共菜单枚举
public enum ClientMenuEnum
{
未定义 = 0,
复制 = 1,
当前日程的输入 = 2,
当前活动的输入 = 3,
当前活动的输出 = 4,
我的收藏夹 = 5,
在消息中交流 = 6,
粘贴 = 7,
发送至 = 8,
Separator1 = 9,//“复制”上面的下划线
Separator2 = 10,//“打印”下面的下划线
系统对象 = 11,
剪贴板文件 = 12,
Separator3 = 13,
导出Excel = 14,
打印 = 15,
Separator4 = 16//“发送至”下面的下划线
}
在公共菜单类SysStripMenuData中,通过private void InitSysStripMenu()内部方法初始化了系统的默认的公共菜单项;通过private string GetQuickStr(ClientMenuEnum itemText)内部方法实现了系统中默认快捷键的绑定和使用;通过void CopyData(List<Dictionary<string, object>> pramas)实现了系统内部的资源复制应用;通过void PasteData(Control ctl)内部方法实现了对系统内部复制资源的粘贴和对电脑中剪切板资源的粘贴功能;公共菜单类SysStripMenuData主要结构如下:
public System.Windows.Forms.ToolStripItem GetStripItem(ClientMenuEnum index)
public void InsertStripItem(ClientMenuEnum index, List<ToolStripItem> ites)
public List<System.Windows.Forms.ToolStripItem> AllStripItem
public void SetItemVisble(ClientMenuEnum index, bool IsVisble)
public void SetItemEnable(ClientMenuEnum index, bool enable)
在系统中右键菜单的复制功能,所复制的数据都存放在系统的GlobalInstances.CopyDatas中,GlobalInstances.CopyDatas的结构如下:
//系统粘贴的数据
public static List<Dictionary<string, object>> CopyDatas = new List<Dictionary<string, object>>();
在本实施例中,为了方便资源对象在系统中的传递和记录,可以对资源对象列表的TAG使用统一的方式进行赋值。该TAG中赋值的数据结构如下:
Dictionary<string, object> newdic = new Dictionary<string, object>();
newdic["Name"] = _data.ResName;
newdic["CheckInTime"] = _data.ResCheckInTime;
newdic["Guid"] = _data.ResTypeID;
newdic["data"] = _data;
if (_data.ResID > 0)
newdic["ID"] = _data.ResID;
else
newdic["ID"] = 0;
if (_data.ResID <= 0)
newdic["SerializationID"] = _data.ResID;
else
newdic["SerializationID"] = 0;
newdic["Version"] = _data.Vesion;
newdic["ResTypeName"] = string.IsNullOrEmpty(_data.ResTypeName) ? ResourceHelper.GetResNameByGuid(_data.ResTypeID) : _data.ResTypeName。
在实际输出列表中,右键菜单会根据选中资源对象的类型(通过TAG中newdic["Guid"]获取到的资源类型)加载相应类型的资源菜单,这些都是通过资源对象管理类ResourceHelper类实现的。其中,ResourceHelper类中public static void GetDictionaryData(Dictionary<string, object> dic, ref string guid, ref long id, ref string name, ref DateTime checktime, ref short version)这个公共方法来解析系统中资源对象列表的Tag值。并通过多个方法获取各个资源对象类型的使用菜单:方法如下:
public static GoldNT.SSEIS.BasalControls.NewContextMenuStrip.newContextMenuStrip CreateResOperMenu(string Guid, params bool[] p_IsSelectRes)
在本实施例中,通过资源类型的Guid和是否为资源的参数来获取资源对象菜单
public static string GetMenuURL(string Guid)
根据资源类型的Guid获取资源特有的菜单的url
public static GoldNT.SSEIS.BasalControls.NewContextMenuStrip.newContextMenuStrip GetMyMenu(string guid, long id, Control control)
根据资源类型的Guid、资源id和菜单所在窗体来获取资源对象特有菜单
public static GoldNT.SSEIS.BasalControls.NewContextMenuStrip.newContextMenuStrip GetMyMenu(string guid, long id, DateTime time, long version, Control control)
根据资源类型的Guid、资源id、资源签入时间、资源版本和菜单所在窗体来获取资源对象特有菜单
public static GoldNT.SSEIS.BasalControls.NewContextMenuStrip.newContextMenuStrip GetMyMenu(Dictionary<string, object> dic, Control control)
根据所在窗体的列表中获得的Tag中的值来获取资源对象的特有菜单。
而资源对象的显示都是通过ResourceHelper中方法实现的,分别是:
以form或IWorkspaceItem的形式打开控件
<param name="control">要打开的控件</param>
<param name="p_ctl">父控件</param>
<returns>返回IWorkspaceItem</returns>
public static IWorkspaceItem ShowFormOrItemForControl(KeyValuePair<Control, string>? control, Control p_ctl)
以form或IWorkspaceItem的形式打开控件
<param name="control">要打开的控件</param>
<param name="p_ctl">父控件</param>
<param name="p_strGuid">操作对象guid</param>
<param name="p_lID">操作对象id</param>
<param name="p_lmodel">0表示新增,1表示修改,2表示查看,3表示克隆</param>
<returns>返回IWorkspaceItem</returns>
public static IWorkspaceItem ShowFormOrItemForControl2(KeyValuePair<Control, string>? control, Control p_ctl, string p_strGuid, long p_lID, short p_lmodel)
而右键菜单中显示的资源对象使用的菜单项都是各个模块在编写时抛出的公共方法,结构如下:
public class ResourcesContextMenuStrip : GoldNT.SSEIS.BasalControls.NewContextMenuStrip.newContextMenuStrip
{
Control m_ctl = null;
数据解析
public ResourcesContextMenuStrip(Dictionary<string, object> p_dic)
//菜单点击事件
void ResourcesContextMenuStrip_Click(object sender, EventArgs e)
初始化资源菜单
private void InitializeComponent()
要显示的菜单项
private ToolStripMenuItem tsmiLook;
private ToolStripMenuItem tsmiModify;
}
在系统中所有接收系统内粘贴数据的控件中,都会添加系统中公共的事件实现(tlview.ReceiveEvent += new ReceiveEventHand(ViewManager_ReceiveEvent)),结构如下:
void ViewManager_ReceiveEvent(object sender, ReceviceArges arges)
{
if (arges == null) return;
if (arges.IsSelfDrag) return;
FillDropData(arges.datas, true);
}
在本实施例中,对于系统中的所有列表展示,列表的眉头及列表数据样式采用的是配置文件的方式,配置文件可以为:
<?xml version="1.0" encoding="utf-8"?>
<GHListView>
<OldColumns>
<Column Width="70">编号</Column>
<Column Width="332">日程/活动名称</Column>
<Column Width="307">任务名称</Column>
<Column Width="60">资源到位</Column>
<Column Width="163">起止时间</Column>
<Column Width="60">时长(分钟)</Column>
<Column Width="60">执行人</Column>
<Column Width="60">状态</Column>
<Column Width="60">参与类型</Column>
<Column Width="60">发起人</Column>
<Column Width="60">参与人</Column>
</OldColumns>
<NewColumns>
<Column Width="57" Format="[编号]">编号</Column>
<Column Width="409" Format="<b clr=ff0000>[日程/活动名称]\n[[发起人]]→[[参与人]]\n">日程</Column>
<Column Width="213" Format="[状态]\n[起止时间]">状态</Column>
<Column Width="251" Format="[时长(分钟)]分钟↗[任务名称]\n[资源到位]">备注</Column>
</NewColumns>
</GHListView>
同时系统中所使用的共用列表控件GHListView,该控件提供了多个事件来实现列表控件的美化和数据组合,事件结构如下:
public class AfterDrawAllEventArgs : EventArgs
{
public Graphics g=null;
public int right=0;
public int bottom=0;
public int exterheight = 0;
public List<int> VLines = null;
}
public class BeforeDrawItemEventArgs : EventArgs
{
public Graphics g;
public Rectangle rect;
public bool Cancle = false;
public ListViewItem item = null;
public List<int> VLines = null;
}
public class DrawItemEventArgs : EventArgs
{
public Brush brush;
public Rectangle rect;
public ListViewItem item;
public int nSubItemNo = -1;
public string text = string.Empty;
}
public class UrlEventArgs : EventArgs
{
public Dictionary<string, string> dic;
public Rectangle rectURL;
public ListViewItem item;
}
public class CompareItemEventArgs : EventArgs
{
public int result = 0;
public int subitemno = -1;
public bool sortitemdesc = true;
public ListViewItem item0;
public ListViewItem item1;
}
对于需要实现链接的数据,在加载数据的方法中使用下面语句:
this.SetItemText(item, colExcuteName, string.Format("<a guid=" + OrganizeGuidHelper.EmployeeGuid + " id={0}>{1}</a>", p_data.WorkerID, p_data.WorkerName != null ? p_data.WorkerName : ""));
本实施例提供的资源管理方法,可以通过右击菜单实现克隆功能;该过程主要利用选中数据,对同种资源类型的数据进行复制,在显示的界面上将会把该资源类型的通用数据从源数据中获取到并填充到界面中,用户只需要再稍微修改下就变成了新的数据,极大的提高工作效率。这个功能的实现使日常工作中遇到的重复工作内容得以高效进行,减少了员工的工作重复性,有效的提高了员工的工作效率。
本发明实施例提供的资源对象管理方法,在用户需要自定义资源对象时,能够根据用户输入的资源类型信息在资源管理界面进行初始化加载,从而实现资源管理。由于能够在实践中根据需要进行定制,使得本实施例提供的技术方案解决了现有技术中由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用的问题。
实施例八
如图9所示,本发明实施例提供的资源管理装置,包括:
类型接收模块901,用于用户需要自定义资源对象时,接收用户输入的资源类型信息;
类型编辑模块902,用于通过预设的用户控件根据所述资源类型信息新增并编辑资源类型;
加载模块903,用于通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。
在本实施例中,通过类型接收模块901至加载模块903实现资源管理的过程,与本发明实施例一提供的过程相似,在此不再一一赘述。
进一步的,如图10所示,该资源管理装置,还可以包括:
类型判断模块904,用于根据预设的验证方法确定所述资源类型是否符合要求;
此时,所述加载模块903,具体用于如果符合,通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。
在本实施例中,资源管理装置包括类型判断模块904时实现资源管理的方式,与本发明实施例二提供的过程相似,在此不再一一赘述。
进一步的,如图11所示,本发明实施例提供的资源管理装置,还可以包括:
属性对象获取模块905,用于从所述资源类型信息中获取资源属性信息和资源对象信息;
此时,所述类型编辑模块902,具体用于通过预设的用户控件根据所述资源属性信息和资源对象信息新增并编辑资源类型。
在本实施例中,资源管理装置包括属性对象获取模块905时实现资源管理的方式,与本发明实施例三中步骤301至步骤304相似,在此不再一一赘述。
进一步的,如图12所示,该资源管理装置还可以包括:
可用判断模块906,用于通过所述预设的用户控件判断所述资源类型信息是否包括除资源属性信息和资源对象信息外的可用资源信息;
此时,所述类型编辑模块902,具体用于如果包括,通过预设的用户控件根据所述资源属性信息和资源对象信息及可用资源信息新增并编辑资源类型。
在本实施例中,通过可用判断模块906判断是否包括可用资源信息的过程,与本发明实施例三中步骤305相似,在此不再一一赘述。
进一步的,如图13所示,本实施例提供的资源管理装置,还可以包括:
提醒显示模块907,用于用户在所述资源类型的目标属性中添加或编辑的定时提醒功能时,根据所述目标属性显示对应的可选提醒条件;
提醒选取模块908,用于接收用户从所述可选提醒条件中选取的目标提醒条件;
属性值获取模块909,用于获取所述目标提醒条件对应的目标属性值;
提醒模块910,用于所述目标属性的属性值达到所述目标属性值时,显示定时提醒。
在本实施例中,通过提醒显示模块907至提醒模块910实现定时提醒的过程,与本发明实施例四提供的相似,在此不再一一赘述。
进一步的,如图14所示,本实施例中加载模块903可以包括:
布局接收子模块9031,用于接收用户设置的所述资源类型的布局信息;
格式转化子模块9032,用于获取所述布局信息对应的xml格式文件;
加载子模块9033,用于通过预设的构造函数读取和填充所述资源类型的数据,并根据所述xml格式文件在资源管理界面进行初始化加载。
在本实施例中,通过布局接收子模块9031至加载子模块9033实现初始化加载的过程,与本发明实施例五提供的相似,在此不再一一赘述。
进一步的,如图15所示,本实施例中资源管理装置,还可以包括:
活动接收模块911,用于接收用户对所述资源管理界面中资源的使用或操作的活动信息;
活动记录模块912,用于记录所述活动信息。
在本实施例中,通过活动接收模块911和活动记录模块912记录活动信息的过程,与本发明实施例六提供的相似,在此不再一一赘述。
进一步的,如图16所示,本实施例中资源管理装置,还可以包括:
传送显示模块913,用于接收到用户对所述资源管理界面中目标资源对象的右击菜单操作时,显示数据传送位置;
位置接收模块914,用于接收用户从所述数据传送位置中选取的目标传送位置;
复制模块915,用于向所述目标传送位置复制所述目标资源对象对应的数据。
在本实施例中,通过传送显示模块913至复制模块915实现数据复制的过程,与本发明实施例七提供的过程相似,在此不再一一赘述。
本实施例提供的资源管理装置中加载模块,可以包括单线程加载子模块,用于使用单线程加载方法通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载;或者,多线程加载子模块,用于使用多线程加载方法通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。
在本实施例中,可以使用单线程加载方法通过预设的构造函数读取和填充所述资源类型的数据;为了保证系统的流畅性,避免用户在打开界面时,出现界面假死的情况,还可以在用户控件ctlNewResource中,使用多线程加载方法通过预设的构造函数读取和填充所述资源类型的数据;该多线程加载方法主要在用户控件中定义了多个BackGroundThread(后台线程处理)类,通过使用BackGroundThread中的IsBusy方法判断线程的是否忙,通过Start方法来实现线程的调用,Start方法主要包含两个基本参数线程开始处理的方法名和线程结束时处理的方法名。
本发明实施例提供的资源对象管理装置,在用户需要自定义资源对象时,能够根据用户输入的资源类型信息在资源管理界面进行初始化加载,从而实现资源管理。由于能够在实践中根据需要进行定制,使得本实施例提供的技术方案解决了现有技术中由于用户只能对现有的资源对象进行管理,在实践中无法根据需要进行定制,不便于使用的问题。
本发明实施例提供的资源管理方法和装置,可以应用在资源管理等系统中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (18)
1.一种资源管理方法,其特征在于,包括:
用户需要自定义资源对象时,接收用户输入的资源类型信息;
通过预设的用户控件根据所述资源类型信息新增并编辑资源类型;
通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。
2.根据权利要求1所述的资源管理方法,其特征在于,在通过预设的通过预设的构造函数读取和填充所述资源类型的数据之前,所述方法还包括:
根据预设的验证方法确定所述资源类型是否符合要求;
如果符合,通过预设的构造函数读取和填充所述资源类型的数据。
3.根据权利要求1所述的资源管理方法,其特征在于,在所述新增并编辑资源类型之前,所述方法还包括:
从所述资源类型信息中获取资源属性信息和资源对象信息;
所述通过预设的用户控件根据所述资源类型信息新增并编辑资源类型替换为:通过预设的用户控件根据所述资源属性信息和资源对象信息新增并编辑资源类型。
4.根据权利要求3所述的资源管理方法,其特征在于,所述方法还包括:
通过所述预设的用户控件判断所述资源类型信息是否包括除资源属性信息和资源对象信息外的可用资源信息;
所述通过预设的用户控件根据所述资源类型信息新增并编辑资源类型替换为:如果包括,通过预设的用户控件根据所述资源属性信息和资源对象信息及可用资源信息新增并编辑资源类型。
5.根据权利要求1所述的资源管理方法,其特征在于,所述方法还包括:
用户在所述资源类型的目标属性中添加或编辑的定时提醒功能时,根据所述目标属性显示对应的可选提醒条件;
接收用户从所述可选提醒条件中选取的目标提醒条件;
获取所述目标提醒条件对应的目标属性值;
所述目标属性的属性值达到所述目标属性值时,显示定时提醒。
6.根据权利要求1所述的资源管理方法,其特征在于,所述在资源管理界面进行初始化加载,包括:
接收用户设置的所述资源类型的布局信息;
获取所述布局信息对应的xml格式文件;
根据所述xml格式文件在资源管理界面进行初始化加载。
7.根据权利要求1所述的资源管理方法,其特征在于,还包括:
接收用户对所述资源管理界面中资源的使用或操作的活动信息;
记录所述活动信息。
8.根据权利要求1所述的资源管理方法,其特征在于,还包括:
接收到用户对所述资源管理界面中目标资源对象的右击菜单操作时,显示数据传送位置;
接收用户从所述数据传送位置中选取的目标传送位置;
向所述目标传送位置复制所述目标资源对象对应的数据。
9.根据权利要求1所述的资源管理方法,其特征在于,所述通过预设的构造函数读取和填充所述资源类型的数据,包括:
使用单线程加载方法通过预设的构造函数读取和填充所述资源类型的数据;或者
使用多线程加载方法通过预设的构造函数读取和填充所述资源类型的数据。
10.一种资源管理装置,其特征在于,包括:
类型接收模块,用于用户需要自定义资源对象时,接收用户输入的资源类型信息;
类型编辑模块,用于通过预设的用户控件根据所述资源类型信息新增并编辑资源类型;
加载模块,用于通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。
11.根据权利要求10所述的资源管理装置,其特征在于,还包括:
类型判断模块,用于根据预设的验证方法确定所述资源类型是否符合要求;
所述加载模块,具体用于如果符合,通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。
12.根据权利要求10所述的资源管理装置,其特征在于,还包括:
属性对象获取模块,用于从所述资源类型信息中获取资源属性信息和资源对象信息;
所述类型编辑模块,具体用于通过预设的用户控件根据所述资源属性信息和资源对象信息新增并编辑资源类型。
13.根据权利要求12所述的资源管理装置,其特征在于,还包括:
可用判断模块,用于通过所述预设的用户控件判断所述资源类型信息是否包括除资源属性信息和资源对象信息外的可用资源信息;
所述类型编辑模块,具体用于如果包括,通过预设的用户控件根据所述资源属性信息和资源对象信息及可用资源信息新增并编辑资源类型。
14.根据权利要求10所述的资源管理装置,其特征在于,还包括:
提醒显示模块,用于用户在所述资源类型的目标属性中添加或编辑的定时提醒功能时,根据所述目标属性显示对应的可选提醒条件;
提醒选取模块,用于接收用户从所述可选提醒条件中选取的目标提醒条件;
属性值获取模块,用于获取所述目标提醒条件对应的目标属性值;
提醒模块,用于所述目标属性的属性值达到所述目标属性值时,显示定时提醒。
15.根据权利要求10所述的资源管理装置,其特征在于,所述加载模块,包括:
布局接收子模块,用于接收用户设置的所述资源类型的布局信息;
格式转化子模块,用于获取所述布局信息对应的xml格式文件;
加载子模块,用于通过预设的构造函数读取和填充所述资源类型的数据,并根据所述xml格式文件在资源管理界面进行初始化加载。
16.根据权利要求10所述的资源管理装置,其特征在于,还包括:
活动接收模块,用于接收用户对所述资源管理界面中资源的使用或操作的活动信息;
活动记录模块,用于记录所述活动信息。
17.根据权利要求10所述的资源管理装置,其特征在于,还包括:
传送显示模块,用于接收到用户对所述资源管理界面中目标资源对象的右击菜单操作时,显示数据传送位置;
位置接收模块,用于接收用户从所述数据传送位置中选取的目标传送位置;
复制模块,用于向所述目标传送位置复制所述目标资源对象对应的数据。
18.根据权利要求10所述的资源管理装置,其特征在于,所述加载模块,包括:
单线程加载子模块,用于使用单线程加载方法通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载;或者,
多线程加载子模块,用于使用多线程加载方法通过预设的构造函数读取和填充所述资源类型的数据,并在资源管理界面进行初始化加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210528693.2A CN103870252A (zh) | 2012-12-11 | 2012-12-11 | 资源管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210528693.2A CN103870252A (zh) | 2012-12-11 | 2012-12-11 | 资源管理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103870252A true CN103870252A (zh) | 2014-06-18 |
Family
ID=50908826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210528693.2A Pending CN103870252A (zh) | 2012-12-11 | 2012-12-11 | 资源管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103870252A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718472A (zh) * | 2014-12-05 | 2016-06-29 | 成都复晓科技有限公司 | 一种表达指标的方法和装置 |
CN106201466A (zh) * | 2016-06-25 | 2016-12-07 | 国云科技股份有限公司 | 一种基于heat的模板管理方法 |
CN107636652A (zh) * | 2015-06-08 | 2018-01-26 | 媒体制作控股有限公司 | Rdb系统 |
CN107704367A (zh) * | 2017-10-10 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种资源周期信息展示方法和装置 |
CN108415698A (zh) * | 2018-03-14 | 2018-08-17 | 苏州思必驰信息科技有限公司 | 在语音对话平台的技能中添加控件的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828576A (en) * | 1994-12-30 | 1998-10-27 | Cd Power Measurement Limited | Power monitor apparatus and method with object oriented structure |
CN1305611A (zh) * | 1998-05-15 | 2001-07-25 | 特里迪姆公司 | 利用计算机网络对各种机电系统进行面向对象的控制的系统和方法 |
CN101572622A (zh) * | 2009-03-02 | 2009-11-04 | 南京联创科技股份有限公司 | 动态扩充资源元数据的实现方法 |
CN102270138A (zh) * | 2011-08-15 | 2011-12-07 | 青岛海信传媒网络技术有限公司 | 实体对象的创建方法和实体对象创建装置 |
-
2012
- 2012-12-11 CN CN201210528693.2A patent/CN103870252A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828576A (en) * | 1994-12-30 | 1998-10-27 | Cd Power Measurement Limited | Power monitor apparatus and method with object oriented structure |
CN1305611A (zh) * | 1998-05-15 | 2001-07-25 | 特里迪姆公司 | 利用计算机网络对各种机电系统进行面向对象的控制的系统和方法 |
CN101572622A (zh) * | 2009-03-02 | 2009-11-04 | 南京联创科技股份有限公司 | 动态扩充资源元数据的实现方法 |
CN102270138A (zh) * | 2011-08-15 | 2011-12-07 | 青岛海信传媒网络技术有限公司 | 实体对象的创建方法和实体对象创建装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718472A (zh) * | 2014-12-05 | 2016-06-29 | 成都复晓科技有限公司 | 一种表达指标的方法和装置 |
CN105718472B (zh) * | 2014-12-05 | 2019-02-22 | 成都复晓科技有限公司 | 一种表达指标的方法和装置 |
CN107636652A (zh) * | 2015-06-08 | 2018-01-26 | 媒体制作控股有限公司 | Rdb系统 |
CN106201466A (zh) * | 2016-06-25 | 2016-12-07 | 国云科技股份有限公司 | 一种基于heat的模板管理方法 |
CN106201466B (zh) * | 2016-06-25 | 2019-05-21 | 国云科技股份有限公司 | 一种基于heat的模板管理方法 |
CN107704367A (zh) * | 2017-10-10 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种资源周期信息展示方法和装置 |
CN108415698A (zh) * | 2018-03-14 | 2018-08-17 | 苏州思必驰信息科技有限公司 | 在语音对话平台的技能中添加控件的方法 |
CN108415698B (zh) * | 2018-03-14 | 2019-05-10 | 苏州思必驰信息科技有限公司 | 在语音对话平台的技能中添加控件的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7925985B2 (en) | Methods and apparatus for process thumbnail view | |
US9880992B2 (en) | Multi-client collaboration to access and update structured data elements | |
CN101446971B (zh) | 构建内容管理系统的方法及装置 | |
CN112668295B (zh) | 一种基于自定义表单和Activiti工作流的管理系统及方法 | |
US20030037114A1 (en) | System, method and apparatus for updating electronic mail recipient lists | |
US8838536B2 (en) | Method and apparatus for mobile data collection and management | |
CN106445536B (zh) | 自动化业务设计管理系统 | |
CN106202021A (zh) | 由多个用户对博客的实时同步文档编辑 | |
CN103870252A (zh) | 资源管理方法和装置 | |
CN102810057A (zh) | 一种记录日志的方法 | |
CN101141754B (zh) | 一种增值业务分析系统及其方法 | |
US7899846B2 (en) | Declarative model editor generation | |
CN101488086A (zh) | 一种基于领域模型的软件生成方法及装置 | |
CN102567797A (zh) | 用于文档生成的主模板 | |
CN101710274A (zh) | 应用软件帮助信息生成方法及系统 | |
CN103942722A (zh) | 一种基于工作流的网络化数据协同报送统计系统及方法 | |
US20140229223A1 (en) | Integrated erp based planning | |
US20230102947A1 (en) | Providing operations in accordance with worksheet relationships and data object relationships | |
CN102024207A (zh) | 一种与办公软件无缝结合的知识管理系统 | |
WO2005094500A2 (en) | Document development platform | |
CN105144209A (zh) | 用于支持多个企业管理商业合作伙伴以及相关联的资产的系统和方法 | |
US20110113319A1 (en) | Introducing a form instance into an information container | |
CN102446314A (zh) | 基于pda的煤矿人工瓦斯巡检系统及方法 | |
US20070027909A1 (en) | Methods and apparatus for comparison of projects | |
CN113805853A (zh) | 一种基于工业互联网的软件产品开发系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140618 |