Foxtable(狐表)用户栏目专家坐堂 → 【参选实例】华海仓库管理软件 v1.0 (源码已公开)


  共有101552人关注过本帖树形打印复制链接

主题:【参选实例】华海仓库管理软件 v1.0 (源码已公开)

美女呀,离线,留言给我吧!
julia
  81楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:489 威望:0 精华:0 注册:2008/12/5 14:52:00
  发帖心情 Post By:2009/1/2 8:01:00 [只看该作者]

Foxtable 主要技能推介:
===========

1.采用外部数据库全程SQL操作,内部表只是作为用户录入的作用


我问一下,外部数据库是用什么软件编成的?是用ACCESS编还是用FOXTABLE编?因为如果用ACCESS编的话,我们不是又要重新学习ACCESS了,那如果用FOXTABLE 编,我怎么打不开你的外部数据库的文本呀?

 回到顶部
帅哥哟,离线,有人找我吗?
gdlgh
  82楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3506 威望:0 精华:5 注册:2008/9/1 2:32:00
  发帖心情 Post By:2009/1/2 12:00:00 [只看该作者]

学了无坏处!!但很重要(数据库基础)!!若一般用户狐表的内部表已够用了!


 回到顶部
美女呀,离线,留言给我吧!
julia
  83楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:489 威望:0 精华:0 注册:2008/12/5 14:52:00
  发帖心情 Post By:2009/1/2 13:16:00 [只看该作者]

我的意思是说我也想通过外部数据库来做这个表的,但是是要用FOXTABLE做呢?还是ACCESS做?我指的是外部数据库

 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  84楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/1/2 18:11:00 [只看该作者]

 str1 = "单号='@$0',类型= '@$1',仓库名称= '@$2',对方单位= '@$3',经办人= '@$4'," & str3 & ",部门= '@$6',日期 >= #@$7#,日期 <= #@$8#"

gdlgh大哥来解答一下这@$的意思.....实在不理解这段的意义所在...
是查询窗口里查询按钮的代码...

 回到顶部
帅哥哟,离线,有人找我吗?
gdlgh
  85楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3506 威望:0 精华:5 注册:2008/9/1 2:32:00
  发帖心情 Post By:2009/1/2 22:00:00 [只看该作者]

之所以用@#$,系用来简化代码!

===找到TreeView4控件查看代码=====

'生产明细表

s 13 = "SELECT M.序号, M.日期, M.部门, M.货品编码, N.货品名称, N.规格型号, N.计量单位, VAL(M.入库数量) AS 数量, M.单价, M.金额, N.备注 FROM CYMX AS M LEFT JOIN 库存商品 AS N ON M.货品编码=N.货品编码 WHERE 类型='生产入库' @#$ ORDER BY 日期, 部门, M.货品编码"     '这里有个'@#$'

略..........

            select case value2  '判断选定节点内容,赋值全局变量

  略.........

               case "生产明细表"   '把SQL字符串赋值给全局变量Vars("str2") 
                    Vars("str2") = s13
               case "部门领用汇总表"
                    Vars("str2") = s14
               case "物品领用汇总表"
                    Vars("str2") = s15
               case "领用明细表"
                    Vars("str2") = s16
            end select


========报表查询窗口查询按钮代码=============

with e.form
    dim sql,str1,str2,str3,kz as string
    kz = "TextBox4,ComboBox4,ComboBox3,ComboBox5,ComboBox6,TextBox1,TextBox3,DateTimePicker1,DateTimePicker2"   '查询条件的控件数组
    str1 = "单号='@$0',类型= '@$1',仓库= '@$2',供应单位= '@$3',经办人= '@$4',货品编码 = '@$5',部门= '@$6',日期 >= #@$7#,日期 <= #@$8#"    '对应查询条件的条件数组(@$为替换符,作用是可简化代码!)
    dim i as integer
    For Each k as string In kz.split(",")    '分解控件数组,循环组合查询条件串sql
        if .Controls(k).Value isnot nothing then    '若条件控件内容为空,跳过,否则组合查询条件串
            if i=0 and .Controls("CheckBox1").Checked then    '判断使用模糊单号还是精确单号查询
                sql = sql & " AND " & str1.split(",")(i).Replace("='@$" & i," like '%" & .Controls(k).Value & "%")    '组合条件串,条件值替换@$i。(模糊查询)
            else
                sql = sql & " AND " & str1.split(",")(i).Replace("@$" & i,.Controls(k).Value)    '组合条件串,条件值替换@$i。(精确查询)
            end if
        end if
    i += 1
    Next
    Dim cmd As New SQLCommand
    cmd.C
    Dim dst As WinForm.DataList = Forms("窗口1").Controls("DataList7")  
    cmd.CommandText = Vars("str2").Replace("@#$",sql)   '把 Vars("str2")=s13 中的'@#$'替换为条件串sql,组成一个完整的SQL查询语句!!
    msgbox(Vars("str2").Replace("@#$",sql))    '查看完整的SQL查询语句串,加入这条代码就明了!!!!!!
    '生成序列号
    dst.DataTable = cmd.ExecuteReader()
    dst.Build()
    For i=1 to dst.count
        Dim dr as DataRow = dst.GetDataRow(i-1)
        dr("序号") = "" & i
    Next
