2015-02-17 85 views
0

使用ASPPDF,我从用户输入创建一个PDF表单。ASP如果声明设置参数

当用户选择一个收音机选项时,我可以设置数据写入PDF的位置。

If Request("type") = 1 Then x=57 
If Request("type") = 1 Then y=506 else 
If Request("type") = 2 Then x=57 
If Request("type") = 2 Then y=400 else 

Page1.Canvas.SetParams "color=black, linewidth=2" 
Page1.Canvas.DrawLine x, y, x + 7, y - 7 
Page1.Canvas.DrawLine x, y - 7, x + 7, y 

这会在我的PDF中的相应框中生成一个X标记。

我的问题是,这些字段的值需要是一个字符串,而不是数字。当我尝试这个时,我没有收到任何错误,但它也没有写任何东西。

If Request("type") = AP Then x=57 
If Request("type") = AP Then y=506 else 
If Request("type") = AR Then x=57 
If Request("type") = AR Then y=400 else 

Page1.Canvas.SetParams "color=black, linewidth=2" 
Page1.Canvas.DrawLine x, y, x + 7, y - 7 
Page1.Canvas.DrawLine x, y - 7, x + 7, y 

我不能简单地在表单中更改为数​​字,那些相同的值在整个脚本中多处使用,我需要它作为值,而不是数量。

我也试过在值的周围加上“”(引号),但那也不管用。

... 
If Request("type") = "AP" Then x=57 
... 

有帮助吗?

+0

当你'的Response.Write(请求( “类型”))'您能得到什么? – SearchAndResQ 2015-02-18 06:23:27

回答

2

结构错误if .. then .. else声明。正确的语法如下:

' Single-Line syntax: 
If condition Then statements [Else elsestatements ] 

' Or, you can use the block form syntax: 
If condition Then 
    [statements] 
[ElseIf condition-n Then 
    [elseifstatements]] . . . 
[Else 
    [elsestatements]] 
End If 

因此,你剪断可以像代码如下:

If UCase(Request("type")) = "AP" Then 
    x=57 
    y=506 
ElseIf UCase(Request("type")) = "AR" Then 
    x=57 
    y=400 
Else 
    ' 
End If 

或者

Select Case UCase(Request("type")) 
    Case "AP" 
     x=57 
     y=506 
    Case "AR" 
     x=57 
     y=400 
    Case Else 
     ' 
End Select 

注:UCase函数返回已被转换为字符串大写,因为我们可以不知道哪个字母大小写Request("type")是(例如ap,aPApAP?)。

资源:VBScript Language Reference

+0

谢谢!你的UCase解决方案工作。我正在做一个快乐的舞蹈! – 2015-02-18 16:01:36