标题:设置数据源的方法?
只看楼主
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
实验继续:
第五步:在库里另加一表“计量单位”,导入若干数据,表单另加一组合框,rowSource="计量单位.单位名称",rowSourceType=8
表单load多加一组打开“计量单位”的代码
测试运行,成功

再继续,第六步,上代码
程序代码:
comboBoxtest=CREATEOBJECT("testForm")
comboBoxtest.show
READ EVENTS
RETURN 

DEFINE CLASS testForm as Form
    showWindow=2
    ADD OBJECT testComboBox1 as comboBox WITH rowSourceType=6,rowSource="供应单位.单位全称"
    ADD OBJECT testComboBox2 as comboBox WITH rowSourceType=6,rowSource="计量单位.单位名称",top=100,left=50
    PROCEDURE load
        OPEN DATABASE "材料管理"
        IF !USED("供应单位")
            USE "供应单位" IN 7
        ENDIF
        IF !USED("计量单位")
            USE "计量单位" IN 8
        ENDIF
    ENDPROC
    PROCEDURE Destroy
        IF USED("供应单位")
            USE IN "供应单位"
        ENDIF
        IF USED("计量单位")
            USE IN "计量单位"
        ENDIF
        SET DATABASE TO "材料管理"
        CLOSE DATABASES
        CLEAR EVENTS
    ENDPROC
ENDDEFINE 
测试运行  啥问题都没有  。。。。


那么  我之前的项目里  也是这样做的  为什么呢?

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2016-01-10 23:11
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
先不管为什么  继续  

程序代码:
myDrv=SYS(5)
myDir=SYS(2003)
myProgPath=myDrv+myDir
SET DEFAULT TO &myProgPath

comboBoxtest=CREATEOBJECT("testForm")
comboBoxtest.show
READ EVENTS
RETURN 

DEFINE CLASS testForm as Form
    showWindow=2
    queryModel=.t.
    ADD OBJECT ComboBox1 as comboBox WITH rowSourceType=6,rowSource="供应单位.单位全称",top=30,left=50
    ADD OBJECT ComboBox2 as comboBox WITH rowSourceType=6,rowSource="计量单位.单位名称",top=100,left=50
    ADD OBJECT label1 as label WITH top=150,left=50,autoSize=.t.
    ADD OBJECT label2 as label WITH top=200,left=50,autoSize=.t.
    PROCEDURE load
        OPEN DATABASE "datas\材料管理"
        IF !USED("材料流水")
            USE "材料流水" IN 1
        ENDIF
        IF !USED("收料明细")
            USE "收料明细" IN 2
        ENDIF
        IF !USED("用料明细")
            USE "用料明细" IN 3
        ENDIF
        IF !USED("材料总计")
            USE "材料总计" IN 4
        ENDIF
        IF !USED("材料分类")
            USE "材料分类" IN 5
        ENDIF
        IF !USED("用途")
            USE "用途" IN 6
        ENDIF
        IF !USED("供应单位")   
            USE "供应单位" IN 7
        ENDIF
        IF !USED("计量单位")
            USE "计量单位" IN 8
        ENDIF
        IF !USED("保管地点")
            USE "保管地点" IN 9
        ENDIF
        IF !USED("单位人员")
            USE "单位人员" IN 10
        ENDIF
        IF !USED("所在部门")
            USE "所在部门" IN 11
        ENDIF
    ENDPROC
    PROCEDURE init
        SELECT "收料明细"
        GO BOTTOM
        IF BOF()
            MESSAGEBOX("数据库是空的!现在进入添加状态!",64)
            this.queryModel=.f.
            this.myAddNew()
        ELSE
            this.queryModel=.t.
            SELECT "收料明细"
            GO BOTTOM
            SKIP -1
            this.myQuery()
        ENDIF
    ENDPROC
    PROCEDURE myAddNew()
        ltCurrTime=DATETIME()
        this.label1.caption='S1'+STRTRAN(STRTRAN(STRTRAN(TTOc(ltCurrTime),':',''),'.',''),' ','')
        this.label2.caption=TRANSFORM(VAL(STRTRAN(STRTRAN(STRTRAN(TTOc(ltCurrTime),':',''),'.',''),' ','')),'9999年99月99日 99时99分99秒')
        =''
        =''
    ENDPROC
   
    PROCEDURE myQuery()
        this.label1.caption=收料明细.收料单号
        this.label2.caption=TRANSFORM(VAL(STRTRAN(STRTRAN(STRTRAN(TTOc(收料明细.收料时间),':',''),'.',''),' ','')),'9999年99月99日 99时99分99秒')
        SELECT 单位全称 FROM 供应单位 WHERE 供应编号=;
            (select 供应单位 from 收料明细 where 收料单号=this.label1.caption) INTO ARRAY tempArray
        =tempArray(1)
        =.t.
        SELECT 单位名称 FROM 计量单位 WHERE 计量编号=;
            (select 计量单位 from 材料总计 where 材料编号=;
                (SELECT 材料编号 FROM 收料明细 where 收料单号=this.label1.caption)) INTO ARRAY tempArray
        =tempArray(1)
        =.t.
    ENDPROC    
    PROCEDURE Destroy
        IF USED("材料流水")
            USE IN "材料流水"
        ENDIF
        IF USED("收料明细")
            USE IN "收料明细"
        ENDIF
        IF USED("用料明细")
            USE IN "用料明细"
        ENDIF
        IF USED("材料总计")
            USE IN "材料总计"
        ENDIF
        IF USED("材料分类")
            USE IN "材料分类"
        ENDIF
        IF USED("用途")
            USE IN "用途"
        ENDIF
        IF USED("供应单位")
            USE IN "供应单位"
        ENDIF
        IF USED("计量单位")
            USE IN "计量单位"
        ENDIF
        IF USED("保管地点")
            USE IN "保管地点"
        ENDIF
        IF USED("单位人员")
            USE IN "单位人员"
        ENDIF
        IF USED("所在部门")
            USE IN "所在部门"
        ENDIF
        SET DATABASE TO "材料管理"
        CLOSE DATABASES
        CLEAR EVENTS
    ENDPROC
ENDDEFINE

运行全OK,感觉逻辑上,没什么太错误啊

可为什么把这种逻辑用在我原来写好的程序界面里,就是不行呢?

真是蛋疼啊!!!!!!

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2016-01-11 00:31
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
崩溃中。。。

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2016-01-11 01:01
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:39 
回复 13楼 不懂才问
有了测试成果,一定会有实效。
不急,慢慢折腾,期待分享成果。
2016-01-11 08:56
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
回复 10楼 TonyDeng
就是按上次示范做的啊   思路也没错  逻辑也清楚   但就是奇怪了   在我原来编写好的“界面”里实现数据功能  就是不行 。。。。

另建一个文件   文本文件比较器

右边对着左边输入一遍   看看哪里会错   。。。。。。

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2016-01-11 09:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-460977-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063082 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved