家谱有规定的格式吗?

栏目:资讯发布:2023-10-19浏览:3收藏

家谱有规定的格式吗?,第1张

家谱经过几千年的发展演进,目前有了很大的扩展。

其格式已经丰富多变,没有唯一。

只要核心理念、内容一致,格式就不那么强调了。

 

一、从内容上,家谱一般包含如下格式(内容):

1、家谱序言、家族源流介绍;

2、历代家族名人画像;

3、历代先祖家规家训;

4、世系图(家谱核心):记载家族代代繁衍、婚丧嫁娶的人文信息;

5、家谱总结/统计:从政、经商、学文等达到一定程度的成员统计表;

6、家族重大活动记载、慈善公益事迹;

7、家族相关趣闻逸事;

8、附记、家族成员联系清单、结语等。

 

二、从形式上,家谱主要有以下三大格式(类型):

1、纸质家谱:一般是书籍形式;

2、电子家谱:一般是文档、表格或PDF等电子书格式;

3、网络家谱:一般是网站或APP应用。

 

三、总结:

当前无论采用那种家谱格式、类型,无论内容大同小异,只要是清晰明确的记载了家族代代相传的人文信息,都可称为家谱,至多是丰富程度不同、排版样式不一样而已!

 

附三大家谱类型展示:

) 纸质家谱(孔子世家谱)

) 电子家谱(西袁氏家谱)

) 网络家谱(找你家谱 FindU)

  简介

 在 年 Microsoft发布了四种ASP NET Web控件 用于为使用 Microsoft Internet Explorer 的 Web 访问者提供更好的体验 这些 Web 控件称为 Internet Explorer Web 控件 也简称为 IE Web 控件 包括以下四种控件 ◆  MultiPage Web 控件

 ◆  TabStrip Web 控件

 ◆  Toolbar Web 控件

 ◆  TreeView Web 控件

 这些 Web 控件通过提供 Web 访问者熟悉的用户界面 增强了 ASP NET Web 页面 例如 Toolbar Web 控件可以显示一个与各种 Microsoft Office 产品中的工具栏相类似的可单击工具栏 TabStrip 和 MultiPage Web 控件配合使用后可以显示选项卡式内容 TreeView Web 控件可以用来显示可单击 可展开的树中的数据 与在 Microsoft Windows 资源管理器中用树来显示 PC 文件系统中的驱动器和文件夹很类似 (您可以在 GotDotNet 站点找到这些 Web 控件的生动演示 WebControl Toolbar 演示 TabStrip/MultiPage WebControl 演示和 TreeView Sample WebControl 演示 )

 IE Web 控件可以在安装了 NET Framework 版本 或 的 Web 服务器上使用 尽管 IE Web 控件是设计用来与 Internet Explorer 配合使用的 但这些 Web 控件也可以显示在其他浏览器中 不过 在 Internet Explorer 以外的浏览器中 当用户与 IE Web 控件交互时(例如展开 TreeView Web 控件中的某个节点) 会发生回传 在 Internet Explorer 或更高版本中 IE Web 控件会发送 DHTML 代码 从而避免了回传的发生 也就是说 在访问您的 Web 站点时 使用 Internet Explorer 或更高版本的访问者将会比使用其他浏览器的用户获得更好的用户体验 当然 没有使用 IE 或更高版本的用户仍可以看到 IE Web 控件 并可以与之进行交互

 下面 本文将主要介绍 TreeView IE Web 控件 并讨论如何使用此控件在 ASP NET Web 页面中显示数据 有关其他 IE Web 控件的详细信息 请参阅 Internet Explorer Web Controls Overview 和 Internet Explorer Web Controls Reference

  安装IE Web控件

 要在 ASP NET Web 应用程序中使用 IE Web 控件 首先必须下载控件的源代码 然后运行一个编译批处理文件 对源代码进行编译并将所需的所有文件复制到相应的 Web 应用程序目录中 Internet Explorer Web 控件下载程序包是一个大小为 KB 的自解压安装文件

 下载并安装完 IE Web 控件后 将创建一个新目录(默认为 C:\Program Files\IE Web Controls\ 您也可以在安装过程中配置此目录) 找到这个新目录 然后双击 build bat 文件 这将创建一个新的子目录 build 编译 src 子目录中的类 并将生成的程序集和支持文件复制到 build 子目录中

 运行完 build bat 文件后 build 子目录将包含程序集文件 Microsoft Web UI WebControls dll 和子目录 Runtime 要在 ASP NET Web 应用程序中使用 IE Web 控件 必须将 build\Runtime 子目录中的内容复制到 Web 应用程序的 /webctrl_client/ _ 子目录中 并将程序集文件 (Microsoft Web UI WebControls dll) 复制到 Web 应用程序的 /bin 子目录中 (在 IE Web 控件的 README txt 文件中 提供了示例以及执行这些任务的命令行指令 )

  IE Web控件入门

 如果使用的是 Microsoft Visual Studio NET 来开发 ASP NET Web 应用程序 则将 IE Web 控件添加到 ASP NET Web 页是件轻松的事 首先 将 IE Web 控件包含在工具箱中 要完成这项操作 请右击 Toolbox(工具箱) 然后选择 Customize Toolbox(自定义工具箱)选项 选择 NET Framework Components( NET Framework 组件)选项卡 然后单击 Browse(浏览)按钮 找到 Microsoft Web UI WebControls dll 程序集文件 然后单击 OK(确定) 这会将 MultiPage TabStrip Toolbar 和 TreeView 等 IE Web 控件添加到 Visual Studio NET 工具箱中 要将以上控件中的任何一种添加到 ASP NET Web 页中 只需要将相应的控件从工具箱拖放到设计器中即可

 要在内含代码的类中使用 IE Web 控件 首先需要右击 Reference(引用) 然后选择 Add Reference(添加引用) 将引用添加到 Microsoft Web UI WebControls dll 程序集中 然后 在内含代码的类中 如果使用的是 C# 则添加 using Microsoft Web UI WebControls 如果使用的是 Microsoft Visual Basic NET 则添加 Imports Microsoft Web UI WebControls

 如果不是使用 Visual Studio NET 作为 ASP NET Web 应用程序编辑器 则需要在 ASP NET Web 页的顶端手动添加以下 @Register 指令

<%@ Register TagPrefix= whatever Namespace= Microsoft Web UI WebControls Assembly= Microsoft Web UI WebControls %>

 然后 将IE Web控件添加到Web页中 可以使用以下语法

