VFP表单的多表操作

xiaoshengaimm 2009-05-06 08:43:18
大家好,我有一个表单中有两个表,一个叫收入表,一个叫账本,都是以日期为索引;其中收入表中有日期、收入数目、说明三字段,账本中有日期、收入数目、支出数目、债务数目、净资产、资产统计、说明这些字段。。。。。。现在我有一个表单,其中我想通过添加收入表记录,就可以系统自动改动账本的相关数据,请问点样实现呢?下面是我写的一段代码
SELECT 1
a=ALLTRIM(thisform.text1.value)
b=ALLTRIM(thisform.text2.value)
c=ALLTRIM(thisform.edit1.value)
IF EMPTY(a)
MESSAGEBOX("请输入日期",16,"系统提示!")
RETURN
ENDIF
IF EMPTY(b)
MESSAGEBOX("请输入收入数目",16,"系统提示!")
RETURN
ENDIF
IF EMPTY(c)
MESSAGEBOX("请输入说明",16,"系统提示!")
RETURN
ENDIF
GO bottom
APPEND BLANK
replace 日期 WITH CTOD(ALLTRIM(thisform.text1.Value)),;
收入数目 with VAL(ALLTRIM(thisform.text2.Value)),;
说明 with ALLTRIM(thisform.edit1.Value)
aa=dtoc(日期)
bb=STR(收入数目)
SELE 2
a=0
b=0
c=0
LOCATE FOR 日期=CTOD(aa)-1
IF .not.eof()
a=资产总计
b=净资产
c=债务数目
ENDIF
LOCATE FOR 日期=CTOD(aa)
IF eof()
APPEND BLANK
MESSAGEBOX("sadfhi",64,"shfdj")
日期=CTOD(aa)
收入数目=0
支出数目=0
债务数目=c
净资产=b
资产总计=a
ENDIF
SCAN FOR .not.eof()
replace 收入数目 with 收入数目+VAL(bb)
replace 净资产 with 净资产+VAL(bb)
replace 资产总计 with 资产总计+VAL(bb)
ENDSCAN
MESSAGEBOX("保存记录成功!",64,"系统提示")
thisform.Text1.value=""
thisform.Text2.value=""
thisform.edit1.value=""
thisform.refresh
...全文
448 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoshengaimm 2009-05-09
  • 打赏
  • 举报
回复
我收入表不是每天一笔账的,但是账本是每天一笔帐的,所以收入表是普通索引,账本是主索引
华夏小卒 2009-05-07
  • 打赏
  • 举报
回复
a,b,c 也代表工作区,很容易出错
一般变量不用a,b,c.....
xy111222333 2009-05-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiaoshengaimm 的回复:]
回复二楼:
但是我的表单要显示表中的数据,好有其他几个操作的,撤销数据环境这个不太可能,我现在试了试,她说我的日期索引不唯一,我两个表都是以日期为索引的,其中账本为主索引,收入表为普通索引!还是要谢谢你!!
[/Quote]
出现这个问题我感觉是你的每天不一定是一笔账,所以日期不应该做主索引的。修改为普通索引试试。
xy111222333 2009-05-07
  • 打赏
  • 举报
回复
如果你的表单中只用到了收入表的数据,那么你可以在表单环境中只加入收入表,给收入表添加了数据后再打开账本表追加记录。

*收入表的操作
……
*账本表的操作
Use 账本表 In 100 &&在指定工作区打开表
Append Blank In 100 &&给指定工作区的表添加空白记录
A=RECCOUNT(100) &&指定工作区的记录总数
REPLACE 日期 WITH CTOD(ALLTRIM(thisform.text1.Value)),收入数目 WITH VAL(ALLTRIM(thisform.text2.Value)) RECORD A In 100 &&给指定工作区的表最后一条记录添加数值
Use In 账本表
xiaoshengaimm 2009-05-07
  • 打赏
  • 举报
回复
回复二楼:
但是我的表单要显示表中的数据,好有其他几个操作的,撤销数据环境这个不太可能,我现在试了试,她说我的日期索引不唯一,我两个表都是以日期为索引的,其中账本为主索引,收入表为普通索引!还是要谢谢你!!
xy111222333 2009-05-06
  • 打赏
  • 举报
