以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=19052)

--  作者:SHIMSMS
--  发布时间:2012/4/26 9:19:00
--  [求助]

 我 在项目Initialize事件中,设置Var全局变量

代码

Dim KJQM As String

Dim d As Date = Date.ToDay  \'#3/25/2012#

Dim kj As String = CStr(d.Year)

Dim qj As String = CStr(d.Month)

qj = qj.PadLeft(2,"0")

KJQM = kj & qj

                                                      

Vars.Add("KJQS",Gettype(String)," ")

Vars("KJQS") = ""& KJQM &"

                                                      

返回 变量 = ‘201204’( 在命令窗口Output.Show(Vars("KJQS"))验证准确)                                                       

 

 然后应用

在一个共有窗口的表属性中设置,表类型SQLQuery,数据源(SQL Server

 Select 语句

Select LH,SUM(UL) As UL,SUM(UL*DJ) As JE,LY,KJQJ FROM WL99 WHERE KJQJ = \'" & Vars("KJQS") & "\' GROUP BY LH,LY,KJQJ ORDER BY LH

 或将条件表达式写为WHERE KJQJ = \' & Vars("KJQS") & \'

 其结果都返回一空表。  

 

如果将代码改写为:

Select LH,SUM(UL) As UL,SUM(UL*DJ) As JE,LY,KJQJ FROM WL99 WHERE KJQJ = ‘201204’  GROUP BY LH,LY,KJQJ  ORDER BY LH

  条件表达式直接使用值 ‘201204’,而不是全局变量的表达式,

 结果即按条件 KJQJ = ‘201204’ 显示所有记录

 

我又在“全局代码”菜单中设置:Public KJQX As String 全局变量 KJQX

接着在项目Initialize事件中设置代码:

Dim KJQM As String

Dim d As Date = Date.ToDay  \'#3/25/2012#

Dim kj As String = CStr(d.Year)

Dim qj As String = CStr(d.Month)

qj = qj.PadLeft(2,"0")

KJQM = kj & qj

KJQX = "\'" & KJQM & "\'"

( 或者在表窗口AfterLoad 事件中设置如上代码 )

将表属性中 Select 改写为:

Select LH,SUM(UL) As UL,SUM(UL*DJ) As JE,LY,KJQJ FROM WL99 WHERE KJQJ = ‘& KJQX &’  GROUP BY LH,LY,KJQJ  ORDER BY LH

 返回结果仍然是一空表

                                                                                      

请教在SQL语句中如何写条件表达式? 在实际应用模块中要用到此类的全局变量之处很多,

我正在编写一应用软件,成功后向你们购买一套 FoxTable 软件。

回复邮箱:1139146080@QQ.com

急切得到答复!


--  作者:狐狸爸爸
--  发布时间:2012/4/26 9:29:00
--  

Vars("KJQS") = "" & KJQM &""

 

应该改为:

 

Vars("KJQS") = KJQM


--  作者:狐狸爸爸
--  发布时间:2012/4/26 9:31:00
--  

其实那一段代码
 
Dim KJQM As String
Dim d As Date = Date.ToDay \'#3/25/2012#
Dim kj As String = CStr(d.Year)
Dim qj As String = CStr(d.Month)
qj = qj.PadLeft(2,"0")
KJQM = kj & qj
Vars.Add("KJQS",Gettype(String)," ")
Vars("KJQS") = "’"& KJQM &"’" 
 
 
可以全部删除,用下面的一行代替:

 
Vars.Add("KJQS",Gettype(String),Format(Date.Today,"yyyyMM"))

 

看看我这个:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目352.table

[此贴子已经被作者于2012-4-26 9:34:29编辑过]