<whatever:WebControlName runat= server > </whatever:WebControlName>

 例如 要添加 TreeView 控件 可以在页面顶端添加以下 @Register 指令

<%@ Register TagPrefix= iewc Namespace= Microsoft Web UI WebControls Assembly= Microsoft Web UI WebControls %>

 接着 在ASP NET Web页中希望显示TreeView的位置添加以下Web控件语法

<iewc:TreeView runat= server > </iewc:TreeView>

  TreeView IE Web 控件入门

 当 TreeView IE Web 控件在访问者浏览器中显示时 会显示一棵树 此树与 Windows 资源管理器中的树非常类似 不同的是 TreeView 可以由任意多个 TreeNode 对象组成 每个 TreeNode 对象都可以关联文本和图像 另外 TreeNode 还可以显示为超链接并与某个 URL 相关联 每个 TreeNote 还可以包括任意多个子 TreeNote 对象 包含 TreeNode 及其子节点的层次结构构成了 TreeView 控件所呈现的树结构

 假设您要构建一个用于显示家谱的 TreeView 控件 由于信息基本上不需要改动 因此您可能希望静态地指定 TreeView 结构 如果使用的是 Visual Studio NET 则静态指定 TreeView 结构就像填写几份表格一样简单 首先 通过将 TreeView 控件从工具箱拖放到设计器中 将新的 TreeView 控件添加到 ASP NET Web 页中 然后 将 TreeView 控件的 ID 属性设置为 tvFamilyTree 完成这两个步骤后 您的屏幕应该与图 类似

图 简单的 TreeView

 现在 要静态指定组成 TreeView 的 TreeNode 请从 Properties(属性)窗格中选择 Nodes(节点)属性 然后单击此属性右侧的省略号按钮 这时将显示 TreeNodeEditor(TreeNode 编辑器)对话框 现在可以将新的 TreeNode 添加到 TreeView 中 图 显示了输入家族树信息后的 TreeNodeEditor(TreeNote 编辑器)对话框

图 TreeNodeEditor(TreeNote 编辑器)对话框

 填充 TreeNodeEditor(TreeNote 编辑器)对话框后 以下标记将被添加到 ASP NET Web 页的 aspx 部分

<ie:TreeView id= tvFamilyTree runat= server ><ie:TreeNode Text= John Smith ><ie:TreeNode Text= Born: Jan rd ></ie:TreeNode><ie:TreeNode Text= Died: Feb ></ie:TreeNode><ie:TreeNode Text= Spouse ><ie:TreeNode Text= Marie Ellsworth ><ie:TreeNode Text= Born: Aug ></ie:TreeNode><ie:TreeNode Text= Died: Unknown ></ie:TreeNode></ie:TreeNode><ie:TreeNode Text= Children ><ie:TreeNode Text= John Smith Jr ><ie:TreeNode Text= Born: July ></ie:TreeNode><ie:TreeNode Text= Died: Sept ></ie:TreeNode></ie:TreeNode><ie:TreeNode Text= Mary Smith ><ie:TreeNode Text= Born: June ></ie:TreeNode><ie:TreeNode Text= Died: Aug ></ie:TreeNode><ie:TreeNode Text= Spouse ><ie:TreeNode Text= Edward Joy ><ie:TreeNode Text= Born: Unknown ></ie:TreeNode><ie:TreeNode Text= Died: Aug ></ie:TreeNode></ie:TreeNode><ie:TreeNode Text= Children ><ie:TreeNode Text= Michael Joy ><ie:TreeNode Text= Born: Oct ></ie:TreeNode></ie:TreeNode><ie:TreeNode Text= Michele Joy ><ie:TreeNode Text= Born: May ></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeView>

 如果不是使用 Visual Studio NET 作为编辑器 则需要将此内容手动添加到 ASP NET Web 页 当通过浏览器查看 ASP NET Web 页时 将显示一棵可展开的树 如图 所示 (图 显示了展开各个节点后的树 默认情况下 将仅显示根节点 您可以设置 TreeNote 的 Expanded 属性 以指示首次查看此页面时该 TreeNote 应为展开状态 )

图 展开的 TreeNote

 除了文本标签以外 TreeNote 还可以关联图像 尤其值得说明的是 每个 TreeNote 可以关联三幅图像 当 TreeNote 处于标准(折叠)状态时显示一幅图像 当 TreeNote 处于展开状态时显示另一幅图像 当 TreeNote 处于选中状态(当用户单击 TreeNote 时 该节点变为选中状态)时显示第三幅图像 这三种属性都需要一个指向指定图像的 URL

 例如 可以通过以下方法展开家族树演示 将 TreeView 的 ImageUrl 属性设置为指向某个闭合的文件夹图像的 URL 将 TreeView 的 ExpandedImageUrl 属性设置为指向某个打开的文件夹图像的 URL 从而分别将折叠和已展开的 TreeNote 显示为闭合的文件夹和打开的文件夹 (如果要为选定的 TreeNote 换一幅图像 只需要将 TreeView 的 SelectedImageUrl 属性设置为相应的 URL 即可 )

 请注意 TreeView 和 TreeNote 都具有 ImageUrl ExpandedImageUrl 和 SelectedImageUrl 属性 不同的是 当设置 TreeView 的属性时 默认情况下 TreeView 中所有 TreeNote 都将显示指定的图像 如果设置 TreeNote 的属性 则这些属性仅适用于当前特定的 TreeNote 由于我们希望所有 TreeNote 处于折叠状态时显示为闭合的文件夹 处于展开状态时显示为打开的文件夹 因此我们对 TreeView 控件的 ImageUrl 和 ExpandedImageUrl 属性进行了设置

 设置完这些新属性后 图 的外观增色很多 在新的 TreeView 外观中 TreeNote 旁边都显示有图像 如图 所示