回复
你是在表单的数据环境中添加了两个表吧,这样操作很容易出现问题,建议你把表单数据环境的表去掉,在语句中操作哪个表就打开那个表,操作完毕就关闭该表。
表单填充和密码管理软件 表单自动填写 -填写表格从未如此简单! 自动填充表单是一个完整的解决方案,节省您的时间,自动填写网页表单,自动密码输入(自动填充密码,登录),并提供一个简单的方法来保存网页形式的任何复杂。 下载表格填写和密码管理软件 表格自动填充支持Internet Explorer,MSN浏览器和傲游 “下载自动填充表格软件 为什么你需要表单自动填充 厌倦了填写您的姓名,地址,电子邮件地址等登记表格一遍又一遍吗? 厌倦了输入用户名和密码,同时访问Web邮件帐户,银行帐户等? ? 多花时间填写表格,当您注册在不同的地点,开立账户等? ? 经常在网上购买吗? 厌倦了输入信用卡信息和结算信息吗? 想将它存放在安全的地方,它会自动填写? ? 你有没有忘记或遗失了你的密码? 寻找一个简单的解决方案填写表格吗? 尝试表单自动填充-自动表单填写和密码管理器! - 表格自动填充会帮你自动填写任何Web窗体。 - 只需点击鼠标,就可以保存和填写网页表单。 - 你将永远不会再次输入用户名和密码 - 表单自动填写软件,你可以安全地登录,只需按一下 是先进的自动填充表单自动填充表格软件,节省您的时间,当您填写在线表格,登录不同的网站,等表??格自动填充软件轻松地节省了您输入的信息,同时填写表格,并自动进入这个信息每次你需要填写表格。 自动自动填充表格软件,你将能够填写表格,只要按一下任何复杂的。 表单自动填充的主要特点 > 自动保存Web窗体 表格自动填充提供了一种简单的方式来保存网页形式的任何复杂性,登录名,密码。 使用热键可以简化过程中保存和填写网页表单。 >自动填写 表单 创建的窗体中的信息自动填写网页表单表单自动填充节省您的时间。 只需填写表格,连同所需的数据及表格自动填充将这些数据填入到您的网页表格。 - 使用表单自动填充,您可以填写表格,并填写和提交表单的自动。 - “只填写空字段”选项,只填写空的web表单字段。 如果一些领域已经包含的信息,你需要将信息保存在这些领域中,这个选项是非常有用的。 因此,表单自动填写只有在空的表单字段中插入相应的信息。 - “获取完整的字段”选项的下拉列表。 使用此选项,您可以保存的完整列表“选择”类型“字段(S)中存储的信息,因此您可以轻松地选择所需的数据,从下拉列表脱机。 - 当,填充一个网页表单FormAutoFill自动选择的形式相匹配的网页的URL。 - 您可以轻松地设置在填充表格和提交资料的延迟。 - 在填写表格时,您可以选择“表单域连接”的规定:“由字段名和字段类型”或“字段顺序号和字段类型”,大大增加了数量,可以使用表格自动填充填充的形式。 - 对于每一个Web表单中,您可以设置默认的填充表单的动作,根据您的需要(“默认操作”,“不要求填写表格”,“不求回报”的填写及提交表格)。 - “批量模式”,填写并提交表格在一个周期为1。 现在,您可以简化您的工作 - 只需选择你想自动填写和提交,填写??并提交表格周期之间设置延迟组的形式。 FormAutoFill支持一个以上的提交按钮的形式。 所以,你可以很容易地选择提交按钮,你想同时申请“填写和提交”行动 >自动填写 登录名和密码 使用表单自动填写登记表,登录窗口,等您可以轻松地自动填写网页上的登录名和密码, > 密码管理器 表格自动填充格式安全地存储您的密码,信用卡详细资料和其他敏感信息,往往需要同时填写网页表单。 > 高级情报安全 表单自动填充你可以安全地存储您的登录信息,密码,信用卡号码,在一个地方和任何其他机密信息。 表格自动填充保护您的表格从他人的信息 - 使用AES 256位密钥加密的所有信息进行加密。 快速启动网站 表格自动填充让您登录到任何网站,只需点击一下。 只要按一下“开始”按钮,自动填写表单自动打开必要的网页,你可以很容易地填写和提交表格。 轻松管理表格和表格信息 表格自动填充,您可以创建许多不同的形式,轻松地管理表单信息。 “批次模式”,可以轻松地管理表单和表格信息。 “按名称排序形式”的功能。 > 高级密码生成器 先进的随机密码生成器来生成任何长度的密码。 表格自动填充使用通用的随机数发生器(URAND),的子程序生成随机密码。 通用的随机数发生器(URAND)是用于产生的时间间隔(0,1)中的均匀分布的浮点数的子程序。 URAND保证有一个完整长度的周期。 >“ 导出/导入功能 - 导出/导入表格数据库 - 轻松移动数据库之间不同版本的个人电脑和程序。 - 导入从CSV格式的文件中的信息。 现在,你可以很容易地导入从任何程序如Excel,Word等软件,允许将数据保存在CSV格式
vf6.0,要考二级没系统的下哈 Microsoft Visual FoxPro 6.0 for Windows 的常见问题 这些是有关 Microsoft Visual FoxPro 最常见的问题。在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些附注,请从“文件”菜单中选择“打印”命令。此文档分为以下四部分: --------------------------------------------------------------------- 部分 1. 技术支持与市场 部分 2. Visual FoxPro 6.0 新增功能 部分 3. 从其他版本的 FoxPro 和 Visual FoxPro 中移植 部分 4. Visual FoxPro 常见问题 --------------------------------------------------------------------- 部分 1. 技术支持与市场 问题 1-1: 从何处可以获得产品的更新版本? 答案: 在 Visual FoxPro 的 Web 站点上即可获得产品的更新信息,其中包括有关 Service Pack 和更新的示例、向导及其他代码的信息,该站点的网址为: www.microsoft.com/vfoxpro 请定期查看该网站,以便下载产品的最新版本。 问题 1-2: 从何处可以得到有关 Visual FoxPro 的详细资料? 答案: 通过 Microsoft Visual FoxPro Web 站点是随时获得各种最新产品发布信息的最佳途径。在此站点上不仅有新的产品公告,而且还提供了产品的更新信息、技术文章、白皮书、专业开发人员设计的优秀示例、会议公告、以及与其他许多 FoxPro web 站点的各种链接。 问题 1-3: 如何获得技术支持,以及如何报告软件错误? 答案: Microsoft Visual FoxPro Web 站点已经链接到了多种联机支持选项,其中包括覆盖面广阔的有关所有产品 Microsoft Knowledge Base(Microsoft 知识库)。您还可以阅读一份有关常见问题的清单。除联机支持之外,还可以直接通过电话获得技术支持。“帮助”菜单中的选项可列出技术支持的电话号码。这些电话号码也可用于报告产品中的错误。 问题 1-4. 什么是 Knowledge Base?如何使用它? 答案: Knowledge Base 是内容广泛的论文集,覆盖了如何使用产品的各种特性、已知的软件错误及其解决方案或回避的方法、以及其他有助于使用各种 Microsoft 产品的有用信息。通过以下站点可访问整个 Knowledge Base: support.microsoft.com 问题 1-5: 是否会有 Visual FoxPro 6.0a? 答案: Microsoft 公司一向承诺为用户提供高质量的产品。如果确实需要,我们将提供 Visual FoxPro 6.0 的错误修订版。但是,修订版不会使用 6.0a 版的形式。Visual FoxPro 6.0 中任何错误的修正都将包含在 Visual Studio Service Pack 中。同时还会在 Visual FoxPro 的 www.microsoft.com/vfoxpro 或 Visual Studio 的www.microsoft.com/vstudio 的 Web 站点上发布修订公告。 问题 1-6: Microsoft 公司为应用程序的开发提供了一些优秀的解决方案。怎样才能知道应该向客户推荐和使用哪种产品? 答案: 在选择适用某项任务的产品时,需要考虑多方面的因素。Microsoft Visual FoxPro web 站点上有一份优秀的策略背景论文,它比较了 Visual FoxPro、Visual Basic、SQL Server 和 Access 等 Microsoft 产品之间的不同。 问题 1-7: 哪里可以找到 Visual FoxPro 的使用示例? 答案: Visual FoxPro 6.0 产品中带有丰富的示例,其中有一些是针对 6.0 版特有功能的新示例。与 Visual FoxPro 以前的版本不同,这些示例将与所有 Visual Studio 示例安装在一起。您必须运行 MSDN Library 的“自定义”安装来安装这些示例。在 Visual FoxPro 中可使用新的 HOME(2) 函数方便地找到已安装示例的位置。 除了产品中所自带的示例外,Microsoft Visual FoxPro web 站点还将经常提供新的示例。
第十章 常用的表单控件 VFP在面向对象开发环境中,是通过在表 单上放置控件来完成信息的输入设计工作的。 在设计表单时可以使用两类控件:与表中数据 捆绑的控件和不与数据捆绑的控件。所谓捆绑 控件是指当输入或选择的值要保存或者被引用 时,就需为该控件设置一个数据源,数据源可 以是表中的字段或变量。对于数据源是变量或 字段的控件,则需要设置控件的ControlSource 属性;若数据源是整个表中的数据,则需要设 置RecordSource属性。而非捆绑控件则不与数 据源直接捆绑。 10.1 标签控件(Label) 标签控件:它是一个显示文本图形的控件, 在设计时可以直接修改其中的文本,标签具有自 己的一套属性、事件和方法,能够响应绝大多数 鼠标事件,可以在运行时动态地改变标签文本。 可以使用TabIndex属性为标签指定一个Tab次序, 但标签并不能获得焦点,而是将焦点传递给Tab 键次序中紧跟着标签的下一个控件。 常用的标签属性: Caption属性 用于指定标签的标题文本,最多可包含的字 符数量为256。标签文本显示在屏幕上以帮助用 户识别各个对象。用户在产生表单或控件对象时, 系统给予对象的Caption属性值和Name属性值是 相同的,此时用户应特别注意它们的区别。 用户在为控件设置Caption属性时,可以将其 中的某个字符作为热键,方法是在该字符前插入 一个反斜杠(\)和一个小于号(<)。 AutoSize属性 该属性用于确定是否根据标题的长度来调整 标签的大小。 Alignment属性 该属性指定标题文本在控件中显示时的对齐 方式。对于不同的控件,该属性的设置是有区别 的。对于标签,该属性的设置值如下表所示。 设置值 说 明 0 (默认值)左对齐,文本显示在区域的 左边 1 右对齐,文本显示在区域的右边 2 中央对齐,将文本居中排放,使左右两 边的空白相等 BackStyle属性 该属性用于确定标签是否透明。当标签控件 完全处于另一个控件的上方时,标签将遮住下方 的控件,此时若标签控件的BackStyle属性设置为 0,则下方的控件将透过标签显示出来。 WordWrap属性 该属性用于确定标签上显示的文本能否换行。 前提是AutoSize属性值应设置为.T.。 FontSize属性 该属性确定标签上显示的文本字体的大小。 ForeColor属性 该属性用于确定标签上显示的文本字体的颜 色。 【例10.1】交换两个变量中的数据(如下图1所示) 。 设计步骤如下: 建立应用程序用户界面。 选择"新建"表单,进入表单设计器,增加一 个命令按钮Command1,4个标签Label1、Label2、 Label3、Label4(如图10-3左所示)。 设置对象属性(如表10-2),设置完成之后的 界面如图10-3右所示。 编写程序代码。 *编写命令按钮Command1的Click事件代码: t= Thisform.Label3.Caption Thisform.Label3.Caption= Thisform.Label4.Caption Thisform.Label4.Caption=t 运行程序,单击"交换"按钮,即可看到两个白 框中的数据相互交换。 例10.1 10.2 命令按钮控件(Command) 命令按钮一般是用于启动某一动作的事件 (如关闭表单、移动记录等)。这些事件的操作 代码通常是放置在命令按钮的Click事件中。当用 户需要完成某项特定的操作时,可单击此命令按 钮。 常用属性: Default属性和Cancel属性 Default属性值为.T.的命令按钮称为"确认" 按钮。命令按钮的Default属性的默认值为.F.。一 个表单内只能有一个"确认"按钮,当用户将某 个命令按钮设置为"确认"按钮时,先前存在的 "确认"按钮将自动变为"非确认"按钮。 "确 认"按钮的行为要受到KEYCOMP设置(DOS或 WINDOWS)的影响。在"确认"按钮所在的表 单激活的情况下,"确认"按钮的行为如下表所 示。 设置值 效 果 DOS 按Ctrl+Enter,选择"确认"按钮、执行Click事件代码 WINDOWS 当焦点不在命令按钮上时,按Enter,选择"确认"按钮、 执行Click事件代码 Cancel属性值为.F.的命令按钮称为"取消" 按钮。命令按钮的Cancel属性默认值为.F.。在" 取消"按钮所在的表单激活的情况下。按Esc键即 可激活"取消"按钮,执行该按钮的Click事件代 码。 这两个属性在设计和运行阶段都可使用,主 要适用于命令按钮。 Enabled属性 指定表单或控件能否响应由用户引发的事件。 默认值为.T.,即对象是有效的,能被选择,能响应 用户引发的事件。 Enabled属性使得用户(程序

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