在应用程序中修改VFP数据表结构

时间:2022-03-19 11:44:03 作者:乐山 综合材料 收藏本文 下载本文

“乐山”通过精心收集,向本站投稿了7篇在应用程序中修改VFP数据表结构,以下是小编收集整理后的在应用程序中修改VFP数据表结构,仅供参考,欢迎大家阅读。

篇1:在应用程序中修改VFP数据表结构

早期有不少用FOXPRO编写的数据库应用程序喜欢用6位字符型字段来记录日期,随着的到来,这个字段的宽度显然已经不适用了,需要修改。 ---- 修改FOXPRO数据表结构,常用MODIFY STRUCTURE命令。这种方法虽然方便,但必须在人机对话中实现。若您的程序已交付许多用户使用,要求用户采用MODIFY STRUCTURE命令修改数据表结构势必会带来许多麻烦。是否可通过执行预先编制好的程序来完成扩大字段宽度工作?笔者最近做了一个尝试,其程序思路是:

---- 1、利用AFIELDS函数获取要修改的数据表结构信息,并将信息存放在STR_FIL数组内。AFIELDS()函数的语法:AFIELDS(ArrayName),ArrayName是放置表结构信息的数组名(可由自己命名,本例中命名为STR_FIL),数组为每一个字段创建一行数据,其每一列里存储的信息如下:

----

列号 字段信息 数据类型 列号

字段信息 数据类型

1 字段名 字符型

2 字段类型 字符型

3 字段宽度 数值型

4 小数点位置 数值型

5 容许的空值 逻辑型

6 字段有效准则 字符型

7 字段有效文本 字符型

8 字段缺省值 字符型

9 表有效准则 字符型

10 表有效文本 字符型

---- 2、根据要求修改STR_FIL数组内容(本例,修改字段宽度)。 ---- 3、利用CREATE CURSOR 命令,按STR_FIL数组内容创建一临时表结构。

---- 4、将原表数据添加到临时表中。

---- 5、利用COPY TO 命令,将临时表覆盖原表。

---- 下面是修改字段宽度的原代码:

*参数:SOU_FILE(修改的数据表文件名),字符型

*参数:FIE_NAME(要修改的字段名),字符型

*参数:FIE_WID(修改后的字段宽度),数字型

PARA SOU_FILE,FIE_NAME,FIE_WID

PRIV STR_FIL,FIEL_SUM,N, STR_TMP

IF USED(“&SOU_FILE”)

&&打开要修改的数据表

SELE &SOU_FILE

ELSE

SELE 0

USE &SOU_FILE

ENDIF

=AFIELDS(STR_FIL)

&&获取表结构,并存储在STR_FIL数组内

FIEL_SUM=FCOUNT() &&计算表字段数

N=1

DO WHILE N<=FIEL_SUM

&&查找要修改的字段名

IF ALLT(STR_FIL(N,1))=FIE_NAME

&&如果是要修改的字段名

IF STR_FIL(N,3)=FIE_WID

&&判别字段宽度是否相同

RETURN

&&相同返回

ELSE

&&否则修改表结构

wait “正在修改数据结构,

请稍侯...” WIND NOWAIT

STR_FIL(N,3)=FIE_WID

&&确定字段长度

EXIT &&退出循环

IF N= FIEL_SUM &&如果循环结束

wait “无修改的字段,按任意键返回….

” WIND &&提示用户

RETURN

ENDIF

ENDIF

ENDIF

N=N+1

ENDDO

*按STR_FIL数组内容,创建临时表结构

SELE 0

*根据STR_FIL数组规定的字段名字、

类型、宽度创建临时表STR_TMP

CREATE CURSOR STR_TMP

FROM ARRAY STR_FIL

SELE &SOU_FILE

USE &&关闭原数据表

*将原数据表数据添加到临时表STR_TMP中

SELE 0

APPE FROM &SOU_FILE

COPY TO &SOU_FILE &&复制新的数据原表

RETURN

本文来源: Computer World 本文作者: 程建平

篇2:实践体验“在数据表中添加记录”

