xmlspy教程第十七步在Grid视图中填入数据
Xmlspy教程
XML Spy实例教程/school · 2004-12-23 12:13:16 · 来源: 天极网在读这篇教程之前,你至少应当确认自己对XML相当熟知,使用记事本或其他工具编辑过XML、DTD以及XSLT文档,并且熟悉它们的语法及用途,否则请先补过课之后再来阅读本教程。
XML Spy是Icon Information System开发的支持XML,XSL,XSLT,DTD,Schema等等多种文件格式的编辑器。
它可以将XML展示为完美的树型结构,可以方便的使用各种HTML/XML/XSLT标记,使用它可以大大节约我们的开发时间,不必把大量的时间浪费在代码的输入上。
下面我们通过一个存储电影信息的实例来学习一下XML Spy的使用方法。
第一步:我们要设计三个文件:saveit.xml,saveit.dtd和saveit.xslt;saveit.xml 负责存储具体电影内容数据,saveit.dtd负责对saveit.xml的验证,而saveit.xslt则负责对saveit.xml进行样式变换,确定它在浏览器里的最终显示效果。
先来看看我们需要建立的三个文件的代码:----------saveit.xml------------------<?xml version="1.0" encoding="GB2312"?><!DOCTYPE movies SYSTEM "G:\\\\xmlspy\\\\saveit.dtd"><?xml-stylesheet type="text/xsl" href="G:\\\\xmlspy\\\\saveit.xslt"?><movies type="动作片"><id>1</id><name>致命摇篮</name><brief>李连杰最新力作!</brief><time>2003</time></movies>----------saveit.dtd------------------<?xml version="1.0" encoding="GB2312"?><!ELEMENT movies (id, name, brief, time)><!ATTLIST movies type CDATA #REQUIRED><!ELEMENT id (#PCDATA)><!ELEMENT name (#PCDATA)><!ELEMENT brief (#PCDATA)><!ELEMENT time (#PCDATA)>----------saveit.xslt------------------<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="/1999/XSL/Transform"><xsl:output method="xml" version="1.0" encoding="GB2312" indent="yes"/><xsl:template match="/"><html><head><title>:::凌云的XML Spy教程:::</title></head><body><xsl:apply-templates></xsl:apply-templates></body></html></xsl:template><xsl:template match="movies">第<xsl:value-of select="id"></xsl:value-of>部电影<table><tbody><tr><td>名称</td><td>简介</td><td>时间</td><td>类型</td></tr><tr><td><xsl:value-of select="name"></xsl:value-of></td><td><xsl:value-of select="brief"></xsl:value-of></td><td><xsl:value-of select="time"></xsl:value-of></td><td><xsl:value-of select="@type"></xsl:value-of></td></tr></tbody></table></xsl:template></xsl:stylesheet>第二步:使用XML Spy建立saveit.dtd文档。
Grid表格使用技巧
Grid表格使用技巧∈褂肰FP中表格设计浏览界面,给人简捷方便直观的感觉。
下面向你介绍几例操作小技巧,希望喜欢。
一、快速建立Grid表格对于字段较多的表,要制作Grid表格非常麻烦。
在这里,你只要能灵活地利用VFP的“表单生成器”,就能大大提高Grid表格的制作效率。
假设需要以A.dbf为处理对象建立一个Grid表格,其建立步骤如下:(1)建立一个只有两个字段的自由表B.dbf,并使其中的一个字段能与A.DBF中的某个字段相关;(2)启动“表单生成器”,选择“向导方式”中的“一对多表单向导”;(3)在“一对多表单向导”的操作引导下,以B.dbf为父表、A.dbf 为子表的基本模式制作表单。
在选择子表字段时,以未来Grid表格的需要来进行A.dbf字段的选取;(4)打开由第(3)步制作的表单,剪切表单上的Grid表格,然后再退出该表单;(5)打开您程序中需要使用Grid表格的表单,把在第(4)步上剪切的Grid表格复制到当前表单上。
这样,一个符合程序要求的Grid表格即制作完毕。
用此方法制作Grid表格,表格字段越大,本方法的效率就越高。
二、用Grid模拟Browse窗口可以将Grid结合在Form对象中,模拟成一个Browse命令窗口,可以自由调整Form大小,而Grid对象也会自动调整大小。
用下面方法可以实现:(1)首先设定一个Form对象,该对象必须保留其BorderStyle为3-可调边框,这样可自由调整大小之边线属性;同时设定Resize事件程序如下:Thisform.Grid1.Width=this.widthThisform.Grid1.Height=this. Height(2)设计一个Grid对象于Form对象中,并设定其属性如下:RecordSource-目前“数据环境”中所设定的工作区别名Top与Left均为0,表示该对象左上端坐标为0,0Width=Thisform.WidthHeight=Thisform.Height这样,已经设定好的Grid对象和Browse窗口一般,当对Form 对象进行大小调整时,对象的高度与宽度就可以随之调整了。
利用XMLSPY生成报文操作步骤
利用XMLSPY 2006、Microsoft Office Excel 2003生成多条XML报文数据的步骤:
(1)首先利用Excel准备好CSV格式的文件(即保存格式为csv逗号分隔),如图1-1,在该文件中,第1行为报文的请求数据字段,各字段的名称及顺序请按照给定的标准报文格式进行调整
利用该表格可以准备多条数据,这个仅以10条数据为例
利用xmlspy执行转换导入文本文件如图12图123在弹出的对话框中选择转换csv文本文件为xml点击确定如图13图134在弹出的对话框中执行选择文件如图14图145选择已准备好的csv文件并打开如图15图156在返回的下面的对话框中选择文件编码字段定界符首行包含字段名称点击确定如图16图167在栅格中修改默认的row修改为报文中包含这些字段数据的元素名称比如fee如图17图178在文本中复制该元素的数据如图18图189用记事本或xmlspy打开报文用8复制的报文覆盖已有的元素报文如图19图192以数据库数据的方式导入利用xmlspy2006microsoftofficeaccess2003microsoftofficeexcel2003生成多条xml报文数据的步骤
详细步骤如下:
(1)在XMLSPY中,打开报文,定位到栅格,选中报文中的元素,如图2-1
图2-1
(2)点击“转换”菜单,选中“导出为文本文件/数据库”,如图2-2
图2-2
(3)在弹出的对话框中选中“转换XML到文本文件或数据库数据”,点击“确定”,如图2-3
图2-3
(4)在弹出的对话框中中,选中元素名称,点击“导出到数据库”,如图2-4
注:选中的元素在导出的mdb数据库文件中以表的形式存在
图2-4
(5)在弹出的对话框中,目标数据库选择第一项,点击确定,如图2-5
VFP中使用Grid控件设计通用录入界面
Grid是VFP功能强大的表格(或者说网格)控件,它提供了比Browse窗口强大得多的控制方式。
Grid是包含列对象的容器对象,而列对象包含了列标题对象及列控件对象,均有各自相应的属性集,因此我们可以完全控制表格中的任何一个元素,设计出通用的报表录入界面。
下面我们就详细讨论如何使用Grid控件设计通用录入界面,并解决几个设计过程中经常碰到的问题。
一、基本原理思路设计灵活性、通用性较强的录入界面较为合适的方法是:采用数据表(DBF文件)控制Grid控件的行列显示信息、显示方式。
因此,我们将Grid控件的数据源RecordSource设为数据表(DBF文件),其数据格式、显示方式及行列提示信息则分别由数据表RowMsg.DBF(控制表格的行即记录方面信息)、ColMsg.DBF(数据格式并控制Grid控件的列方面信息)进行控制。
另外,一般来说指定Grid控件第一列显示行提示信息,若有多个提示信息字段,可连接处理为一列。
二、前期准备工作1.创建表RowMsg.DBF,该表有2个字段,用于显示Grid控件行信息:Create Table RowMsg(Code C(5),Name C(33))2. 创建表ColMsg.DBF,该表有6个字段,用于控制、显示表格各列信息:Create Table ColMsg(Code C(5),Name C(20),NeedIn L(1),Field_Name C(10),Field_Type C(1),Fi eld_Len N(3),Field_Dec N(3))3.创建表单In_Grid,将其属性Name改为“FrmGrid”, Caption改为“数据录入/修改窗口”;在表单上放置Grid控件,将其属性Name改为“GridDat”;在表单上放置Command控件,将其属性Name改为“CmdExit”, Caption改为“关闭退出”。
三、初步设计工作1.先在表单的Init事件中写入如下代码:Set Talk OffSet Safe OffCLOSE ALLWith ThisForm.AutoCenter=.T. &&表单自动居中.ControlBox=.F. &&去除表单的控制框.Width=_Screen.Width &&表单宽度同屏幕EndWith**/由ColMsg.DBF生成输入数据表Dat.DBF **/Sele 0Use ColMsgCopy To TmpStru Field Field_Name,Field_Type,Field_Len,Field_DecCopy To TmpColMsg For NeedInCreate Dat From TmpStru &&生成Dat.DBFEras TmpStru.DBFSele 0Use TmpColMsg Alias ColMsgSele 0Use RowMsgIndex On AllTrim(Code) To TmpRowMsgScanInsert Into Dat(Code) V alues (RowMsg.Code) &&由RowMsg.DBF生成Dat.DBF的所有记录EndScanSele DatGo TopSet Rela To AllTrim(Code) Into RowMsgWith ThisForm.GridDat.FontName="宋体".FontSize=10.DeleteMark=.F. &&去除Grid的删除标记列,以美化界面.RecordMark=.F. &&去除Grid的记录选择标记列,以美化界面.ScrollBars=0 &&去除Grid的水平及垂直滚动条,以美化界面.Allow HeaderSizing=.F.&&设定Grid的标题栏的高度不可改变.AllowRowSizing=.F. &&设定Grid的各行高度不可改变.ColumnCount=Recc("ColMsg")+1.RecordSourceType=2.RecordSource="Dat"**/下面指定表格第一列显示行提示信息,并设置该列有关属性。
XMLSpy环境和使用
附:XMLSpy环境和使用:1、创建最简单的XML文档(即不使用XML模式验证有效性的文档):(1)选择菜单“File-New”,在打开的对话框这个选择文件类型为“Extensible Mark Language”,如下图:点击OK,在以下弹出的对话框中不选择任何XML模式,直接点击cancel,则可以进入XML文档的编辑界面。
图1(2)完成XML文档编辑并保存以后,需要检查XML文档是否是良好格式的,选择菜单“XML-Checked Well-Formedness”或工具栏上的相应按钮:或工具栏:2. 创建用DTD或XML Schema验证的XML文档(1)创建DTD或XML Schema:创建DTD文档:选择菜单“File-New”,在打开的对话框中选择文档类型为“dtd Document Type Definition”,并点击OK,即可进入DTD文档编辑界面;创建XML Schema:选择菜单“File-New”,在打开的对话框中选择文档类型为“xsd W3C XML Schema”, 并点击OK,即可进入XML Schema文档编辑界面;注意:普通XML文档和DTD文档编辑界面默认的选项卡均为Text,而XML Schema文档编辑界面默认的选项卡为,需要切换到Text。
(2)创建引用DTD或XML Schema文档的XML文档步骤和创建普通文档类似,只不过在图1的对话框中选择DTD或XML Schema,点击OK后在打开的对话框中指定DTD或XML Schema文档即可,如下注意:复选框“Make path relative to …”用于选择是否在引用DTD或XML Schema 时使用相对路径。
(3)如果要检查XML文档是否是有效的,则选择菜单“XML-Validate XML”或工具栏上的相应按钮,工具栏如下:。
XML报表操作流程详解
XML报表操作流程详细讲解——2014-8-10 XML报表有两种方法可以实现:REPORT和PL/SQL,这里介绍PL/SQL的做法,REPORT可以参考PPT教程。
第一步:写好PL/SQL程序第二步:在浏览器(如IE)上输入网址打开ERP系统,输入用户名和密码登陆。
如图1图 1第三步:登陆进去之后,在左边导航栏目下找到-应用开发员并展开,如图2,再找到并发,同样展开它,你会发现里面有程序、可执行、程序库三个标签,如图3。
图 2图3第四步:双击可执行,此时会弹出一个oracle application 的窗体,如图所示。
如果没有弹出,可能需要安装一些东西,如果安装了还没有弹出则可能是浏览器兼容性问题,需要设置浏览器的安全性。
弹出之后,如图4所示图 4接下来就可以进行可执行并发程序的定义:可执行——填写的是自己定义的可执行名称,通常开发过程中会按项目组的命名规范来填写,例如由有实际意义的简短英语单词构成。
简称——通常简称和可执行填写的是一样的,目的是为了便于后期维护和记忆,以免太多的名称造成混淆。
应用产品——就是要应用此XML报表的产品说明——说明性文字,只是为了便于读者理解,可不填执行方法——执行方法有很多种,如图5,具体看你是采用哪一种,这里选择PL/SQL存储过程,默认情况下是oracle reports执行文件名——由两部分组成,前面是包名,后面是过程名,中间用点号.隔开,如图6子例程名、执行文件路径不用填,很少用,具体我也没用过。
注意:如果可执行已经被定义过,按F11键可进入查询模式,输入完查询字符后,接着按Ctrl + F11组合键则是执行查询。
这个是ERP系统的通用快捷键,经常被用到。
最后填完之后点击保存按钮,如图8。
图 5图6图7 完整的可执行定义图8 保存第五步:关掉可执行定义小窗口后,回到主界面,再展开并发,找到程序标签,双击它。
接着弹出如图10的窗体,开始定义并发程序:图9图10程序——名称同样由自己决定,但这是最终用户提交请求时看到的名称,应该用友好的中文或英文描述。
VFP中GRID的使用技巧
VFP中GRID的使用技巧1. Grid的基本设置:首先,需要确定GRID的显示方式,包括行高、列宽、表头、网格线等。
可以通过属性窗口设置,或通过编程方式设置。
3. 增加和删除行:GRID通常支持用户通过界面进行添加和删除行的操作。
可以使用AddRow方法添加新行,使用RemoveRow方法删除指定的行。
4. 列设置:GRID通常包含多个列,可以对每个列进行设置,包括列标题、列宽、列类型等。
可以使用ColumnCount、ColumnWidths、HeaderText等属性进行设置。
6. 行选择:GRID通常支持用户选择一行或多行。
可以使用AllowRowSelection属性设置是否允许选择行,使用SelectedRow属性获取当前选择的行号。
7. 列排序:用户通常希望GRID中的数据可以按照指定的列进行排序显示。
可以使用Sortable属性设置是否允许排序,使用Sort方法来实现排序。
8. 列过滤:用户通常希望GRID中的数据可以按照指定的条件进行过滤。
可以使用Filter属性设置过滤条件,使用ApplyFilter方法来应用过滤条件。
9. 数据格式化:GRID中的数据通常需要根据特定的格式进行显示,例如日期、时间、金额等。
可以使用Format属性设置数据的格式。
10. 列合计:GRID中的数据通常需要进行求和或者其他统计操作。
可以使用Summaries属性设置每列的合计方式,使用SummaryType属性指定求和或其他操作。
11. 脚本编程:GRID可以通过脚本进行自定义操作,包括处理单元格点击、行选择变化、合计计算等事件。
可以使用OnCellClick、OnRowChange和OnSummariesCalculate等事件进行脚本编程。
12. 导出和导入数据:用户通常希望能够将GRID中的数据导出到其他格式,例如Excel、CSV等。
可以使用TOFILE命令将GRID数据导出到文件,使用APPEND FROM命令导入数据到GRID。
xmlspy教程第二十步在Grid视图中添加元素和属性
20在Grid视图中添加元素和属性
目前,文档中仅有一个Person元素。
要新添一个Person元素,请按下列步骤执行:
1.点击Address元素左侧的边条(sidebar),将其折起。
这样Grid视图会显得更加简
洁。
2.在Grid视图中,点击Person元素的标题(即“Person”文字)以选中整个Person元素。
可以看到,现在Person元素在Elements窗口的Append选项卡中是可用的。
3.在Elements窗口的Append选项卡中双击Person元素,这将在已有的Person元素
后新添(append)一个Person元素,而Person应包含的子元素也将自动生成(见
下图)。
(注意:由于Title元素是可选的,因此它没有被自动插入。
)
4.点击新添Person元素的Manager属性。
看一下Attributes窗口。
由于Manager属性
已经出现过一次了,因此现在它在列表中呈灰色。
再看一下Info窗口(缺省在主窗口左侧),可以看到其中列出了Manager属性的有关信息。
5.在Attributes窗口的Append选项卡中,双击Programmer,Manager属性后将插入一
个空的Programmer属性。
现在,Attributes窗口中的Programmer也变为灰色的了。
虽然现在您也可以在当前普通Grid视图中为新添的Person元素输入内容,但我们希望切换到Grid视图的数据库/表格视图,因为那里更适于编辑多条结构相同的数据(比如这里的Person 元素)。
巧用VFP的Grid表格控件
巧用VFP的Grid表格控件论文导读:很多VFP初学者采取使用BROWSE命令或在文件夹下双击数据表文件的方法对数据表进行浏览、查询和修改数据,但BROWSE命令操作界面呆板、不能脱离VFP的主窗口执行、容易出错(比如操作时不小心按了空格键,光标所在处的内容就被空格代替了)。
设置表格的数据源类型recordsourcetype属性为1(别名),数据源recordsource属性为xsb,列数columncount属性为xsb表的字段数16,删除标记deletemark属性为.f.(不显示删除标记),只读属性readonly为.t.(不允许用户在表格中修改数据),并将列标题用汉字描述(即表1中备注内容),如column1.header1.caption值为“报到情况”等。
关键词:VFP,Grid控件,属性,设置技巧很多VFP初学者采取使用BROWSE命令或在文件夹下双击数据表文件的方法对数据表进行浏览、查询和修改数据,但BROWSE命令操作界面呆板、不能脱离VFP的主窗口执行、容易出错(比如操作时不小心按了空格键,光标所在处的内容就被空格代替了)。
Grid表格控件是VFP表单的常用控件之一,能够进行再次编程,不仅操作界面美观,而且方便灵活、效率高。
本文以新生报到管理为例,介绍几则Grid表格控件使用技巧。
设有学生表(xsb.dbf),表结构如表1所示,建立表单文件,主要包括以下控件:1个表格控件(Grid1)、1个文本框、3个命令按钮(查询、报到、退出)等。
发表论文。
1.设置表格基本属性设置表格的数据源类型recordsourcetype属性为1(别名),数据源recordsource属性为xsb,列数columncount属性为xsb表的字段数16,删除标记deletemark属性为.f.(不显示删除标记),只读属性readonly为.t.(不允许用户在表格中修改数据),并将列标题用汉字描述(即表1中备注内容),如column1.header1.caption值为“报到情况”等。
VB实现类电子表格grid的数据录入
VB实现类电子表格grid的数据录入---- 在编程中经常会遇到应用程序中要输入大量数据的问题,如果能在该程序中实现象电子表格那样的输入界面,就可以解决这个问题。
---- VB 虽提供了Grid 网格控件,但其只具有显示输出功能,要使其能接受输入数据,必须对它加以改造,在计算机报刊中的许多文章都对此进行了探讨,但所用方法都不能令人满意,笔者经过摸索,找出以下办法,供有兴趣者参考。
---- 首先在VB 5.0 环境下Form1 中放上如图1 所示的各控件:Text1;Grid1;Command1;Command2;Vscroll1;Hscroll1。
图1 Form1 及其控件---- 双击Form1 打开Code 窗口,编制程序代码。
Dim inputcolnum, inputrownum As IntegerPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Activate()Text1.SetFocus ' 文本框获得焦点End SubPrivate Sub Form_Load()Grid1.ColWidth(0) = 540Grid1.RowH eight(0) = 216 '单元格的宽和高inputcolnum = 13inputrownum = 15 '表中显示的列、行数Grid1.Cols = 20Grid1.Rows = 20 '表中总的列、行数HScroll1.Height = 300VScroll1.Width = 300 '水平和垂直滚动条的高、宽度Grid1.Height = (inputrownum + 1) '(Grid1.RowHeight(0) + Grid1.GridLineWidth * 12) + 12 + HScroll1.Height'800×600象素时为12;640×480为15Grid1.Width = (inputcolnum + 1) *(Grid1.ColWidth(0) + Grid1.GridLineWidth * 12) + 12 + VScroll1.Width'表的高、宽度HScroll1.Width = Grid1.Width - VScroll1.Width VScroll1.Height = Grid1.Height - HScroll1.Height ' 水平和垂直滚动条的宽、高度HScroll1.Left = Grid1.LeftHScroll1.Top = Grid1.Top + Grid1.Height - HScroll1.Height ' 水平滚动条的位置VScroll1.Left = Grid1.Left + Grid1.Width - VScroll1.Width VScroll1.Top = Grid1.Top' 垂直滚动条的位置HScroll1.Min = 1HScroll1.Max = Grid1.Cols - inputcolnumVScroll1.Min = 1VScroll1.Max = Grid1.Rows - inputrownum' 水平和垂直滚动条的范围Text1.Width = Grid1.ColWidth(0)Text1.Height = Grid1.RowHeight(0)' 文本框的宽、高度Text1.Left = Grid1.Left + Grid1.ColWidth(0)+ Grid1.GridLineWidth * 12Text1.Top = Grid1.Top + Grid1.RowHeight(0)+ Grid1.GridLineWidth * 12' 文本框的位置' 初始化赋值Text1.Visible = TrueFor I = 1 To Grid1.Cols - 1Grid1.Col = IGrid1.Row = 0Grid1.Text = Str(I)Grid1.Col = 0Grid1.Row = IGrid1.Text = Str(I)Next IGrid1.Col = 1Grid1.Row = 1 ' 网格的列、行初始位置Grid1.SelStartCol = 1Grid1.SelStartRow = 1 '网格中单元格的列、行初始位置Grid1.LeftCol = 1Grid1.TopRow = 1 '网格中左上角的列、行初始位置End SubPrivate Sub Grid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Grid1.Col = Grid1.SelStartColGrid1.Row = Grid1.SelStartRowText1.Text = Grid1.Textcolnum = Grid1.Col - Grid1.LeftCol + 1rownum = Grid1.Row - Grid1.TopRow + 1Text1.Left = Grid1.Left + (Grid1.ColWidth(0)+ Grid1.GridLineWidth * 12) * colnumText1.Top = Grid1.Top + (Grid1.RowHeight(0)+ Grid1.GridLineWidth * 12) * rownumEnd SubPrivate Sub Grid1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.SetFocusEnd SubPrivate Sub HScroll1_Change()startcol = Grid1.LeftColGrid1.LeftCol = HScroll1.ValueGrid1.SelStartCol = Grid1.SelStartCol+ Grid1.LeftCol - startcolGrid1.Col = Grid1.SelStartColText1.Text = Grid1.TextEnd SubPrivate Sub Text1_Change()Grid1.Text = Text1.TextEnd SubPrivate Sub Text1_KeyDown(KeyCodeAs Integer, Shift As Integer)Select Case KeyCodeCase 38 ' 光标向上Grid1.Text = Text1.TextIf Grid1.SelStartRow < 2 ThenIf Grid1.TopRow > 1 ThenVScroll1.Value = VScroll1.Value - 1ElseGrid1.SelStartRow = 1End IfElseIf Grid1.TopRow = Grid1.SelStartRow Then VScroll1.Value = VScroll1.Value - 1ElseGrid1.SelStartRow = Grid1.SelStartRow - 1End IfEnd IfGrid1.Col = Grid1.SelStartColGrid1.Row = Grid1.SelStartRowcolnum = Grid1.Col - Grid1.LeftCol + 1rownum = Grid1.Row - Grid1.TopRow + 1Text1.Text = Grid1.TextText1.Left = Grid1.Left + (Grid1.ColWidth(0)+ Grid1.GridLineWidth * 12) * colnumText1.Top = Grid1.Top + (Grid1.RowHeight(0)+ Grid1.GridLineWidth * 12) * rownumExit SubCase 40 ' 光标向下Grid1.Text = Text1.TextIf Grid1.SelStartRow > inputrownum - 1 ThenIf Grid1.TopRow < Grid1.Rows - inputrownum Then VScroll1.Value = VScroll1.Value + 1ElseIf VScroll1.Value = VScroll1.Max AndGrid1.SelStartRow < Grid1.Rows - 1 ThenGrid1.SelStartRow = Grid1.SelStartRow + 1ElseGrid1.SelStartRow = Grid1.Rows - 1End IfEnd IfElseIf Grid1.TopRow = Grid1.SelStartRow - inputrownum Then VScroll1.Value = VScroll1.Value + 1ElseGrid1.SelStartRow = Grid1.SelStartRow + 1End IfEnd IfGrid1.Col = Grid1.SelStartColGrid1.Row = Grid1.SelStartRowcolnum = Grid1.Col - Grid1.LeftCol + 1rownum = Grid1.Row - Grid1.TopRow + 1Text1.Text = Grid1.TextText1.Left = Grid1.Left + (Grid1.ColWidth(0)+ Grid1.GridLineWidth * 12) * colnumText1.Top = Grid1.Top + (Grid1.RowHeight(0)+ Grid1.GridLineWidth * 12) * rownumExit Sub。
XMLSPY 用户手册
XMLSPY 用户手册6.9.1 创建一个基本的XML Schema(1)在新建一个Schema文档在新建一个Schema文档时,窗口中将出现一个以Schema/WSDL设计视图打开的空schema文件。
注:Schema/WSDL设计视图本身有两种显示方式:Schema概要视图(Schema Overview)——为整个schema提供一个关于所有全局成分的概要;以及内容模型视图(Content Model View)——为各个全局成分提供内容模型视图。
在新建XML Schema文件时,Schema/WSDL视图将以Schema概要视图打开。
您会被提示输入根元素(root element)的名称。
(2)点击加亮的字段,并输入根元素Company。
然后以回车键确认。
您在主窗口中所看到的视图称为Schema概要视图(Schema Overview)。
它为该schema提供了一个概要:上方窗格(pane)中列出了所有的全局成分;下方窗格中显示所选全局成分的属性(attribute)及唯一性约束(identity constraint)。
(只需点击全局成分左侧的图标即可对该全局成分的内容模型进行查看和编辑。
)(3)在Company元素的Annotations字段[译注//即Company右边那个以ann:开头的字段]中输入对该元素的描述,比如这里我们输入Root element。
(4)点击菜单项File | Save6.9.2 定义名称空间您将要为XML文档实例定义一个目标命名空间。
(每个XML Schema文档都必须有对XML Schema命名空间的引用,而XMLSpy 2005会在您新建一个XML Schema文档时为您自动生成。
)(1)选择菜单项Schema Design | Schema settings[译注//该菜单项仅当主窗口处于Schema/WSDL设计视图时可用],此时将弹出Schema settings对话框。
Vsflexgrid控件使用方法
Vsflexgrid控件使用方法Vsflexgrid控件使用方法1、ShowCell:显示指定位置的单元格比如一个有很多列的 Vsflexgrid,希望在显示数据时先显示第20列的数据,如果不对控件进行设置,则需要手工拖动鼠标,此时 ShowCell 就很有用了,使用方法为ShowCell 行,列2、在Excel 中有一个冻结窗口的功能,使用时可以固定某一行(几行)或者某一列(几列)的数据,那么Vsflexgrid 中是否也可以实现呢,答案是肯定的,需要用到的属性是FrozenCols 与FrozenRows,前者用于固定某几列,后者为固定行,注意行与列的顺序为由上到下,由左到右使用方法为:FrozenCols 4 '固定前4列,横向拖动时靠左边的4列不动3、在编辑单元格的内容时,有时可能希望点击某个单元格时显示一下下拉的列表或者显示一个指定的控件,比如日期控件,实现方法为:ColComboList(第几列) = "任意的字符"这样在点击时某一列时就会出现下拉的列表框了4、实际工作时经常要对某一数据列进行排序,自已写排序语多当然是可以的,而Vsflexgrid 提供了更简单的方法,即设置属性ExplorerBar,比如 ExplorerBar=5时,点击列头就会排序,并且会显示排序的箭头方向5、开发中经常需要将VsFlexGrid 中的数据导出为Excel 文件,引用Excel 对象进行操作是可以的,但Vsflexgrid 同时提供了一个SaveGrid 方法,比如要将 Vsflexgrid 中的数据保存在当前程序目录下的 Excel 文件中,方法为:Vsflexgrid.SaveGrid "book1.xls", flexFileExcel此方法的好处时在没有装Office 的机器上仍然可以正常实现,而且速度非常快6、VSFlexGrid控件是否支持表格编辑?可以,修改VSFlexGrid1.Editable =flexEDKbdMouse属性就行。
XMLSpy使用说明及技巧
一、安装1、安装XMLSpyEnt (可以从各网站进行下载),总部这边使用的是XMLSpyEnt2009版本。
点击XMLSpyEnt2009.exe进行安装,步骤如下:点击Next:点击Next:选择I accept……后,点击Next:点击Next:选择Complete,点击Next:点击Install:点击Finish,安装成功:二、注册说明:如下载版本为注册版,可不用执行该部分。
1、安装完成后,点击桌面图表后,点击注册机keygen.exe,进行注册。
注:注册时请断开外网,等注册成功后,外网才可用。
三、使用1、注册成功后,点击图标进入页面。
2、点击页面上的open快捷键,打开本地目录,点击要编译的xml文件。
选择文件后,点击“打开”按钮。
3、打开文件后,选择工具栏中的“DTD/Schema”下的“Assign Schema”,进入选择添加xsd文件。
步骤如下:点击确定点击“Browse”选择xsd所在的位置,点击“打开”即可注:根据不同文件类型,选择相对应的xsd文件,如文件类型为EVENT,所对应的xsd文件为bomc_event.xsd。
4、正确打开xsd文件后,文件中的头部分会出现一行信息,如下:<bomc xmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="D:\BOMC\40_全国监控中心\00_需求\01_BOMC二期\xsd\bomc_event.xsd">5、点击Validate图标,进行Schema校验。
6、如通过Schema校验,Messages中会显示以下信息:7、如Schema校验出现错误,Messages中会显示以下信息:打开,显示蓝色部分的,就是出现错误的位置,可根据该信息进行修改,例如:上图说明出错的位置在bomc下。
根据报错提示的信息可以得出Createtime位置错误,根据xsd文件规则进行修改。
xmlspy教程
(一)、XML概览首先让我们下载一个XML编辑器:XMLSpy 2005企业版下载破解方法及其教程当然你也可以不用XMLSpy编辑器,使用记事本,或者vs2005等等,这取决于你的个人喜爱。
小菜只是想说:如果你使用下XMLSpy,你就会喜欢上它,小菜今天是第一次使用就爱上它了。
小菜不骗人的。
:)1、使用记事本创建一个XML文档(通讯录)Contacts.xml<Contacts><Person Sex="男"><Name>小陈</Nane><Address><Country>中国</Country><Province>福建</Province><City>福州</City></Address><Phone>110</Phone><Email>小陈@</Email></Person><Person Sex="女"><Name>小林</Name><Address><Country>中国</Country><Province>福建</Province><City>福州</City></Address><Phone>112</Phone><Email>小林@</Email></Person></Contacts>XML文档就这么简单,你应该树立起信心。
如果你仔细看一下上面的XML文件你会发现有个错误:<Name>小陈</Nane>结束标记与开始标记不匹配小菜想看看XML文档是否真的严谨。
在GridControl控件中使用SearchLookUpEdit构建数据快速输入
在GridControl控件中使⽤SearchLookUpEdit构建数据快速输⼊较早之前,曾经介绍了⼀篇⽂章《》,介绍了在传统DataGridView中嵌⼊⼀个数据窗⼝进⾏选择列表,从⽽实现数据快速录⼊的操作例⼦,在DevExpress的控件使⽤中,我们应该如何实现这种效果呢,本⽂⾸先通过简单的例⼦介绍⼀下,具体的实现过程。
然后进阶具体的应⽤,指导我们实际的开发⼯作,以及在使⽤过程中需要注意的⼀些特殊问题,提供相应的解决⽅法。
1、 GridControl集成SearchLookUpEdit的效果展现⾸先我们来介绍⼀下整个效果图,以便有感性的印象。
1)启动后默认效果2)弹出窗体效果3)选中数据后效果图其实上⾯是⼀个测试的例⼦,具体的应⽤会⽐较复杂⼀点,不过操作过程差不多,我们都是在⼀个Cell⾥⾯嵌⼊⼀个可以选择(包括查询)的数据列表,从中选择我们需要的内容,然后可以在另外⼀个Cell中输⼊⼀些其他的信息,保存的时候,⼀并保存即可。
2、GridControl集成SearchLookUpEdit的实现过程在开始介绍之前,我们要清楚,这个GridControl必须先绑定数据源(数据源可以为空),如果不绑定数据源,那么虽然可以弹出列表供选择,但是⿏标移开值就会丢失的问题,⼀开始不明⽩其中道理,搞了很久。
⾸先要为GridControl添加两个字段,设置好他们的显⽰Caption和FieldName即可,然后在我们需要弹出窗⼝的单元格对象中,选择它的ColumnEdit控件为SearchLookup控件即可,如下所⽰。
这个时候,它会⽣成⼀个repositoryItemSearchLookUpEdit1的控件,这个控件就是该单元格的内嵌编辑控件了,可以从中选择列表的值,我们设置这个列表的DisplayMember为Name(显⽰的字段内容),ValueMember为ID(保存的值字段),如下所⽰。
除了你要设置主窗体⾥⾯的GridControl运⾏添加列外,你还需要设置编辑控件⾥⾯的View中OpitonsView⾥⾯的NewItemRowPosition为Botton(默认为None),这⼀步很重要,否则⽆法出现⼀个新建的⾏给你录⼊数据的。
VFP中GRID的使用技巧
GRID的使用技巧1.如何在GRID里控制回车事件在VFP里,GRID的默认控件都是TEXTBOX,形成了一个表格,但是在这个二维表里进行操作时,每次按回车都是往后一个单元格跳转,当到最后一列时,则继续跳到第一列,进而循环,操作很不方便。
下面说明如何在GRID里的一个列里按回车使记录连续往下跳转(或可以执行其他的操作),当跳转到最后一行时执行另一个操作。
1、对GRID所在的表单新增属性:cur_recn 记录当前记录号cur_recc 记录最大记录号2、在表单初始化,或给GRID以数据源时,就先计算出该表的最大的记录数,如下:thisform.cur_recc=recc()为了一次得到当前GRID里的表的记录总数3、在GRID的AfterRowColChange事件里写:thisform.cur_recn=recn()为了得到当前的GRID里的表的记录号4、在GRID里的某列的TEXT1的KEYPRESS事件里:if nKeyCode = 13&&当按键为回车时if thisform.cur_recn>=thisform.cur_recc**--当当前记录大于等于最大记录时,即记录已到最后一个时mand1.setfocus**--使表单上的一个命令按纽聚焦,也即可以跳出该GRID,**--而正常的操作很难从GRID里跳出,在这里就可以使在记录到最后时焦点跳出来elsethisform.cur_recn=recn()&& 当记录还没到尾时,则...nodefault && 不做任何响应keyboard "{dnarrow}" && 模拟键盘下箭头,使记录指针下移一个endifendif以上所说的,只要按键盘上的上下箭头即可轻易做到在GRID中移动指针,没有太大的意义。
2.如何实现输完数据后按回车键,使表格中的焦点自动跳到下一行在你要判断转换的GRID的最后一列的TEXT1的keypress:IF nKeyCode=13SELECT 你绑定表名nRec=RECNO()SKIPIF EOF()APPEND BLANK &&在表尾加一空记录SKIP &&记录指针到EOF()Thisform.grid1.refreshThisform.grid1.column1.text1.SetFocus &&到最前面ELSEGO nRec &&同一行,不要此就跳下一格Thisform.grid1.refreshThisform.grid1.column1.text1.SetFocusENDIFENDIF以上代码未经过试验,等待ingThisform.grid1.recordsuore=Null是什么意思?Thisform.grid1.recordsuore=Null 与Thisform.grid1.recordsuore=''是不是一样的?null是不等于'',但在上面例子中的结果是一样的。
关於GridEx的操作
關於GridEx的操作(一)1.關於GridEx的一些設置。
想在網上找關於GridEx的介紹文檔,都沒有找到有價值的東西。
只能自己慢慢摸索。
現在把自己的一些方法帖出來,供大家一起探討。
(我用VS2008 C#+MySql 開發。
假設表products(productKey,Productname,ProductID..)添加一個資料集命名為productDataSet,添加一個數據表名為products (productKey,productName,ProductID..)這樣方便綁定。
(1)Gridex Control 設置:datasource=productDataSet;Datamember=products;//設置要綁定的數據源GroupByBox:False,是否顯示分組box自定的樣式:VisUalStyle=office2007;Office2007ColorScheme=Custom;Office2007Cu stomColor=顔色(如:blue);AlllowEdit: 是否應許編輯。
AllowColumnDrag:運行時是否可以拖拉COlumn.RowHeaders:是否顯示表格行頭;RecordNavigator:是否有紀錄導航(相當于分頁).View:設置顯示的樣子tableView,CardView,SimpleCard; SaveSetting:是否保存設置,true 可以保存樣式,但是,你在GridExCell中輸入的東西保存時不能提交;false:gridEx.DataUpdate可以更新(2)RootTable的Column屬性設置:<以DataTime 類型為例><display> Caption:Column 的名稱;headerAlign:行頭的排列方式;TextAlign:COlumn內容的排列方式Trimming:內容超出是否省略;WordWarp:是否自動換行,要設置maxLines 才可以;如MaxLines=50,則超出50自動換行;FormatString:如yyyy-MM-dd, 時間顯示樣式為2009-10-10;<edit>editType: textbox,combo,checkbox..如果edittype=noedit;則運行時候不可以編輯;即使AllowEdit=true;如果設置為DrawDownList,在<combo Set>裏設置haseValueList=true;則可以在ValueList頁面設置DrawDownList的值;<other> datatypecode:設置數據類型,Key:字段名;<資料>boundMode:設置綁定模式bound;unbound,unBoundFetch;datamember:設置綁定的字段gridEx功能很強大,對於ColumnSet,childTable,drawdowns的設置還不很清楚。
xmlspy教程
(一)、XML概览首先让我们下载一个XML编辑器:XMLSpy 2005企业版下载破解方法及其教程当然你也可以不用XMLSpy编辑器,使用记事本,或者vs2005等等,这取决于你的个人喜爱。
小菜只是想说:如果你使用下XMLSpy,你就会喜欢上它,小菜今天是第一次使用就爱上它了。
小菜不骗人的。
:)1、使用记事本创建一个XML文档(通讯录)Contacts.xml<Contacts><Person Sex="男"><Name>小陈</Nane><Address><Country>中国</Country><Province>福建</Province><City>福州</City></Address><Phone>110</Phone><Email>小陈@</Email></Person><Person Sex="女"><Name>小林</Name><Address><Country>中国</Country><Province>福建</Province><City>福州</City></Address><Phone>112</Phone><Email>小林@</Email></Person></Contacts>XML文档就这么简单,你应该树立起信心。
如果你仔细看一下上面的XML文件你会发现有个错误:<Name>小陈</Nane>结束标记与开始标记不匹配小菜想看看XML文档是否真的严谨。