|
[replyview] 打印时间选择教程<BR><BR> 1. 报表编辑器-〉布局,新建动态对象中的动态表格。然后连结表格。<BR> 2. 取消时间范围的选择,并建立好变量选择,这里的变量应该是变量记录中的归档变量,其采集时间是从归档变量中设置的。<BR> 3. 完成后退出并新建打印作业。取消启动参数的选择,选择时间范围中的绝对时间。<BR> 4. 实现打印功能最关键的是一个新建的项目函数,西门子的教程上有例子。我已将条是调试通过。<BR> /*****************************************************************************/<BR> // 函数名:ModifyPrintJob<BR> // 功 能:修改打印作业的绝对时间<BR> /*****************************************************************************/<BR> BOOL ModifyPrintJob(SYSTEMTIME st1, SYSTEMTIME st2, char <BR> jobname[200])<BR> {<BR> BOOL fRet;<BR> PCMN_ERROR pError;<BR> HPROPERTIES hProp;<BR> LPVOID ptr1, ptr2;<BR> DWORD typ;<BR> DWORD dwVal;<BR> char <BR> propname1[200],propname2[200];<BR> TCHAR g_szProj[MAX_PATH+1];<BR> <BR> typ = VT_DATE;<BR> strcpy( propname1, "ABSOLUTESELECTIONFROM" );<BR> strcpy( propname2, "ABSOLUTESELECTIONTO" );<BR> ptr1 = (LPVOID)&st1;<BR> ptr2 = (LPVOID)&st2;<BR> if( !DMGetRuntimeProject( g_szProj, MAX_PATH, pError ) )<BR> {<BR> printf( "Error DMGetRuntimeProject(...) <BR> " );<BR> return FALSE;<BR> }<BR> hProp = RPJCreatePropertyHandle( g_szProj, pError );<BR> if( !hProp )<BR> {<BR> printf( "Error RPJCreatePropertyHandle(...) <BR> " );<BR> return FALSE;<BR> }<BR> if( !RPJGetJobProps( hProp, jobname, pError ) )<BR> {<BR> printf( "Error RPJGetJobProps(...) <BR> " );<BR> RPJDeletePropertyHandle( hProp, pError );<BR> return FALSE;<BR> }<BR> if( !RPJSetProperty( hProp, propname1, ptr1, (VARTYPE)typ, <BR> 200, pError ) )<BR> {<BR> printf( "Error RPJSetProperty(...) <BR> " );<BR> RPJDeletePropertyHandle( hProp, pError );<BR> return FALSE;<BR> }<BR> if( !RPJSetJobProps( hProp, jobname, pError ) )<BR> {<BR> printf( "Error RPJSetJobProps(...) <BR> " );<BR> RPJDeletePropertyHandle( hProp, pError );<BR> return FALSE;<BR> }<BR> if( !RPJGetJobProps( hProp, jobname, pError ) )<BR> {<BR> printf( "Error RPJGetJobProps(...) <BR> " );<BR> RPJDeletePropertyHandle( hProp, pError );<BR> return FALSE;<BR> }<BR> if( !RPJSetProperty( hProp, propname2, ptr2, (VARTYPE)typ, <BR> 200, pError ) )<BR> {<BR> printf( "Error RPJSetProperty(...) <BR> " );<BR> RPJDeletePropertyHandle( hProp, pError );<BR> return FALSE; <BR> }<BR> if( !RPJSetJobProps( hProp, jobname, pError ) )<BR> {<BR> printf( "Error RPJSetProps(...) <BR> " );<BR> RPJDeletePropertyHandle( hProp, pError );<BR> return FALSE; <BR> }<BR> fRet = RPJDeletePropertyHandle( hProp, pError );<BR> return TRUE;<BR> }<BR> /*****************************************************************************/<BR> // 函数名:TimeFrom<BR> // 功 能:打印时间的开始时间<BR> /*****************************************************************************/<BR> SYSTEMTIME TimeFrom()<BR> {<BR> SYSTEMTIME st;<BR> st.wYear = GetTagWord("FromYear");<BR> st.wMonth = GetTagWord("FromMonth");<BR> st.wDay = GetTagWord("FromDay");<BR> st.wHour = GetTagWord("FromHour");<BR> st.wMinute = GetTagWord("FromMinute");<BR> st.wSecond = GetTagWord("FromSecond");<BR> return st ;<BR> }<BR> /*****************************************************************************/<BR> // 函数名:TimeTo<BR> // 功 能:打印时间的结束时间<BR> /*****************************************************************************/<BR> SYSTEMTIME TimeTo()<BR> {<BR> SYSTEMTIME st;<BR> st.wYear = GetTagWord("ToYear");<BR> st.wMonth = GetTagWord("ToMonth");<BR> st.wDay = GetTagWord("ToDay");<BR> st.wHour = GetTagWord("ToHour");<BR> st.wMinute = GetTagWord("ToMinute");<BR> st.wSecond = GetTagWord("ToSecond");<BR> return st ;<BR> }<BR> 以上的这些函数都是新建立的项目函数(可以直接粘贴使用,已经过调试)。其中用到的变量 FromYear, FromMonth, <BR> FromDay, FromHour, FromMinute, FromSecond, ToYear, ToMonth, ToDay, <BR> ToHour, ToMinute, ToSecond 都是新建立的内部对象。<BR> 5. 在组态画面上新建一个打印按钮,调用该函数即可实现。 <BR><BR>[/replyview] |
|