图 带图像的 TreeNote

 TreeNote 也可以关联 URL 当单击关联有 URL 的 TreeNote 时 会自动将用户快速链接到指定的 URL TreeNote 的 NavigateUrl 属性用于指示当单击 TreeNote 时将用户链接到的 URL 该功能对于包含两个窗框的 ASP NET Web 页非常有用 左侧窗框中包含一个 TreeView 控件 当用户单击某个 TreeNote 时 该节点的详细信息将显示在右侧窗框中 这与在 Windows 资源管理器中单击左侧窗格中的某个系统文件夹 该文件夹的文件将显示在右侧窗格中的情形类似

 要关联 URL 只需要将每个 TreeNote 的 NavigateUrl 设置为相应的 URL 要将 TreeNote 的关联 URL 加载到其他浏览器窗框中 请将 TreeNote 的 Target 属性设置为相应的窗框名称 这些步骤都可以通过 TreeNodeEditor(TreeNote 编辑器)来完成 要查看此类应用程序的示例 请参阅 Steve Sharrock 关于使用 TreeView 创建资源管理器风格的 ASP NET Web 应用程序的文章 TreeView Programming an Explorer style Site View

  TreeView 的其他高级功能

 虽然使用 Visual Studio NET 将静态 TreeNote 添加到 TreeView 的过程非常简单 但通常需要将内容动态地添加到 TreeView 中 例如 您将家族树信息存储到了数据库中 或是正在设计一个资源管理器风格的 Web 应用程序(在此应用程序中 用户可以浏览 Web 服务器的文件系统) 这时您可能需要根据服务器的文件夹和文件来动态填充 TreeNote

 在内含代码的类中 可以通过编程方式将 TreeNote 添加到 TreeView 中 要将新的 TreeNote 添加到现有的 TreeNote 中 只需要使用 Nodes 属性的 Add() 方法 例如 以下 C# 代码将创建两个 TreeNote 并将第二个 TreeNote 添加为第一个 TreeNote 的子节点 然后 将第一个子节点添加到 TreeView 的根节点中

// 创建第一个 TreeNoteTreeNode tvFirst = new TreeNode();tvFirst Text = First Tree Node ;

// 创建第二个 TreeNoteTreeNode tvSecond = new TreeNode();tvSecond Text = Second Tree Node ;

// 将第二个 TreeNote 添加为第一个 TreeNote 的子节点tvFirst Nodes Add(tvSecond);

// 将第一个 TreeNote 添加到 TreeView 的根节点中 tvFamilyTree Nodes Add(tvFirst); 

 遗憾的是 将数据库数据绑定到 TreeView 可不像将数据绑定到某个标准 ASP NET Web 控件那么简单 因为 TreeView 本身用于显示分层数据 所以不太适合显示简单 SQL 查询的结果 因此 TreeView 不是用来显示简单 SQL 查询的内容的 而是用来显示 XML 文件的内容 所以 为了便于在 TreeView 中显示数据库信息 必须首先将其转换为 XML

 而且 虽然可以在 TreeView 控件中显示静态或动态 XML 文件 但是 TreeView 要求 XML 数据具有特定的格式 因此 要在 TreeView 中显示 XML 文件 必须提供 XSLT 样式表 以将 XML 从当前格式转换到 TreeView 要求的格式 有关如何完成此任务的详细信息 请参阅我的文章 Displaying XML Data in the Internet Explorer TreeView Control

 此外 TreeView 的 TreeNote 除了支持图像和超链接之外 其旁边还可以包含复选框 而且 当用户展开或折叠 TreeNote 选择 TreeNote 或者选中或取消选中带有复选框的 TreeNote 时 都会引发相应的事件 可以为这些事件创建事件处理程序 以自定义这些事件引发的相应操作

  小结

 在本文中 我们简要地介绍了 IE Web 控件以及如何获得和安装这些控件 并详细讨论了如何使用 TreeView IE Web 控件 TreeView 控件的显示方式类似于标准的 Windows TreeView(可通过在 Windows 资源管理器中进行操作来体验) TreeView 用来显示分层数据 可以由任意多个 TreeNote 组成 每个 TreeNote 又可以包含任何多个子 TreeNote

 可以用多种不同的方式自定义 TreeNote 的外观 例如 可以为处于折叠 展开和选中状态的 TreeNote 分别指定不同的图像 当单击 TreeNote 时 TreeNote 可以作为超链接将访问者重定向到其他 URL TreeNote 还可以包含复选框

lishixinzhi/Article/program/net/201311/15691

家谱的做法

一、拟定修家谱计划

1、版本:精装、平装、光碟、网络。

2、时间:完d成期限、工作时程。

3、预算:经费、人员。

4、范围:同宗、合族、家族。

5、工具:图表、问卷、电脑。

二、组织章程

组织委员、修谱大纲、责任分配、发凡起例。

三、筹集基金

一人负担、众人分摊、家族劝募、早请补助、公开销售组织内容大纲,制作世系图表、填写行实履历、撰写名人家传、考订姓氏渊源、记录迁徙过程、著录文艺著作、附录照片图版、其它次要内容。

四、资料分析

前修旧谱、相说族谱、族谱研究资料、研究与过滤资料、请教族谱专家。

五、寻找史料

家谱文献、世系资料、出生、过世登记证、户籍、除户登记资料、神龛祖先牌位、家庙晋主名册、祭祀公业章程、名册,墓碑文字、坟葬座落方位,讣文、疏文、功德薄,长辈口述记录,家传、年谱、纪念集,老照片、录音、录影资料,古文书、契约、证书,正史、方志,人名录、同学录,旧报纸、电话薄。

六、编辑内容

组织内容大纲、制作世图表、填写行实履历、撰写名人家传、考订姓氏渊源、记录迁徙过程、著录文艺

著作、附录照片图版、其它次要内容。

七、审定内容

专家审稿、多次校稿、最后完稿。

说明:最好有学者专家参与审订,审稿时一定要仔细,可以慢一些但要保持精准。

八、印刷出版

黑白或彩色、纸本或光碟、选定印刷厂、印制若干份、设家族网站。

九、领谱典藏

办祭谱活动,族人领族谱,寄存图书馆。

如何制作家谱?

1、电脑打开Word文档。

2、打开Word文档后,点击工具栏中的插入,然后选择智能图形。

3、进入选择图形页面,选择图形后,点击确定。

4、Word正文添加构造图之后,就可以输入名字世谱了。

5、如果表格不够,可以选中一个图标,点击右上角的添加,可以选中在上方或者下方添加项目。

怎么编写家谱?

一、序

序就类似于现在书的序,可以由族中得望高的人写,也可以由外人写。主要是通过另一个或另几个人的眼光来看待这本族谱。通常情况下,新序在前面,旧的序也要包含在内并排在新序后面。

二、简介

即使是对于自己的家族,能全面了解的人也不多,所以

