⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intraweb开发指南.htm

📁 HR人力资源 (修改版) 含开发手记
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            style="FONT-FAMILY: 宋体">信息的话,首先是这些都是重复的无聊工作,其次如果有一天</SPAN><SPAN 
            lang=EN-US>Logo</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">信息改变了,而类似的页面有</SPAN><SPAN 
            lang=EN-US>100</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">个话,维护工作就是非常巨大了,那么这一问题如何解决呢?</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN><SPAN style="FONT-FAMILY: 宋体">在一般</SPAN><SPAN 
            lang=EN-US>Delphi</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">程序开发中,我们都知道这种问题可以通过框架和界面继承来实现,幸运的是</SPAN><SPAN 
            lang=EN-US>Intraweb</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">同样支持界面继承和框架。</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN><SPAN style="FONT-FAMILY: 宋体">执行</SPAN><SPAN lang=EN-US>File 
            | New… | Intraweb| Application Form</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">新建一个页面窗体,起名为</SPAN><SPAN 
            lang=EN-US>TformBase, </SPAN><SPAN 
            style="FONT-FAMILY: 宋体">在界面上放一个</SPAN><SPAN 
            lang=EN-US>TIWImage</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">,设定图像。然后新建一个</SPAN><SPAN 
            lang=EN-US>TFrame</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">,命名为</SPAN><SPAN lang=EN-US>FrameMenu, 
            </SPAN><SPAN style="FONT-FAMILY: 宋体">在</SPAN><SPAN 
            lang=EN-US>Frame</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">上放四个</SPAN><SPAN 
            lang=EN-US>TIWLink</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">控件,设置</SPAN><SPAN 
            lang=EN-US>Caption</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">分别为</SPAN><SPAN lang=EN-US>”</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">单位列表</SPAN><SPAN lang=EN-US>”</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">,“人员列表”,“人员信息查询”,“权限设置”,当用户点击各个</SPAN><SPAN 
            lang=EN-US>Link</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">的时候,需要显示不同的相关界面,</SPAN><SPAN 
            lang=EN-US>TIWLink</SPAN><SPAN style="FONT-FAMILY: 宋体">的</SPAN><SPAN 
            lang=EN-US>OnClick</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">事件实现如下:</SPAN></P>
            <P><SPAN lang=EN-US>procedure TFrameMenu.iwlCorpClick(Sender: 
            TObject);</SPAN></P>
            <P><SPAN lang=EN-US>begin</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; Move(TformCorpList);//</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">显示公司编辑界面</SPAN></P>
            <P><SPAN lang=EN-US>end;</SPAN></P>
            <P><SPAN lang=EN-US>procedure TFrameMenu.iwlHumanClick(Sender: 
            TObject);</SPAN></P>
            <P><SPAN lang=EN-US>begin</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; Move(TformHumanList);//</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">显示人员编辑界面</SPAN></P>
            <P><SPAN lang=EN-US>end;</SPAN></P>
            <P><SPAN lang=EN-US>procedure TFrameMenu.iwlQueryClick(Sender: 
            TObject);</SPAN></P>
            <P><SPAN lang=EN-US>begin</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; Move(TformQuery);//</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">显示查询界面</SPAN></P>
            <P><SPAN lang=EN-US>end;</SPAN></P>
            <P><SPAN lang=EN-US>procedure TFrameMenu.iwlRightClick(Sender: 
            TObject);</SPAN></P>
            <P><SPAN lang=EN-US>begin</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; Move(TformRight);//</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">显示权限界面</SPAN></P>
            <P><SPAN lang=EN-US>end;</SPAN></P>
            <P><SPAN style="FONT-FAMILY: 宋体">完成的</SPAN><SPAN 
            lang=EN-US>TformBase</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">示意图如下:</SPAN></P>
            <P><SPAN lang=EN-US><IMG height=176 
            src="IntraWeb开发指南.files/web008.jpg" width=312 
            v:shapes="_x0000_i1030"> </SPAN></P>
            <P><SPAN 
            style="FONT-FAMILY: 宋体">接下来,我们首先要创建公司信息编辑界面,这个界面要从前面建立的</SPAN><SPAN 
            lang=EN-US>formBase</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">界面继承而来,示意图:</SPAN></P>
            <P><SPAN lang=EN-US><IMG height=306 
            src="IntraWeb开发指南.files/image010.gif" width=371 
            v:shapes="_x0000_i1026"> </SPAN></P>
            <P><B><SPAN style="FONT-FAMILY: 宋体">分页控制</SPAN></B></P>
            <P><SPAN style="FONT-FAMILY: 宋体">由于公司可能会有很多条,这里使用</SPAN><SPAN 
            lang=EN-US>TIWDBGrid</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">来显示公司列表,使用</SPAN><SPAN 
            lang=EN-US>TIWDBNavigator</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">来对公司进行编辑。由于公司数目可能会比较多,所以采用多页显示,要有上一页和下一页的功能,完成的界面示意图如下:</SPAN></P>
            <P><SPAN lang=EN-US><IMG height=386 
            src="IntraWeb开发指南.files/web012.jpg" width=516 
            v:shapes="_x0000_i1027"> </SPAN></P>
            <P><SPAN style="FONT-FAMILY: 宋体">注意上面的核心控件</SPAN><SPAN 
            lang=EN-US>TIWDBGrid</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">要有一些特殊的设定,下面是它的重要的属性设定列表:</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; object iwgCorp: TIWDBGrid</SPAN></P>
            <P><SPAN lang=EN-US>UseFrame = True&nbsp; //Grid</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">将显示在一个框架中,但</SPAN><SPAN 
            lang=EN-US>Grid</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">行数超出显示区域范围的时候</SPAN></P>
            <P><SPAN style="FONT-FAMILY: 宋体">将,显示滚动条和框架。</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp;&nbsp;&nbsp; FromStart=false 
            //</SPAN><SPAN style="FONT-FAMILY: 宋体">分页显示时,必须设定</SPAN><SPAN 
            lang=EN-US>FromStart</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">为</SPAN><SPAN lang=EN-US>False</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp;&nbsp;&nbsp; DataSource = 
            dmHR.dsCorp</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp;&nbsp;&nbsp; Options = [dgIndicator, 
            dgShowTitles] //</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">显示标题,以及在当前活动记录前显示</SPAN><B><SPAN 
            lang=EN-US>*</SPAN></B><SPAN style="FONT-FAMILY: 宋体">号</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp;&nbsp;&nbsp; RefreshMode = 
            rmAutomatic&nbsp; //</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">每次刷新页面时,会根据数据集更新界面显示</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp;&nbsp;&nbsp; RowLimit = 3&nbsp;&nbsp; 
            //</SPAN><SPAN style="FONT-FAMILY: 宋体">用于控制当</SPAN><SPAN 
            lang=EN-US>Grid</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">分页显示,每页最多显示的记录数目</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; end</SPAN></P>
            <P><SPAN style="FONT-FAMILY: 宋体">要想实现分页控制,除了需要设定</SPAN><SPAN 
            lang=EN-US>DBGrid</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">的属性外,我们还需要调用数据集的</SPAN><SPAN 
            lang=EN-US>MoveBy</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">方法来实现滚动,代码如下:</SPAN></P>
            <P><SPAN lang=EN-US>procedure TformCorpList.iwbLastPageClick(Sender: 
            TObject);</SPAN></P>
            <P><SPAN lang=EN-US>begin</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; inherited;</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; //</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">向前翻一页,滚动的数目正好是</SPAN><SPAN 
            lang=EN-US>DBGrid</SPAN><SPAN style="FONT-FAMILY: 宋体">的</SPAN><SPAN 
            lang=EN-US>RowLimit</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; 
            dmHR.badoCorp.MoveBy(-iwgCorp.RowLimit);</SPAN></P>
            <P><SPAN lang=EN-US>end;</SPAN></P>
            <P><SPAN lang=EN-US>procedure TformCorpList.iwbNextPageClick(Sender: 
            TObject);</SPAN></P>
            <P><SPAN lang=EN-US>begin</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; inherited;</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; //</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">向后翻一页</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; 
            dmHR.badoCorp.MoveBy(iwgCorp.RowLimit);</SPAN></P>
            <P><SPAN lang=EN-US>end;</SPAN></P>
            <P><B><SPAN style="FONT-FAMILY: 宋体">列控制</SPAN></B></P>
            <P><SPAN style="FONT-FAMILY: 宋体">平时我们在使用</SPAN><SPAN 
            lang=EN-US>TDBGrid</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">的时候,选中某一条记录的时候会将数据集的游标定位到相应的记录上,同样的我们也想在</SPAN><SPAN 
            lang=EN-US>TIWDBGrid</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">上实现这一功能,这需要设定</SPAN><SPAN 
            lang=EN-US>IWDBGrid</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">的</SPAN><SPAN lang=EN-US>Column</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">对象的</SPAN><SPAN 
            lang=EN-US>LinkField</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">属性。</SPAN></P>
            <P><SPAN lang=EN-US><IMG height=132 
            src="IntraWeb开发指南.files/web014.jpg" width=115 
            v:shapes="_x0000_i1031"> &nbsp; <IMG height=262 
            src="IntraWeb开发指南.files/web016.jpg" width=197 
            v:shapes="_x0000_i1032"> &nbsp; <IMG height=242 
            src="IntraWeb开发指南.files/image018.jpg" width=181 
            v:shapes="_x0000_i1033"> </SPAN></P>
            <P><SPAN style="FONT-FAMILY: 宋体">比如在图中我们给</SPAN><SPAN 
            lang=EN-US>ChnName</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">字段设定了</SPAN><SPAN 
            lang=EN-US>LinkField</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">为</SPAN><SPAN lang=EN-US>CorpID</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">键值字段,</SPAN><SPAN 
            lang=EN-US>LinkField</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">可以将绑定的字段的当前值传给</SPAN><SPAN 
            lang=EN-US>OnClick</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">事件,可以用来定位数据集的游标,</SPAN><SPAN 
            lang=EN-US>OnClick</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">事件的实现代码如下:</SPAN></P>
            <P><SPAN lang=EN-US>procedure 
            TformCorpList.iwgCorpColumns1Click(ASender: TObject;</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; const AValue: String);</SPAN></P>
            <P><SPAN lang=EN-US>var</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; Id:Integer;</SPAN></P>
            <P><SPAN lang=EN-US>begin</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; inherited;</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; //</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">获得</SPAN><SPAN lang=EN-US>CorpID</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">值,使用</SPAN><SPAN 
            lang=EN-US>Locate</SPAN><SPAN style="FONT-FAMILY: 宋体">定位值</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; Id:=StrToInt(AValue);</SPAN></P>
            <P><SPAN lang=EN-US>&nbsp; 
            dmHR.badoCorp.Locate('CorpId',Id,[]);</SPAN></P>
            <P><SPAN lang=EN-US>end;</SPAN></P>
            <P><SPAN 
            style="FONT-FAMILY: 宋体">运行后,从前面的图中我们可以看到在清华同方公司的下面有一个下滑线,点击超连接就会调用</SPAN><SPAN 
            lang=EN-US>OnClick</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">事件,将数据集游标更新为被点记录,同时更新界面下边的公司中文信息和英文信息。</SPAN></P>
            <P><B><SPAN style="FONT-FAMILY: 宋体">信息编辑</SPAN></B></P>
            <P><SPAN 
            style="FONT-FAMILY: 宋体">完成记录浏览功能,我们需要实现对公司信息编辑的功能。其中增加和修改公司记录用一个界面来完成,为了识别操作性质的不同,我们为编辑界面增加了一个</SPAN><SPAN 
            lang=EN-US>EditMode</SPAN><SPAN 
            style="FONT-FAMILY: 宋体">属性,它是枚举类型的,当修改时设为</SPAN><SPAN 
            lang=EN-US>emEdit, </SPAN><SPAN 
            style="FONT-FAMILY: 宋体">当添加时设为</SPAN><SPAN 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -