Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:填充问题

1楼
wqc360 发表于:2009/11/26 9:25:00
请下载更新附件试试:比如先清空3个计划表(计划目录、计划工序、计划工艺)中数据,再下达一个图号的计划(中点击--产品目录表的图号列单元格,打开产品工序窗口,点击--产品工序窗口绑定表的加工提示列单元格,打开产品工艺窗口,点击--产品工艺窗口的 ‘工艺确定,准备下单’按钮,打开生产计划窗口,在此窗口录入‘订单号,生产单号,计划数量,计划日期’,点击-下达生产计划按钮,订单号和计划单号都为101,数量100,日期2009-11-23,点击-下达生产计划按钮,在计划3表中能找到刚下的单,紧接着下同图号的另一个订单,把订单号改成其他数据,再点按钮,本来属一个新的计划,也应该填充进去,但是结果不对,是把3表的原订单号进行修改成现在的了,原来的订单找不到了。还有,怎样如果窗口变量和图号重复时,提示本计划已下达,不能再下达。
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目3.rar

2楼
狐狸爸爸 发表于:2009/11/26 9:47:00
为什么一定要想着填充呢,Filler只能处理逻辑简单的批量复制数据功能。

逻辑复杂的东西,通过代码在目标表增加行,从原表对应行读取数据,写入新增行各列,不是简单得多,效率也高得多吗?
[此贴子已经被作者于2009-11-26 9:51:08编辑过]
3楼
wqc360 发表于:2009/11/26 10:06:00
我想做一个较简单的生产管理项目,尽可能让使用者用鼠标或尽量少动键盘实现操作,又要避免一些失误,所以要求逻辑关系严谨。
此位置的逻辑是:从基础数据产品目录中找到要计划的产品(图号为唯一识别)再检查工序和工艺是否符合本批要求(有可能多种工艺路线,进行选择暂停/执行),确定工艺路线准备下计划;填写本计划的相关数据(即窗口4个变量)通过系统检测数据是否齐全和重复,符合要求,下单。本图号又何能重复下单,只是计划的相关数据(即窗口4个变量)不同,所以应允许图号重复。在生产的时候再调用计划3表(其实只是基础数据和业务数据的过度)中的数据进行操作。这个与仓库系统大不一样,是目前ERP生产模块的主流模式,我现在是为一个部门做的项目
[此贴子已经被作者于2009-11-26 10:55:31编辑过]
4楼
mr725 发表于:2009/11/26 10:58:00
楼主怪怪的啊~   同一个项目的控件名称在提问时也要变动, 不知为何,难为我等吗???"(订单号)" 和 "(订单号:)" 是不同的呀~~~
其实你的原代码只要加上条件就可以了,看清下面黄底的代码,需要什么条件就加上去吧!!!

Dim dd As WinForm.TextBox = Forms("生产计划").Controls("(订单号:)")

    '-------------------------------------------
For Each Va as string In Values
    with e.form
        if .Controls(va).value Is Nothing then
            MessageBox.Show(va &" 资料不全,请录入!", "提示")
        end if
    end with
Next
    Dim dr As DataRow
    dr = DataTables("计划目录").Find("[图号] = '" & currenttable.current("图号") & "' and [订单号] =  '" & dd.text & "'")
    If dr Is Nothing Then
        dim f As New Filler
        f.SourceTable = DataTables("产品目录") '指定数据来源
        f.SourceCols = "客户,机型,图号,名称,材料,重量,材料费" '指定数据来源列
        f.DataTable = DataTables("计划目录") '指定数据接收表
        f.DataCols = "客户,机型,图号,名称,材料,重量,材料费" '指定数据接收列
        f.Filter = "[图号] =  '" & currenttable.current("图号") & "'"
        f.Fill() '填充数据
    end if
    dr = DataTables("计划工序").Find("[图号] = '" & currenttable.current("图号") & "' and [订单号] =  '" & dd.text & "'")
    If dr Is Nothing Then
        dim f As New Filler
        f.SourceTable = DataTables("产品工序") '指定数据来源
        f.SourceCols = "图号,名称,序号,工作中心,加工提示,备注" '指定数据来源列
        f.DataTable = DataTables("计划工序") '指定数据接收表
        f.DataCols = "图号,名称,序号,工作中心,加工提示,备注" '指定数据接收列
        f.Filter = "[图号] =  '" & currenttable.current("图号") & "'"
        f.Fill() '填充数据
    end if
    dr = DataTables("计划工艺").Find("[图号] = '" & currenttable.current("图号") & "'and [订单号] =  '" & dd.text & "'")
    If dr Is Nothing Then
        dim f As New Filler
        f.SourceTable = DataTables("产品工艺") '指定数据来源
        f.SourceCols = "图号,名称,序号,工作中心,工艺序号,加工内容,准备工时,标准工时" '指定数据来源列
        f.DataTable = DataTables("计划工艺") '指定数据接收表
        f.DataCols = "图号,名称,序号,工作中心,工艺序号,加工内容,准备工时,标准工时" '指定数据接收列
        f.Filter = "[图号] =  '" & currenttable.current("图号") & "'"
        f.Fill() '填充数据
    end if
   
    for n as integer = 0 to tables("计划工艺").count-1
        if tables("计划工艺").rows(n)("图号") = tables("产品目录").current("图号") and tables("计划工艺").rows(n)("订单号")= ""              ' 或这样更规范:and tables("计划工艺").rows(n).isnull("订单号")  

            tables("计划工艺").rows(n)("订单号") = Forms("生产计划").Controls("(订单号:)").text
        end if
    next
[此贴子已经被作者于2009-11-26 11:25:15编辑过]
5楼
wqc360 发表于:2009/11/26 11:05:00
谢谢mr725回复,不好意思,加冒号只是为了能与窗口标题一样,给你带来的不便深表歉意。您的方案我试试,再次谢谢
6楼
mr725 发表于:2009/11/26 11:06:00
以下是引用wqc360在2009-11-26 11:05:00的发言:
谢谢mr725回复,不好意思,加冒号只是为了能与窗口标题一样,给你带来的不便深表歉意。您的方案我试试,再次谢谢

4楼代码倒数第四行修改过了~~

共6 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04688 s, 3 queries.