在VBSCRIPT中将数据类型从char更改为int

时间:2014-07-28 08:51:13

标签: vbscript crystal-reports

嗨,我需要你的帮助!

我是我正在使用的系统的新用户,我正在定制使用水晶报告的报告, 我需要获取最后一页的值并将其与当前页面进行比较 (CurrentPage<> LastPage),但Last Page的数据类型设置为string / char .. 我想这就是我无法在上述条件下得到结果的原因。有没有办法改变 它的数据类型为Integer?或者是否有其他方法可以从晶体报告中获取LastPage整数值而不使用最后一页的设置变量?

谢谢。

3 个答案:

答案 0 :(得分:0)

请记住,无论内容如何,​​所有文本框值始终为字符串值。

'Private Sub TextBox1_Change()
    Dim IntValue As Integer

    If TextBox1.TextLength > 0 Then
        IntValue = TextBox1 * 1     ' method 1
        'IntValue = TextBox1 + 1 - 1 ' method 2
        'IntValue = TextBox1 + 0     ' method 3
        MsgBox "IntValue = " & IntValue
    End If

End Sub'

答案 1 :(得分:0)

CInt指定整数数据类型。 VBScript通常是自动转换。

答案 2 :(得分:0)

我有不同的用户ID,所以我在这里回复。这是一种变体,

struct tagVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union {
//  C++ Type      Union Name   Type Tag                Basic Type
//  --------      ----------   --------                ----------
    long          lVal;        // VT_I4                ByVal Long
    unsigned char bVal;        // VT_UI1               ByVal Byte
    short         iVal;        // VT_I2                ByVal Integer
    float         fltVal;      // VT_R4                ByVal Single
    double        dblVal;      // VT_R8                ByVal Double
    VARIANT_BOOL  boolVal;     // VT_BOOL              ByVal Boolean
    SCODE         scode;       // VT_ERROR
    CY            cyVal;       // VT_CY                ByVal Currency 
    DATE          date;        // VT_DATE              ByVal Date
    BSTR          bstrVal;     // VT_BSTR              ByVal String
    IUnknown      *punkVal;    // VT_UNKNOWN 
    IDispatch     *pdispVal;   // VT_DISPATCH          ByVal Object
    SAFEARRAY     *parray;     // VT_ARRAY|*           ByVal array
    // A bunch of other types that don't matter here...
    VARIANT       *pvarVal;    // VT_BYREF|VT_VARIANT  ByRef Variant
    void          * byref;     // Generic ByRef        
    };
 };

变体通常是自动转换,需要将其更改为字符串。

这是一个OLE函数(可能是VB使用的)

HRESULT VariantChangeType(VARIANT * pvDst, VARIANT * pvSrc, WORD wFlags, VARTYPE vt);

此函数更改VARIANT的类型而不更改其值(如果可能)。要更改适当的变量,请使目标与源相同。

CInt强制它是一个整数,即使vbscript认为它应该是其他东西。

如果你尝试添加另一个数字,那么包含52的字符串将是一个整数。

同样在基本的情况下,int为16位,long为32位,与16位VB兼容。