需要首先简介一下自己家族,可提及的内容有:刻谱凡例、本族谱本次创修参与人员、时间、为什么要修订;此次编码的依据是什么;家族的整体情况、历史、迁移史、当前分布、人数;本族宗派、字辈,即记录每一代人起名规则;祖坟所在地、祖坟中各代分布图;对祖先事考查、考证。

总之,这里不具体到某一个人,只是对整个家族进行整体描述。

三、人物志

其实一本家谱本身就是人物记录,但通常情况下,家谱中会记录某一个或多个优秀的典型人物或团体。而记录这些优秀人物时,常常格式多样,有该人的传记、他写的文章书稿、获得过的功名、官名、、画像、碑记等。这里需要注意的是千万不能把同姓历史名人强编入本族谱,即使是小小提示也不可。因为后人续谱时,常常会因为这一次信以为真,而以讹传讹。

四、世系表

世系是家谱中最为重要的一项,最简单的家谱,有时只有一个世系表。

世系表是记录家族中每个人的关系,用计算机中的术语,这种一对多的结构是“树”状结构,但实际中的往往会比较复杂。当一个家族很大、人数很多时。会出现嗣出嗣入、迁入迁出的现象。

五、世略表

通常情况下,仅有世系表的家谱其实是没有实际意义的,面对一些不是名人的名字,除了这几个字,你还能知道什么呢一个好的办法就是增加世略表,世略表是记录世系表中每一个族人简历的表。这一部分可以和世系表合二为一,也可以单列。我认为单列更好,因为合二为一,常常导致世系表过肥过大,查找一个成员的时候非常麻烦。

很多家谱中,世略只写到父名、娶妻、生子数及名字数,这样写虽然整体看上去挺规范,实际上也没多大意义,因为世系表本身就可以表示这种信息。我认为世略不一定能做到每个人都有完整的简历,但至少应该有:本人生卒年月、主要职务、职称、主要生活工作地、本人工作简历、主要成绩、妻子姓名、妻子嫁出地、妻子父亲的名、妻子简历、子女名、女儿出嫁地、所嫁人姓名。这样不仅妻方家谱可以通过家谱查到本家族,本家族也可以通过自己家族查到女儿家族。

六、后记

后记写一些感想即可。

家谱如何族谱制作?

1、电脑打开Word文档。

2、打开Word文档后,点击工具栏中的插入,然后选择智能图形。

3、进入选择图形页面,选择图形后,点击确定。

4、Word正文添加构造图之后,就可以输入名字世谱了。

5、如果表格不够,可以选中一个图标,点击右上角的添加,可以选中在上方或者下方添加项目。

族谱的内容

一、写清楚姓氏源流。

意思就是同一族姓的来源、迁移等。中国上下五千年,渊源古老,如果没有家谱,后人就很难搞清楚。每套《家谱》都认清自己姓氏源流,这样才能世世代代承继,也能将族系根缘流传千百年。

二、写清楚堂号。

堂号名称一般取自于郡号名,或者是史祖自创。

一般来说,堂号多取自于郡号名,郡是秦、汉时期对行政区域的建置,郡号名又取自于郡名,或诸侯国名,地方府、州、县名。也有很多姓氏同为一个堂号的,比如:王,胡这两个姓的郡望都是“清河堂”。

自创的,例如:杨氏的“四知堂”寓意“天知、地知、我知、子知”的为人风范。很多重修家谱的情况,只能用自创堂号。

三、家训和家族的历史。

很多家谱中,都记录了许多治家教子的名言警句,流传到后世了,比如我们熟悉的颜氏家训、朱子治家格言等。

家谱怎么做?

1、电脑打开Word文档。

2、打开Word文档后,点击工具栏中的插入,然后选择智能图形。

3、进入选择图形页面,选择图形后,点击确定。

4、Word正文添加构造图之后,就可以输入名字世谱了。

5、如果表格不够,可以选中一个图标,点击右上角的添加,可以选中在上方或者下方添加项目。

家谱的作用:

家谱是一个巨大的资料宝库,可供从事社会学、历史学、考古学、经济学、民俗学、人口学、民族学、文学、政治学、宗教学、法学、姓氏学的研究人员从中查询资料,寻找依据,进行研究。家谱的作用主要有:

1、宗法思想研究资料。家谱和宗法的关系从一开始就密不可分。宗法制度是封建王朝维护其统治的重要基础之一,而家谱的族规、族约、家法、乡约等,正是加强宗法制度的有力工具。

2、家庭道德研究资料。族规、家规中保留了许多对我们当代极为有益的东西,如孝父母、和夫妇、勉讳书、尚节俭、戒赌博、戒*秽、戒懒惰、戒奢侈等,对我们建设现代家庭道德和精神文明都有很好看借鉴意义。

3、家族制度研究资料。家族制度是利用血缘关系统治族人的社会制度。在许多家谱中都有家族制度的极为详细的资料,如家族的组织系统、家族的财产管理、家族的赈济方法等,为我们研究家族在古代社会中的地位、作用、组织形式、管理方法等提供了丰富的资料。

4、经济史资料。家谱中保存有相当数量的经济史资料,这些资料包括家族的集体田产如祠田、坟田、庄田、山林等的数量、形成、经营、管理、收支情况等。有的家谱还记录了家庭成员经商、贸易的事迹。这都为我们研究古代经济史提供了很好的素材。

5、人口问题资料。家谱的中心部分是家族人口的世系传承,在家谱的“房派图”、“支派分布图”、“迁徙图”、“先世考”、“世系图”以及家谱的一些序跋中,记录了家族人口的数量、迁徙、分布、婚姻状况等资料,可提供人口学研究者使用。

6、历史人物传记。家谱是世系的记录,许多家谱中既有简单的世系,又有十分详细的传记、行状、墓志、年谱等,对研究历史人物及其家世大有帮助。

族谱制作方法及组成有知道的吗?

有三种制作方法:

1族内老人编纂

这个很好理解。找族内年龄比较大,对族内人员结构比较清楚地人来完善编修。

2电子书籍

想要做电子家谱通常是需要下载一个app进行家族人员信息的填写,最后自动生成为固定的家谱格式,听起来比较便捷省时,但弊端也存在。例如最主要的这两点:

电子家谱app的使用上比较复杂,修谱人大多年龄偏高,对手机功能不是很了解,研究很久研究不明白,最终还是选择了去专业家谱编印机构做传统纸质家谱。