活动目的:

(1)熟悉access的操作界面,了解其基本操作方法。

(2)学会在数据表中添加新记录的方法。

活动步骤:

(1)打开数据库。

(2)按教材上的实验提示,添加3条记录。

(3)保存数据库。

(4)教师可以安排学生自己尝试一下,还有哪些不同的操作方法同样可以实现在数据表中添加记录。

活动评价:

活动结束后,及时组织学生对自己在活动中的表现按照教材中的评价量表进行自我评价,同时教师也要根据学生在活动过程中的表现进行随堂评价,并记录在学生评价表中。

由于本次实践体验活动的重点是通过在数据表中添加新记录的操作,了解access的基本操作方法。所以,除了有关实践体验活动的常规评价指标外,我们建议着重对学生技能迁移情况进行评价。

项目

评价指标

评价

技能迁移

熟练顺畅6分

较为熟练5分

能够完成3分

尚需指导2分

评价分四档,“熟练顺畅”是指技能的迁移非常自然,操作熟练,好像已经学习过一样。“较为熟练”是指技能的迁移比较顺利,通过复习前面的操作过程,能够自己解决遇到的问题。“能够完成”是指经过操作示例的帮助,能够完成添加记录的操作。“尚需指导”是指还不能完成本次实践体验活动。

<

篇3:在Word中嵌入应用程序_VB

下一页 1 2 3 4 Microsoft Word以其强大的文字处理能力、灵活多变的排版方法、所见即所得以及友好的用户界面等特点,博得了广大用户的肯定, 但是,若能将其他一些功能,如机器翻译、中文校对、全文检索、实时语音合成等嵌入其中,则可以扩展Word的功能,使 开发

下一页 1 2 3 4

Microsoft Word以其强大的文字处理能力、灵活多变的排版方法、所见即所得以及友好的用户界面等特点,博得了广大用户的肯定。

但是,若能将其他一些功能,如机器翻译、中文校对、全文检索、实时语音合成等嵌入其中,则可以扩展Word的功能,使开发者能够更加充分地利用Word资源,加快开发速度。

开发Word应用程序常用的有以下几种编程语言:Word Basic、VBA(Visual Basic for Applications)和Word API。 尽管Word Basic和VBA功能强大,但作为简单修改Word的工具,多少有些大材小用。笔者认为,Word API是开发Word应用程序的首选工具,尤其是可以利用C语言代码的快速、高效和灵活的特点,而且可以使用Word Basic接口函数和Windows动态连接库编程环境,实现对Word功能的添加。

Word API的使用方法

Word API生成的是一个可在Word中直接运行的Word加载项,它是一个以WLL为扩展文件名的单机动态连接库,

备考资料

这种WLL是标准的Windows动态连接库的特殊形式。可以用任何一个创建Windows DLL的环境来编译、链接和建立WLL。

Microsoft Word Developer's Kit(MS Word开发工具箱)中,提供了Word API的接口函数,下面分别加以介绍。

1. Word加载项的启动和卸载函数

(1) void FAR PASCAL wdAutoOpen(short DocID)

在Word中加载WLL的同时,Word会自动执行这个函数。在执行过程中,函数wdAutoOpen完成以下几个任务:

・向Word登记WLL中定义的所有函数;

・将WLL中的操作命令添加到Word的主菜单、快捷菜单和工具条中;

・给WLL的操作命令指定快捷键;

・完成WLL功能的初始化(如:机器翻译、中文校对的词库读入等)。

(2) void FAR PASCAL wdAutoRemove(void)

当WLL被卸载时,如果WLL程序中定义了wdAutoRemove(void)函数,Word将在卸载时执行这个函数。在该函数中,可以保存退出时我们定义功能函数生成的必要数据。

原文转自:www.ltesting.net

篇4:在应用程序架构中实践敏捷

微软最近在“模式及实践”分类下发布了一篇文档,名为“如何用敏捷架构进行设计”,为如何使用敏捷方式进行架构提供了详细的指导,

文档推荐用以下列举的条目做为输入,开始设计之路:

