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