电子家谱通常家谱格式为固定的几种,只能从其选择一种,并按照其格式要求进行填写信息,有些家庭可能不是很喜欢这些固定格式,或想要改变一些内容,都是实现不了的,最终,也是会选择专业家谱编印机构进行定制化的家谱排版。

3传统纸质家谱

听起来没有随着时代的发展而进步,但实际上传统纸质的家谱进步在细节,例如:

纸质,都知道宣纸印刷是最好的纸质保存材料,但古法宣纸制作出来很是不容易,但当今社会的进步,把宣纸的质量进行了升级,能够满足存放百年的需求。

排版,家谱排版方式可以根据家族人员需求,或信息资料的整理不同,进行排版格式的小改动,更人性化,更易于老师们的家谱资料收集整理工作。

服务,修家谱不是一件快速上手的事情,而是需要专业的知识指导,才能更顺利的开展家谱编印工作,传统纸质家谱印刷公司通常会提供免费的一对一编修指导服务,例如锦秋文谱|中原鉴志谱编印中心即是如此,服务这一点,是电子家谱做不到的。

以上综合,电子家谱和纸质家谱各有优缺点,个人比较倾向传统纸质家谱,纸质家谱更加庄重,比电子家谱更有仪式感,敬重感。当然,以上仅为个人观点,仅供参考。

家谱组成部分:

1、谱名、版次录

2、编修人员名录、家族照片

3、谱序、题词

4、凡例

5、谱论

6、祖先像赞、遗像、

7、目录

8、姓氏源流

9、恩荣录、碑文

10、历代修谱名录

11、祠堂、坟茔、郡望、堂号

12、字辈

13、世系图表

14、家风、家训、家规

15、传记、艺文、家族名贤录

16、风俗礼仪

17、契约、族产

18、家族文献、杂记

19、功德榜、事迹介绍

20、领谱字号

21、附记、后记、留余录

UNIX作业系统(尤尼斯),是一个强大的多用户、多任务作业系统,支持多种处理器架构,按照作业系统的分类,属于分时作业系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。