用例和使用场景

功能需求

非功能需求(质量相关话题,如性能、安全性、可靠性)

技术需求

目标部署环境

限制

设计应该产生这些输出产物:

架构特征明显的用例

架构热点

候选架构

架构刺探

该文档通过明确建议不要一步完成架构设计,而要采取五步法实现的方式引入敏捷:

第一步:确认架构目标。清晰的目标可以帮助你致力于自己的架构,还能帮助你致力于解决设计中合适的问题。好的目标帮助你决定什么时候完工,以及什么时候需要开始下一个新的阶段;

第二步:关键场景。使用关键场景让设计只关注最经常发生的事情,以及在候选架构准备好时对它们进行评估;

第三步:应用概览。理解你的应用类型、部署架构、架构类型以及技术等,以将设计和应用要服务的真实世界密切联系起来;

第四步:关键热点。根据质量特征和架构框架确认关键热点。在设计应用时,总有一些地方是经常犯错的。

第五步:候选方案。创建一个候选架构或者“架构刺探(Architectural Spike”,然后用关键场景、热点和部署限制等对它进行评估。

第一步:确认架构目标

根据微软模式与实践部门首席程序经理J.D. Meier所说,这一步的目的是评估“在接下来的几步上要花费多少时间、精力以及全部努力等”。第一步的结果应该是:

构建原型

确定关键技术风险

测试潜在路径

共享模型和约定

第二步:关键场景

根据J.D. Meier的说法,可基于下面这些用例的要素,确定什么是最好的场景:

对于所部署应用的成功和接受度来说,它们是重要的;

用例中充分体现了设计,可资用于评估架构。

第三步:应用概览

要将真实世界的细节和具体事物引入到设计中,应用概览是必不可少的,我们可以通过以下几步来创建它:

决定应用类型:首先,要决定你要构建的应用是什么类型,

管理资料

是移动应用,富客户端,富互联网应用,服务,Web应用还是其他组合等?

理解部署约束:下面,要理解你的目标部署环境,然后决定它会对你的架构产生什么影响。

确定重要的架构类型:决定在你的设计中要使用哪种架构类型。你会构建一个面向服务的架构,C/S,分层的,消息总线还是其他组合等?

决定相关的技术:最后,根据你的应用类型和其他约束来确定相关技术选型,并决定在架构中你要利用哪个技术。

对于以上提到的所有步骤,文档都提供了建议,下面提供了一个在多个架构类型中做选型的例子:

C/S:对系统进行隔离,这样客户端可以从服务器发出请求;

基于组件:将应用设计分解成可复用且接口定义良好的组件;

分层:将系统以分层的形式隔离成功能类似的集合;

消息总线:定义能被所有连接系统使用的已知格式,从而使得它们不需要了解真实接收端之间的区别;

面向对象:一种基于将任务分成可复用对象的编程类型,这些对象包含数据以及和对象相关的动作;

面向服务(SOA):一种使用契约和消息以服务的形式暴露和消费功能的应用。

第四步:关键热点

在这一步,我们应该“确定应用架构中的热点,来理解那些经常犯错的地方。关键热点则可以通过质量特征和横切关注点来组织起来。”文档中提到的众多热点包括:可用性、交互性、可维护性、可靠性、安全等。

第五步:候选方案

确定好关键热点后,架构的初步草案就已经形成了。然后,要回到第二步来评估候选架构,然后根据第三、第四、第五步产生一个新的候选。这个过程迭代重复,通过每个迭代对自己进行优化。

查看英文原文:Practicing Agility in Application Architecture

本文来自:www.infoq.com/cn/news//12/Agile-Architecture

篇5:在vfp中实现表单的输出

VB、Delphi 都为 Form. 对象封装了 PrintForm. 方法,允许用户方便的将 Form. 转换成为 BMP,这是一个不错的功能,在实际开发过程中是经常有这种需求的,比如把统计图表作为图片保存下来……

然而很不幸的是 Visual FoxPro(包括即将登场的 7.0) 并没有为我们封装此种功能。这个问题一定困扰着不少狐友吧,包括我。虽然我们知道使用 Win API 就可以解决问题,实际编程却又谈何容易?

很高兴得到了 George Tasker 编写的“OBJ2BMP”工具,并得到了所有原始代码。George Tasker 为我们提供了一个 Visual FoxPro 版的抓图工具,但我认为这个工具不见得实用——总不能在我们的应用程序中老是要调用一个工具才能完成 PrintFrom 的工作吧,这样既不专业也不美观。于是我利用 George Tasker 提供的源代码作了简单的二次开发,重新封装了部分功能,希望能这个很棒的工具更合适开发人员使用。

原始代码版权属于 George Tasker,本文及二次开发的版权属于 BOE 数据网络工作室。该软件属于免费软件,您可以随意使用,但如果造成什么不良后果,我们不承担任何责任。

以下所有讨论均以“象素”为单位!!!

使用 OBJ2BMP 工具

先让我们来看看怎样使用 George Tasker 为我们提供的 OBJ2BMP 工具吧!

编译项目成为 obj2bmp.app

使用 obj2bmp.app 工具

新建一个表单,设定表单的 alwaysOnTop属性为 .t.或者设定 alwaysOnBottom 属性为.t.,运行表单。

在“命令窗口”中键入如下命令,并执行:

ObjPicker=.null.

DO Obj2Bmp.app WITH oObjPicker

如下图:

右面的表单就是抓图工具,请注意它下方的按下拉式列表框中列示了两个对象:“抓图”和“Select Object”(目的表单的Caption 属性)。“抓图”是指左面的表单,“Select Object”就是它自己。由于我们在下拉式列表框中选择了“抓图”表单,所以列表框中就列示了“抓图”中的所有可视控件:表单、Olecontrol、Command,您可以选择要抓拍的控件的名称,按下“Capture”按钮,您将得到该控件的当前模样的图片。

对于画面的质量您也可以控制,24 Bit Color 质量最好。

FormPrint 类的使用详解

从开发人员的角度看“obj2bmp”工具,好像实用性不大,于是我对源代码进行了简单的封装。

必备的支持文件

类文件:Obj2bmp.vcx、Obj2bmp.vct

类引用的头文件:rgb_256.h

API 库:Foxtools.fll

其他的 API 库,我想这对 Windows 32 位系统是不成问题的

关于 Foxtools.fll 的说明。Foxtools.fll 是 Visual FoxPro 自带的 API 库,默认存放在 Home 目录下。在建立 FormPrint 类实例时(init 事件)检测是否已对 Foxtools.fll 引用,如果没有则执行如下命令:

set library to (home()+“foxtools.fll”) addi

请务必保证 Home() 目录下有此文件,如果您想把 Foxtools.fll放在其它地方,请修改以上语句,

引用 Foxtools.fll 的目地在于得到表单的句柄,在 Visual FoxPro 7 中每个表单都有句柄属性,就不用麻烦 Foxtools.fll 了。

FormPrint 类的用户接口

cFileName 属性:图片输出目录及名称。

makebitmap(pnhWnd, pnBPP, pnTop, pnLeft, pnHeight, pnWidth)方法:实现图片输出。

有关 cFileName 属性的说明。在使用 makebitmap 方法前设定此属性,可指定图片文件的名称及输出路径。如:

obj.cFileName=“C:BMPabc.bmp” 将图片文件保存在C:BMP目录下,文件名称是abc.bmp。

如果执行makebitmap方法时,目标文件已经存在,程序将在不通知的情况下覆盖它;如果执行 makebitmap 方法时文件不能建立(可能是目录不存在、路径无效、无法覆盖已存在的文件……),程序将重新设定图片文件的名称及保存目录,新文件名及目录是这样确定:

sys(5)+sys()+“”+left(sys(),8)+“.bmp”

如果事先不设定 cFileName 属性,使其保持默认值 .null. 或设定 cFileName 为 .null. 值,程序也将使用“sys(5)+sys(2003)+“”+left(sys(2015),8)+“.bmp””确定图片的名称及保存目录。

每次图片生成完毕,cFileName 属性自动设定为 .null. 值。

有关 makebitmap(pnhWnd, pnBPP, pnTop, pnLeft, pnHeight, pnWidth)方法的说明。

所有六个参数均可省略,但我建议调用时不要省略前两个参数。

——pnhWnd 代表被输出表单的句柄。如果 PrintForm. 实例化以后其父对象是被输出表单的话,传递 0 即代表打印当前表单;如果要打印其他表单的话,请使用如下代码得到它的句柄,并以此句柄作为 pnhwnd 传递:

_WhTohWnd(_WFindTitl(cCaption)) && cCaption 代表被输出表单的 Caption 属性。

——pnBPP 代表输出图片的质量。有三种选择:4,8,24,数字越大质量越好。

输出整个表单

新建表单(实例一),添加控件。别忘了把 PrintForm. 类加入表单,使之成为表单的子对象。如图:

A.最简单的应用,在“输出”按钮的“Click”事件中加入如下代码:

?ThisForm.printform1.makebitmap(0,24)

* 显示:F:OBJ2BMP_0CU0FYF.BMP。表明图面文件的名称和位置。

B.指定输出目的地,在“输出”按钮的“Click”事件中加入如下代码:

Thisform.printform1.cFileName=“C:ABC.BMP”

?ThisForm.printform1.makebitmap(0,24)

* 显示:C:ABC.BMP。表明图面文件的名称和位置。

篇6:技巧:在Silverlight应用程序中操作Cookie

概述

很多朋友来信问如何在Silverlight 2中操作Cookie,这里专门写篇文章介绍一下,为了实现在Silverlight应用程序中对于Cookie的操作,我们需要借助于HtmlPage.Document对象。

在使用HtmlPage.Document之前,请先添加System.Windows.Browser命名空间。本文介绍了如何在Silverlight应用程序中操作Cookie,并在最后给出了一个操作Cookie的公用类,大家可以直接在自己的应用程序中使用。

写入Cookie

在Silverlight 应用程序中,我们可以通过HtmlPage.Document.SetProperty方法来设置Cookie或者使用HtmlPage.Document对象的Cookies属性(后面会讲到),如下代码所示:

void btnSet_Click(object sender, RoutedEventArgs e)

{

DateTime expir = DateTime.UtcNow + TimeSpan.FromDays(7);

String cookie = String.Format(“{0}={1};expires={2}”,

this.txtKey.Text,

this.txtValue.Text,

expir.ToString(“R”));

HtmlPage.Document.SetProperty(“cookie”, cookie);

}

这里设置Cookie的过期时间为一周,除了设置过期时间外还可以设置domain、path等,后面的帮助类中你将看到这一点。

如使用下面的界面写入Cookie:

读取Cookie

我们可以通过HtmlPage.Document.GetProperty方法来获取所有Cookie,另外在HtmlDocument中定义了Cookies属性,已经为我们封装好了GetProperty方法,可以直接使用,它的定义如下代码所示:

public sealed class HtmlDocument : HtmlObject

{

public string Cookies

{

get{

HtmlPage.VerifyThread();

String property = this.GetProperty(“cookie”) as String;

if (property != null)

{

return property;

}

return String.Empty;

}

set{

HtmlPage.VerifyThread();

String str = value;

if (String.IsNullOrEmpty(str))

{

str = string.Empty;

}

this.SetProperty(“cookie”, str);

}

}

}

如使用下面这段代码来获取一个指定Key的Cookie值:

void btnRetrieve_Click(object sender, RoutedEventArgs e)

{

String[] cookies = HtmlPage.Document.Cookies.Split(';');

foreach (String cookie in cookies)

{

String[] keyValues = cookie.Split('=');

if (keyValues.Length == 2)

{

if (keyValues[0].Trim() == this.txtKey.Text.Trim())

{

this.txtValue.Text = keyValues[1];

}

}

}

}

如下图所示:

删除Cookie

删除Cookie非常简单,清空Cookie的值并设置它的过期时间,如下代码所示:

void btnDelete_Click(object sender, RoutedEventArgs e)

{

DateTime expir = DateTime.UtcNow - TimeSpan.FromDays(1);

string cookie = String.Format(“{0}=;expires={1}”,

this.txtKey.Text, expir.ToString(“R”));

HtmlPage.Document.SetProperty(“cookie”, cookie);

}Cookie帮助类

由于在开发中,我们可能会经常用到对于Cookie的操作,我在这里总结了一个简单的Silverlight中操作Cookie帮助类,大家可以直接在自己的项目中使用,主要有如下几个功能:

1.写入Cookie

2.读取Cookie

3.删除Cookie

4.判断Cookie是否存在

当然如果你还有别的需求,可以再进一步完善,完整的代码如下:

public class CookiesUtils

{

public static void SetCookie(String key, String value)

{

SetCookie(key, value, null, null, null, false);

}

public static void SetCookie(String key, String value, TimeSpan expires)

{

SetCookie(key, value, expires, null, null, false);

}

public static void SetCookie(String key, String value, TimeSpan? expires,

String path, String domain, bool secure)

{

StringBuilder cookie = new StringBuilder();

cookie.Append(String.Concat(key, “=”, value));

if (expires.HasValue)

{

DateTime expire = DateTime.UtcNow + expires.Value;

cookie.Append(String.Concat(“;expires=”, expire.ToString(“R”)));

}

if (!String.IsNullOrEmpty(path))

{

cookie.Append(String.Concat(“;path=”, path));

}

if (!String.IsNullOrEmpty(domain))

{

cookie.Append(String.Concat(“;domain=”, domain));

}

if (secure)

{

cookie.Append(“;secure”);

}

HtmlPage.Document.SetProperty(“cookie”, cookie.ToString());

}

public static string GetCookie(String key)

{

String[] cookies = HtmlPage.Document.Cookies.Split(';');

String result = (from c in cookies

let keyValues = c.Split('=')

where keyValues.Length == 2 && keyValues[0].Trim() == key.Trim()

select keyValues[1]).FirstOrDefault();

return result;

}

public static void DeleteCookie(String key)

{

DateTime expir = DateTime.UtcNow - TimeSpan.FromDays(1);

string cookie = String.Format(“{0}=;expires={1}”,

key, expir.ToString(“R”));

HtmlPage.Document.SetProperty(“cookie”, cookie);

}

public static bool Exists(String key, String value)

{

return HtmlPage.Document.Cookies.Contains(String.Format(“{0}={1}”, key, value));

}

}

总结

篇7:在Word文档中修改剪贴画颜色

Office提供的剪贴画为矢量图形,因此具有可编辑性,用户可以在Word2007文档中修改剪贴画各个独立图形单元的颜色、形状、大小、位置等,使剪贴画更符合自身的需求。本教程 主要谈一谈在Word2007文档中修改剪贴画颜色的要领,操作步骤如下所述:

第1步,打开Word2007文档窗口,右键单击准备修改颜色的剪贴画,并在打开的快捷菜单中选择“编辑图片”命令,如图2009032501所示。

图2009032501 选择“编辑图片”命令

第2步,被选中的剪贴画将进入编辑状态,单击选中准备修改颜色的独立图形单元,在“绘图工具”功能区的“格式”选项卡中,单击“形状样式”分组中的“形状填充”下拉三角按钮,可以选择纯色填充、图案填充、渐变颜色填充和纹理填充等填充方式,

例如选中标准颜色“绿色”,则剪贴画的颜色将被修改,如图2009032502

图2009032502 修改Word2007剪贴画颜色

如何修改作文

求职信修改

结构浅谈

非结构构件在抗震设计中的重要性问题论文

中学英语中常见的倒装结构

在Word文档窗口中查看Word文档被修改次数

“参与探究型”结构在小学数学新授课中的应用

真空注浆在公路预应力空心板梁结构中的应用

初中作文修改

求职信应用文修改

在应用程序中修改VFP数据表结构(共7篇)

欢迎下载DOC格式的在应用程序中修改VFP数据表结构,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档