嗨,我需要你们的帮助!
我对我正在使用的系统不熟悉,我正在定制一个使用水晶报告的报告,我需要得到最后一页的值,并将其与当前页面进行比较(CurrentPage <> LastPage),但是LastPage的数据类型被设置为string/char..我想这就是为什么我不能在上面的条件下得到结果的原因。有办法换吗它的数据类型是整数吗?或者是否有其他方法可以从水晶报告中获得LastPage整数值,而无需使用最后一页的set变量?
谢谢。
请记住,无论内容如何,所有文本框的值都是字符串值。
'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'
CInt指定整型数据类型。VBScript通常自动转换。
我有一个不同的用户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的字符串将会是一个整数,如果你尝试给它加上另一个数字。
同样在basic中,int是16位,long是32位,以便与16位的VB兼容。