烦烦!那位高手指点我!数据更新失败!急急!给分70!:D

salina 2003-06-07 07:05:17
取两个数据库为源更新另外两个数据库。条件是判断字段的值是否真,
源表如下:
prodpurc(date--日期,itemno--单据号,suppname--供应商号,bizman--出货人,
saleman--采购员,audit--审核,stuff--制单人,auditman--审核人)
parcitem(date--日期,itemno--单据号,prodno-货号,da--单位,form--规范,
scalar--数量,dz--单价,count--合计)
上两个表之间以itemno为关系。
目标表结构基本一样,另外增加一个判断段:enter--入库标记。
用表单命令控件实现入库操作。
运行程序后总是不能实现对数据库操作。点解,请指点!
程序如下:
CLOS ALL
OPEN DATA F:\VFP98\POS\POS.DBC
SELE A
USE PRODPURC
SELE B
USE PARCITEM
SELE C
USE PURCTEMP
SELE D
USE ITEMTEMP
SELE E
USE COUNTITEM
PUBLIC logic_item
Logic_item=1
SELE E
IF COUNTITEM.itemcount=0
SELE C
IF PURCTEMP.ENTER=.T. .OR. PURCTEMP.AUDIT=.T.

SELE A

REPLACE date WITH c->date,itemid WITH c->itemid,suppname WITH c->suppname,bizman WITH c->bizman,saleman;
WITH c->saleman FOR PURCTEMP.ENTER=.T. WHILE PURCTEMP.AUDIT=.T.
SELE B

IF ITEMTEMP.DATE=C->DATE .AND. ITEMTEMP.ITEMID=C->ITEMID
REPLACE date WITH d->date,itemid WITH d->itemid,prodno WITH d->prodno,;
da WITH d->da,form WITH d->form,scalar WITH d->scalar,dz WITH d->dz,count WITH d->count
ENDIF
SELE E
REPLACE itemcount WITH logic_item,itemid WITH c->itemid
ELSE
=MESSAGEBOX('采购订单没有审核或入库参照没有标记!',1+48,'入库信息')
ENDIF
ELSE
=MESSAGEBOX('该单据已入库!',1+48,'入库信息')
ENDIF
...全文
56 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiolig 2003-06-10
  • 打赏
  • 举报
回复
你能用文字把你意图和实现逻辑再说一下吗?
xiaothird 2003-06-10
  • 打赏
  • 举报
回复
xiolig(凌霄) 好人
salina 2003-06-10
  • 打赏
  • 举报
回复
流程图:
(开始)
|<———----
V |
------------- |
|采购订单输入| |
------------- |
| |
V .F. |
<审核 >------
.T. |
|
V
-------------
|采购入库单输入|
-------------
|
|
(结 束)
审核这一步操作我直接用单选框实现对audit,enter这两个逻辑字段操作。怎样说呢!也就是说,采购订单的数据与采购入库单的数据相同但意义不同。
------------ -----------
| 订单数据库 | | 入库数据库|
------------- ———————
| | | |
| |------------------->| |
| | | |
———————— -------------
你有这类似这样的实现方法吗?
dyming0410 2003-06-10
  • 打赏
  • 举报
回复
啊,你拿VC来虎我们?
xiolig 2003-06-08
  • 打赏
  • 举报
回复
你是哪位毛毛?你的程序我不懂,改写如下:
CLOS ALL
OPEN DATA F:\vfp98\pos\pos.DBC
USE prodpurc IN 0
USE parcitem IN 0
USE purctemp IN 0
USE itemtemp IN 0
USE countitem IN 0
PUBLIC logic_item
logic_item=1
SELE countitem
IF itemcount=0
SELECT purctemp
IF enter OR audit
SELECT prodpurc
REPLACE date WITH purctemp.date,;
itemid WITH purctemp.itemid,;
suppname WITH purctemp.suppname,;
bizman WITH purctemp.bizman,;
saleman WITH purctemp.saleman
* FOR purctemp.enter WHILE purctemp.audit
* 这个条件想要达到目的是什么?
IF itemtemp.date = countitem.date AND;
itemtemp.itemid = countitem.itemid
SELECT parcitem
REPLACE date WITH itemtemp.date,;
itemid WITH itemtemp.itemid,;
prodno WITH itemtemp.prodno,;
da WITH itemtemp.da,;
form WITH itemtemp.form,;
scalar WITH itemtemp.scalar,;
dz WITH itemtemp.dz,;
count WITH itemtemp.count
ENDIF
SELE countitem
REPLACE itemcount WITH logic_item,;
itemid WITH countitem.itemid
ELSE
MESSAGEBOX('采购订单没有审核或入库参照没有标记!',1+48,'入库信息')
ENDIF
ELSE
MESSAGEBOX('该单据已入库!',1+48,'入库信息')
ENDIF

2,749

社区成员

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

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