基本介绍 中文名 :Unix 本质 :作业系统 类型 :分时作业系统 开发 :1969年 公司 :AT&T 特点 :多用户、多任务 历史,诞生,流行,家谱,类UNIX,收费情况,UNIX标准,UNIX特性, 历史 诞生 1965年时,贝尔实验室(Bell Labs)加入一项由通用电气(General Electric)和麻省理工学院(MIT)合作的计画;该计画要建立一套多使用者、多任务、多层次(multi-user、multi-processor、multi-level)的MULTICS作业系统。直到1969年,因MULTICS计画的工作进度太慢,该计画被停了下来。当时,Ken Thompson(后被称为UNIX之父)已经有一个称为"星际旅行"的程式在GE-635的机器上跑,但是反应非常慢,正巧被他发现了一部被闲置的PDP-7(Digital的主机),Ken Thompson和Dernis Ritchie就将"星际旅行"的程式移植到PDP-7上。而这部PDP-7(如图1-1所示)就此在整个计算机历史上留下了芳名。 图1-1 PDP-7计算机 MULTICS其实是"Multiplexed Information and Computing Service"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing Service",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。 流行 1971年,Ken Thompson写了充分长篇的申请报告,申请到了一台PDP-11/24的机器。于是Unix第一版出来了。在一台PDP-11/24的机器上完成。这台电脑只有24KB的物理记忆体和500K磁碟空间。Unix占用了12KB的记忆体,剩下的一半记忆体可以支持两用户进行Space Travel的游戏。而著名的fork()系统调用也就是在这时出现的。 到了1973年的时候,Ken Thompson 与Dennis Ritchie感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言来开发程式的年代,他们的想法算是相当的疯狂。一开始他们想尝试用Fortran,可是失败了。后来他们用一个叫 BCPL (Basic Combined Programming Language)的语言开发,他们整合了BCPL形成 B语言 ,后来Dennis Ritchie觉得B语言还是不能满足要求,于是就改良了B语言,这就是今天的大名鼎鼎的 C语言 。于是,Ken Thompson 与Dennis Ritchie成功地用C语言重写了Unix的第三版核心。至此,Unix这个作业系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础。而Unix和C完美地结合成为一个统一体,C与Unix很快成为世界的主导。 Unix Unix的第一篇文章 “The UNIX Time Sharing System”由Ken Thompson和Dennis Ritchie于1974年7月的 The Communications of the ACM发表。这是UNIX与外界的首次接触。结果引起了学术界的广泛兴趣并对其源码索取,所以,Unix第五版就以“仅用于教育目的”的协定,提供给各大学作为教学之用,成为当时作业系统课程中的范例教材。各大学公司开始通过Unix源码对Unix进行了各种各样的改进和扩展。于是,Unix开始广泛流行。 家谱 Unix在开发的过程中,没有任何的奖励制度和管理,从一开始在AT&T公司出现时,其是一种近似于好奇或兴趣的东西。 Unix家谱 然而,20世纪70年代,AT&T公司开始注意到Unix所带来的商业价值。公司的律师开始寻找一些手段来保护Unix,并让其成为一种商业机密。从1979年Unix的版本V7开始,Unix的许可证开始禁止大学使用Unix的源码,包括在授课中学习。 到了1980年,有两个最主要的Unix的版本线,一个是Berkeley的BSD UNIX,另一个是AT&T的Unix,在这个时候,很显然,竞争最终引发了Unix的战争。在这场战争中,好的是,软体开发人员还是能够得到Unix的源码并对其按照自己的需要和兴致进行裁剪。而不好的是,Unix开始一发不可收拾地开发不停地出现各种各样的变种。 1982年,Joy创建了Sun Microsystems公司并提供了工作站–Sun-1,运行SunOS(Solaris以之后的十年出现)。而AT&T则在随后的几年中发布了Unix System V的第一版,一个具有强大影响力的作业系统,最终造就了IBM的AIX和HP的HP-UX。 类UNIX AIX Advanced Interactive eXecutive )是 IBM 开发的一套UNIX作业系统。它符合Open group的UNIX 98行业标准(The Open Group UNIX 98 Base Brand),通过全面集成对32-位和64-位套用的并行运行支持,为这些套用提供了全面的可扩展性。它可以在所有的IBM ~ p系列和IBM RS/6000工作站、伺服器和大型并行超级计算机上运行。AIX的一些流行特性例如chuser、mkuser、rmuser命令以及相似的东西允许如同管理档案一样来进行用户管理。AIX级别的逻辑卷管理正逐渐被添加进各种自由的UNIX风格作业系统中。 Aix logo Solaris 是SUN公司研制的类Unix作业系统。直至2013年,Solaris的最新版为 Solaris 11。 solaris logo 早期的Solaris是由BSDUnix发展而来。这是因为升阳公司的创始人之一,比尔·乔伊(Bill Joy)来自加州大学伯克莱分校(UCBerkeley)。但是随着时间的推移,Solaris在接口上正在逐渐向System V靠拢,但至今Solaris仍旧属于私有软体。2005年6月14日,Sun公司将正在开发中的Solaris 11的原始码以CDDL许可开放,这一开放版本就是OpenSolaris。 Sun的作业系统最初叫做SunOS。SunOS 50开始,SUN的作业系统开发开始转向System V4,并且有了新的名字叫做Solaris 20。Solaris 26以后,SUN删除了版本号中的"2",因此,SunOS 510就叫做Solaris 10。Solaris的早期版本后来又被重新命名为Solaris 1x 所以"SunOS"这个词被用做专指Solaris作业系统的核心,因此Solaris被认为是由SunOS,图形化的桌面计算环境,以及它网路增强部分组成。 Solaris运行在两个平台:Intel x86及SPARC/UltraSPARC。后者是升阳工作站使用的处理器。因此,Solaris在SPARC上拥有强大的处理能力和硬体支援,同时Intel x86上的性能也正在得到改善。对这两个平台,Solaris禁止了底层平台差异,为用户提供了尽可能一样的使用体验。 HP-UX 取自 Hewlett Packard UniX ,是 惠普公司 (HP,Hewlett-Packard)以 System V为基础所研发成的类UNIX作业系统。HP-UX可以在HP的PA-RISC处理器、Intel的Itanium处理器的电脑上运行,另外过去也能用于后期的阿波罗电脑(Apollo/Domain)系统上。较早版本的HP-UX也能用于HP 9000系列200型、300型、400型的电脑系统(使用Motorola的68000处理器)上,和HP-9000系列500型电脑(使用HP专属的FOCUS处理器架构)。 HP-UX IRIX 是由矽谷图形公司( Silicon Graphics Inc ,一般用简称: SGI )以System V与BSD延伸程式为基础所发展成的UNIX作业系统,IRIX可以在SGI公司的RISC型电脑上运行,即是采行32位、64位MIPS架构的SGI工作站、伺服器。 IRIX Xenix 是一种UNIX作业系统,可在个人电脑及微型计算机上使用。该系统由 微软公司 在1979年从美国电话电报公司获得授权,为Intel处理器所开发。后来,SCO公司收购了其独家使用权,自那以后,该公司开始以SCO UNIX(亦被称作SCO OpenServer)为名发售。值得一提的是,它还能在DECPDP-11或是Apple Lisa电脑运行。它继承了UNIX的特性,Xenix具备了多人多任务的工作环境,符合 UNIX System V 的接口规格 (SVID)。 A/UX (取自Apple Unix)是 苹果电脑 (Apple Computer)公司所开发的UNIX作业系统,此作业系统可以在该公司的一些麦金塔电脑(Macintosh)上运行,最末(或说最新)的一套A/UX是在Macintosh II、Quadra及Centris等系列的电脑上运行。A/UX于1988年首次发表,最终的版本为311版,于1995年发表。A/UX至少需要一颗具有浮点运算单元及标签页式的存储器管理单元(Paged Memory Management Unit,PMMU)的68k处理器才能运行。 A/UX是以 System V 22 版为基础所发展,并且也使用System V 3(简称:SysV 3)、System V 4、BSD 42、BSD 43等的传统特色,它也遵循POSIX规范及SVID规范,不过遵循标准版本就难以支持最新的信息技术,因此在之后的第二版便开始加入TCP/IP网路功能。有传言表示有一个后续版本是以OSF/1为主要的代码基础,但却从未公开发表过,不过无从证实此版本是否真存在过。 收费情况 UNIX作业系统是 商业版 ,需要收费,价格比Microsoft Windows正版要贵一些。不过UNIX有免费版的,例如:NetBSD等类似UNIX版本。 UNIX标准 UNIX用户协会最早从20世纪80年代开始标准化工作,1984年颁布了试用标准。后来IEEE为此制定了POSIX标准(即IEEE1003标准)国际标准名称为ISO/IEC9945它通过一组最小的功能定义了在UNIX作业系统和应用程式之间兼容的语言接口。POSIX是由Richard Stallman 应IEEE的要求而提议的一个易于记忆的名称,含义是Portable OPerating System Interface(可移植作业系统接口) ,而X表明其API的传承。 UNIX特性 UNIX系统是一个多用户,多任务的分时作业系统。 UNIX的系统结构可分为三部分:作业系统核心(是UNIX系统核心管理和控制中心,在系统启动或常驻记忆体),系统调用(供程式开发者开发应用程式时调用系统组件,包括进程管理,档案管理,设备状态等),应用程式(包括各种开发工具,编译器,网路通讯处理程式等,所有应用程式都在Shell的管理和控制下为用户服务)。 UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。 UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。 UNIX提供了功能强大的可程式的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。 UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。 UNIX系统采用进程对换(Swapping)的记忆体管理机制和请求调页的存储方式,实现了虚拟记忆体管理,大大提高了记忆体的使用效率。 UNIX系统提供多种通信机制,如:管道通信,软中断通信,讯息通信,共享存储器通信,信号灯通信。

有三种制作方法:

1族内老人编纂

这个很好理解。找族内年龄比较大,对族内人员结构比较清楚地人来完善编修。

2电子书籍

想要做电子家谱通常是需要下载一个app进行家族人员信息的填写,最后自动生成为固定的家谱格式,听起来比较便捷省时,但弊端也存在。例如最主要的这两点:

(1)电子家谱app的使用上比较复杂,修谱人大多年龄偏高,对手机功能不是很了解,研究很久研究不明白,最终还是选择了去专业家谱编印机构做传统纸质家谱。

(2)电子家谱通常家谱格式为固定的几种,只能从其选择一种,并按照其格式要求进行填写信息,有些家庭可能不是很喜欢这些固定格式,或想要改变一些内容,都是实现不了的,最终,也是会选择专业家谱编印机构进行定制化的家谱排版。