end with

[此贴子已经被作者于2009-1-2 22:37:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
gdlgh
  86楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3506 威望:0 精华:5 注册:2008/9/1 2:32:00
  发帖心情 Post By:2009/1/2 22:26:00 [只看该作者]

以下是引用julia在2009-1-2 13:16:00的发言:
我的意思是说我也想通过外部数据库来做这个表的,但是是要用FOXTABLE做呢?还是ACCESS做?我指的是外部数据库

呵。除了FOXTABLE做的都叫外部数据!你说呢?

若有时间可加学SQL,否则狐表够了!!

建议学!因为易!(偶学狐表才学SQL的)

[此贴子已经被作者于2009-1-2 22:35:11编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
ybil
  87楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2009/1/2 23:40:00 [只看该作者]

唯有景仰!!!

 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  88楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/1/3 0:20:00 [只看该作者]

以下是引用gdlgh在2009-1-2 22:00:00的发言:

之所以用@#$,系用来简化代码!

===找到TreeView4控件查看代码=====

'生产明细表

s 13 = "SELECT M.序号, M.日期, M.部门, M.货品编码, N.货品名称, N.规格型号, N.计量单位, VAL(M.入库数量) AS 数量, M.单价, M.金额, N.备注 FROM CYMX AS M LEFT JOIN 库存商品 AS N ON M.货品编码=N.货品编码 WHERE 类型='生产入库' @#$ ORDER BY 日期, 部门, M.货品编码"     '这里有个'@#$'

略..........

            select case value2  '判断选定节点内容,赋值全局变量

  略.........

               case "生产明细表"   '把SQL字符串赋值给全局变量Vars("str2") 
                    Vars("str2") = s13
               case "部门领用汇总表"
                    Vars("str2") = s14
               case "物品领用汇总表"
                    Vars("str2") = s15
               case "领用明细表"
                    Vars("str2") = s16
            end select


========报表查询窗口查询按钮代码=============

with e.form
    dim sql,str1,str2,str3,kz as string
    kz = "TextBox4,ComboBox4,ComboBox3,ComboBox5,ComboBox6,TextBox1,TextBox3,DateTimePicker1,DateTimePicker2"   '查询条件的控件数组
    str1 = "单号='@$0',类型= '@$1',仓库= '@$2',供应单位= '@$3',经办人= '@$4',货品编码 = '@$5',部门= '@$6',日期 >= #@$7#,日期 <= #@$8#"    '对应查询条件的条件数组(@$为替换符,作用是可简化代码!)
    dim i as integer
    For Each k as string In kz.split(",")    '分解控件数组,循环组合查询条件串sql
        if .Controls(k).Value isnot nothing then    '若条件控件内容为空,跳过,否则组合查询条件串
            if i=0 and .Controls("CheckBox1").Checked then    '判断使用模糊单号还是精确单号查询
                sql = sql & " AND " & str1.split(",")(i).Replace("='@$" & i," like '%" & .Controls(k).Value & "%")    '组合条件串,条件值替换@$i。(模糊查询)
            else
                sql = sql & " AND " & str1.split(",")(i).Replace("@$" & i,.Controls(k).Value)    '组合条件串,条件值替换@$i。(精确查询)
            end if
        end if
    i += 1
    Next
    Dim cmd As New SQLCommand
    cmd.C
    Dim dst As WinForm.DataList = Forms("窗口1").Controls("DataList7")  
    cmd.CommandText = Vars("str2").Replace("@#$",sql)   '把 Vars("str2")=s13 中的'@#$'替换为条件串sql,组成一个完整的SQL查询语句!!
    msgbox(Vars("str2").Replace("@#$",sql))    '查看完整的SQL查询语句串,加入这条代码就明了!!!!!!
    '生成序列号
    dst.DataTable = cmd.ExecuteReader()
    dst.Build()
    For i=1 to dst.count
        Dim dr as DataRow = dst.GetDataRow(i-1)
        dr("序号") = "" & i
    Next
end with

[此贴子已经被作者于2009-1-2 22:37:38编辑过]

图片点击可在新窗口打开查看得好好研究了,先谢过.


 回到顶部
美女呀,离线,留言给我吧!
julia
  89楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:489 威望:0 精华:0 注册:2008/12/5 14:52:00
  发帖心情 Post By:2009/1/3 13:44:00 [只看该作者]

谢谢大哥的指点,对于SQL有几点看不明白。
1)M.货品编码 等,字母M代表什么意思?
2)FROM CYMX ,这个CYMX是不是一个表名?他是你的一个查询表的表名吗?因为我找不到这个表,还有如果是查询表,你是在哪设置这个表名的?
3)在主窗口中,窗口1 有一个代码
    str1 = "DataList3" 可是我根本找不到DataList3 只有 DataList1和DataList2 请问你这是设置在哪里的吗?
 4)Round(SUM(金额),2) 这里的“2” 是什么意思,起到什么作用?
5)IIF(ISNULL(退货_金额),0,退货_金额) 这个表达能不能用IIF(ISNULL(退货_金额),0)代替,表达的是什么意思?
6)SELECT 订购日期,公司名称,产品名称, 数量, 订单明细.单价, 折扣, (数量 * 订单明细.单价 * (1-折扣)) AS 金额 FROM ((订单明细 INNER JOIN 产品 ON 订单明细.产品ID = 产品.产品ID) INNER JOIN 订单 ON 订单明细.订单ID = 订单.订单ID) INNER JOIN 客户 ON 订单.客户ID = 客户.客户ID
在上面的表达式中,我看不明白是什么意思?你帮我看一下我的理解是不是对的。
查询表中需要显示的列为:订购日期,公司名称,产品品名,数量,单价,折扣,及金额。其中
A)金额是单价*数量*(1-折扣)B)单价是订单明细表中的单价
C)
订购日期,公司名称,产品品名,数量,单价,折扣,及金额这所有的列都来自于产品表,订单表,订单明细表及客户表还是什么意思?
因为我看看客户表中只能提取公司名称呀。我不懂这上面是具体意思到底是什么,请指教!!!

 回到顶部
帅哥哟,离线,有人找我吗?
gdlgh
  90楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3506 威望:0 精华:5 注册:2008/9/1 2:32:00
  发帖心情 Post By:2009/1/3 20:49:00 [只看该作者]

1.字母M是表别名,可代替表名
2.CYMX是个视图查询表!在数据库“查询”右列表可找到!
3.DataList3控件是有的,在窗口1中的控件列表可找到!
4.Round(SUM(金额),2) 同易表那个函数一样四舍五入,这里的“2” 是表示保留两个小数点!
5.能否代替我未试过,但语法是那样的!表示为 if(条件真假,真执行此代码,假执行此代码)!
6.这是个连接查询也称多表连接(内联接 INNER JOIN )语句。内联接是用比较运算符比较要联接列的值的联接。
  例:下面是C列作为联接列,它返回两个表中的所有列,但只返回在联接列中具有相等值的行。

SELECT R.A,R.B,R.C,S.C,S.D FROM 表R AS R INNER JOIN 表S AS S ON R.C=S.C

    表R                      
  A    B   C  
 A1   B1  C1  
 A2  B2   C2 
 A3   B3  C3
 A4  B4   C4 
    表S
 C   D
C1 D1
C2 D2   
C4  D3   
C5 D4  

表R内连接表S  ON R.C=S.C
 A    B    C     C    D 
 A1    B1    C1    C1    D1  
 A2    B2    C2    C2    D2  
 A4    B4    C4   C4    D3  
[此贴子已经被作者于2009-1-3 20:51:23编辑过]

 回到顶部