3传统纸质家谱

听起来没有随着时代的发展而进步,但实际上传统纸质的家谱进步在细节,例如:

(1)纸质,都知道宣纸印刷是最好的纸质保存材料,但古法宣纸制作出来很是不容易,但当今社会的进步,把宣纸的质量进行了升级,能够满足存放百年的需求。

(2)排版,家谱排版方式可以根据家族人员需求,或信息资料的整理不同,进行排版格式的小改动,更人性化,更易于老师们的家谱资料收集整理工作。

(3)服务,修家谱不是一件快速上手的事情,而是需要专业的知识指导,才能更顺利的开展家谱编印工作,传统纸质家谱印刷公司通常会提供免费的一对一编修指导服务,例如锦秋文谱|中原鉴志谱编印中心即是如此,服务这一点,是电子家谱做不到的。

以上综合,电子家谱和纸质家谱各有优缺点,个人比较倾向传统纸质家谱,纸质家谱更加庄重,比电子家谱更有仪式感,敬重感。当然,以上仅为个人观点,仅供参考。

家谱组成部分:

1、谱名、版次录

2、编修人员名录、家族照片

3、谱序、题词

4、凡例

5、谱论

6、祖先像赞、遗像、

7、目录

8、姓氏源流

9、恩荣录、碑文

10、历代修谱名录

11、祠堂、坟茔、郡望、堂号

12、字辈

13、世系图表

14、家风、家训、家规

15、传记、艺文、家族名贤录

16、风俗礼仪

17、契约、族产

18、家族文献、杂记

19、功德榜、事迹介绍

20、领谱字号

21、附记、后记、留余录

 这一节继续来谈 NET中的数据绑定表达式

 本节涉及的内容如下

  一 数据绑定方法的来源以及在低层上的实现

  二 数据绑定方法的执行效率排序

 <%#Container DataItem%><%#GetDataItem()%><%#Eval( 字段名 )%><%#DataBinder Eval(Container DataItem 字段名 )%><%#((DataRowView)Container DataItem)[ 字段名 ] %><%#((Type)Container DataItem) 成员 %><%#((Type)GetDataItem()) 成员 %>    上面七种绑定形式以及它们的变幻形式都用过吗?性能怎么排序?

 复习一下 第一节我们主要谈了数据绑定表达式的各种形式 在ASP NET页面中出现的位置 以及我们常绑定到与数据库有关的DataView DataTable DataSet 等数据源的数据绑定表达式的各种形式

 你有没有对Eval方法和DataBinder Eval方法好奇过?

 在 NET 中我们经常用Eval方法在Repeater DataList GridView等循环控件中绑定数据 Eval方法和DataBinder Eval方法在低层是怎么实现的?它们到底有什么千丝万缕的关系?

  一 来源 实现

 我们常用的Eval方法其实是Page类的一个静态单向只读方法 而且它是一个受保护的方法 实际上Page类的Eval方法是继承自TemplateControl类的 TemplateControl 类是一个抽象类 它为Page 类和 UserControl 类提供通用属性和方法 我们先来看一下继承家谱

 System Object   System Web UI Control    System Web UI TemplateControl       System Web UI Page       System Web UI UserControl    Eval方法就是TemplateControl类的方法 它有两种形式

   名称  说明  TemplateControl Eval (String)  计算数据绑定表达式  TemplateControl Eval (String String)  使用用于显示结果的指定格式字符串计算数据绑定表达式

 事实上TemplateControl类还提供了XPath方法和XPathSelect方法供Page类和UserControl继承 这 个方法是和XML数据源有关的绑定方法

 如果细心的你查看TemplateControl类的基类Control类 你就会发现其实Control类并没有提供Eval XPath XPathSelect等方法 所以Eval XPath等方法最终是在TemplateControl类中实现的

 现在 终于找到了Eval XPath等数据绑定方法的来源了

 Eval XPath等方法是 NET 新增的方法 在 NET 时代我们经常用的是DateBinder Eval方法 形如

 <%#DataBind Eval(Container DataItem 字段名 ) %>

 <%#DataBind Eval(Container DataItem 字段名 { c} ) %>

 Eval的出现其实就是为了简化DataBinder Eval方法的写法从而代替它

 在ASP NET 中及以上 当我们调用Eval时 Eval 方法会使用GetDataItem方法调用DataBinder Eval方法计算表达式的值 要想理解这句话 就算查边MSDN也一头雾水 除非我们知道Eval方法的源代码 否则根本找不到蛛丝马迹 这里就要用到反射了 我们通过反射获得了Eval方法的源代码

 protected   internal   object   Eval(string   expression)

 {

 this CheckPageExists()

 return   DataBinder Eval(this Page GetDataItem()  expression)

 }

 终于见到GetDataItem()方法了 其实它就是Page类的一个方法 也是 NET 新增一个方法 GetDataItem()方法的作用是为了获得Container DataItem 它是 NET 中用来代替Container DataItem的 如果你曾经用Repeater和DataList等绑定过数组或者ArrayList等 你就会发现<%#GetDataItem()%>和<%#Container DataItem%>等价 同时 可以肯定 Eval方法在低层上确实是调用DataBinder Eval方法实现数据绑定的 其中 this CheckPageExists() 是检查调用的时候有没有Page对象的 如果没有则会抛出一个异常

 要弄清Eval是怎么工作的 GetDataItem()方法的低层实现我们也要用反射来获取

 public object GetDataItem()

 {

 if ((this _dataBindingContext == null) || (this _dataBindingContext Count == ))

 {

 throw new InvalidOperationException(SR GetString( Page_MissingDataBindingContext ))

 }

 return this _dataBindingContext Peek()

 }

 我们从GatDataItem()方法中看到 return   this _dataBindingContext Peek() 很快就猜想_dataBindingContext是不是一个堆栈呢?事实它就是一个堆栈!通过反射查看源代码我们得出 _dataBindingContext是一个Stack类型对象 所以它有Peek方法 return   this _dataBindingContext Peek() 正是把堆栈顶部的元素返回 而if语句是用来判断这个堆栈是否已经存在或者是否已经有元素存在 如果if不成立 就会抛出一个异常

 从上面的分析我们知道 _dataBindingContext堆栈的作用是通过GetDataItem()方法这个桥梁向Eval方法提供Container DateItem 用逆向思维来理解上面这句话 Eval方法可以自动计算出Container DataItem 原因就是从dataBindingContext堆栈来获取Container DataItem 这也就为什么Eval方法能够知道形如<%#Eval 字段名 %>中字段名隶属于哪个数据项的属性的原因 同时我们也知道 NET 中的Eval在本质上的实现并没有抛弃Container DataItem 而Container DataItem在 时代也没有消失

 那么_dataBindingContext这个保存Container DataItem的堆栈是怎么建立的呢?

 我们很快就想到每次绑定控件时候最后那条语句是什么 this 控件ID DataBind() 对就是DataBind()方法 DataBind()方法还有一个重载 DataBind(bool raiseOnDataBinding) 为_dataBindingContext这个堆栈压入元素和弹出元素的方法正是用DataBind(bool flag)这个重载方法实现的

 DataBind(bool raiseOnDataBinding)在低层的实现

 protected virtual void DataBind(bool raiseOnDataBinding)    {        bool flag = false;//这个标志的用处在上下文中很容易推出来 如果有DataItem压栈 则在后面出栈         if (this IsBindingContainer)//判断控件是不是数据绑定容器 实际上就是判断控件类是不是实现了INamingContainer          {            bool flag ;            object obj = DataBinder GetDataItem(this out   flag );//这个方法是判断控件是不是有DataItem属性 并把它取出来             if (flag && (this Page != null))//如果控件有DataItem              {                this Page PushDataBindingContext(obj );//把DataItem压栈 PushDataBindingContext就是调用_dataBindingContext的Push方法                  flag = true;            }        }        try        {            if (raiseOnDataBinding)//这里是判断是不是触发DataBinding事件的             {                this OnDataBinding(EventArgs Empty);            }            this DataBindChildren();//对子控件进行数据绑定 如果这个控件有DataItem 则上面会将DataItem压入栈顶 这样 在子控件里面调用Eval或者GetDataItem方法 就会把刚刚压进去的DataItem给取出来         }        finally        {            if (flag )//如果刚才有压栈 则现在弹出来             {                this Page PopDataBindingContext();//PopDataBindingContext就是调用_dataBindingContext的Pop方法              }        }    }     当我们执行到this 控件ID DataBind() 时候 在低层上就会调用这个重载的方法来准备包含DataItem的_DatBindingContext堆栈

 上面的代码中提到了DataBinding事件 那么它一般什么时候被触发呢?

 1 如果用编程方式 那么在我们调用DataBind()方法时候自动触发DataBinding事件

 2 如果我们用数据源控件(例如SqlDataSource等) 当把控件绑定到数据源控件时候 这个事件就会自动触发

 一般数据绑定表达式常常放在模板中循环显示数据 例如Repeater和DataList等的模板 那么下面这个知识点应该知道 Repeater DataList FormView等控件必须使用模板 如果不使用模板 这些控件将无法显示数据 而GridView DetailsView Menu等控件也支持模板 但显示数据时不是必须的 而TreeView控件不支持模板

 注意 一般情况下 数据绑定表达式不会自动计算它的值 除非它所在的页或者控件显示调用DataBind()方法 DataBind()方法能够将数据源绑定到被调用的服务器控件及其所有子控件 同时分析并计算数据绑定表达式的值

 终于写的有点眉目了 好累!我们该回头看看Eval方法调用的静态DataBinder Eval方法在低层的实现了 我把DataBinder类的源代码作为附近提供下载

  二 执行效率

 从 一 讲述的低层实现 我们很容易来排序下面数据绑定表达式的执行效率<%#Container DataItem%><%#GetDataItem()%><%#Eval( 字段名 )%><%#DataBinder Eval(Container DataItem 字段名 )%><%#((DataRowView)Container DataItem)[ 字段名 ] %><%#((Type)Container DataItem) 成员 %><%#((Type)GetDataItem()) 成员 %>    效率最高应该是 <%#((Type)Container DataItem) 成员 %><%#Container DataItem%><%#((DataRowView)Container DataItem)[ 字段名 ] %>    效率排第二的是 <%#((Type)GetDataItem()) 成员 %><%#GetDataItem()%>    效率最低的是 <%#Eval( 字段名 )%><%#DataBinder Eval(Container DataItem 字段名 )%>    其实按上面的排序有失公允 原因是这七种数据表达绑定形式运用的场合不是完全相同的

 使用场合大概如下

  |<%#Eval( 字段名 )%><%#DataBinder Eval(Container DataItem 字段名 )%>    它们的使用场合最广 数据源可以为与数据库有关的DataSet DataTable DataView 也可以为普通集合(例如 数组 ArrayList HashTable等)和泛行集合(例如 List<T> Dictionary<Tkey Tvalue>等)

 注 它们 个永远可以相互替换 至少目前是这样 凡是可以用Eval方法的地方 就可以用DataBinder Eval方法替换 从低层实现上 Eval比DataBinder Eval方法效率稍低 原因是Eval方法对了调用GetDataItem()方法这一步 但最终都是通过DataBinder Eval方法利用反射技术根据名称查找属性 从而计算出表达式的值 所以非常影响性能

 

 <%#((DataRowView)Container DataItem)[ 字段名 ] %>

 它只能使用在数据源为与数据库有关的Dataset DatTable DataView 这些数据源都实现了IListSource接口 其实从低层实现本质上来看 它和<%#((Type)Container DataItem) 成员 %>类似

lishixinzhi/Article/program/net/201311/11866

对于我们需要修谱的用户来说:

第一:能查看家谱,每个姓氏都能查。

第二:修谱、修家谱、修族谱,分别每个姓氏的家谱族谱等。

第三:要有相关一些内容板块,这样能增加用户粘性,用户在这里不仅能修谱查阅家谱,还能看到一些有趣的,跟家谱相关的内容。

第四:除了这些我觉得还要有分享功能,用户可以和家人一起修谱查阅家谱等

第五:我觉得个人开发真的没有必要,现在市场上有很多族谱软件,像家谱国际研发的修谱王软件就很好,有专业版和个人版。百度搜家谱国际,听说家谱国际做的是最专业的。

家谱有规定的格式吗?

家谱经过几千年的发展演进,目前有了很大的扩展。其格式已经丰富多变,没有唯一。只要核心理念、内容一致,格式就不那么强调了。 一、从内...
点击下载
热门文章
    确认删除?
    回到顶部