commit 2a8db3b745a8db2fd528596a7e9158c55710c965 Author: lijh Date: Tue Mar 10 16:40:19 2026 +0800 first commit diff --git a/.vs/WFPLM_itk/v14/.suo b/.vs/WFPLM_itk/v14/.suo new file mode 100644 index 0000000..0d837a3 Binary files /dev/null and b/.vs/WFPLM_itk/v14/.suo differ diff --git a/.vs/WFPLM_itk/v16/.suo b/.vs/WFPLM_itk/v16/.suo new file mode 100644 index 0000000..c06e0fa Binary files /dev/null and b/.vs/WFPLM_itk/v16/.suo differ diff --git a/.vs/WFPLM_itk/v16/Browse.VC.db b/.vs/WFPLM_itk/v16/Browse.VC.db new file mode 100644 index 0000000..46d54f4 Binary files /dev/null and b/.vs/WFPLM_itk/v16/Browse.VC.db differ diff --git a/WFPLM_itk.VC.db b/WFPLM_itk.VC.db new file mode 100644 index 0000000..4bb9dbf Binary files /dev/null and b/WFPLM_itk.VC.db differ diff --git a/WFPLM_itk.sdf b/WFPLM_itk.sdf new file mode 100644 index 0000000..52cd50c Binary files /dev/null and b/WFPLM_itk.sdf differ diff --git a/WFPLM_itk.sln b/WFPLM_itk.sln new file mode 100644 index 0000000..3a65d5a --- /dev/null +++ b/WFPLM_itk.sln @@ -0,0 +1,29 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JK_itk", "jf_itk\jf_itk.vcxproj", "{AEABC483-FCBD-45F5-9884-8FA4C5A9892D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Itanium = Debug|Itanium + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Itanium = Release|Itanium + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D}.Debug|Itanium.ActiveCfg = Debug|Win32 + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D}.Debug|Win32.ActiveCfg = Debug|Win32 + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D}.Debug|Win32.Build.0 = Debug|Win32 + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D}.Debug|x64.ActiveCfg = Debug|x64 + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D}.Debug|x64.Build.0 = Debug|x64 + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D}.Release|Itanium.ActiveCfg = Release|Win32 + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D}.Release|Win32.ActiveCfg = Release|Win32 + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D}.Release|Win32.Build.0 = Release|Win32 + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D}.Release|x64.ActiveCfg = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/WFPLM_itk.suo b/WFPLM_itk.suo new file mode 100644 index 0000000..253c0ff Binary files /dev/null and b/WFPLM_itk.suo differ diff --git a/WFPLM_itk.v11.suo b/WFPLM_itk.v11.suo new file mode 100644 index 0000000..11ca51d Binary files /dev/null and b/WFPLM_itk.v11.suo differ diff --git a/hz_itk.opensdf b/hz_itk.opensdf new file mode 100644 index 0000000..738a347 Binary files /dev/null and b/hz_itk.opensdf differ diff --git a/jf_erp_check_project/Release/CL.read.1.tlog b/jf_erp_check_project/Release/CL.read.1.tlog new file mode 100644 index 0000000..7cd59ed Binary files /dev/null and b/jf_erp_check_project/Release/CL.read.1.tlog differ diff --git a/jf_erp_check_project/Release/CL.write.1.tlog b/jf_erp_check_project/Release/CL.write.1.tlog new file mode 100644 index 0000000..b0408b5 Binary files /dev/null and b/jf_erp_check_project/Release/CL.write.1.tlog differ diff --git a/jf_erp_check_project/Release/cl.command.1.tlog b/jf_erp_check_project/Release/cl.command.1.tlog new file mode 100644 index 0000000..f9b3c2f Binary files /dev/null and b/jf_erp_check_project/Release/cl.command.1.tlog differ diff --git a/jf_erp_check_project/Release/common_itk_util.obj b/jf_erp_check_project/Release/common_itk_util.obj new file mode 100644 index 0000000..daf8fc3 Binary files /dev/null and b/jf_erp_check_project/Release/common_itk_util.obj differ diff --git a/jf_erp_check_project/Release/jf3_main.obj b/jf_erp_check_project/Release/jf3_main.obj new file mode 100644 index 0000000..9acd057 Binary files /dev/null and b/jf_erp_check_project/Release/jf3_main.obj differ diff --git a/jf_erp_check_project/Release/jf_erp_check_project.lastbuildstate b/jf_erp_check_project/Release/jf_erp_check_project.lastbuildstate new file mode 100644 index 0000000..85a14fb --- /dev/null +++ b/jf_erp_check_project/Release/jf_erp_check_project.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|Win32|F:\Connor(项目管理)\继峰项目\签名\jf_itk\| diff --git a/jf_erp_check_project/Release/jf_erp_check_project.log b/jf_erp_check_project/Release/jf_erp_check_project.log new file mode 100644 index 0000000..76f11ac --- /dev/null +++ b/jf_erp_check_project/Release/jf_erp_check_project.log @@ -0,0 +1,44 @@ +生成启动时间为 2015/9/17 16:50:45。 + 1>项目“F:\Connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_check_project\jf_erp_check_project.vcxproj”在节点 2 上(build 个目标)。 + 1>InitializeBuildStatus: + 正在对“Release\jf_erp_check_project.unsuccessfulbuild”执行 Touch 任务。 + ClCompile: + 所有输出均为最新。 + 所有输出均为最新。 + Link: + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\Release\jf_erp_check_project.dll" /INCREMENTAL:NO /NOLOGO "F:\Teamcenter10.1.0Env\tcbin\lib\*.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Release\jf_erp_check_project.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\Release\jf_erp_check_project.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\Release\jf_erp_check_project.lib" /MACHINE:X86 /DLL Release\common_itk_util.obj + Release\jf3_main.obj + Release\ocilib.obj + Release\string_helper.obj + Release\string_utils.obj + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__MEM_alloc + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__MEM_free + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__TC_write_syslog + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__POM_ask_session + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__ITK__convert_tag_to_uid + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 _AM__set_application_bypass + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIStmtPrepare + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCILogon + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIHandleFree + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIBindByPos + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIEnvCreate + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIBindByName + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIErrorGet + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCILogoff + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIDefineByPos + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIHandleAlloc + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIAttrGet + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIStmtFetch2 + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIStmtExecute + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strncpy + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strcat + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__STRNG_replace_str + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strstr + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strcpy + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strlen + 1>F:\Connor(项目管理)\继峰项目\签名\jf_itk\Release\jf_erp_check_project.dll : fatal error LNK1120: 25 个无法解析的外部命令 + 1>已完成生成项目“F:\Connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_check_project\jf_erp_check_project.vcxproj”(build 个目标)的操作 - 失败。 + +生成失败。 + +已用时间 00:00:00.48 diff --git a/jf_erp_check_project/Release/jf_erp_check_project.unsuccessfulbuild b/jf_erp_check_project/Release/jf_erp_check_project.unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/jf_erp_check_project/Release/jf_erp_check_project.write.1.tlog b/jf_erp_check_project/Release/jf_erp_check_project.write.1.tlog new file mode 100644 index 0000000..e69de29 diff --git a/jf_erp_check_project/Release/link.command.1.tlog b/jf_erp_check_project/Release/link.command.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/jf_erp_check_project/Release/link.command.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jf_erp_check_project/Release/link.read.1.tlog b/jf_erp_check_project/Release/link.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/jf_erp_check_project/Release/link.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jf_erp_check_project/Release/link.write.1.tlog b/jf_erp_check_project/Release/link.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/jf_erp_check_project/Release/link.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jf_erp_check_project/Release/ocilib.obj b/jf_erp_check_project/Release/ocilib.obj new file mode 100644 index 0000000..a42cfcd Binary files /dev/null and b/jf_erp_check_project/Release/ocilib.obj differ diff --git a/jf_erp_check_project/Release/string_helper.obj b/jf_erp_check_project/Release/string_helper.obj new file mode 100644 index 0000000..d01637c Binary files /dev/null and b/jf_erp_check_project/Release/string_helper.obj differ diff --git a/jf_erp_check_project/Release/string_utils.obj b/jf_erp_check_project/Release/string_utils.obj new file mode 100644 index 0000000..f815e15 Binary files /dev/null and b/jf_erp_check_project/Release/string_utils.obj differ diff --git a/jf_erp_check_project/Release/vc100.pdb b/jf_erp_check_project/Release/vc100.pdb new file mode 100644 index 0000000..2167f78 Binary files /dev/null and b/jf_erp_check_project/Release/vc100.pdb differ diff --git a/jf_erp_check_project/common_itk_util.c b/jf_erp_check_project/common_itk_util.c new file mode 100644 index 0000000..730d9c4 --- /dev/null +++ b/jf_erp_check_project/common_itk_util.c @@ -0,0 +1,290 @@ +/** +* @file common_itk_util.cpp +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 18-July-2008 James +*/ + +#pragma warning (disable: 4996) +#pragma warning (disable: 4819) + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +//#include +//#include +//#include + +#include +//#include +#include +#include +//#include +//#include +#include "error_handling.h" +#include "common_itk_util.h" + +#ifdef WIN32 +#include +#include +#else +#include +#endif + + +#define ARGS_LENGTH 200 +#define ARGS_NAME_DEBUG "-debug" +#define DEBUG "-debug=" +#define MAX_PRINTLINE_LENGTH 2000 +#define MAX_PATH_LENGTH 2000 +#define MAX_ARGUMENT_LENGTH 400 +#define MAX_PARAMNAME_LENGTH 50 +#define MAX_FILE_EXT_LENGTH 10 +#define TRUE_FLAG 1 +#define FALSE_FLAG 0 +#define DETAILLOG 1 + +extern "C" int AM__set_application_bypass(logical bypass); + +void ECHO(char *format, ...) +{ + //if( !YFJC_OPT_DEBUG ) + // return; + + char msg[1024]; + va_list args; + + va_start( args, format ); + vsprintf( msg, format, args ); + va_end( args ); + + printf( msg ); + TC_write_syslog( msg ); +} + +FILE* logFile = NULL; + +void set_bypass(logical bypass) +{ + AM__set_application_bypass(bypass); +} +/*=============================================================================* + * FUNCTION: current_time + * PURPOSE : get the current datetime + * INPUT: + * date_t* date_tag // current date time tag + * + * RETURN: + * void + *============================================================================*/ +void current_time( date_t * date_tag ) +{ + time_t ltime; + struct tm *today ; + + // Set time zone from TZ environment variable. If TZ is not set, + // the operating system is queried to obtain the default value + // for the variable. + // + //_tzset(); + + // Get UNIX-style time and display as number and string. + time( <ime ); + + today = localtime( <ime ); + date_tag->year = today->tm_year + 1900 ; + date_tag->month = today->tm_mon ; + date_tag->day = today->tm_mday ; + date_tag->hour = today->tm_hour ; + date_tag->minute = today->tm_min ; + date_tag->second = today->tm_sec ; +} +/*=============================================================================* + * FUNCTION: CreateLogFile + * PURPOSE : create log file + * INPUT: + * char* FunctionName // the funtion which need to create log file + * FILE** logFile // out: the log file pointer + * + * RETURN: + * void + *============================================================================*/ +void CreateLogFile(char* FunctionName, char **fullname) +{ + int i=0, ifail = ITK_ok; + //date_t status_now; + //char* date_string = NULL; + char date_string[MAX_PATH_LENGTH]; + char logFileDir[MAX_PATH_LENGTH]; + char logFileName[MAX_PATH_LENGTH]; + + char* session_uid = NULL; + tag_t session_tag = NULLTAG; + time_t now; + struct tm *p; + + time(&now); + + logFile = NULL; + //current_time(&status_now); + p=localtime(&now); + + memset(date_string, 0, sizeof(date_string)); + sprintf(date_string,"%4d%02d%02d%02d%02d%02d",1900+p->tm_year,p->tm_mon+1 ,p->tm_mday ,p->tm_hour,p->tm_min ,p->tm_sec ); + //if( DATE_date_to_string( status_now, "%Y%m%d%H%M%S", &date_string) != ITK_ok ) + //ifail = ITK_date_to_string (status_now, &date_string ); + //if (ifail) + //{ + // printf("!*ERROR*!: Failed to get current date time\n"); + // goto CLEANUP; + //} + + memset(logFileDir, 0, sizeof(logFileDir)); + memset(logFileName, 0, sizeof(logFileName)); + //get log dir + sprintf(logFileDir, "%s", getenv("TEMP")); + printf("\n log file dir: %s\n", logFileDir); + //try to change dir to TC_USER_LOG_DIR + if(chdir(logFileDir)!=ITK_ok) + { + //not set TC_USER_LOG_DIR + //log in to default TC_LOG + memset(logFileDir, 0, sizeof(logFileDir)); + sprintf(logFileDir, "%s", getenv("TC_LOG")); + printf("\n TC_USER_LOG_DIR invalide, log file dir: %s\n", logFileDir); + if(chdir(logFileDir)!=ITK_ok) + { + //still can not change to log dir + printf("!*ERROR*!: Failed to change dir to TC_USER_LOG_DIR\n"); + goto CLEANUP; + } + } + + //get session_uid to make sure the log file name unique + POM_ask_session(&session_tag); + ITK__convert_tag_to_uid(session_tag, &session_uid); + + + //get logFileName + sprintf(logFileName, "%s_%s_%s.log", FunctionName, session_uid, date_string); + printf("log file name: %s\n", logFileName); + + *fullname = (char *)MEM_alloc(sizeof(char)*512); + sprintf(*fullname,"%s\\%s",logFileDir,logFileName); + + //for(i = 0; _access((char *)logFileName, 4) == 0; i++) + /*{ + memset(logFileName, 0, sizeof(logFileName)); + sprintf(logFileName, "%s_%s_%s_%d.log", FunctionName, session_uid, date_string, i); + } + printf("final log file name: %s\n", logFileName);*/ + + //create log file + logFile = fopen(logFileName, "w"); + +CLEANUP: + //DOFREE(date_string); + DOFREE(session_uid); +} + + +/*=============================================================================* + * FUNCTION: WriteLog + * PURPOSE : write log, if debug log File not null, write log message to log File + * INPUT: + * const char* format // debug message string + * + * RETURN: + * void + *============================================================================*/ +void WriteLog(const char* format, ...) +{ + va_list arg; + char tmp[MAX_PRINTLINE_LENGTH]; + + if(logFile) + { + //get the message + memset(tmp, 0, sizeof(tmp)); + va_start(arg, format); + vsprintf(tmp, format, arg); + va_end(arg); + + //----------print to command window for trace--------// + printf("%s\n", tmp); + + //print message to log file + fprintf(logFile, "%s\n", tmp); + fflush(logFile); + } + else + { + printf("*!Error!*: Log File Not Exist\n"); + } +} + +void CloseLog(void) +{ + if(logFile) + { + fclose(logFile); + logFile = NULL; + } +} + +//void getTypeinfo(char *type) +//{ +// int ulen = 0,i=0,tempcount=0,asd=0; +// +// char temp[128]=""; +// ulen = strlen(type); +// asd = ulen-1; +// for(i=0;i < ulen;i++) +// { +// if(type[i] == ';') +// { +// temp[tempcount] = '\0'; +// strcpy(excludetypes[typecount].type,temp); +// strcpy(temp,""); +// tempcount = 0; +// typecount = typecount + 1; +// } +// else +// { +// +// temp[tempcount] = type[i]; +// tempcount = tempcount + 1; +// if(i==asd) +// { +// temp[tempcount] = '\0'; +// strcpy(excludetypes[typecount].type,temp); +// typecount = typecount + 1; +// } +// +// } +// +// } +//} \ No newline at end of file diff --git a/jf_erp_check_project/common_itk_util.h b/jf_erp_check_project/common_itk_util.h new file mode 100644 index 0000000..b08db85 --- /dev/null +++ b/jf_erp_check_project/common_itk_util.h @@ -0,0 +1,42 @@ +/** +* @file common_itk_util.h +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +*/ + +#ifndef COMMON_ITK_UTIL +#define COMMON_ITK_UTIL + +#ifdef __cplusplus + + +extern "C" { +#endif + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} +void ECHO(char *format, ...); +void CreateLogFile(char* FunctionName, char **fullname); +void WriteLog(const char* format, ...); +void CloseLog(void); +void set_bypass(logical bypass); +//int FindDatasetReferenceExt( tag_t datasettype, const char *datasettype_ref, char ext[10] ); +//int CompareDate( date_t date1, date_t date2 ); +//int GetRandomTempFile( char tempFile[256] ); +//logical IsItemRevisionType( char object_type[WSO_name_size_c + 1] ); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/jf_erp_check_project/error_handling.h b/jf_erp_check_project/error_handling.h new file mode 100644 index 0000000..b6b8099 --- /dev/null +++ b/jf_erp_check_project/error_handling.h @@ -0,0 +1,160 @@ +/*! +* @addtogroup common +* \file error_handling.h +* \brief +* \date 2008/6/10 +* \author Ray Li +*/ + +#ifndef SIMPLE_ERR_H_INCLUDED +#define SIMPLE_ERR_H_INCLUDED + + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define BUFSIZE 512 + + +// +//#define HANDLER_ARGUMENT_ERROR EMH_USER_error_base + 1 +//#define WORKFLOW_NODE_IS_NOT_VALID EMH_USER_error_base + 2 +//#define HANDLER_PLACED_INVALID EMH_USER_error_base + 3 +// +////user errors define +////վļȱ %1$ ã +//#define ERROR_PREFERENCE_NOT_FOUND (EMH_USER_error_base + 100) + + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} + + + +//#define ECHO(X) printf X; +#define SYS_LOG(X) IMAN_write_syslog X; +#define LOG_ECHO(X) printf X; IMAN_write_syslog X; + + + +/*! +* \def CALL(x) +* ӡϢ +*/ +#define CALL(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != ITK_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + LOG_ECHO( ("ERROR: %d ERROR MSG: %s.\n",stat, err_string) ) \ + LOG_ECHO( ("Function: %s FILE: %s LINE: %d\n", #x, __FILE__, __LINE__ ) ) \ + MEM_free (err_string); \ + return (stat); \ + } \ +} + +/*! +* \def DO(x) +* ӡϢ +*/ +#define DO(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != POM_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + MEM_free (err_string); \ + } \ +} + +/*! +* \def CALLRNULL(x) +* ӡϢ +*/ +#define CALLRNULL(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != ITK_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + MEM_free (err_string); \ + return ((char *)NULL); \ + } \ +} + +/*! +* \def CALL2(x) +* ӡϢ +*/ +#define CALL2(x) { \ + int stat, n_ifails, *serverities, *ifails, err_count; \ + char *err_string, **texts; \ + if( (stat = (x)) != ITK_ok) \ + { \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + EMH_ask_errors( &n_ifails, (const int**)(&serverities), (const int**)(&ifails), (const char***)(&texts) );\ + for( err_count=0; err_count + + + + Debug + Itanium + + + Debug + Win32 + + + Debug + x64 + + + Release + Itanium + + + Release + Win32 + + + Release + x64 + + + + {5B00E072-1EDF-4670-81F0-555DB0C78516} + Win32Proj + jf_erp_check_project + + + + DynamicLibrary + true + Unicode + + + DynamicLibrary + true + Unicode + + + DynamicLibrary + true + Unicode + + + DynamicLibrary + false + true + Unicode + + + DynamicLibrary + false + true + Unicode + + + DynamicLibrary + false + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + true + + + false + false + + + false + false + + + false + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;JF_ERP_CHECK_PROJECT_EXPORTS;%(PreprocessorDefinitions) + + + Windows + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;JF_ERP_CHECK_PROJECT_EXPORTS;%(PreprocessorDefinitions) + + + Windows + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;JF_ERP_CHECK_PROJECT_EXPORTS;%(PreprocessorDefinitions) + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + IPLIB=none;WIN32;NDEBUG;_WINDOWS;_USRDLL;JF_ERP_CHECK_PROJECT_EXPORTS;%(PreprocessorDefinitions) + F:\Teamcenter10.1.0Env\OCI\include;F:\Teamcenter10.1.0Env\tcbin\include;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + F:\Teamcenter10.1.0Env\tcbin\lib\*.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + true + IPLIB=none;WIN32;NDEBUG;_WINDOWS;_USRDLL;JF_ERP_CHECK_PROJECT_EXPORTS;%(PreprocessorDefinitions) + F:\Teamcenter10.1.0Env\OCI\include;F:\Teamcenter10.1.0Env\tcbin\include;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + F:\Teamcenter10.1.0Env\tcbin\lib\*.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + true + IPLIB=none;WIN32;NDEBUG;_WINDOWS;_USRDLL;JF_ERP_CHECK_PROJECT_EXPORTS;%(PreprocessorDefinitions) + F:\Teamcenter10.1.0Env\OCI\include;F:\Teamcenter10.1.0Env\tcbin\include;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + F:\Teamcenter10.1.0Env\tcbin\lib\*.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jf_erp_check_project/jf_erp_check_project.vcxproj.filters b/jf_erp_check_project/jf_erp_check_project.vcxproj.filters new file mode 100644 index 0000000..1717db4 --- /dev/null +++ b/jf_erp_check_project/jf_erp_check_project.vcxproj.filters @@ -0,0 +1,57 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {65de63f5-1c56-4dd5-8613-cf9edb74ee2c} + + + + + 源文件 + + + common + + + common + + + common + + + common + + + + + 头文件 + + + common + + + common + + + common + + + common + + + common + + + \ No newline at end of file diff --git a/jf_erp_check_project/jf_erp_check_project.vcxproj.user b/jf_erp_check_project/jf_erp_check_project.vcxproj.user new file mode 100644 index 0000000..ace9a86 --- /dev/null +++ b/jf_erp_check_project/jf_erp_check_project.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/jf_erp_check_project/ocilib.cxx b/jf_erp_check_project/ocilib.cxx new file mode 100644 index 0000000..30151e3 --- /dev/null +++ b/jf_erp_check_project/ocilib.cxx @@ -0,0 +1,440 @@ +/*===================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +======================================================================================================================= +File description: + + Filename: ocilib.cxx + Module : OCI + + This file describes OCI library Package. + +======================================================================================================================= +Date Name Description of Change +1-Feb-2015 Ray li Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#include "ocilib.h" +#include + +#define NUM 100 +#define USERNAME "infodba" +#define PASSWORD "infodba" +#define DBNAME "tc" + + +// ṹ +typedef struct{ + OCIEnv *p_env; //OCI environment handle + OCIError *p_err; //OCI error handle + OCISvcCtx *p_svc; //OCI service context handel ľ + OCIServer *p_ser; //OCI server handle + OCISession *p_usr; //OCI user session handle ûỰ + OCIStmt *p_sql; //OCI statement handle + OCIDefine *p_dfn; //OCI define handle + OCIBind *p_bnd; //OCI bind handle 󶨾 +}OCIHandleInfo; + + +// ṹ +typedef struct{ + OCIEnv *p_env; + OCIError *p_err; + OCISvcCtx *p_svc; + OCIStmt *p_sql; + OCIDefine *p_dfn; + OCIBind *p_bnd; +}OCIDATA; + + +// ִʱ +typedef struct{ + char value[NUM][NUM]; + char type[NUM][NUM]; +}SqlField; + + +// ѯʱ, +typedef struct{ + int naIntValue[NUM]; + int nIntNum; + char caCharValue[500][500]; + int nCharNum; +}SqlSelField; + +OCIHandleInfo *ociHandle = NULL; +OCIHandleInfo ociHand; + +int InitHandle(); +int _ExeSQL(char *SQL,char ** inputValue,int inputValueCount); +int _QuerySQL(char *SQL, SqlSelField *pOutField, SqlSelField *pSelField); +int GetDataFromQuery(int *pRc, SqlSelField *pOutField); +void QuitFreeHandle(); + + + + +/**************************************************************************************************************************************** +ƣ +ܣ +ڲ +ڲ + ע +*****************************************************************************************************************************************/ + + +// ʼHandler +int InitHandle() +{ + int swResult; + + ociHandle = &ociHand; + + + /*create OCI environment*/ + if(swResult = OCIEnvCreate(&ociHandle->p_env,OCI_DEFAULT,NULL,NULL,NULL,NULL,0,NULL)) // + { + printf("environment create error!\n\n"); + return -1; + } + else + { + printf("environment create success!\n\n"); + //return 0; + } + + /*init handle*/ + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_ser,OCI_HTYPE_SERVER,0,NULL)) // + { + printf("init server handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_err,OCI_HTYPE_ERROR,0,NULL)) // + { + printf("init error handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_usr,OCI_HTYPE_SESSION,0,NULL)) // + { + printf("init session handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_svc,OCI_HTYPE_SVCCTX,0,NULL)) //ľ + { + printf("init service context handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_sql,OCI_HTYPE_STMT,0,NULL)) //SQL + { + printf("init statement handle error!\n\n"); + return -1; + } + + printf("init handle success!\n\n"); + + return 0; +} + + + +// ݿ +int ConnServer(char *username,char *password,char *dbname) +{ + int swResult; + char errbuf[100]={0}; + int errcode; + + if(InitHandle() == -1)//ʼ + return -1; + + if(swResult = OCILogon(ociHandle->p_env,ociHandle->p_err,&ociHandle->p_svc,(text *)username,strlen(username),(text *)password,strlen(password),(text *)dbname,strlen(dbname))) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Error - %.*s/n", 512, errbuf); + return -1; + } + else + printf("ݿӳɹ!\n\n"); + return 0; +} + + + +// SQLij(ִSQL) +int _ExeSQL(char *SQL,char ** inputValue,int inputValueCount) +{ + int swResult,i; + int errcode; + + //ð󶨱 + OCIBind *p_bndp[100]; + + //׼SQL + if(swResult = OCIStmtPrepare(ociHandle->p_sql,ociHandle->p_err,(text *)SQL,strlen(SQL),OCI_NTV_SYNTAX,OCI_DEFAULT)) + { + printf("prepare SQL statements error!\n\n"); + } + else + { + printf("prepare SQL statements success!\n\n"); + } + + + // + for(i=0;ip_sql,&p_bndp[i],ociHandle->p_err,i+1,(dvoid *)inputValue[i],(sb4)strlen(inputValue[i])+1,SQLT_STR, (dvoid *) 0, (ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Bind Error - %.*s/n", 512, errbuf); + return -1; + } + } + + //ִSQL statements + if(swResult = OCIStmtExecute(ociHandle->p_svc,ociHandle->p_sql,ociHandle->p_err,1,0,NULL,NULL,OCI_DEFAULT)) + { + char errbuf[100]={0}; + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("execute SQL statement Error - %.*s\n", 512, errbuf); + return -1; + } + else + { + printf("execute SQL statement success!\n\n"); + } + return 0; +} + + + + +// ѯSQL +int _QuerySQL(char *SQL, SqlSelField *pOutField, SqlSelField *pSelField ) +{ + sword status; + int rc= 0,ret=0; + char errbuf[100]={0}; + int maxNum = 2048; + char chTag[8]; + int iIndex = 0; + int outputColumn = 0; + int errcode=0; + char nullValue = '\0'; // + sb2 sb2aInd[30] = {'\0'}; + + // ׼SQL + status = OCIStmtPrepare(ociHandle->p_sql, ociHandle->p_err, (text *)SQL,(ub4)strlen(SQL), (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT); + + if (status != OCI_SUCCESS) + { + printf("SQL Preparing failed/n"); + return -1; + } + + + // int͵, SQLʱ :1,:2, + for (iIndex=0; iIndexnIntNum; iIndex++) + { + memset(chTag, 0, 8); + sprintf(chTag, ":%d", iIndex+1); + if(rc = OCIBindByName(ociHandle->p_sql, (OCIBind **)&ociHandle->p_dfn, ociHandle->p_err, (text *)chTag,(sb4)strlen((char *)chTag),(dvoid *) &pSelField->naIntValue[iIndex], sizeof(int), SQLT_INT,(dvoid *) 0,(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + // char *͵, SQLʱ :3,:4, + for (iIndex=0; iIndexnCharNum; iIndex++) + { + int n=0; + memset(chTag, 0, 8); + n = pSelField->nIntNum + iIndex +1; + sprintf(chTag, ":%d", n); + if(rc = OCIBindByName(ociHandle->p_sql, (OCIBind **)&ociHandle->p_dfn, ociHandle->p_err, (text *)chTag,(sb4)strlen((char *)chTag),(dvoid *) &pSelField->caCharValue[iIndex], NUM, SQLT_STR,(dvoid *) 0,(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + + // ִSQL + if (rc = OCIStmtExecute(ociHandle->p_svc, ociHandle->p_sql, ociHandle->p_err, (ub4) 0, (ub4) 0,(CONST OCISnapshot *) NULL, (OCISnapshot *) NULL, OCI_STMT_SCROLLABLE_READONLY)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("execute SQL Error - %.*s\n", 512, errbuf); + return -1; + } + else + { + printf("execute SQL success!\n\n"); + } + + + if (ret = OCIAttrGet (ociHandle->p_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) &outputColumn, (ub4 *) 0, (ub4)OCI_ATTR_PARAM_COUNT, ociHandle->p_err)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Get OCIAttr Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + + + // int͵, SQLʱ :1,:2, + for (iIndex=0; iIndexnIntNum; iIndex++) + { + if(rc = OCIDefineByPos(ociHandle->p_sql, &ociHandle->p_dfn, ociHandle->p_err, iIndex+1, (dvoid *)&pOutField->naIntValue[iIndex], sizeof(int), SQLT_INT, (dvoid *) 0, (ub2 *)0,(ub2 *)0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + + // char *͵, SQLʱ :1,:2, + for (iIndex=0; iIndexp_sql, &ociHandle->p_dfn, ociHandle->p_err, n, (dvoid *)&pOutField->caCharValue[iIndex], 1000*sizeof(char), SQLT_STR, (dvoid *) 0, (ub2 *)0,(ub2 *)0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + return 0; + +} + + + +// ͷHandler +void QuitFreeHandle() +{ + // ˳ + OCILogoff(ociHandle->p_svc,ociHandle->p_err); + printf("Quit success!\n"); + + // ͷž + OCIHandleFree(ociHandle->p_ser,OCI_HTYPE_SERVER); //ͷŷ + OCIHandleFree(ociHandle->p_err,OCI_HTYPE_ERROR); //ͷŴ + OCIHandleFree(ociHandle->p_usr,OCI_HTYPE_SESSION); //ͷ + OCIHandleFree(ociHandle->p_svc,OCI_HTYPE_SVCCTX); //ͷľ + OCIHandleFree(ociHandle->p_sql,OCI_HTYPE_STMT); //ͷSQL +} + + +// ִ +int ExecuteSQL(char *SQL,int valueCount,char **value) +{ + int i=0; + + if(i=_ExeSQL(SQL,value,valueCount)) + { + QuitFreeHandle(); + return -1; + } + + return 0; +} + + +// IJѯ +int QuerySQL(char *SQL, int inputValueCount, char ** inputValue, int * outputColumn, int * outputValueCount, char **** outputValue) +{ + int i = 0, j=0 ,ret =0; + + int times = 0, temp=0; + + SqlSelField infield; + SqlSelField outField; + + // ʼṹ + infield.nCharNum = inputValueCount; + infield.nIntNum = 0; + outField.nCharNum = 0; + outField.nIntNum = 0; + + * outputColumn = 0; + * outputValueCount = 0; + + for(i=0;ip_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) outputColumn, (ub4 *) 0, (ub4)OCI_ATTR_PARAM_COUNT, ociHandle->p_err); + + // ȡһ,ȥ + ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_LAST,0, OCI_DEFAULT); + // ȡ + ret= OCIAttrGet (ociHandle->p_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) outputValueCount, (ub4 *) 0, (ub4)OCI_ATTR_ROW_COUNT, ociHandle->p_err); + + if(*outputValueCount == 0) + return 0; + + + // ʼڴ沢Ҵ洢 + ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_FIRST,0, OCI_DEFAULT); + *outputValue = (char ***) calloc ((*outputValueCount)+1,sizeof(char**)); + do + { + (*outputValue)[i] = (char **) calloc ((*outputColumn)+1,sizeof(char *)); + for(j=0;j<(*outputColumn);j++) + { + (*outputValue)[i][j] = (char *) calloc (1000,sizeof(char)); + strcpy((*outputValue)[i][j],outField.caCharValue[j]); + //printf("outValue[%d][%d] = %s , ַ=%d, ַָ= %d\n ",i,j,(*outputValue)[i][j],&(*outputValue)[i][j],(*outputValue)[i][j]); + } + i++; + } + while((ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_NEXT, 1, OCI_DEFAULT)!= OCI_NO_DATA)); + + return 0; +} + + +// IJѯ +int QuerySQLNoInputParam(char *SQL, int * outputColumn, int * outputValueCount, char **** outputValue) +{ + return QuerySQL(SQL,0,NULL,outputColumn,outputValueCount,outputValue); +} + +// ޲ +int ExecuteSQLNoInputParam(char *SQL) +{ + return ExecuteSQL(SQL,0,NULL); +} + +// Ͽ +void DisConnServer() +{ + if(ociHandle != NULL) + QuitFreeHandle(); +} + diff --git a/jf_erp_check_project/ocilib.h b/jf_erp_check_project/ocilib.h new file mode 100644 index 0000000..0a4e752 --- /dev/null +++ b/jf_erp_check_project/ocilib.h @@ -0,0 +1,98 @@ +/*===================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +======================================================================================================================= +File description: + + Filename: ocilib.h + Module : OCI + + This Header file of OCI library Package. + +======================================================================================================================= +Date Name Description of Change +1-Feb-2015 Ray Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#include +#include +#include +#include +#include +//#include + +#define OCI_FAIL 1 +#define OCI_OK 0 + +#ifdef __cplusplus +extern "C" +{ +#endif + /** + * ݿ. + * @param username - û + * @param password - + * @param dbname - ݿSID + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int ConnServer(char *username,char *password,char *dbname); + + + /** + * ִSQL. + * @param SQL - SQL + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int ExecuteSQLNoInputParam(char *SQL); + + /** + * ִSQL. + * @param SQL - SQL + * @param inputValueCount - + * @param inputValue - ֵ + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int ExecuteSQL(char *SQL,int inputValueCount,char **inputValue); + + /** + * IJѯSQL. + * @param SQL - SQL + * @param outputColumn - е + * @param outputValueCount - е + * @param outputValue - + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int QuerySQLNoInputParam(char *SQL, int * outputColumn, int * outputValueCount, char **** outputValue); + + /** + * IJѯSQL. + * @param SQL - SQL + * @param inputValueCount - + * @param inputValue - ֵ + * @param outputColumn - е + * @param outputValueCount - е + * @param outputValue - + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int QuerySQL(char *SQL, int inputValueCount, char ** inputValue, int * outputColumn, int * outputValueCount, char **** outputValue); + + /** + * Ͽݿ. + * + * ORACLE ݿװ + */ + extern void DisConnServer(); + +#ifdef __cplusplus +} +#endif diff --git a/jf_erp_check_project/string_helper.cpp b/jf_erp_check_project/string_helper.cpp new file mode 100644 index 0000000..553e6f3 --- /dev/null +++ b/jf_erp_check_project/string_helper.cpp @@ -0,0 +1,146 @@ +/** +* @file string_helper.cpp +* @brief string utility functions' implemention +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +* 14-Jau-2009 James modify Split functions, add trim blank characters +*/ +#pragma warning(disable:4996) +// +//#include +//#include +//#include +#include "string_helper.h" + +string TrimString( string strArg ) +{ + size_t index1 = 0; + index1 = strArg.find_first_not_of( ' '); + if( index1 != string::npos ) + strArg.erase( strArg.begin(), strArg.begin()+index1 ); + index1 = strArg.find_last_not_of( ' '); + if( index1 != string::npos ) + strArg.erase( strArg.begin() + index1 + 1 ); + return strArg; +} + +void Split( string strArg, char spliter, vector &ans ) +{ + ans.clear(); + size_t index0 = 0; + string one_arg; + if ( strArg.find_first_not_of(' ') == string::npos ) + strArg = ""; + while( strArg.size()>0 ) + { + index0 = strArg.find_first_of( spliter ); + if( index0 != string::npos ) + { + one_arg = strArg.substr( 0,index0 ); + strArg = strArg.substr( index0 + 1 ); + ans.push_back( one_arg ); + } + else + { + ans.push_back( strArg ); + break; + } + } +} + +void Split( string strArg, string spliter, vector &ans ) +{ + + ans.clear(); + + size_t index0; + string one_arg; + + if ( strArg.find_first_not_of(" ") == string::npos ) + strArg = ""; + + + while( strArg.size()>0 ) + { + + index0 = strArg.find(spliter); + + if( index0 != string::npos ) + { + + one_arg = strArg.substr( 0, index0 ); + strArg = strArg.substr( index0 + spliter.size() ); + + ans.push_back( one_arg ); + } + else + { + + ans.push_back( strArg ); + break; + } + } +} + + +void RemoveLiner( string &in, string &out ) +{ + char buf[BUFSIZ] = ""; + for( int i=0; i<(int)in.size(); i++ ) + { + if( in[i] == '\n') + continue; + else + sprintf( buf,"%s%c", buf, in[i] ); + } + out.assign(buf); +} + +////Converting a WChar string to a Ansi string +//std::string WChar2Ansi(LPCWSTR pwszSrc) +//{ +// int nLen = WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL); +// +// if (nLen<= 0) return std::string(""); +// +// char* pszDst = new char[nLen]; +// if (NULL == pszDst) return std::string(""); +// +// WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL); +// pszDst[nLen -1] = 0; +// +// std::string strTemp(pszDst); +// delete [] pszDst; +// +// return strTemp; +//} +// +//string ws2s(wstring& inputws){ return WChar2Ansi(inputws.c_str()); } +// +////Converting a Ansi string to WChar string +//std::wstring Ansi2WChar(LPCSTR pszSrc, int nLen) +//{ +// int nSize = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pszSrc, nLen, 0, 0); +// if(nSize <= 0) return NULL; +// +// WCHAR *pwszDst = new WCHAR[nSize+1]; +// if( NULL == pwszDst) return NULL; +// +// MultiByteToWideChar(CP_ACP, 0,(LPCSTR)pszSrc, nLen, pwszDst, nSize); +// pwszDst[nSize] = 0; +// +// if( pwszDst[0] == 0xFEFF) // skip Oxfeff +// for(int i = 0; i < nSize; i ++) +// pwszDst[i] = pwszDst[i+1]; +// +// wstring wcharString(pwszDst); +// delete pwszDst; +// +// return wcharString; +//} +// +//std::wstring s2ws(const string& s){ return Ansi2WChar(s.c_str(),s.size());} + diff --git a/jf_erp_check_project/string_helper.h b/jf_erp_check_project/string_helper.h new file mode 100644 index 0000000..b4f7532 --- /dev/null +++ b/jf_erp_check_project/string_helper.h @@ -0,0 +1,25 @@ +/** +* @file string_helper.h +* @brief string utilities to help dealing with string +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +*/ + +#ifndef STRING_HELPER +#define STRING_HELPER + +#include +#include +using namespace std; + +string TrimString( string strArg ); +void Split( string strArg, char spliter, vector &ans ); +void Split( string strArg, string spliter, vector &ans ); +void RemoveLiner( string &in, string &out ); +//string ws2s(wstring& inputws); +//wstring s2ws(const string& s); + +#endif \ No newline at end of file diff --git a/jf_erp_check_project/string_utils.cxx b/jf_erp_check_project/string_utils.cxx new file mode 100644 index 0000000..07d93cb --- /dev/null +++ b/jf_erp_check_project/string_utils.cxx @@ -0,0 +1,253 @@ +/*================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +==================================================================================================================== +File description: + Filename: string_utils.c + Module : Common module. + + This file includes some operations of the string. + +==================================================================================================================== +Date Name Description of Change +3-Feb-2015 Ray li Initialize creation +$HISTORY$ +===================================================================================================================*/ +#ifndef _cplusplus +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE +#endif +#endif + +#include +#include +#include +#include +#include +#include + +#include "string_utils.h" + +//void Split( string strArg, string spliter, vector &ans ) +//{ +// ans.clear(); +// size_t index0; +// string one_arg; +// if ( strArg.find_first_not_of(' ') == string::npos ) +// strArg = ""; +// while( strArg.size()>0 ) +// { +// index0 = strArg.find(spliter); +// if( index0 != string::npos ) +// { +// one_arg = strArg.substr( 0, index0 ); +// strArg = strArg.substr( index0 + spliter.size() ); +// ans.push_back( one_arg ); +// } +// else +// { +// ans.push_back( strArg ); +// break; +// } +// } +//} +char* GSTR_clone( char **dst, const char *src ) +{ + char *retVal = NULL; + int srcLen = 0; + + *dst = NULL; + if (src == NULL) + return NULL; + + srcLen = (int)tc_strlen( src ) + 1; + *dst = (char*)MEM_alloc( srcLen * sizeof(char) ); + retVal = tc_strncpy( *dst, src, srcLen ); + (*dst)[srcLen - 1] = '\0'; + + return retVal; +} + +char* GSTR_copy( char *dst, const char *src, int dstSize ) +{ + char *retVal = tc_strncpy( dst, src, dstSize ); + dst[dstSize - 1] = '\0'; + return retVal; +} + +char* GSTR_int_to_string( char **dst, int value ) +{ + char strVal[128 + 1]; + + *dst = NULL; + memset( strVal, 0, sizeof(strVal)/sizeof(char) ); + sprintf( strVal, "%d", value ); + + return GSTR_clone( dst, strVal ); +} + +void GSTR_format_int_to_string( char *dst, int digitNum, int value ) +{ + char sNum[WSO_desc_size_c + 1]; + sprintf( sNum, "%%0%dd", digitNum ); + sprintf( dst, sNum, value ); +} + +void GSTR_format_string( const char *dst, int m, const char *fill_char, char **out ) +{ + char sNum[WSO_name_size_c + 1] = {0}; + char sNew[WSO_name_size_c + 1] = {0}; + sprintf( sNum, "%%%d.%ds", m, m ); + sprintf( sNew, sNum, dst ); + STRNG_replace_str( sNew, " ", fill_char, out ); +} + + +char* GSTR_string_append( const char *s1, const char *s2 ) +{ + char *s = NULL; + if (s1 == NULL || s2 == NULL) + { + GSTR_clone(&s, s1 == NULL ? (s2 == NULL ? "" : s2) : s1 ); + } + else + { + int size = (int)tc_strlen(s1) + (int)tc_strlen(s2) + 1; + s = (char *)MEM_alloc( size ); + tc_strcpy( s, s1 ); + tc_strcat( s, s2 ); + s[size - 1] = '\0'; + } + return s; +} + +logical GSTR_is_float(const char *str) +{ + logical isfloat = true; + char *pStr = (char *)str; + logical hasPositive = false; + logical hasMinus = false; + logical hasDot = false; + + if (str == NULL) + return false; + + while (*pStr != '\0' && isfloat == true) + { + if ( (*pStr >= '0' && *pStr <= '9')) + { + //continue; + } + else if ( *pStr == '+' ) + { + isfloat = (hasPositive ? false : (hasPositive = true)); + } + else if ( *pStr == '-' ) + { + isfloat = (hasMinus ? false : (hasMinus = true)); + } + else if ( *pStr == '.' ) + { + isfloat = (hasDot ? false : (hasDot = true)); + } + else + isfloat = false; + + pStr ++; + } + return isfloat; +} + +logical GSTR_is_number(const char *str) +{ + logical is_number = true; + char *pStr = (char *)str; + if (str == NULL) + return false; + + while (*pStr != '\0') + { + if ( !( (*pStr >= '0' && *pStr <= '9') || *pStr == '-' ) ) + { + is_number = false; + break; + } + pStr ++; + } + return is_number; +} + +logical GSTR_is_ascii(char ch) +{ + return ((unsigned int)ch) < 128; +} + +int GSTR_trim_l( char *str, char s ) +{ + int count = 0; + char *pointer = str, *poffset = NULL; + if (str == NULL || str[0] == '\0') + return 0; + + while ( *pointer != '\0' ) + { + if ( *pointer != s ) + { + break; + } + count++; + pointer++; + } + if (count == 0) + return 0; + + poffset = str + count; + pointer = str; + while ( *poffset != '\0' ) + { + *pointer = *poffset; + pointer ++; + poffset ++; + } + *pointer = '\0'; + + return count; +} + +int GSTR_trim_r( char *str, char s ) +{ + int count = 0; + char *pointer = NULL; + if (str == NULL || str[0] == '\0') + return 0; + + pointer = str + ((int) strlen(str) - 1); + + while ( pointer != str ) + { + if ( *pointer != s ) + { + break; + } + + *pointer = '\0'; + + count++; + pointer--; + } + + return count; +} + +void GSTR_trim_float( char *floatValue ) +{ + if ( !IS_EMPTY(floatValue) && tc_strstr(floatValue, ".") != NULL ) + { + int len = 0; + GSTR_trim_r(floatValue, '0'); + len = (int)tc_strlen(floatValue); + if (floatValue[ len - 1 ] == '.') + floatValue[ len - 1 ] = '\0'; + } +} + diff --git a/jf_erp_check_project/string_utils.h b/jf_erp_check_project/string_utils.h new file mode 100644 index 0000000..4b379cc --- /dev/null +++ b/jf_erp_check_project/string_utils.h @@ -0,0 +1,125 @@ +/*===================================================================================================================== + Copyright(c) 2005 ORIGIN PLM Software Corp. All rights reserved. + Unpublished - All rights reserved +======================================================================================================================= +File description: + Filename: string_utils.h + Module : Common module. + + This file includes some operations of the string. + +======================================================================================================================= +Date Name Description of Change +14-Jul-2009 Ray Li Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#ifndef STRING_UTILS_H +#define STRING_UTILS_H +#include +#include +#include +using namespace std; +#ifdef __cplusplus + extern "C" + { +#endif + +// @{{ String assister +#define IS_NULL(S) ((S)==NULL) +#define IS_EMPTY(S) (((S)==NULL) || !(*(S))) +// @}} + void Split( string strArg, string spliter, vector &ans ); + /** + * Clones the string. + * @param dst - the output string. + * @param src - the string to be cloned. + * @return - the destinatin string pointer. + */ + extern char* GSTR_clone( char **dst, const char *src ); + + /** + * Copy safely the string with null end. + * @param dst - the output string. + * @param src - the string to be cloned. + * @param dstSize - the size of output string. + * @return - the destinatin string pointer. + */ + extern char *GSTR_copy( char *dst, const char *src, int dstSize ); + + /** + * Converts int to string. + * @param dst - the output string. + * @param value - the int to be cloned. + * @return - the destinatin string pointer. + */ + extern char* GSTR_int_to_string( char **dst, int value ); + + /** + * Formats the int/string value as string. + * @param dst - the destination string. + * @param digitNum - the digit number of the value. + * @param value - the value to be converted. + * @return - N/A. + */ + extern void GSTR_format_int_to_string( char *dst, int digitNum, int value ); + extern void GSTR_format_string( const char *dst, int m, const char *fill_char, char **out ); + + /** + * Appends the strings( never null returned ) + * @param s1 - string 1 + * @param s2 - string 2 + * @return - new string + */ + extern char* GSTR_string_append( const char *s1, const char *s2 ); + + /** + * Whether the string is float type + * @param str - The string + * + * NOTE: it's only check whether each word is in "+-.0123456789", not care the float with "E" or the float rule, + * like "00-1.+01", it will return true. + * @return - return true if it is one. + */ + extern logical GSTR_is_float(const char *str); + + /** + * Whether all char of the string are number + * @param str - The string + * + * NOTE: it's only check whether each word is in "0123456789" + * @return - return true if it is one. + */ + extern logical GSTR_is_number(const char *str); + + /** + * Is ascii char + * @param ch - ascii char + * @return - return true if it is. + */ + extern logical GSTR_is_ascii(char ch); + + /** + * Trims the string's prefix. + * @param str - The string + * @param s - The char + * + * @return - count. + */ + extern int GSTR_trim_l( char *str, char s ); + extern int GSTR_trim_r( char *str, char s ); + + /** + * Remove the zero. + * For Example: + * floatValue="50.00" -> = "50" + * floatValue="50.0100" -> = "50.01" + * @return - count. + */ + extern void GSTR_trim_float( char *floatValue ); + +#ifdef __cplusplus + } +#endif + + +#endif //STRING_UTILS_H diff --git a/jf_erp_check_project/x64/Release/CL.read.1.tlog b/jf_erp_check_project/x64/Release/CL.read.1.tlog new file mode 100644 index 0000000..b5f064f Binary files /dev/null and b/jf_erp_check_project/x64/Release/CL.read.1.tlog differ diff --git a/jf_erp_check_project/x64/Release/CL.write.1.tlog b/jf_erp_check_project/x64/Release/CL.write.1.tlog new file mode 100644 index 0000000..187ae2a Binary files /dev/null and b/jf_erp_check_project/x64/Release/CL.write.1.tlog differ diff --git a/jf_erp_check_project/x64/Release/cl.command.1.tlog b/jf_erp_check_project/x64/Release/cl.command.1.tlog new file mode 100644 index 0000000..08c87d5 Binary files /dev/null and b/jf_erp_check_project/x64/Release/cl.command.1.tlog differ diff --git a/jf_erp_check_project/x64/Release/common_itk_util.obj b/jf_erp_check_project/x64/Release/common_itk_util.obj new file mode 100644 index 0000000..1268a03 Binary files /dev/null and b/jf_erp_check_project/x64/Release/common_itk_util.obj differ diff --git a/jf_erp_check_project/x64/Release/jf3_main.obj b/jf_erp_check_project/x64/Release/jf3_main.obj new file mode 100644 index 0000000..80f4fcc Binary files /dev/null and b/jf_erp_check_project/x64/Release/jf3_main.obj differ diff --git a/jf_erp_check_project/x64/Release/jf_erp_check_project.dll.intermediate.manifest b/jf_erp_check_project/x64/Release/jf_erp_check_project.dll.intermediate.manifest new file mode 100644 index 0000000..ecea6f7 --- /dev/null +++ b/jf_erp_check_project/x64/Release/jf_erp_check_project.dll.intermediate.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jf_erp_check_project/x64/Release/jf_erp_check_project.lastbuildstate b/jf_erp_check_project/x64/Release/jf_erp_check_project.lastbuildstate new file mode 100644 index 0000000..8997680 --- /dev/null +++ b/jf_erp_check_project/x64/Release/jf_erp_check_project.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|x64|F:\Connor(项目管理)\继峰项目\签名\jf_itk\| diff --git a/jf_erp_check_project/x64/Release/jf_erp_check_project.log b/jf_erp_check_project/x64/Release/jf_erp_check_project.log new file mode 100644 index 0000000..60aec06 --- /dev/null +++ b/jf_erp_check_project/x64/Release/jf_erp_check_project.log @@ -0,0 +1,46 @@ +生成启动时间为 2015/9/17 17:59:45。 + 1>项目“F:\Connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_check_project\jf_erp_check_project.vcxproj”在节点 2 上(build 个目标)。 + 1>InitializeBuildStatus: + 正在创建“x64\Release\jf_erp_check_project.unsuccessfulbuild”,因为已指定“AlwaysCreate”。 + ClCompile: + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe /c /IF:\Teamcenter10.1.0Env\OCI\include /IF:\Teamcenter10.1.0Env\tcbin\include /Zi /nologo /W3 /WX- /O2 /Oi /GL /D IPLIB=none /D WIN32 /D NDEBUG /D _WINDOWS /D _USRDLL /D JF_ERP_CHECK_PROJECT_EXPORTS /D _WINDLL /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"x64\Release\\" /Fd"x64\Release\vc100.pdb" /Gd /TC /errorReport:prompt common_itk_util.c + common_itk_util.c + 1>F:\Teamcenter10.1.0Env\tcbin\include\tc/emh_const.h(61): warning C4995: “TC_include_tc_emh_const_h_deprecated”: 名称被标记为 #pragma deprecated + 1>common_itk_util.c(91): warning C4013: “AM__set_application_bypass”未定义;假设外部返回 int + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe /c /IF:\Teamcenter10.1.0Env\OCI\include /IF:\Teamcenter10.1.0Env\tcbin\include /Zi /nologo /W3 /WX- /O2 /Oi /GL /D IPLIB=none /D WIN32 /D NDEBUG /D _WINDOWS /D _USRDLL /D JF_ERP_CHECK_PROJECT_EXPORTS /D _WINDLL /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"x64\Release\\" /Fd"x64\Release\vc100.pdb" /Gd /TP /errorReport:prompt jf3_main.cpp ocilib.cxx string_helper.cpp string_utils.cxx + jf3_main.cpp + ocilib.cxx + 1>ocilib.cxx(158): warning C4267: “参数”: 从“size_t”转换到“ub4”,可能丢失数据 + 1>ocilib.cxx(158): warning C4267: “参数”: 从“size_t”转换到“ub4”,可能丢失数据 + 1>ocilib.cxx(158): warning C4267: “参数”: 从“size_t”转换到“ub4”,可能丢失数据 + 1>ocilib.cxx(181): warning C4267: “参数”: 从“size_t”转换到“ub4”,可能丢失数据 + 1>ocilib.cxx(249): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(371) : 参见“sprintf”的声明 + 1>ocilib.cxx(264): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(371) : 参见“sprintf”的声明 + 1>ocilib.cxx(377): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : 参见“strcpy”的声明 + 1>ocilib.cxx(411): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : 参见“strcpy”的声明 + string_helper.cpp + string_utils.cxx + 1>F:\Teamcenter10.1.0Env\tcbin\include\pom/pom/pom_errors.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 + Link: + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:PROMPT /OUT:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\x64\Release\jf_erp_check_project.dll" /INCREMENTAL:NO /NOLOGO "F:\Teamcenter10.1.0Env\tcbin\lib\*.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"x64\Release\jf_erp_check_project.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\x64\Release\jf_erp_check_project.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\x64\Release\jf_erp_check_project.lib" /MACHINE:X64 /DLL x64\Release\common_itk_util.obj + x64\Release\jf3_main.obj + x64\Release\ocilib.obj + x64\Release\string_helper.obj + x64\Release\string_utils.obj + 正在生成代码 + 已完成代码的生成 + jf_erp_check_project.vcxproj -> F:\Connor(项目管理)\继峰项目\签名\jf_itk\x64\Release\jf_erp_check_project.dll + Manifest: + C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /out:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\x64\Release\jf_erp_check_project.dll.manifest" /manifest x64\Release\jf_erp_check_project.dll.intermediate.manifest + FinalizeBuildStatus: + 正在删除文件“x64\Release\jf_erp_check_project.unsuccessfulbuild”。 + 正在对“x64\Release\jf_erp_check_project.lastbuildstate”执行 Touch 任务。 + 1>已完成生成项目“F:\Connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_check_project\jf_erp_check_project.vcxproj”(build 个目标)的操作。 + +生成成功。 + +已用时间 00:00:02.88 diff --git a/jf_erp_check_project/x64/Release/jf_erp_check_project.write.1.tlog b/jf_erp_check_project/x64/Release/jf_erp_check_project.write.1.tlog new file mode 100644 index 0000000..e69de29 diff --git a/jf_erp_check_project/x64/Release/link.command.1.tlog b/jf_erp_check_project/x64/Release/link.command.1.tlog new file mode 100644 index 0000000..24e16ae Binary files /dev/null and b/jf_erp_check_project/x64/Release/link.command.1.tlog differ diff --git a/jf_erp_check_project/x64/Release/link.read.1.tlog b/jf_erp_check_project/x64/Release/link.read.1.tlog new file mode 100644 index 0000000..4d7ab74 Binary files /dev/null and b/jf_erp_check_project/x64/Release/link.read.1.tlog differ diff --git a/jf_erp_check_project/x64/Release/link.write.1.tlog b/jf_erp_check_project/x64/Release/link.write.1.tlog new file mode 100644 index 0000000..34581b5 Binary files /dev/null and b/jf_erp_check_project/x64/Release/link.write.1.tlog differ diff --git a/jf_erp_check_project/x64/Release/mt.command.1.tlog b/jf_erp_check_project/x64/Release/mt.command.1.tlog new file mode 100644 index 0000000..5b71543 Binary files /dev/null and b/jf_erp_check_project/x64/Release/mt.command.1.tlog differ diff --git a/jf_erp_check_project/x64/Release/mt.read.1.tlog b/jf_erp_check_project/x64/Release/mt.read.1.tlog new file mode 100644 index 0000000..69a572c Binary files /dev/null and b/jf_erp_check_project/x64/Release/mt.read.1.tlog differ diff --git a/jf_erp_check_project/x64/Release/mt.write.1.tlog b/jf_erp_check_project/x64/Release/mt.write.1.tlog new file mode 100644 index 0000000..f47f9ba Binary files /dev/null and b/jf_erp_check_project/x64/Release/mt.write.1.tlog differ diff --git a/jf_erp_check_project/x64/Release/ocilib.obj b/jf_erp_check_project/x64/Release/ocilib.obj new file mode 100644 index 0000000..91b4b57 Binary files /dev/null and b/jf_erp_check_project/x64/Release/ocilib.obj differ diff --git a/jf_erp_check_project/x64/Release/string_helper.obj b/jf_erp_check_project/x64/Release/string_helper.obj new file mode 100644 index 0000000..127e0be Binary files /dev/null and b/jf_erp_check_project/x64/Release/string_helper.obj differ diff --git a/jf_erp_check_project/x64/Release/string_utils.obj b/jf_erp_check_project/x64/Release/string_utils.obj new file mode 100644 index 0000000..7e297ba Binary files /dev/null and b/jf_erp_check_project/x64/Release/string_utils.obj differ diff --git a/jf_erp_check_project/x64/Release/vc100.pdb b/jf_erp_check_project/x64/Release/vc100.pdb new file mode 100644 index 0000000..31fe3b3 Binary files /dev/null and b/jf_erp_check_project/x64/Release/vc100.pdb differ diff --git a/jf_erp_project/Release/CL.read.1.tlog b/jf_erp_project/Release/CL.read.1.tlog new file mode 100644 index 0000000..e1e31d8 Binary files /dev/null and b/jf_erp_project/Release/CL.read.1.tlog differ diff --git a/jf_erp_project/Release/CL.write.1.tlog b/jf_erp_project/Release/CL.write.1.tlog new file mode 100644 index 0000000..2aa4147 Binary files /dev/null and b/jf_erp_project/Release/CL.write.1.tlog differ diff --git a/jf_erp_project/Release/cl.command.1.tlog b/jf_erp_project/Release/cl.command.1.tlog new file mode 100644 index 0000000..d6fadb4 Binary files /dev/null and b/jf_erp_project/Release/cl.command.1.tlog differ diff --git a/jf_erp_project/Release/common_itk_util.obj b/jf_erp_project/Release/common_itk_util.obj new file mode 100644 index 0000000..624638f Binary files /dev/null and b/jf_erp_project/Release/common_itk_util.obj differ diff --git a/jf_erp_project/Release/jf_erp_project.lastbuildstate b/jf_erp_project/Release/jf_erp_project.lastbuildstate new file mode 100644 index 0000000..85a14fb --- /dev/null +++ b/jf_erp_project/Release/jf_erp_project.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|Win32|F:\Connor(项目管理)\继峰项目\签名\jf_itk\| diff --git a/jf_erp_project/Release/jf_erp_project.log b/jf_erp_project/Release/jf_erp_project.log new file mode 100644 index 0000000..7af5872 --- /dev/null +++ b/jf_erp_project/Release/jf_erp_project.log @@ -0,0 +1,59 @@ +生成启动时间为 2015/9/17 17:55:52。 + 1>项目“F:\Connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\jf_erp_project.vcxproj”在节点 2 上(build 个目标)。 + 1>InitializeBuildStatus: + 正在对“Release\jf_erp_project.unsuccessfulbuild”执行 Touch 任务。 + ClCompile: + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /IF:\Teamcenter10.1.0Env\OCI\include /IF:\Teamcenter10.1.0Env\tcbin\include /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D IPLIB=none /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt common_itk_util.c + common_itk_util.c + 1>F:\Teamcenter10.1.0Env\tcbin\include\tc/emh_const.h(61): warning C4995: “TC_include_tc_emh_const_h_deprecated”: 名称被标记为 #pragma deprecated + 1>common_itk_util.c(91): warning C4013: “AM__set_application_bypass”未定义;假设外部返回 int + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /IF:\Teamcenter10.1.0Env\OCI\include /IF:\Teamcenter10.1.0Env\tcbin\include /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D IPLIB=none /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt ocilib.cxx string_helper.cpp string_utils.cxx + ocilib.cxx + 1>ocilib.cxx(249): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(371) : 参见“sprintf”的声明 + 1>ocilib.cxx(264): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(371) : 参见“sprintf”的声明 + 1>ocilib.cxx(377): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : 参见“strcpy”的声明 + 1>ocilib.cxx(411): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : 参见“strcpy”的声明 + string_helper.cpp + string_utils.cxx + 1>F:\Teamcenter10.1.0Env\tcbin\include\pom/pom/pom_errors.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 + Link: + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\Release\jf_erp_project.exe" /INCREMENTAL:NO /NOLOGO "F:\Teamcenter10.1.0Env\tcbin\lib\*.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Release\jf_erp_project.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\Release\jf_erp_project.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"F:\Connor(项目管理)\继峰项目\签名\jf_itk\Release\jf_erp_project.lib" /MACHINE:X86 Release\common_itk_util.obj + Release\ocilib.obj + Release\string_helper.obj + Release\string_utils.obj + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__MEM_alloc + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__MEM_free + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__TC_write_syslog + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__POM_ask_session + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 __imp__ITK__convert_tag_to_uid + 1>common_itk_util.obj : error LNK2001: 无法解析的外部符号 _AM__set_application_bypass + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIStmtPrepare + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCILogon + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIHandleFree + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIBindByPos + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIEnvCreate + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIBindByName + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIErrorGet + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCILogoff + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIDefineByPos + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIHandleAlloc + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIAttrGet + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIStmtFetch2 + 1>ocilib.obj : error LNK2001: 无法解析的外部符号 _OCIStmtExecute + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strncpy + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strcat + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__STRNG_replace_str + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strstr + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strcpy + 1>string_utils.obj : error LNK2001: 无法解析的外部符号 __imp__tc_strlen + 1>MSVCRT.lib(crtexe.obj) : error LNK2001: 无法解析的外部符号 _main + 1>F:\Connor(项目管理)\继峰项目\签名\jf_itk\Release\jf_erp_project.exe : fatal error LNK1120: 26 个无法解析的外部命令 + 1>已完成生成项目“F:\Connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\jf_erp_project.vcxproj”(build 个目标)的操作 - 失败。 + +生成失败。 + +已用时间 00:00:02.69 diff --git a/jf_erp_project/Release/jf_erp_project.unsuccessfulbuild b/jf_erp_project/Release/jf_erp_project.unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/jf_erp_project/Release/jf_erp_project.vcxprojResolveAssemblyReference.cache b/jf_erp_project/Release/jf_erp_project.vcxprojResolveAssemblyReference.cache new file mode 100644 index 0000000..bde9b77 Binary files /dev/null and b/jf_erp_project/Release/jf_erp_project.vcxprojResolveAssemblyReference.cache differ diff --git a/jf_erp_project/Release/jf_erp_project.write.1.tlog b/jf_erp_project/Release/jf_erp_project.write.1.tlog new file mode 100644 index 0000000..e69de29 diff --git a/jf_erp_project/Release/link.command.1.tlog b/jf_erp_project/Release/link.command.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/jf_erp_project/Release/link.command.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jf_erp_project/Release/link.read.1.tlog b/jf_erp_project/Release/link.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/jf_erp_project/Release/link.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jf_erp_project/Release/link.write.1.tlog b/jf_erp_project/Release/link.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/jf_erp_project/Release/link.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jf_erp_project/Release/ocilib.obj b/jf_erp_project/Release/ocilib.obj new file mode 100644 index 0000000..d404520 Binary files /dev/null and b/jf_erp_project/Release/ocilib.obj differ diff --git a/jf_erp_project/Release/string_helper.obj b/jf_erp_project/Release/string_helper.obj new file mode 100644 index 0000000..a983b8d Binary files /dev/null and b/jf_erp_project/Release/string_helper.obj differ diff --git a/jf_erp_project/Release/string_utils.obj b/jf_erp_project/Release/string_utils.obj new file mode 100644 index 0000000..fad0a42 Binary files /dev/null and b/jf_erp_project/Release/string_utils.obj differ diff --git a/jf_erp_project/Release/vc100.pdb b/jf_erp_project/Release/vc100.pdb new file mode 100644 index 0000000..08009db Binary files /dev/null and b/jf_erp_project/Release/vc100.pdb differ diff --git a/jf_erp_project/common_itk_util.c b/jf_erp_project/common_itk_util.c new file mode 100644 index 0000000..b56d00d --- /dev/null +++ b/jf_erp_project/common_itk_util.c @@ -0,0 +1,291 @@ +/** +* @file common_itk_util.cpp +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 18-July-2008 James +* +*/ + +#pragma warning (disable: 4996) +#pragma warning (disable: 4819) + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +//#include +//#include +//#include + +#include +//#include +#include +#include +//#include +//#include +#include "error_handling.h" +#include "common_itk_util.h" + +#ifdef WIN32 +#include +#include +#else +#include +#endif + + +#define ARGS_LENGTH 200 +#define ARGS_NAME_DEBUG "-debug" +#define DEBUG "-debug=" +#define MAX_PRINTLINE_LENGTH 2000 +#define MAX_PATH_LENGTH 2000 +#define MAX_ARGUMENT_LENGTH 400 +#define MAX_PARAMNAME_LENGTH 50 +#define MAX_FILE_EXT_LENGTH 10 +#define TRUE_FLAG 1 +#define FALSE_FLAG 0 +#define DETAILLOG 1 + + int AM__set_application_bypass(logical bypass); + +void ECHO(char *format, ...) +{ + //if( !YFJC_OPT_DEBUG ) + // return; + + char msg[1024]; + va_list args; + + va_start( args, format ); + vsprintf( msg, format, args ); + va_end( args ); + + printf( msg ); + TC_write_syslog( msg ); +} + +FILE* logFile = NULL; + +void set_bypass(logical bypass) +{ + AM__set_application_bypass(bypass); +} +/*=============================================================================* + * FUNCTION: current_time + * PURPOSE : get the current datetime + * INPUT: + * date_t* date_tag // current date time tag + * + * RETURN: + * void + *============================================================================*/ +void current_time( date_t * date_tag ) +{ + time_t ltime; + struct tm *today ; + + // Set time zone from TZ environment variable. If TZ is not set, + // the operating system is queried to obtain the default value + // for the variable. + // + //_tzset(); + + // Get UNIX-style time and display as number and string. + time( <ime ); + + today = localtime( <ime ); + date_tag->year = today->tm_year + 1900 ; + date_tag->month = today->tm_mon ; + date_tag->day = today->tm_mday ; + date_tag->hour = today->tm_hour ; + date_tag->minute = today->tm_min ; + date_tag->second = today->tm_sec ; +} +/*=============================================================================* + * FUNCTION: CreateLogFile + * PURPOSE : create log file + * INPUT: + * char* FunctionName // the funtion which need to create log file + * FILE** logFile // out: the log file pointer + * + * RETURN: + * void + *============================================================================*/ +void CreateLogFile(char* FunctionName, char **fullname) +{ + int i=0, ifail = ITK_ok; + //date_t status_now; + //char* date_string = NULL; + char date_string[MAX_PATH_LENGTH]; + char logFileDir[MAX_PATH_LENGTH]; + char logFileName[MAX_PATH_LENGTH]; + + char* session_uid = NULL; + tag_t session_tag = NULLTAG; + time_t now; + struct tm *p; + + time(&now); + + logFile = NULL; + //current_time(&status_now); + p=localtime(&now); + + memset(date_string, 0, sizeof(date_string)); + sprintf(date_string,"%4d%02d%02d%02d%02d%02d",1900+p->tm_year,p->tm_mon+1 ,p->tm_mday ,p->tm_hour,p->tm_min ,p->tm_sec ); + //if( DATE_date_to_string( status_now, "%Y%m%d%H%M%S", &date_string) != ITK_ok ) + //ifail = ITK_date_to_string (status_now, &date_string ); + //if (ifail) + //{ + // printf("!*ERROR*!: Failed to get current date time\n"); + // goto CLEANUP; + //} + + memset(logFileDir, 0, sizeof(logFileDir)); + memset(logFileName, 0, sizeof(logFileName)); + //get log dir + sprintf(logFileDir, "%s", getenv("TEMP")); + printf("\n log file dir: %s\n", logFileDir); + //try to change dir to TC_USER_LOG_DIR + if(chdir(logFileDir)!=ITK_ok) + { + //not set TC_USER_LOG_DIR + //log in to default TC_LOG + memset(logFileDir, 0, sizeof(logFileDir)); + sprintf(logFileDir, "%s", getenv("TC_LOG")); + printf("\n TC_USER_LOG_DIR invalide, log file dir: %s\n", logFileDir); + if(chdir(logFileDir)!=ITK_ok) + { + //still can not change to log dir + printf("!*ERROR*!: Failed to change dir to TC_USER_LOG_DIR\n"); + goto CLEANUP; + } + } + + //get session_uid to make sure the log file name unique + POM_ask_session(&session_tag); + ITK__convert_tag_to_uid(session_tag, &session_uid); + + + //get logFileName + sprintf(logFileName, "%s_%s_%s.log", FunctionName, session_uid, date_string); + printf("log file name: %s\n", logFileName); + + *fullname = (char *)MEM_alloc(sizeof(char)*512); + sprintf(*fullname,"%s\\%s",logFileDir,logFileName); + + //for(i = 0; _access((char *)logFileName, 4) == 0; i++) + /*{ + memset(logFileName, 0, sizeof(logFileName)); + sprintf(logFileName, "%s_%s_%s_%d.log", FunctionName, session_uid, date_string, i); + } + printf("final log file name: %s\n", logFileName);*/ + + //create log file + logFile = fopen(logFileName, "w"); + +CLEANUP: + //DOFREE(date_string); + DOFREE(session_uid); +} + + +/*=============================================================================* + * FUNCTION: WriteLog + * PURPOSE : write log, if debug log File not null, write log message to log File + * INPUT: + * const char* format // debug message string + * + * RETURN: + * void + *============================================================================*/ +void WriteLog(const char* format, ...) +{ + va_list arg; + char tmp[MAX_PRINTLINE_LENGTH]; + + if(logFile) + { + //get the message + memset(tmp, 0, sizeof(tmp)); + va_start(arg, format); + vsprintf(tmp, format, arg); + va_end(arg); + + //----------print to command window for trace--------// + printf("%s\n", tmp); + + //print message to log file + fprintf(logFile, "%s\n", tmp); + fflush(logFile); + } + else + { + printf("*!Error!*: Log File Not Exist\n"); + } +} + +void CloseLog(void) +{ + if(logFile) + { + fclose(logFile); + logFile = NULL; + } +} + +//void getTypeinfo(char *type) +//{ +// int ulen = 0,i=0,tempcount=0,asd=0; +// +// char temp[128]=""; +// ulen = strlen(type); +// asd = ulen-1; +// for(i=0;i < ulen;i++) +// { +// if(type[i] == ';') +// { +// temp[tempcount] = '\0'; +// strcpy(excludetypes[typecount].type,temp); +// strcpy(temp,""); +// tempcount = 0; +// typecount = typecount + 1; +// } +// else +// { +// +// temp[tempcount] = type[i]; +// tempcount = tempcount + 1; +// if(i==asd) +// { +// temp[tempcount] = '\0'; +// strcpy(excludetypes[typecount].type,temp); +// typecount = typecount + 1; +// } +// +// } +// +// } +//} \ No newline at end of file diff --git a/jf_erp_project/common_itk_util.h b/jf_erp_project/common_itk_util.h new file mode 100644 index 0000000..f27d079 --- /dev/null +++ b/jf_erp_project/common_itk_util.h @@ -0,0 +1,40 @@ +/** +* @file common_itk_util.h +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +*/ + +#ifndef COMMON_ITK_UTIL +#define COMMON_ITK_UTIL + +#ifdef __cplusplus +extern "C" { +#endif + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} +void ECHO(char *format, ...); +void CreateLogFile(char* FunctionName, char **fullname); +void WriteLog(const char* format, ...); +void CloseLog(void); +void set_bypass(logical bypass); +//int FindDatasetReferenceExt( tag_t datasettype, const char *datasettype_ref, char ext[10] ); +//int CompareDate( date_t date1, date_t date2 ); +//int GetRandomTempFile( char tempFile[256] ); +//logical IsItemRevisionType( char object_type[WSO_name_size_c + 1] ); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/jf_erp_project/error_handling.h b/jf_erp_project/error_handling.h new file mode 100644 index 0000000..b6b8099 --- /dev/null +++ b/jf_erp_project/error_handling.h @@ -0,0 +1,160 @@ +/*! +* @addtogroup common +* \file error_handling.h +* \brief +* \date 2008/6/10 +* \author Ray Li +*/ + +#ifndef SIMPLE_ERR_H_INCLUDED +#define SIMPLE_ERR_H_INCLUDED + + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define BUFSIZE 512 + + +// +//#define HANDLER_ARGUMENT_ERROR EMH_USER_error_base + 1 +//#define WORKFLOW_NODE_IS_NOT_VALID EMH_USER_error_base + 2 +//#define HANDLER_PLACED_INVALID EMH_USER_error_base + 3 +// +////user errors define +////վļȱ %1$ ã +//#define ERROR_PREFERENCE_NOT_FOUND (EMH_USER_error_base + 100) + + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} + + + +//#define ECHO(X) printf X; +#define SYS_LOG(X) IMAN_write_syslog X; +#define LOG_ECHO(X) printf X; IMAN_write_syslog X; + + + +/*! +* \def CALL(x) +* ӡϢ +*/ +#define CALL(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != ITK_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + LOG_ECHO( ("ERROR: %d ERROR MSG: %s.\n",stat, err_string) ) \ + LOG_ECHO( ("Function: %s FILE: %s LINE: %d\n", #x, __FILE__, __LINE__ ) ) \ + MEM_free (err_string); \ + return (stat); \ + } \ +} + +/*! +* \def DO(x) +* ӡϢ +*/ +#define DO(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != POM_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + MEM_free (err_string); \ + } \ +} + +/*! +* \def CALLRNULL(x) +* ӡϢ +*/ +#define CALLRNULL(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != ITK_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + MEM_free (err_string); \ + return ((char *)NULL); \ + } \ +} + +/*! +* \def CALL2(x) +* ӡϢ +*/ +#define CALL2(x) { \ + int stat, n_ifails, *serverities, *ifails, err_count; \ + char *err_string, **texts; \ + if( (stat = (x)) != ITK_ok) \ + { \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + EMH_ask_errors( &n_ifails, (const int**)(&serverities), (const int**)(&ifails), (const char***)(&texts) );\ + for( err_count=0; err_count + + + + Debug + Itanium + + + Debug + Win32 + + + Debug + x64 + + + Release + Itanium + + + Release + Win32 + + + Release + x64 + + + + {375BE822-1125-4D9E-A589-08243D1FF487} + Win32Proj + jf_erp_project + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + IPLIB=none;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + F:\Teamcenter10.1.0Env\OCI\include;F:\Teamcenter10.1.0Env\tcbin\include;%(AdditionalIncludeDirectories) + + + Console + true + true + true + F:\Teamcenter10.1.0Env\tcbin\lib\*.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + true + IPLIB=none;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + F:\Teamcenter10.1.0Env\OCI\include;F:\Teamcenter10.1.0Env\tcbin\include;%(AdditionalIncludeDirectories) + + + Console + true + true + true + F:\Teamcenter10.1.0Env\tcbin\lib\*.lib;%(AdditionalDependencies) + + + + + F:\Teamcenter10.1.0Env\OCI\include;F:\Teamcenter10.1.0Env\tcbin\include;%(AdditionalIncludeDirectories) + IPLIB=none;%(PreprocessorDefinitions) + + + F:\Teamcenter10.1.0Env\tcbin\lib\*.lib;F:\Teamcenter10.1.0Env\tcbin\lib\itk_main.obj;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jf_erp_project/jf_erp_project.vcxproj.filters b/jf_erp_project/jf_erp_project.vcxproj.filters new file mode 100644 index 0000000..08a1f7d --- /dev/null +++ b/jf_erp_project/jf_erp_project.vcxproj.filters @@ -0,0 +1,57 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {695e5212-e914-4315-a83f-087109122c06} + + + + + common + + + common + + + common + + + common + + + 源文件 + + + + + common + + + common + + + common + + + common + + + common + + + 头文件 + + + \ No newline at end of file diff --git a/jf_erp_project/jf_erp_project.vcxproj.user b/jf_erp_project/jf_erp_project.vcxproj.user new file mode 100644 index 0000000..ace9a86 --- /dev/null +++ b/jf_erp_project/jf_erp_project.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/jf_erp_project/ocilib.cxx b/jf_erp_project/ocilib.cxx new file mode 100644 index 0000000..30151e3 --- /dev/null +++ b/jf_erp_project/ocilib.cxx @@ -0,0 +1,440 @@ +/*===================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +======================================================================================================================= +File description: + + Filename: ocilib.cxx + Module : OCI + + This file describes OCI library Package. + +======================================================================================================================= +Date Name Description of Change +1-Feb-2015 Ray li Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#include "ocilib.h" +#include + +#define NUM 100 +#define USERNAME "infodba" +#define PASSWORD "infodba" +#define DBNAME "tc" + + +// ṹ +typedef struct{ + OCIEnv *p_env; //OCI environment handle + OCIError *p_err; //OCI error handle + OCISvcCtx *p_svc; //OCI service context handel ľ + OCIServer *p_ser; //OCI server handle + OCISession *p_usr; //OCI user session handle ûỰ + OCIStmt *p_sql; //OCI statement handle + OCIDefine *p_dfn; //OCI define handle + OCIBind *p_bnd; //OCI bind handle 󶨾 +}OCIHandleInfo; + + +// ṹ +typedef struct{ + OCIEnv *p_env; + OCIError *p_err; + OCISvcCtx *p_svc; + OCIStmt *p_sql; + OCIDefine *p_dfn; + OCIBind *p_bnd; +}OCIDATA; + + +// ִʱ +typedef struct{ + char value[NUM][NUM]; + char type[NUM][NUM]; +}SqlField; + + +// ѯʱ, +typedef struct{ + int naIntValue[NUM]; + int nIntNum; + char caCharValue[500][500]; + int nCharNum; +}SqlSelField; + +OCIHandleInfo *ociHandle = NULL; +OCIHandleInfo ociHand; + +int InitHandle(); +int _ExeSQL(char *SQL,char ** inputValue,int inputValueCount); +int _QuerySQL(char *SQL, SqlSelField *pOutField, SqlSelField *pSelField); +int GetDataFromQuery(int *pRc, SqlSelField *pOutField); +void QuitFreeHandle(); + + + + +/**************************************************************************************************************************************** +ƣ +ܣ +ڲ +ڲ + ע +*****************************************************************************************************************************************/ + + +// ʼHandler +int InitHandle() +{ + int swResult; + + ociHandle = &ociHand; + + + /*create OCI environment*/ + if(swResult = OCIEnvCreate(&ociHandle->p_env,OCI_DEFAULT,NULL,NULL,NULL,NULL,0,NULL)) // + { + printf("environment create error!\n\n"); + return -1; + } + else + { + printf("environment create success!\n\n"); + //return 0; + } + + /*init handle*/ + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_ser,OCI_HTYPE_SERVER,0,NULL)) // + { + printf("init server handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_err,OCI_HTYPE_ERROR,0,NULL)) // + { + printf("init error handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_usr,OCI_HTYPE_SESSION,0,NULL)) // + { + printf("init session handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_svc,OCI_HTYPE_SVCCTX,0,NULL)) //ľ + { + printf("init service context handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_sql,OCI_HTYPE_STMT,0,NULL)) //SQL + { + printf("init statement handle error!\n\n"); + return -1; + } + + printf("init handle success!\n\n"); + + return 0; +} + + + +// ݿ +int ConnServer(char *username,char *password,char *dbname) +{ + int swResult; + char errbuf[100]={0}; + int errcode; + + if(InitHandle() == -1)//ʼ + return -1; + + if(swResult = OCILogon(ociHandle->p_env,ociHandle->p_err,&ociHandle->p_svc,(text *)username,strlen(username),(text *)password,strlen(password),(text *)dbname,strlen(dbname))) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Error - %.*s/n", 512, errbuf); + return -1; + } + else + printf("ݿӳɹ!\n\n"); + return 0; +} + + + +// SQLij(ִSQL) +int _ExeSQL(char *SQL,char ** inputValue,int inputValueCount) +{ + int swResult,i; + int errcode; + + //ð󶨱 + OCIBind *p_bndp[100]; + + //׼SQL + if(swResult = OCIStmtPrepare(ociHandle->p_sql,ociHandle->p_err,(text *)SQL,strlen(SQL),OCI_NTV_SYNTAX,OCI_DEFAULT)) + { + printf("prepare SQL statements error!\n\n"); + } + else + { + printf("prepare SQL statements success!\n\n"); + } + + + // + for(i=0;ip_sql,&p_bndp[i],ociHandle->p_err,i+1,(dvoid *)inputValue[i],(sb4)strlen(inputValue[i])+1,SQLT_STR, (dvoid *) 0, (ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Bind Error - %.*s/n", 512, errbuf); + return -1; + } + } + + //ִSQL statements + if(swResult = OCIStmtExecute(ociHandle->p_svc,ociHandle->p_sql,ociHandle->p_err,1,0,NULL,NULL,OCI_DEFAULT)) + { + char errbuf[100]={0}; + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("execute SQL statement Error - %.*s\n", 512, errbuf); + return -1; + } + else + { + printf("execute SQL statement success!\n\n"); + } + return 0; +} + + + + +// ѯSQL +int _QuerySQL(char *SQL, SqlSelField *pOutField, SqlSelField *pSelField ) +{ + sword status; + int rc= 0,ret=0; + char errbuf[100]={0}; + int maxNum = 2048; + char chTag[8]; + int iIndex = 0; + int outputColumn = 0; + int errcode=0; + char nullValue = '\0'; // + sb2 sb2aInd[30] = {'\0'}; + + // ׼SQL + status = OCIStmtPrepare(ociHandle->p_sql, ociHandle->p_err, (text *)SQL,(ub4)strlen(SQL), (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT); + + if (status != OCI_SUCCESS) + { + printf("SQL Preparing failed/n"); + return -1; + } + + + // int͵, SQLʱ :1,:2, + for (iIndex=0; iIndexnIntNum; iIndex++) + { + memset(chTag, 0, 8); + sprintf(chTag, ":%d", iIndex+1); + if(rc = OCIBindByName(ociHandle->p_sql, (OCIBind **)&ociHandle->p_dfn, ociHandle->p_err, (text *)chTag,(sb4)strlen((char *)chTag),(dvoid *) &pSelField->naIntValue[iIndex], sizeof(int), SQLT_INT,(dvoid *) 0,(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + // char *͵, SQLʱ :3,:4, + for (iIndex=0; iIndexnCharNum; iIndex++) + { + int n=0; + memset(chTag, 0, 8); + n = pSelField->nIntNum + iIndex +1; + sprintf(chTag, ":%d", n); + if(rc = OCIBindByName(ociHandle->p_sql, (OCIBind **)&ociHandle->p_dfn, ociHandle->p_err, (text *)chTag,(sb4)strlen((char *)chTag),(dvoid *) &pSelField->caCharValue[iIndex], NUM, SQLT_STR,(dvoid *) 0,(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + + // ִSQL + if (rc = OCIStmtExecute(ociHandle->p_svc, ociHandle->p_sql, ociHandle->p_err, (ub4) 0, (ub4) 0,(CONST OCISnapshot *) NULL, (OCISnapshot *) NULL, OCI_STMT_SCROLLABLE_READONLY)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("execute SQL Error - %.*s\n", 512, errbuf); + return -1; + } + else + { + printf("execute SQL success!\n\n"); + } + + + if (ret = OCIAttrGet (ociHandle->p_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) &outputColumn, (ub4 *) 0, (ub4)OCI_ATTR_PARAM_COUNT, ociHandle->p_err)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Get OCIAttr Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + + + // int͵, SQLʱ :1,:2, + for (iIndex=0; iIndexnIntNum; iIndex++) + { + if(rc = OCIDefineByPos(ociHandle->p_sql, &ociHandle->p_dfn, ociHandle->p_err, iIndex+1, (dvoid *)&pOutField->naIntValue[iIndex], sizeof(int), SQLT_INT, (dvoid *) 0, (ub2 *)0,(ub2 *)0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + + // char *͵, SQLʱ :1,:2, + for (iIndex=0; iIndexp_sql, &ociHandle->p_dfn, ociHandle->p_err, n, (dvoid *)&pOutField->caCharValue[iIndex], 1000*sizeof(char), SQLT_STR, (dvoid *) 0, (ub2 *)0,(ub2 *)0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + return 0; + +} + + + +// ͷHandler +void QuitFreeHandle() +{ + // ˳ + OCILogoff(ociHandle->p_svc,ociHandle->p_err); + printf("Quit success!\n"); + + // ͷž + OCIHandleFree(ociHandle->p_ser,OCI_HTYPE_SERVER); //ͷŷ + OCIHandleFree(ociHandle->p_err,OCI_HTYPE_ERROR); //ͷŴ + OCIHandleFree(ociHandle->p_usr,OCI_HTYPE_SESSION); //ͷ + OCIHandleFree(ociHandle->p_svc,OCI_HTYPE_SVCCTX); //ͷľ + OCIHandleFree(ociHandle->p_sql,OCI_HTYPE_STMT); //ͷSQL +} + + +// ִ +int ExecuteSQL(char *SQL,int valueCount,char **value) +{ + int i=0; + + if(i=_ExeSQL(SQL,value,valueCount)) + { + QuitFreeHandle(); + return -1; + } + + return 0; +} + + +// IJѯ +int QuerySQL(char *SQL, int inputValueCount, char ** inputValue, int * outputColumn, int * outputValueCount, char **** outputValue) +{ + int i = 0, j=0 ,ret =0; + + int times = 0, temp=0; + + SqlSelField infield; + SqlSelField outField; + + // ʼṹ + infield.nCharNum = inputValueCount; + infield.nIntNum = 0; + outField.nCharNum = 0; + outField.nIntNum = 0; + + * outputColumn = 0; + * outputValueCount = 0; + + for(i=0;ip_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) outputColumn, (ub4 *) 0, (ub4)OCI_ATTR_PARAM_COUNT, ociHandle->p_err); + + // ȡһ,ȥ + ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_LAST,0, OCI_DEFAULT); + // ȡ + ret= OCIAttrGet (ociHandle->p_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) outputValueCount, (ub4 *) 0, (ub4)OCI_ATTR_ROW_COUNT, ociHandle->p_err); + + if(*outputValueCount == 0) + return 0; + + + // ʼڴ沢Ҵ洢 + ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_FIRST,0, OCI_DEFAULT); + *outputValue = (char ***) calloc ((*outputValueCount)+1,sizeof(char**)); + do + { + (*outputValue)[i] = (char **) calloc ((*outputColumn)+1,sizeof(char *)); + for(j=0;j<(*outputColumn);j++) + { + (*outputValue)[i][j] = (char *) calloc (1000,sizeof(char)); + strcpy((*outputValue)[i][j],outField.caCharValue[j]); + //printf("outValue[%d][%d] = %s , ַ=%d, ַָ= %d\n ",i,j,(*outputValue)[i][j],&(*outputValue)[i][j],(*outputValue)[i][j]); + } + i++; + } + while((ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_NEXT, 1, OCI_DEFAULT)!= OCI_NO_DATA)); + + return 0; +} + + +// IJѯ +int QuerySQLNoInputParam(char *SQL, int * outputColumn, int * outputValueCount, char **** outputValue) +{ + return QuerySQL(SQL,0,NULL,outputColumn,outputValueCount,outputValue); +} + +// ޲ +int ExecuteSQLNoInputParam(char *SQL) +{ + return ExecuteSQL(SQL,0,NULL); +} + +// Ͽ +void DisConnServer() +{ + if(ociHandle != NULL) + QuitFreeHandle(); +} + diff --git a/jf_erp_project/ocilib.h b/jf_erp_project/ocilib.h new file mode 100644 index 0000000..0a4e752 --- /dev/null +++ b/jf_erp_project/ocilib.h @@ -0,0 +1,98 @@ +/*===================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +======================================================================================================================= +File description: + + Filename: ocilib.h + Module : OCI + + This Header file of OCI library Package. + +======================================================================================================================= +Date Name Description of Change +1-Feb-2015 Ray Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#include +#include +#include +#include +#include +//#include + +#define OCI_FAIL 1 +#define OCI_OK 0 + +#ifdef __cplusplus +extern "C" +{ +#endif + /** + * ݿ. + * @param username - û + * @param password - + * @param dbname - ݿSID + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int ConnServer(char *username,char *password,char *dbname); + + + /** + * ִSQL. + * @param SQL - SQL + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int ExecuteSQLNoInputParam(char *SQL); + + /** + * ִSQL. + * @param SQL - SQL + * @param inputValueCount - + * @param inputValue - ֵ + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int ExecuteSQL(char *SQL,int inputValueCount,char **inputValue); + + /** + * IJѯSQL. + * @param SQL - SQL + * @param outputColumn - е + * @param outputValueCount - е + * @param outputValue - + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int QuerySQLNoInputParam(char *SQL, int * outputColumn, int * outputValueCount, char **** outputValue); + + /** + * IJѯSQL. + * @param SQL - SQL + * @param inputValueCount - + * @param inputValue - ֵ + * @param outputColumn - е + * @param outputValueCount - е + * @param outputValue - + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int QuerySQL(char *SQL, int inputValueCount, char ** inputValue, int * outputColumn, int * outputValueCount, char **** outputValue); + + /** + * Ͽݿ. + * + * ORACLE ݿװ + */ + extern void DisConnServer(); + +#ifdef __cplusplus +} +#endif diff --git a/jf_erp_project/string_helper.cpp b/jf_erp_project/string_helper.cpp new file mode 100644 index 0000000..553e6f3 --- /dev/null +++ b/jf_erp_project/string_helper.cpp @@ -0,0 +1,146 @@ +/** +* @file string_helper.cpp +* @brief string utility functions' implemention +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +* 14-Jau-2009 James modify Split functions, add trim blank characters +*/ +#pragma warning(disable:4996) +// +//#include +//#include +//#include +#include "string_helper.h" + +string TrimString( string strArg ) +{ + size_t index1 = 0; + index1 = strArg.find_first_not_of( ' '); + if( index1 != string::npos ) + strArg.erase( strArg.begin(), strArg.begin()+index1 ); + index1 = strArg.find_last_not_of( ' '); + if( index1 != string::npos ) + strArg.erase( strArg.begin() + index1 + 1 ); + return strArg; +} + +void Split( string strArg, char spliter, vector &ans ) +{ + ans.clear(); + size_t index0 = 0; + string one_arg; + if ( strArg.find_first_not_of(' ') == string::npos ) + strArg = ""; + while( strArg.size()>0 ) + { + index0 = strArg.find_first_of( spliter ); + if( index0 != string::npos ) + { + one_arg = strArg.substr( 0,index0 ); + strArg = strArg.substr( index0 + 1 ); + ans.push_back( one_arg ); + } + else + { + ans.push_back( strArg ); + break; + } + } +} + +void Split( string strArg, string spliter, vector &ans ) +{ + + ans.clear(); + + size_t index0; + string one_arg; + + if ( strArg.find_first_not_of(" ") == string::npos ) + strArg = ""; + + + while( strArg.size()>0 ) + { + + index0 = strArg.find(spliter); + + if( index0 != string::npos ) + { + + one_arg = strArg.substr( 0, index0 ); + strArg = strArg.substr( index0 + spliter.size() ); + + ans.push_back( one_arg ); + } + else + { + + ans.push_back( strArg ); + break; + } + } +} + + +void RemoveLiner( string &in, string &out ) +{ + char buf[BUFSIZ] = ""; + for( int i=0; i<(int)in.size(); i++ ) + { + if( in[i] == '\n') + continue; + else + sprintf( buf,"%s%c", buf, in[i] ); + } + out.assign(buf); +} + +////Converting a WChar string to a Ansi string +//std::string WChar2Ansi(LPCWSTR pwszSrc) +//{ +// int nLen = WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL); +// +// if (nLen<= 0) return std::string(""); +// +// char* pszDst = new char[nLen]; +// if (NULL == pszDst) return std::string(""); +// +// WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL); +// pszDst[nLen -1] = 0; +// +// std::string strTemp(pszDst); +// delete [] pszDst; +// +// return strTemp; +//} +// +//string ws2s(wstring& inputws){ return WChar2Ansi(inputws.c_str()); } +// +////Converting a Ansi string to WChar string +//std::wstring Ansi2WChar(LPCSTR pszSrc, int nLen) +//{ +// int nSize = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pszSrc, nLen, 0, 0); +// if(nSize <= 0) return NULL; +// +// WCHAR *pwszDst = new WCHAR[nSize+1]; +// if( NULL == pwszDst) return NULL; +// +// MultiByteToWideChar(CP_ACP, 0,(LPCSTR)pszSrc, nLen, pwszDst, nSize); +// pwszDst[nSize] = 0; +// +// if( pwszDst[0] == 0xFEFF) // skip Oxfeff +// for(int i = 0; i < nSize; i ++) +// pwszDst[i] = pwszDst[i+1]; +// +// wstring wcharString(pwszDst); +// delete pwszDst; +// +// return wcharString; +//} +// +//std::wstring s2ws(const string& s){ return Ansi2WChar(s.c_str(),s.size());} + diff --git a/jf_erp_project/string_helper.h b/jf_erp_project/string_helper.h new file mode 100644 index 0000000..b4f7532 --- /dev/null +++ b/jf_erp_project/string_helper.h @@ -0,0 +1,25 @@ +/** +* @file string_helper.h +* @brief string utilities to help dealing with string +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +*/ + +#ifndef STRING_HELPER +#define STRING_HELPER + +#include +#include +using namespace std; + +string TrimString( string strArg ); +void Split( string strArg, char spliter, vector &ans ); +void Split( string strArg, string spliter, vector &ans ); +void RemoveLiner( string &in, string &out ); +//string ws2s(wstring& inputws); +//wstring s2ws(const string& s); + +#endif \ No newline at end of file diff --git a/jf_erp_project/string_utils.cxx b/jf_erp_project/string_utils.cxx new file mode 100644 index 0000000..07d93cb --- /dev/null +++ b/jf_erp_project/string_utils.cxx @@ -0,0 +1,253 @@ +/*================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +==================================================================================================================== +File description: + Filename: string_utils.c + Module : Common module. + + This file includes some operations of the string. + +==================================================================================================================== +Date Name Description of Change +3-Feb-2015 Ray li Initialize creation +$HISTORY$ +===================================================================================================================*/ +#ifndef _cplusplus +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE +#endif +#endif + +#include +#include +#include +#include +#include +#include + +#include "string_utils.h" + +//void Split( string strArg, string spliter, vector &ans ) +//{ +// ans.clear(); +// size_t index0; +// string one_arg; +// if ( strArg.find_first_not_of(' ') == string::npos ) +// strArg = ""; +// while( strArg.size()>0 ) +// { +// index0 = strArg.find(spliter); +// if( index0 != string::npos ) +// { +// one_arg = strArg.substr( 0, index0 ); +// strArg = strArg.substr( index0 + spliter.size() ); +// ans.push_back( one_arg ); +// } +// else +// { +// ans.push_back( strArg ); +// break; +// } +// } +//} +char* GSTR_clone( char **dst, const char *src ) +{ + char *retVal = NULL; + int srcLen = 0; + + *dst = NULL; + if (src == NULL) + return NULL; + + srcLen = (int)tc_strlen( src ) + 1; + *dst = (char*)MEM_alloc( srcLen * sizeof(char) ); + retVal = tc_strncpy( *dst, src, srcLen ); + (*dst)[srcLen - 1] = '\0'; + + return retVal; +} + +char* GSTR_copy( char *dst, const char *src, int dstSize ) +{ + char *retVal = tc_strncpy( dst, src, dstSize ); + dst[dstSize - 1] = '\0'; + return retVal; +} + +char* GSTR_int_to_string( char **dst, int value ) +{ + char strVal[128 + 1]; + + *dst = NULL; + memset( strVal, 0, sizeof(strVal)/sizeof(char) ); + sprintf( strVal, "%d", value ); + + return GSTR_clone( dst, strVal ); +} + +void GSTR_format_int_to_string( char *dst, int digitNum, int value ) +{ + char sNum[WSO_desc_size_c + 1]; + sprintf( sNum, "%%0%dd", digitNum ); + sprintf( dst, sNum, value ); +} + +void GSTR_format_string( const char *dst, int m, const char *fill_char, char **out ) +{ + char sNum[WSO_name_size_c + 1] = {0}; + char sNew[WSO_name_size_c + 1] = {0}; + sprintf( sNum, "%%%d.%ds", m, m ); + sprintf( sNew, sNum, dst ); + STRNG_replace_str( sNew, " ", fill_char, out ); +} + + +char* GSTR_string_append( const char *s1, const char *s2 ) +{ + char *s = NULL; + if (s1 == NULL || s2 == NULL) + { + GSTR_clone(&s, s1 == NULL ? (s2 == NULL ? "" : s2) : s1 ); + } + else + { + int size = (int)tc_strlen(s1) + (int)tc_strlen(s2) + 1; + s = (char *)MEM_alloc( size ); + tc_strcpy( s, s1 ); + tc_strcat( s, s2 ); + s[size - 1] = '\0'; + } + return s; +} + +logical GSTR_is_float(const char *str) +{ + logical isfloat = true; + char *pStr = (char *)str; + logical hasPositive = false; + logical hasMinus = false; + logical hasDot = false; + + if (str == NULL) + return false; + + while (*pStr != '\0' && isfloat == true) + { + if ( (*pStr >= '0' && *pStr <= '9')) + { + //continue; + } + else if ( *pStr == '+' ) + { + isfloat = (hasPositive ? false : (hasPositive = true)); + } + else if ( *pStr == '-' ) + { + isfloat = (hasMinus ? false : (hasMinus = true)); + } + else if ( *pStr == '.' ) + { + isfloat = (hasDot ? false : (hasDot = true)); + } + else + isfloat = false; + + pStr ++; + } + return isfloat; +} + +logical GSTR_is_number(const char *str) +{ + logical is_number = true; + char *pStr = (char *)str; + if (str == NULL) + return false; + + while (*pStr != '\0') + { + if ( !( (*pStr >= '0' && *pStr <= '9') || *pStr == '-' ) ) + { + is_number = false; + break; + } + pStr ++; + } + return is_number; +} + +logical GSTR_is_ascii(char ch) +{ + return ((unsigned int)ch) < 128; +} + +int GSTR_trim_l( char *str, char s ) +{ + int count = 0; + char *pointer = str, *poffset = NULL; + if (str == NULL || str[0] == '\0') + return 0; + + while ( *pointer != '\0' ) + { + if ( *pointer != s ) + { + break; + } + count++; + pointer++; + } + if (count == 0) + return 0; + + poffset = str + count; + pointer = str; + while ( *poffset != '\0' ) + { + *pointer = *poffset; + pointer ++; + poffset ++; + } + *pointer = '\0'; + + return count; +} + +int GSTR_trim_r( char *str, char s ) +{ + int count = 0; + char *pointer = NULL; + if (str == NULL || str[0] == '\0') + return 0; + + pointer = str + ((int) strlen(str) - 1); + + while ( pointer != str ) + { + if ( *pointer != s ) + { + break; + } + + *pointer = '\0'; + + count++; + pointer--; + } + + return count; +} + +void GSTR_trim_float( char *floatValue ) +{ + if ( !IS_EMPTY(floatValue) && tc_strstr(floatValue, ".") != NULL ) + { + int len = 0; + GSTR_trim_r(floatValue, '0'); + len = (int)tc_strlen(floatValue); + if (floatValue[ len - 1 ] == '.') + floatValue[ len - 1 ] = '\0'; + } +} + diff --git a/jf_erp_project/string_utils.h b/jf_erp_project/string_utils.h new file mode 100644 index 0000000..4b379cc --- /dev/null +++ b/jf_erp_project/string_utils.h @@ -0,0 +1,125 @@ +/*===================================================================================================================== + Copyright(c) 2005 ORIGIN PLM Software Corp. All rights reserved. + Unpublished - All rights reserved +======================================================================================================================= +File description: + Filename: string_utils.h + Module : Common module. + + This file includes some operations of the string. + +======================================================================================================================= +Date Name Description of Change +14-Jul-2009 Ray Li Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#ifndef STRING_UTILS_H +#define STRING_UTILS_H +#include +#include +#include +using namespace std; +#ifdef __cplusplus + extern "C" + { +#endif + +// @{{ String assister +#define IS_NULL(S) ((S)==NULL) +#define IS_EMPTY(S) (((S)==NULL) || !(*(S))) +// @}} + void Split( string strArg, string spliter, vector &ans ); + /** + * Clones the string. + * @param dst - the output string. + * @param src - the string to be cloned. + * @return - the destinatin string pointer. + */ + extern char* GSTR_clone( char **dst, const char *src ); + + /** + * Copy safely the string with null end. + * @param dst - the output string. + * @param src - the string to be cloned. + * @param dstSize - the size of output string. + * @return - the destinatin string pointer. + */ + extern char *GSTR_copy( char *dst, const char *src, int dstSize ); + + /** + * Converts int to string. + * @param dst - the output string. + * @param value - the int to be cloned. + * @return - the destinatin string pointer. + */ + extern char* GSTR_int_to_string( char **dst, int value ); + + /** + * Formats the int/string value as string. + * @param dst - the destination string. + * @param digitNum - the digit number of the value. + * @param value - the value to be converted. + * @return - N/A. + */ + extern void GSTR_format_int_to_string( char *dst, int digitNum, int value ); + extern void GSTR_format_string( const char *dst, int m, const char *fill_char, char **out ); + + /** + * Appends the strings( never null returned ) + * @param s1 - string 1 + * @param s2 - string 2 + * @return - new string + */ + extern char* GSTR_string_append( const char *s1, const char *s2 ); + + /** + * Whether the string is float type + * @param str - The string + * + * NOTE: it's only check whether each word is in "+-.0123456789", not care the float with "E" or the float rule, + * like "00-1.+01", it will return true. + * @return - return true if it is one. + */ + extern logical GSTR_is_float(const char *str); + + /** + * Whether all char of the string are number + * @param str - The string + * + * NOTE: it's only check whether each word is in "0123456789" + * @return - return true if it is one. + */ + extern logical GSTR_is_number(const char *str); + + /** + * Is ascii char + * @param ch - ascii char + * @return - return true if it is. + */ + extern logical GSTR_is_ascii(char ch); + + /** + * Trims the string's prefix. + * @param str - The string + * @param s - The char + * + * @return - count. + */ + extern int GSTR_trim_l( char *str, char s ); + extern int GSTR_trim_r( char *str, char s ); + + /** + * Remove the zero. + * For Example: + * floatValue="50.00" -> = "50" + * floatValue="50.0100" -> = "50.01" + * @return - count. + */ + extern void GSTR_trim_float( char *floatValue ); + +#ifdef __cplusplus + } +#endif + + +#endif //STRING_UTILS_H diff --git a/jf_erp_project/x64/Release/CL.read.1.tlog b/jf_erp_project/x64/Release/CL.read.1.tlog new file mode 100644 index 0000000..bdf14e1 Binary files /dev/null and b/jf_erp_project/x64/Release/CL.read.1.tlog differ diff --git a/jf_erp_project/x64/Release/CL.write.1.tlog b/jf_erp_project/x64/Release/CL.write.1.tlog new file mode 100644 index 0000000..7e9800c Binary files /dev/null and b/jf_erp_project/x64/Release/CL.write.1.tlog differ diff --git a/jf_erp_project/x64/Release/cl.command.1.tlog b/jf_erp_project/x64/Release/cl.command.1.tlog new file mode 100644 index 0000000..4d49d29 Binary files /dev/null and b/jf_erp_project/x64/Release/cl.command.1.tlog differ diff --git a/jf_erp_project/x64/Release/common_itk_util.obj b/jf_erp_project/x64/Release/common_itk_util.obj new file mode 100644 index 0000000..e438445 Binary files /dev/null and b/jf_erp_project/x64/Release/common_itk_util.obj differ diff --git a/jf_erp_project/x64/Release/jf_erp_project.lastbuildstate b/jf_erp_project/x64/Release/jf_erp_project.lastbuildstate new file mode 100644 index 0000000..8997680 --- /dev/null +++ b/jf_erp_project/x64/Release/jf_erp_project.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|x64|F:\Connor(项目管理)\继峰项目\签名\jf_itk\| diff --git a/jf_erp_project/x64/Release/jf_erp_project.log b/jf_erp_project/x64/Release/jf_erp_project.log new file mode 100644 index 0000000..745d0d7 --- /dev/null +++ b/jf_erp_project/x64/Release/jf_erp_project.log @@ -0,0 +1,23 @@ +生成启动时间为 2015/9/17 19:47:48。 + 1>项目“F:\Connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\jf_erp_project.vcxproj”在节点 2 上(build 个目标)。 + 1>InitializeBuildStatus: + 正在对“x64\Release\jf_erp_project.unsuccessfulbuild”执行 Touch 任务。 + ClCompile: + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe /c /IF:\Teamcenter10.1.0Env\OCI\include /IF:\Teamcenter10.1.0Env\tcbin\include /Zi /nologo /W1 /WX- /O2 /D IPLIB=none /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"x64\Release\\" /Fd"x64\Release\vc100.pdb" /Gd /TC /errorReport:prompt common_itk_util.c + common_itk_util.c + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe /c /IF:\Teamcenter10.1.0Env\OCI\include /IF:\Teamcenter10.1.0Env\tcbin\include /Zi /nologo /W1 /WX- /O2 /D IPLIB=none /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"x64\Release\\" /Fd"x64\Release\vc100.pdb" /Gd /TP /errorReport:prompt jf_erp_project.cpp + jf_erp_project.cpp + 1>f:\connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\common_itk_util.h(30): error C2065: “logical”: 未声明的标识符 + 1>f:\connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\common_itk_util.h(30): error C2146: 语法错误: 缺少“)”(在标识符“bypass”的前面) + 1>f:\connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\common_itk_util.h(30): error C2182: “set_bypass”: 非法使用“void”类型 + 1>f:\connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\common_itk_util.h(30): error C2059: 语法错误:“)” + 1>F:\Teamcenter10.1.0Env\tcbin\include\pom/pom/pom_errors.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 + 1>F:\Teamcenter10.1.0Env\tcbin\include\pom/pom/pom_errors.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 + 1>F:\Teamcenter10.1.0Env\tcbin\include\pom/pom/pom_errors.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 + 1>f:\connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\string_utils.h(31): error C2732: 链接规范与“Split”的早期规范冲突 + f:\connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\string_utils.h(31) : 参见“Split”的声明 + 1>已完成生成项目“F:\Connor(项目管理)\继峰项目\签名\jf_itk\jf_erp_project\jf_erp_project.vcxproj”(build 个目标)的操作 - 失败。 + +生成失败。 + +已用时间 00:00:00.96 diff --git a/jf_erp_project/x64/Release/jf_erp_project.unsuccessfulbuild b/jf_erp_project/x64/Release/jf_erp_project.unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/jf_erp_project/x64/Release/jf_erp_project.vcxprojResolveAssemblyReference.cache b/jf_erp_project/x64/Release/jf_erp_project.vcxprojResolveAssemblyReference.cache new file mode 100644 index 0000000..bde9b77 Binary files /dev/null and b/jf_erp_project/x64/Release/jf_erp_project.vcxprojResolveAssemblyReference.cache differ diff --git a/jf_erp_project/x64/Release/jf_erp_project.write.1.tlog b/jf_erp_project/x64/Release/jf_erp_project.write.1.tlog new file mode 100644 index 0000000..e69de29 diff --git a/jf_erp_project/x64/Release/link.command.1.tlog b/jf_erp_project/x64/Release/link.command.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/jf_erp_project/x64/Release/link.command.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jf_erp_project/x64/Release/link.read.1.tlog b/jf_erp_project/x64/Release/link.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/jf_erp_project/x64/Release/link.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jf_erp_project/x64/Release/link.write.1.tlog b/jf_erp_project/x64/Release/link.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/jf_erp_project/x64/Release/link.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jf_erp_project/x64/Release/ocilib.obj b/jf_erp_project/x64/Release/ocilib.obj new file mode 100644 index 0000000..5e60a28 Binary files /dev/null and b/jf_erp_project/x64/Release/ocilib.obj differ diff --git a/jf_erp_project/x64/Release/string_helper.obj b/jf_erp_project/x64/Release/string_helper.obj new file mode 100644 index 0000000..1b60716 Binary files /dev/null and b/jf_erp_project/x64/Release/string_helper.obj differ diff --git a/jf_erp_project/x64/Release/string_utils.obj b/jf_erp_project/x64/Release/string_utils.obj new file mode 100644 index 0000000..1097816 Binary files /dev/null and b/jf_erp_project/x64/Release/string_utils.obj differ diff --git a/jf_erp_project/x64/Release/vc100.pdb b/jf_erp_project/x64/Release/vc100.pdb new file mode 100644 index 0000000..c9e7a88 Binary files /dev/null and b/jf_erp_project/x64/Release/vc100.pdb differ diff --git a/jf_itk/Debug/jf_itk.log b/jf_itk/Debug/jf_itk.log new file mode 100644 index 0000000..48f6a8d --- /dev/null +++ b/jf_itk/Debug/jf_itk.log @@ -0,0 +1,5 @@ +生成启动时间为 2015/9/7 8:48:50。 + +生成成功。 + +已用时间 00:00:00.19 diff --git a/jf_itk/Text.txt b/jf_itk/Text.txt new file mode 100644 index 0000000..eca07b5 --- /dev/null +++ b/jf_itk/Text.txt @@ -0,0 +1,39 @@ +Shoulder 2017/05/11 09:52:49 +lx = form.getTCProperty("jk8ProductType").getStringArrayValue();//Ʒ + cpxh = form.getTCProperty("jk8ProductModNO").getStringArrayValue();// Ʒͺ + sbh = form.getTCProperty("jk8ProductIdentifyNO").getStringArrayValue();// ʶ + cpmc = form.getTCProperty("jk8ProductName").getStringArrayValue();// Ʒ + jbcj = form.getTCProperty("jk8BaseMeterManufactor").getStringArrayValue();// + ickxh = form.getTCProperty("jk8ICCardType").getStringArrayValue();// ICͺ + xlbxh = form.getTCProperty("jk8CircBoardModNO").getStringArrayValue();// ·ͺ + cxtz = form.getTCProperty("jk8ProgramFeatures").getStringArrayValue();// + tdxh = form.getTCProperty("jk8InsteadType").getStringArrayValue();// ͺ + gngs = form.getTCProperty("jk8FunctionOverview").getStringArrayValue();// ܸ + khtsyq = form.getTCProperty("jk8CustSpecRequirements").getStringArrayValue();// ͻҪ + u8mmh = form.getTCProperty("jk8U8NO").getStringArrayValue();// U8 + fm = form.getTCProperty("jk8Valve").getStringArrayValue();// + jmlx = form.getTCProperty("jk8EncryptType").getStringArrayValue();// + sqr = form.getTCProperty("jk8Applicant").getStringArrayValue();// + djrq = form.getTCProperty("jk8RecordDate").getStringArrayValue();// Ǽ + sysc = form.getTCProperty("jk8ApplyMarket").getStringArrayValue();// г + ptjbcj = form.getTCProperty("jk8BMManfMatched").getStringArrayValue();// ׻ + + + jk8ProductType//Ʒ + jk8ProductModNO// Ʒͺ + jk8ProductIdentifyNO// ʶ + jk8ProductName// Ʒ + jk8BaseMeterManufactor// + jk8ICCardType// ICͺ + jk8CircBoardModNO// ·ͺ + jk8ProgramFeatures// + jk8InsteadType// ͺ + jk8FunctionOverview// ܸ + jk8CustSpecRequirements// ͻҪ + jk8U8NO// U8 ȥ + jk8Valve// + jk8EncryptType// + jk8Applicant// + jk8RecordDate// Ǽ + jk8ApplyMarket// г + jk8BMManfMatched// ׻ \ No newline at end of file diff --git a/jf_itk/common_itk_util.c b/jf_itk/common_itk_util.c new file mode 100644 index 0000000..477d6c6 --- /dev/null +++ b/jf_itk/common_itk_util.c @@ -0,0 +1,291 @@ +/** +* @file common_itk_util.cpp +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 18-July-2008 James +*/ + +#pragma warning (disable: 4996) +#pragma warning (disable: 4819) + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +//#include +//#include +//#include + +#include +//#include +#include +#include +//#include +//#include +#include "error_handling.h" +#include "common_itk_util.h" + +#ifdef WIN32 +#include +#include +#else +#include +#endif + + +#define ARGS_LENGTH 200 +#define ARGS_NAME_DEBUG "-debug" +#define DEBUG "-debug=" +#define MAX_PRINTLINE_LENGTH 2000 +#define MAX_PATH_LENGTH 2000 +#define MAX_ARGUMENT_LENGTH 400 +#define MAX_PARAMNAME_LENGTH 50 +#define MAX_FILE_EXT_LENGTH 10 +#define TRUE_FLAG 1 +#define FALSE_FLAG 0 +#define DETAILLOG 1 + + +void ECHO(char *format, ...) +{ + //if( !YFJC_OPT_DEBUG ) + // return; + + char msg[4096]; + va_list args; + + va_start( args, format ); + vsprintf( msg, format, args ); + va_end( args ); + + printf( msg ); + TC_write_syslog( msg ); +} + +FILE* logFile = NULL; + + + +//void set_bypass(logical bypass) +//{ +// POM_AM__set_application_bypass(bypass); +//} +/*=============================================================================* + * FUNCTION: current_time + * PURPOSE : get the current datetime + * INPUT: + * date_t* date_tag // current date time tag + * + * RETURN: + * void + *============================================================================*/ +void current_time( date_t * date_tag ) +{ + time_t ltime; + struct tm *today ; + + // Set time zone from TZ environment variable. If TZ is not set, + // the operating system is queried to obtain the default value + // for the variable. + // + //_tzset(); + + // Get UNIX-style time and display as number and string. + time( <ime ); + + today = localtime( <ime ); + date_tag->year = today->tm_year + 1900 ; + date_tag->month = today->tm_mon ; + date_tag->day = today->tm_mday ; + date_tag->hour = today->tm_hour ; + date_tag->minute = today->tm_min ; + date_tag->second = today->tm_sec ; +} +/*=============================================================================* + * FUNCTION: CreateLogFile + * PURPOSE : create log file + * INPUT: + * char* FunctionName // the funtion which need to create log file + * FILE** logFile // out: the log file pointer + * + * RETURN: + * void + *============================================================================*/ +void CreateLogFile(char* FunctionName, char **fullname) +{ + int i=0, ifail = ITK_ok; + //date_t status_now; + //char* date_string = NULL; + char date_string[MAX_PATH_LENGTH]; + char logFileDir[MAX_PATH_LENGTH]; + char logFileName[MAX_PATH_LENGTH]; + + char* session_uid = NULL; + tag_t session_tag = NULLTAG; + time_t now; + struct tm *p; + + time(&now); + + logFile = NULL; + //current_time(&status_now); + p=localtime(&now); + + memset(date_string, 0, sizeof(date_string)); + sprintf(date_string,"%4d%02d%02d%02d%02d%02d",1900+p->tm_year,p->tm_mon+1 ,p->tm_mday ,p->tm_hour,p->tm_min ,p->tm_sec ); + //if( DATE_date_to_string( status_now, "%Y%m%d%H%M%S", &date_string) != ITK_ok ) + //ifail = ITK_date_to_string (status_now, &date_string ); + //if (ifail) + //{ + // printf("!*ERROR*!: Failed to get current date time\n"); + // goto CLEANUP; + //} + + memset(logFileDir, 0, sizeof(logFileDir)); + memset(logFileName, 0, sizeof(logFileName)); + //get log dir + sprintf(logFileDir, "%s", getenv("TEMP")); + printf("\n log file dir: %s\n", logFileDir); + //try to change dir to TC_USER_LOG_DIR + if(chdir(logFileDir)!=ITK_ok) + { + //not set TC_USER_LOG_DIR + //log in to default TC_LOG + memset(logFileDir, 0, sizeof(logFileDir)); + sprintf(logFileDir, "%s", getenv("TC_LOG")); + printf("\n TC_USER_LOG_DIR invalide, log file dir: %s\n", logFileDir); + if(chdir(logFileDir)!=ITK_ok) + { + //still can not change to log dir + printf("!*ERROR*!: Failed to change dir to TC_USER_LOG_DIR\n"); + goto CLEANUP; + } + } + + //get session_uid to make sure the log file name unique + POM_ask_session(&session_tag); + ITK__convert_tag_to_uid(session_tag, &session_uid); + + + //get logFileName + sprintf(logFileName, "%s_%s_%s.log", FunctionName, session_uid, date_string); + printf("log file name: %s\n", logFileName); + + *fullname = (char *)MEM_alloc(sizeof(char)*512); + sprintf(*fullname,"%s\\%s",logFileDir,logFileName); + + //for(i = 0; _access((char *)logFileName, 4) == 0; i++) + /*{ + memset(logFileName, 0, sizeof(logFileName)); + sprintf(logFileName, "%s_%s_%s_%d.log", FunctionName, session_uid, date_string, i); + } + printf("final log file name: %s\n", logFileName);*/ + + //create log file + logFile = fopen(logFileName, "w"); + +CLEANUP: + //DOFREE(date_string); + DOFREE(session_uid); +} + + +/*=============================================================================* + * FUNCTION: WriteLog + * PURPOSE : write log, if debug log File not null, write log message to log File + * INPUT: + * const char* format // debug message string + * + * RETURN: + * void + *============================================================================*/ +void WriteLog(const char* format, ...) +{ + va_list arg; + char tmp[MAX_PRINTLINE_LENGTH]; + + if(logFile) + { + //get the message + memset(tmp, 0, sizeof(tmp)); + va_start(arg, format); + vsprintf(tmp, format, arg); + va_end(arg); + + //----------print to command window for trace--------// + printf("%s\n", tmp); + + //print message to log file + fprintf(logFile, "%s\n", tmp); + fflush(logFile); + } + else + { + printf("*!Error!*: Log File Not Exist\n"); + } +} + +void CloseLog(void) +{ + if(logFile) + { + fclose(logFile); + logFile = NULL; + } +} + +//void getTypeinfo(char *type) +//{ +// int ulen = 0,i=0,tempcount=0,asd=0; +// +// char temp[128]=""; +// ulen = strlen(type); +// asd = ulen-1; +// for(i=0;i < ulen;i++) +// { +// if(type[i] == ';') +// { +// temp[tempcount] = '\0'; +// strcpy(excludetypes[typecount].type,temp); +// strcpy(temp,""); +// tempcount = 0; +// typecount = typecount + 1; +// } +// else +// { +// +// temp[tempcount] = type[i]; +// tempcount = tempcount + 1; +// if(i==asd) +// { +// temp[tempcount] = '\0'; +// strcpy(excludetypes[typecount].type,temp); +// typecount = typecount + 1; +// } +// +// } +// +// } +//} \ No newline at end of file diff --git a/jf_itk/common_itk_util.h b/jf_itk/common_itk_util.h new file mode 100644 index 0000000..71ca4ea --- /dev/null +++ b/jf_itk/common_itk_util.h @@ -0,0 +1,41 @@ +/** +* @file common_itk_util.h +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +*/ + +#ifndef COMMON_ITK_UTIL +#define COMMON_ITK_UTIL + +#ifdef __cplusplus +extern "C" { +#endif + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} +void ECHO(char *format, ...); +void CreateLogFile(char* FunctionName, char **fullname); +void WriteLog(const char* format, ...); +void CloseLog(void); +void set_bypass(logical bypass); +void current_time( date_t * date_tag ); +//int FindDatasetReferenceExt( tag_t datasettype, const char *datasettype_ref, char ext[10] ); +//int CompareDate( date_t date1, date_t date2 ); +//int GetRandomTempFile( char tempFile[256] ); +//logical IsItemRevisionType( char object_type[WSO_name_size_c + 1] ); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/jf_itk/connor_util.cpp b/jf_itk/connor_util.cpp new file mode 100644 index 0000000..6b6056e --- /dev/null +++ b/jf_itk/connor_util.cpp @@ -0,0 +1,52 @@ +#include "connor_util.h" + +/** +*жijǷ +*objtag ҪжϵĶ +*type_name ͵ +*/ +int checkIsTypeOrSubtype(tag_t objtag,char * type_name){ + printf("жǷ%s\n",type_name); + tag_t type = NULLTAG; + ITKCALL(TCTYPE_ask_object_type(objtag,&type)); + tag_t item_type = NULLTAG; + ITKCALL(TCTYPE_find_type(type_name,"",&item_type)); + int is_type = 0; + if(item_type != NULLTAG){ + printf("ҵ%s\n",type_name); + //printf(" find Folder type ok !!!! \n"); + logical isok = FALSE; + ITKCALL(TCTYPE_is_type_of(type,item_type,&isok)); + if(isok){ + printf("%s༰\n\n",type_name); + is_type= 1; + }else{ + printf("%s༰\n\n",type_name); + is_type= 0; + } + }else{ + printf("ûҵ%s\n\n",type_name); + } + return is_type; +} + +/** +* ȡѡ +*/ +int getPrefStrings( const char *preference, TC_preference_search_scope_t scope, vector &pref_vec ) +{ + int ifail = ITK_ok , i = 0, j = 0, k =0, num = 0; + char **values; + TC_preference_search_scope_t old_scope; + ITKCALL( ifail = PREF_ask_search_scope( &old_scope) ); + ITKCALL( ifail = PREF_set_search_scope( scope ) ); + ITKCALL( ifail = PREF_ask_char_values( preference, &num, &values ) ); + //WriteLog("num=%d",num); + for(i = 0; i < num; i++) + { + pref_vec.push_back(values[i]); + } + DOFREE(values); + ITKCALL( ifail = PREF_set_search_scope( old_scope ) ); + return ifail; +} \ No newline at end of file diff --git a/jf_itk/connor_util.h b/jf_itk/connor_util.h new file mode 100644 index 0000000..1c1a6cd --- /dev/null +++ b/jf_itk/connor_util.h @@ -0,0 +1,54 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} + +int checkIsTypeOrSubtype(tag_t objtag,char * type_name); +int getPrefStrings( const char *preference, TC_preference_search_scope_t scope, vector &pref_vec); + + \ No newline at end of file diff --git a/jf_itk/epm_handler_common.h b/jf_itk/epm_handler_common.h new file mode 100644 index 0000000..57309c2 --- /dev/null +++ b/jf_itk/epm_handler_common.h @@ -0,0 +1,53 @@ +/** +* @addtogroup handler +* @{ +*/ + +/** +* @file epm_handler_common.h +* @brief handler functions declation +* @date 2011/4/12 +* @author Ray +* @history +* =================================================================================== +* Date Name Description +* 12-Apr-2011 Ray created +*/ + + +#ifndef EPM_HANDLER_COMMON +#define EPM_HANDLER_COMMON + +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + + using namespace std; + + +#define TC_specification "IMAN_specification" +//#define NX_3W_DATASET_TYPE "UGMASTER" +//#define NX_2W_DATASET_TYPE "UGPART" +//#define DATASET_REF_TYPE "UGPART" + +int getDbMsg(void *returnValue); + +int check_target_null( EPM_rule_message_t msg ); + + //user service end +#ifdef __cplusplus +} +#endif + +#endif + + +/** +* @} +*/ \ No newline at end of file diff --git a/jf_itk/epm_register_handler.cpp b/jf_itk/epm_register_handler.cpp new file mode 100644 index 0000000..153fc15 --- /dev/null +++ b/jf_itk/epm_register_handler.cpp @@ -0,0 +1,652 @@ +/*=================================================================================================== + Copyright(c) 2011 Siemens PLM Software Corp. All rights reserved. + Unpublished - All rights reserved +==================================================================================================== +File description: + + Filename : epm_register_handler.c + + This file registers functions which are called when Teamcenter is being initialized + +==================================================================================================== +Date Name Description of Change +2011-8-21 Ray creation + +$HISTORY$ +==================================================================================================*/ + +#pragma warning (disable: 4819) + +/** +* @headerfile tcua ͷļ +*/ +#include +#include +#include +#include + +/** +* @headerfile standard c & cpp header files +*/ +#include +#include +#include +#include +#include +#include +#include +#include + + +/** +* @headerfile user's header files +*/ +#include "epm_register_handler.h" +#include "epm_handler_common.h" +#include "signoff_rev.h" +#include "wf_custom.h" +#include "w2_Clear_Form_PropValue.h" + +#define LIMITDAY 2016 + +int checkvalue(char* str) +{ + + int i; + for (i=0;i + +#ifdef __cplusplus +extern "C" { +#endif + +extern DLLAPI int USERSERVICE_custom_register_handlers(int *, va_list); +extern DLLAPI int USERSERVICE_custom_register_methods(int *decision, va_list args); +//extern int Register_revise_msg( void ); +//extern int Run_Time_register_properties( void ); +// int Q7_ebom_to_pbom (void * returnValueType); + +#ifdef __cplusplus +} +#endif + +#endif + + +/** +* @} +*/ \ No newline at end of file diff --git a/jf_itk/erp_utils.cxx b/jf_itk/erp_utils.cxx new file mode 100644 index 0000000..36646a6 --- /dev/null +++ b/jf_itk/erp_utils.cxx @@ -0,0 +1,28 @@ + +#pragma warning (disable: 4996) +#pragma warning (disable: 4819) + + +#include "erp_utils.h" +#include "ocilib.h" +#include "common_itk_util.h" +using namespace std; + + +int getPrefStrings( const char *preference, TC_preference_search_scope_t scope, vector &pref_vec ) +{ + int ifail = ITK_ok , i = 0, j = 0, k =0, num = 0; + char **values; + TC_preference_search_scope_t old_scope; + ITKCALL( ifail = PREF_ask_search_scope( &old_scope) ); + ITKCALL( ifail = PREF_set_search_scope( scope ) ); + ITKCALL( ifail = PREF_ask_char_values( preference, &num, &values ) ); + WriteLog("num=%d",num); + for(i = 0; i < num; i++) + { + pref_vec.push_back(values[i]); + } + DOFREE(values); + ITKCALL( ifail = PREF_set_search_scope( old_scope ) ); + return ifail; +} \ No newline at end of file diff --git a/jf_itk/erp_utils.h b/jf_itk/erp_utils.h new file mode 100644 index 0000000..d483878 --- /dev/null +++ b/jf_itk/erp_utils.h @@ -0,0 +1,102 @@ +/** +* @addtogroup batch service +* @{ +*/ + +/** +* @file erp_utils.h +* +* @brief import item from middle table +* +* @author Ray Li +* +* @history +* =================================================================================== +* Date Name Description of Change +* 3-Feb-2015 Ray created +*/ + + +/** +* @headerfile tcua ͷļ +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/** +* @headerfile standard c & cpp header files +*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; + +//erp table name +#define PART_INFO_TABLE "ERP_PART_INFO_TABLE" + +#define PREF_JF3_ERP_DB_Login_Info "TM2_ERP_DB_Login_Info" + +#define CUST_CP_NAME_PROPS "Cust_ERP_PLM_CP_Name_Props"//Ʒƹ +#define CUST_CP_GG_PROPS "Cust_ERP_PLM_CP_GG_Props"//Ʒ +#define CUST_BCP_NAME_PROPS "Cust_ERP_PLM_BCP_Name_Props"//Ʒƹ +#define CUST_BCP_GG_PROPS "Cust_ERP_PLM_BCP_GG_Props"//Ʒ +#define CUST_YCL_NAME_PROPS "Cust_ERP_PLM_YCL_NAME_Props"//ԭƹ +#define CUST_WL_PROPS "Cust_ERP_PLM_WL_Props"//JAVAȡԹ + +//error +#define ERROR_PREFERENCE_ERROR (EMH_USER_error_base + 1) +#define ERROR_ERP_LOGIN_FAIL (EMH_USER_error_base + 2) + +//ERP +#define ERROR_OCI_FAIL (EMH_USER_error_base + 11) + + +#ifdef __cplusplus +extern "C" +{ +#endif + + + + +int getPrefStrings( const char *preference, TC_preference_search_scope_t scope, vector &pref_vec ); + +#ifdef __cplusplus +} +#endif + diff --git a/jf_itk/error_handling.h b/jf_itk/error_handling.h new file mode 100644 index 0000000..05d9d62 --- /dev/null +++ b/jf_itk/error_handling.h @@ -0,0 +1,162 @@ +/*! +* @addtogroup common +* \file error_handling.h +* \brief +* \date 2008/6/10 +* \author Ray Li +*/ + +#ifndef SIMPLE_ERR_H_INCLUDED +#define SIMPLE_ERR_H_INCLUDED + + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define BUFSIZE 512 + + +// +#define HANDLER_ARGUMENT_ERROR EMH_USER_error_base + 1 +//#define WORKFLOW_NODE_IS_NOT_VALID EMH_USER_error_base + 2 + +#define ERROR_STATUS_ERROR EMH_USER_error_base + 2 +//#define HANDLER_PLACED_INVALID EMH_USER_error_base + 3 +// +////user errors define +////վļȱ %1$ ã +//#define ERROR_PREFERENCE_NOT_FOUND (EMH_USER_error_base + 100) + + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} + + + +//#define ECHO(X) printf X; +#define SYS_LOG(X) IMAN_write_syslog X; +#define LOG_ECHO(X) printf X; IMAN_write_syslog X; + + + +/*! +* \def CALL(x) +* ӡϢ +*/ +#define CALL(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != ITK_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + LOG_ECHO( ("ERROR: %d ERROR MSG: %s.\n",stat, err_string) ) \ + LOG_ECHO( ("Function: %s FILE: %s LINE: %d\n", #x, __FILE__, __LINE__ ) ) \ + MEM_free (err_string); \ + return (stat); \ + } \ +} + +/*! +* \def DO(x) +* ӡϢ +*/ +#define DO(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != POM_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + MEM_free (err_string); \ + } \ +} + +/*! +* \def CALLRNULL(x) +* ӡϢ +*/ +#define CALLRNULL(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != ITK_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + MEM_free (err_string); \ + return ((char *)NULL); \ + } \ +} + +/*! +* \def CALL2(x) +* ӡϢ +*/ +#define CALL2(x) { \ + int stat, n_ifails, *serverities, *ifails, err_count; \ + char *err_string, **texts; \ + if( (stat = (x)) != ITK_ok) \ + { \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + EMH_ask_errors( &n_ifails, (const int**)(&serverities), (const int**)(&ifails), (const char***)(&texts) );\ + for( err_count=0; err_count + + + + Debug + Itanium + + + Debug + Win32 + + + Debug + x64 + + + Release + Itanium + + + Release + Win32 + + + Release + x64 + + + + {AEABC483-FCBD-45F5-9884-8FA4C5A9892D} + Win32Proj + jf_itk + WFPLM_itk + + + + Application + true + Unicode + v142 + + + Application + true + Unicode + v142 + + + Application + true + Unicode + + + Application + false + true + Unicode + v142 + + + DynamicLibrary + false + true + Unicode + Static + v142 + + + DynamicLibrary + false + true + Unicode + Static + + + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + true + + + false + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;IPLIB=none;%(PreprocessorDefinitions) + C:\Users\wangc\Desktop\万丰\代码\include;C:\Users\wangc\Desktop\万丰\代码\OCI\include;C:\Users\wangc\Desktop\万丰\代码\include_cpp;%(AdditionalIncludeDirectories) + + + Console + true + true + true + $(OutDir)WFPLM_itk.dll + C:\Users\wangc\Desktop\万丰\代码\lib\*.lib;%(AdditionalDependencies) + libuser_exits.ar.lib + C:\Users\wangc\Desktop\万丰\代码\lib\MSVC;%(AdditionalLibraryDirectories) + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;IPLIB=none;%(PreprocessorDefinitions) + F:\Teamcenter10.1.0Env\tcbin\include;F:\Teamcenter10.1.0Env\OCI\include;%(AdditionalIncludeDirectories) + + + Console + true + true + true + $(OutDir)libjf.dll + F:\Teamcenter10.1.0Env\tcbin\lib\*.lib;%(AdditionalDependencies) + libuser_exits.ar.lib + D:\Work\CONNOR\继峰\CODE\OCI\lib\MSVC;%(AdditionalLibraryDirectories) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jf_itk/jf_itk.vcxproj.filters b/jf_itk/jf_itk.vcxproj.filters new file mode 100644 index 0000000..0533bb2 --- /dev/null +++ b/jf_itk/jf_itk.vcxproj.filters @@ -0,0 +1,104 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {70889105-2766-48cd-955a-f8fa1cab7cc6} + + + {4e155a8b-5ae9-449f-bb95-aa3a2b2dd9f6} + + + {2028f5f0-6bdd-4da5-8bc2-e680c333bf79} + + + + + common + + + common\epm-handler + + + common + + + common + + + common + + + common + + + common\epm-handler + + + common\epm-handler + + + common\epm-handler + + + common\epm-handler + + + common\epm-handler + + + + + common\epm-handler + + + common\epm-handler + + + common + + + common + + + common + + + common + + + common\epm-handler + + + common + + + common\epm-handler + + + common\epm-handler + + + common\epm-handler + + + common\epm-handler + + + + + common\epm-handler + + + \ No newline at end of file diff --git a/jf_itk/jf_itk.vcxproj.user b/jf_itk/jf_itk.vcxproj.user new file mode 100644 index 0000000..ace9a86 --- /dev/null +++ b/jf_itk/jf_itk.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/jf_itk/libjf_custom_main.cpp b/jf_itk/libjf_custom_main.cpp new file mode 100644 index 0000000..8abbdba --- /dev/null +++ b/jf_itk/libjf_custom_main.cpp @@ -0,0 +1,49 @@ + +#pragma warning (disable: 4819) + +/** +* @headerfile tcua ͷļ +*/ +#include +#include +#include +#include "error_handling.h" +#include "epm_register_handler.h" +#include "epm_handler_common.h" + + +#ifdef __cplusplus +extern "C" { +#endif + + + /** + * @fn extern "C" DLLAPI int liborigin_register_callbacks + * @return usually return ITK_ok + * @brief liborigin customization entry + * ˺й淶дdllƼ"_"ͷ + */ + DLLAPI int WFPLM_itk_register_callbacks() + { + int ifail = ITK_ok; + TC_write_syslog("*******************************************************************************\n"); + TC_write_syslog("* WFPLM_itk register_callbacks is starting *\n"); + TC_write_syslog("*******************************************************************************\n"); + + + ITKCALL( ifail = CUSTOM_register_exit( "WFPLM_itk", "USERSERVICE_register_methods", + (CUSTOM_EXIT_ftn_t)USERSERVICE_custom_register_methods) ); + fprintf( stdout, "\n WFPLM_itk registering USERSERVICE_custom_register_methods completed!\n" ); + + + ITKCALL( ifail = CUSTOM_register_exit("WFPLM_itk","USER_gs_shell_init_module", + (CUSTOM_EXIT_ftn_t)USERSERVICE_custom_register_handlers) ); + fprintf( stdout, "\n WFPLM_itk registering USERSERVICE_custom_register_handlers completed!\n" ); + + + return ifail; + } + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/jf_itk/ocilib.cxx b/jf_itk/ocilib.cxx new file mode 100644 index 0000000..779bd05 --- /dev/null +++ b/jf_itk/ocilib.cxx @@ -0,0 +1,442 @@ +/*===================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +======================================================================================================================= +File description: + + Filename: ocilib.cxx + Module : OCI + + This file describes OCI library Package. + +======================================================================================================================= +Date Name Description of Change +1-Feb-2015 Ray li Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#include "ocilib.h" +#include + +#define NUM 100 +#define USERNAME "infodba" +#define PASSWORD "infodba" +#define DBNAME "tc" + + +// ṹ +typedef struct{ + OCIEnv *p_env; //OCI environment handle + OCIError *p_err; //OCI error handle + OCISvcCtx *p_svc; //OCI service context handel ľ + OCIServer *p_ser; //OCI server handle + OCISession *p_usr; //OCI user session handle ûỰ + OCIStmt *p_sql; //OCI statement handle + OCIDefine *p_dfn; //OCI define handle + OCIBind *p_bnd; //OCI bind handle 󶨾 +}OCIHandleInfo; + + +// ṹ +typedef struct{ + OCIEnv *p_env; + OCIError *p_err; + OCISvcCtx *p_svc; + OCIStmt *p_sql; + OCIDefine *p_dfn; + OCIBind *p_bnd; +}OCIDATA; + + +// ִʱ +typedef struct{ + char value[NUM][NUM]; + char type[NUM][NUM]; +}SqlField; + + +// ѯʱ, +typedef struct{ + int naIntValue[NUM]; + int nIntNum; + char caCharValue[500][500]; + int nCharNum; +}SqlSelField; + +OCIHandleInfo *ociHandle = NULL; +OCIHandleInfo ociHand; + +int InitHandle(); +int _ExeSQL(char *SQL,char ** inputValue,int inputValueCount); +int _QuerySQL(char *SQL, SqlSelField *pOutField, SqlSelField *pSelField); +int GetDataFromQuery(int *pRc, SqlSelField *pOutField); +void QuitFreeHandle(); + + + + +/**************************************************************************************************************************************** +ƣ +ܣ +ڲ +ڲ + ע +*****************************************************************************************************************************************/ + + +// ʼHandler +int InitHandle() +{ + int swResult; + + ociHandle = &ociHand; + + + /*create OCI environment*/ + if(swResult = OCIEnvCreate(&ociHandle->p_env,OCI_DEFAULT,NULL,NULL,NULL,NULL,0,NULL)) // + { + printf("environment create error!\n\n"); + return -1; + } + else + { + printf("environment create success!\n\n"); + //return 0; + } + + /*init handle*/ + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_ser,OCI_HTYPE_SERVER,0,NULL)) // + { + printf("init server handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_err,OCI_HTYPE_ERROR,0,NULL)) // + { + printf("init error handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_usr,OCI_HTYPE_SESSION,0,NULL)) // + { + printf("init session handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_svc,OCI_HTYPE_SVCCTX,0,NULL)) //ľ + { + printf("init service context handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_sql,OCI_HTYPE_STMT,0,NULL)) //SQL + { + printf("init statement handle error!\n\n"); + return -1; + } + + printf("init handle success!\n\n"); + + return 0; +} + + + +// ݿ +int ConnServer(char *username,char *password,char *dbname) +{ + int swResult; + char errbuf[100]={0}; + int errcode; + + if(InitHandle() == -1)//ʼ + return -1; + + if(swResult = OCILogon(ociHandle->p_env,ociHandle->p_err,&ociHandle->p_svc,(text *)username,strlen(username),(text *)password,strlen(password),(text *)dbname,strlen(dbname))) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Error - %.*s/n", 512, errbuf); + return -1; + } + else + printf("ݿӳɹ!\n\n"); + return 0; +} + + + +// SQLij(ִSQL) +int _ExeSQL(char *SQL,char ** inputValue,int inputValueCount) +{ + int swResult,i; + int errcode; + + //ð󶨱 + OCIBind *p_bndp[100]; + + //׼SQL + if(swResult = OCIStmtPrepare(ociHandle->p_sql,ociHandle->p_err,(text *)SQL,strlen(SQL),OCI_NTV_SYNTAX,OCI_DEFAULT)) + { + printf("prepare SQL statements error!\n\n"); + } + else + { + printf("prepare SQL statements success!\n\n"); + } + + + // + for(i=0;ip_sql,&p_bndp[i],ociHandle->p_err,i+1,(dvoid *)inputValue[i],(sb4)strlen(inputValue[i])+1,SQLT_STR, (dvoid *) 0, (ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Bind Error - %.*s/n", 512, errbuf); + return -1; + } + } + + //ִSQL statements + if(swResult = OCIStmtExecute(ociHandle->p_svc,ociHandle->p_sql,ociHandle->p_err,1,0,NULL,NULL,OCI_DEFAULT)) + { + char errbuf[100]={0}; + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("execute SQL statement Error - %.*s\n", 512, errbuf); + return -1; + } + else + { + printf("execute SQL statement success!\n\n"); + } + return 0; +} + + + + +// ѯSQL +int _QuerySQL(char *SQL, SqlSelField *pOutField, SqlSelField *pSelField ) +{ + sword status; + int rc= 0,ret=0; + char errbuf[100]={0}; + int maxNum = 2048; + char chTag[8]; + int iIndex = 0; + int outputColumn = 0; + int errcode=0; + char nullValue = '\0'; // + sb2 sb2aInd[30] = {'\0'}; + + // ׼SQL + status = OCIStmtPrepare(ociHandle->p_sql, ociHandle->p_err, (text *)SQL,(ub4)strlen(SQL), (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT); + + if (status != OCI_SUCCESS) + { + printf("SQL Preparing failed/n"); + return -1; + } + + + // int͵, SQLʱ :1,:2, + for (iIndex=0; iIndexnIntNum; iIndex++) + { + memset(chTag, 0, 8); + sprintf(chTag, ":%d", iIndex+1); + if(rc = OCIBindByName(ociHandle->p_sql, (OCIBind **)&ociHandle->p_dfn, ociHandle->p_err, (text *)chTag,(sb4)strlen((char *)chTag),(dvoid *) &pSelField->naIntValue[iIndex], sizeof(int), SQLT_INT,(dvoid *) 0,(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + // char *͵, SQLʱ :3,:4, + for (iIndex=0; iIndexnCharNum; iIndex++) + { + int n=0; + memset(chTag, 0, 8); + n = pSelField->nIntNum + iIndex +1; + sprintf(chTag, ":%d", n); + if(rc = OCIBindByName(ociHandle->p_sql, (OCIBind **)&ociHandle->p_dfn, ociHandle->p_err, (text *)chTag,(sb4)strlen((char *)chTag),(dvoid *) &pSelField->caCharValue[iIndex], NUM, SQLT_STR,(dvoid *) 0,(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + + // ִSQL + if (rc = OCIStmtExecute(ociHandle->p_svc, ociHandle->p_sql, ociHandle->p_err, (ub4) 0, (ub4) 0,(CONST OCISnapshot *) NULL, (OCISnapshot *) NULL, OCI_STMT_SCROLLABLE_READONLY)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("execute SQL Error - %.*s\n", 512, errbuf); + return -1; + } + else + { + printf("execute SQL success!\n\n"); + } + + + if (ret = OCIAttrGet (ociHandle->p_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) &outputColumn, (ub4 *) 0, (ub4)OCI_ATTR_PARAM_COUNT, ociHandle->p_err)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Get OCIAttr Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + + + // int͵, SQLʱ :1,:2, + for (iIndex=0; iIndexnIntNum; iIndex++) + { + if(rc = OCIDefineByPos(ociHandle->p_sql, &ociHandle->p_dfn, ociHandle->p_err, iIndex+1, (dvoid *)&pOutField->naIntValue[iIndex], sizeof(int), SQLT_INT, (dvoid *) 0, (ub2 *)0,(ub2 *)0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + + // char *͵, SQLʱ :1,:2, + for (iIndex=0; iIndexp_sql, &ociHandle->p_dfn, ociHandle->p_err, n, (dvoid *)&pOutField->caCharValue[iIndex], 1000*sizeof(char), SQLT_STR, (dvoid *) 0, (ub2 *)0,(ub2 *)0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + return 0; + +} + + + +// ͷHandler +void QuitFreeHandle() +{ + // ˳ + OCILogoff(ociHandle->p_svc,ociHandle->p_err); + printf("Quit success!\n"); + + // ͷž + OCIHandleFree(ociHandle->p_ser,OCI_HTYPE_SERVER); //ͷŷ + OCIHandleFree(ociHandle->p_err,OCI_HTYPE_ERROR); //ͷŴ + OCIHandleFree(ociHandle->p_usr,OCI_HTYPE_SESSION); //ͷ + OCIHandleFree(ociHandle->p_svc,OCI_HTYPE_SVCCTX); //ͷľ + OCIHandleFree(ociHandle->p_sql,OCI_HTYPE_STMT); //ͷSQL +} + + +// ִ +int ExecuteSQL(char *SQL,int valueCount,char **value) +{ + int i=0; + + if(i=_ExeSQL(SQL,value,valueCount)) + { + printf("1\n"); + QuitFreeHandle(); + return -1; + } + printf("2\n"); + return 0; +} + + +// IJѯ +int QuerySQL(char *SQL, int inputValueCount, char ** inputValue, int * outputColumn, int * outputValueCount, char **** outputValue) +{ + int i = 0, j=0 ,ret =0; + + int times = 0, temp=0; + + SqlSelField infield; + SqlSelField outField; + + // ʼṹ + infield.nCharNum = inputValueCount; + infield.nIntNum = 0; + outField.nCharNum = 0; + outField.nIntNum = 0; + + * outputColumn = 0; + * outputValueCount = 0; + + for(i=0;ip_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) outputColumn, (ub4 *) 0, (ub4)OCI_ATTR_PARAM_COUNT, ociHandle->p_err); + + // ȡһ,ȥ + ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_LAST,0, OCI_DEFAULT); + // ȡ + ret= OCIAttrGet (ociHandle->p_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) outputValueCount, (ub4 *) 0, (ub4)OCI_ATTR_ROW_COUNT, ociHandle->p_err); + + if(*outputValueCount == 0) + return 0; + + + // ʼڴ沢Ҵ洢 + ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_FIRST,0, OCI_DEFAULT); + *outputValue = (char ***) calloc ((*outputValueCount)+1,sizeof(char**)); + do + { + (*outputValue)[i] = (char **) calloc ((*outputColumn)+1,sizeof(char *)); + for(j=0;j<(*outputColumn);j++) + { + (*outputValue)[i][j] = (char *) calloc (1000,sizeof(char)); + strcpy((*outputValue)[i][j],outField.caCharValue[j]); + //printf("outValue[%d][%d] = %s , ַ=%d, ַָ= %d\n ",i,j,(*outputValue)[i][j],&(*outputValue)[i][j],(*outputValue)[i][j]); + } + i++; + } + while((ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_NEXT, 1, OCI_DEFAULT)!= OCI_NO_DATA)); + + return 0; +} + + +// IJѯ +int QuerySQLNoInputParam(char *SQL, int * outputColumn, int * outputValueCount, char **** outputValue) +{ + return QuerySQL(SQL,0,NULL,outputColumn,outputValueCount,outputValue); +} + +// ޲ +int ExecuteSQLNoInputParam(char *SQL) +{ + printf("ʼ\n"); + return ExecuteSQL(SQL,0,NULL); +} + +// Ͽ +void DisConnServer() +{ + if(ociHandle != NULL) + QuitFreeHandle(); +} + diff --git a/jf_itk/ocilib.h b/jf_itk/ocilib.h new file mode 100644 index 0000000..0a4e752 --- /dev/null +++ b/jf_itk/ocilib.h @@ -0,0 +1,98 @@ +/*===================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +======================================================================================================================= +File description: + + Filename: ocilib.h + Module : OCI + + This Header file of OCI library Package. + +======================================================================================================================= +Date Name Description of Change +1-Feb-2015 Ray Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#include +#include +#include +#include +#include +//#include + +#define OCI_FAIL 1 +#define OCI_OK 0 + +#ifdef __cplusplus +extern "C" +{ +#endif + /** + * ݿ. + * @param username - û + * @param password - + * @param dbname - ݿSID + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int ConnServer(char *username,char *password,char *dbname); + + + /** + * ִSQL. + * @param SQL - SQL + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int ExecuteSQLNoInputParam(char *SQL); + + /** + * ִSQL. + * @param SQL - SQL + * @param inputValueCount - + * @param inputValue - ֵ + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int ExecuteSQL(char *SQL,int inputValueCount,char **inputValue); + + /** + * IJѯSQL. + * @param SQL - SQL + * @param outputColumn - е + * @param outputValueCount - е + * @param outputValue - + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int QuerySQLNoInputParam(char *SQL, int * outputColumn, int * outputValueCount, char **** outputValue); + + /** + * IJѯSQL. + * @param SQL - SQL + * @param inputValueCount - + * @param inputValue - ֵ + * @param outputColumn - е + * @param outputValueCount - е + * @param outputValue - + * @return - OCI_OK or error code + * + * ORACLE ݿװ + */ + extern int QuerySQL(char *SQL, int inputValueCount, char ** inputValue, int * outputColumn, int * outputValueCount, char **** outputValue); + + /** + * Ͽݿ. + * + * ORACLE ݿװ + */ + extern void DisConnServer(); + +#ifdef __cplusplus +} +#endif diff --git a/jf_itk/runtime_properties.cpp b/jf_itk/runtime_properties.cpp new file mode 100644 index 0000000..35983fa --- /dev/null +++ b/jf_itk/runtime_properties.cpp @@ -0,0 +1,258 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/** +* @headerfile standard c & cpp header files +*/ +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; + +/** +* @headerfile user's header files +*/ + +#include "epm_handler_common.h" +#include "error_handling.h" +#include "common_itk_util.h" +#include "string_helper.h" + + +#define SAFECALL(x) \ +{ \ + err_function = #x; err_line = __LINE__; \ + if((rcode = (x)) != ITK_ok) \ + { \ + goto CLEANUP; \ + } \ +} +void va_copy( va_list *dest , va_list * src ){ + *dest = *src ; +} +static int SMP_ask_bomline_value( METHOD_message_t * m, va_list args ) +{ + int rcode = ITK_ok; + char *err_string,*err_function; + int err_line = -1; + tag_t objTag = NULLTAG; + const char * prop_name; + char** value = NULL; + char *bom_rev_status = NULL; + char sQty[] = ""; + char sUnRead[] = "UNREADABLE"; + va_list largs; + tag_t bom_line_item = NULLTAG; + tag_t bom_line_rev = NULLTAG; + tag_t last_rev = NULLTAG; + tag_t iman_type_tag = NULLTAG ; + char obj_class_name[TCTYPE_class_name_size_c+1]; + char obj_type_name[TCTYPE_name_size_c+1]; + int attr_bom_item = 0; + int attr_bom_rev = 0; + int attr_bom_rev_status = 0; + char item_rev_id[ITEM_id_size_c+1]="",item_id[ITEM_id_size_c+1]="",rev_id[ITEM_id_size_c+1]="", + strRow[BUFSIZ]="",txtfile[BUFSIZ]="", obj_type[WSO_object_type_size_c+1]=""; + tag_t master_form_rel_type = NULLTAG; + int form_count = 0, attr_qty_id = 0; + tag_t *form_list=NULL, master_form = NULLTAG; + char *d_value=NULL, *qty_value = NULL; + + METHOD_PROP_MESSAGE_OBJECT(m, objTag) /* objTag is the tag of the property's owning object */ + METHOD_PROP_MESSAGE_PROP_NAME(m, prop_name) /* prop_name is the name of the current property */ + printf("\n name : %s\n",prop_name); + + va_copy( &largs, &args ); + va_arg( largs, tag_t ); /* ignore the first tag_t arg */ + value = va_arg( largs, char**); + va_end( largs ); + //ȡĿ + ITKCALL( TCTYPE_ask_object_type( objTag,&iman_type_tag ) ); + ITKCALL( TCTYPE_ask_class_name(iman_type_tag,obj_class_name));//get ClassName of attachment + ITKCALL( TCTYPE_ask_name(iman_type_tag,obj_type_name) ); + printf("\n Type name : %s\n",obj_type_name); + TC_write_syslog("\n Type name : %s\n",obj_type_name); + //if ( strcmp( obj_type_name , "Mfg0BvrPart" ) == 0 ) + //{ + // + //} + if ( strcmp( obj_type_name , "Mfg0BvrPart" ) == 0 ) + //if ( strcmp( obj_type_name , "BOMLine" ) == 0 ) + { + printf("\n is Mfg0BvrPart\n"); + SAFECALL( BOM_line_look_up_attribute( bomAttr_lineItemTag , & attr_bom_item ) ); + SAFECALL( BOM_line_look_up_attribute( bomAttr_lineItemRevTag , & attr_bom_rev ) ); + SAFECALL( BOM_line_look_up_attribute( bomAttr_occQty , & attr_qty_id ) ); + SAFECALL( BOM_line_ask_attribute_tag( objTag, attr_bom_item , &bom_line_item )); + SAFECALL( BOM_line_ask_attribute_tag( objTag, attr_bom_rev , &bom_line_rev )); + SAFECALL( BOM_line_ask_attribute_string( objTag, attr_qty_id, &qty_value )); + SAFECALL( WSOM_ask_object_type(bom_line_item, obj_type )); + printf("\n obj_type=%s",obj_type); + TC_write_syslog("\n obj_type=%s",obj_type); + //if( strcmp(obj_type, "Mfg0BvrPart") == 0) + if( strcmp(obj_type, "C7Part") == 0) + { + SAFECALL( GRM_find_relation_type( TC_master_form_rtype, &master_form_rel_type ) ); + SAFECALL( GRM_list_secondary_objects_only(bom_line_rev, master_form_rel_type, &form_count, &form_list )); + master_form = form_list[0]; + if( master_form != NULLTAG ) + { + SAFECALL(AOM_UIF_ask_value(master_form, "c7GeneralClfion", &d_value)); + printf("\n d_value=%s\n",d_value); + TC_write_syslog("\n d_value=%s\n",d_value); + //޸ӱʶ + if( strcmp(d_value, "C") == 0 + || strcmp(d_value, "F") == 0 + || strcmp(d_value, "F1") == 0 + || strcmp(d_value, "F2") == 0 + || strcmp(d_value, "F3") == 0 ) + { + strcpy(sQty,""); + } + else + { + if( strcmp(qty_value,"") == 0) + { + strcpy(sQty,"1"); + } + else + strcpy(sQty,qty_value); + } + MEM_free(d_value); + } + MEM_free(form_list); + } + + } +CLEANUP : + + if( rcode != ITK_ok) + { + if ( 515001 == rcode || err_line == 80 ){ + if ( *value != NULL ) MEM_free( *value ); + *value = NULL; + *value = (char*)MEM_alloc ( 10 + 1 ); + strcpy ( *value, "1" ); + EMH_clear_errors( ); + rcode = ITK_ok; + }else + { + EMH_ask_error_text (rcode, &err_string); + printf ("ERROR: %d ERROR MSG: %s.\n", rcode, err_string); + printf ("Function: %s FILE: %s LINE: %d\n", err_function, __FILE__, err_line); + MEM_free (err_string); + } + TC_write_syslog("\n rcode != ITK_ok"); + }else{ + if ( *value != NULL ) MEM_free( *value ); + *value = NULL ; + *value = (char*)MEM_alloc ( strlen ( sQty ) + 1 ); + strcpy ( *value, sQty ); + TC_write_syslog("\n else sQty=%s",sQty); + } + + return rcode; +} + +int SMP_init_user_bomline_props(METHOD_message_t* m, va_list args) +{ + int rcode = ITK_ok; + char *err_string,*err_function; + int err_line = -1; + tag_t type_tag; + tag_t pd_tag = NULLTAG; + METHOD_id_t method; + char typename_cpp[TCTYPE_name_size_c+1]; + tag_t lov_tag; + tag_t tmp_lov_tag; + + + va_list largs; + va_copy( &largs, &args ); + type_tag = va_arg( largs, tag_t ); + va_end( largs ); + + ITKCALL( TCTYPE_ask_name( type_tag, typename_cpp ) ); + + /* ====== add properties for Bomline class types ====== */ + /* ---- add superseded runtime property ---- */ + ITKCALL( TCTYPE_add_runtime_property( type_tag, "JK8SupplyType",PROP_string,1,&pd_tag ) ); + + /* --- set display name...can also be done in user_property_names.uil --- */ + ITKCALL( PROPDESC_set_display_name(pd_tag,"JK8SupplyType") ); + + /* --- register method to ask value --- */ + ITKCALL( METHOD_register_prop_method( (const char*)typename_cpp, "JK8SupplyType", PROP_ask_value_string_msg, SMP_ask_bomline_value , 0 , &method ) ); + printf("\n METHOD_register_prop_method"); + /* --- register method to set value --- */ + //SAFECALL( PROPDESC_set_protection( pd_tag, PROP_write ) ); + //SAFECALL( METHOD_register_prop_method( (const char*)typename, "superseded", PROP_set_value_string_msg, SMP_set_bomline_superseded , 0 , &method ) ); + +CLEANUP: + + if( rcode != ITK_ok) + { + EMH_ask_error_text (rcode, &err_string); + printf ("ERROR: %d ERROR MSG: %s.\n", rcode, err_string); + printf ("Function: %s FILE: %s LINE: %d\n", err_function, __FILE__, err_line); + MEM_free (err_string); + } + + return( ITK_ok ); + +} + + +extern int Run_Time_register_properties( void ) +{ + int rcode = ITK_ok; + char *err_string,*err_function; + int err_line = -1; + + USER_prop_init_entry_t user_types_methods[]= { { "BOMLine" , SMP_init_user_bomline_props , NULL } }; + + int n_types = sizeof(user_types_methods)/sizeof(USER_prop_init_entry_t); + + SAFECALL( TCTYPE_register_properties(user_types_methods, n_types )); + printf("\n TCTYPE_register_properties\n"); + TC_write_syslog("\n TCTYPE_register_properties\n"); +CLEANUP: + + if( rcode != ITK_ok) + { + EMH_ask_error_text (rcode, &err_string); + printf ("ERROR: %d ERROR MSG: %s.\n", rcode, err_string); + printf ("Function: FILE: %s LINE: %d\n", __FILE__, err_line); + MEM_free (err_string); + } + + return rcode; +} diff --git a/jf_itk/signoff_rev.cpp b/jf_itk/signoff_rev.cpp new file mode 100644 index 0000000..402aa98 --- /dev/null +++ b/jf_itk/signoff_rev.cpp @@ -0,0 +1,639 @@ +#include "signoff_rev.h" +#include "tccore\iman_msg.h" + + +//̽ڵϢ +struct FLOWNODEINFOS +{ + char taskname[128]; + char username[128]; + char timeinfo[128]; + char group[128]; + char comments[1024]; +}flownode_s[64]; + +//ԱϢ +struct USERINFOS +{ + char taskname[128]; + char propertyname[128]; + char group[128]; +}userinfo_s[64]; + +//Ϣ +struct TIMEINFOS +{ + char taskname[128]; + char propertyname[128]; + char group[128]; +}timeinfo_s[64]; + + + +int nodecount = 0; +int userinfoscount = 0; +int timeinfoscount = 0; + + + + +extern "C" int POM_AM__set_application_bypass(logical bypass); + +int ORIGIN_ask_sign_info(tag_t task_node, char *output_str,char *task_name,char *arg3value) +{ + int ifail = ITK_ok; + tag_t cur_perform_task = NULLTAG,tempTask = NULLTAG; + char cur_task_name[WSO_name_size_c+1]="",buf[128] = ""; + //жϱ + int s = 0; + EPM_decision_t decision = EPM_nogo; + char* userName; + char *timeinfo1 = "",person_name[SA_name_size_c+1]="",*group_name="",*prop_name = "last_mod_date"; + tag_t aUserTag = NULLTAG,responsibleParty = NULLTAG; + date_t decision_date; + //ڵ + int perform_count = 0; + int *attach_type; + tag_t *perform_attaches = NULLTAG; + tag_t memberTag = NULLTAG; + SIGNOFF_TYPE_t memberType; + CR_signoff_decision_t signoff_decision; + char *comments,*timeinfo="",*group_full_name = NULL; + tag_t user_tag=NULLTAG, group_tag = NULLTAG; + //ѭжϱ + int i=0; + + EPM_ask_name( task_node, cur_task_name ) ; + ECHO("cur_task_name = %s\n",cur_task_name); + if ( stricmp( cur_task_name, "perform-signoffs" ) == 0 ) + { + cur_perform_task = task_node; + //õڵ + EPM_ask_parent_task( cur_perform_task, &tempTask ); + EPM_ask_name( tempTask, cur_task_name ); + } + else if( strstr( cur_task_name, "" )!=NULL || strcmp( cur_task_name, "" ) == 0) + { + cur_perform_task = task_node; + } + else + { + EPM_ask_sub_task(task_node, "perform-signoffs", &cur_perform_task) ; + if ( cur_perform_task != NULLTAG ) + { + EPM_ask_name( task_node, cur_task_name ); + + } + } + if(cur_perform_task != NULLTAG ) + { + if( strstr(cur_task_name,"") !=NULL||strcmp( cur_task_name, "" ) == 0 ) + { + tag_t owner = NULLTAG; + s = EPM_ask_responsible_party(cur_perform_task,&responsibleParty); + if(responsibleParty != NULLTAG) + { + decision = EPM_go; + } + AOM_ask_owner( cur_perform_task, &owner); + //s = POM_get_user(&userName,&aUserTag); + if( owner != NULLTAG ) + SA_ask_user_person_name(owner, person_name); + AOM_ask_value_date(cur_perform_task,prop_name,&decision_date); + DATE_date_to_string(decision_date,arg3value,&timeinfo1); + //ITK_date_to_string (decision_date, &timeinfo1); + strcpy(flownode_s[nodecount].taskname,cur_task_name); + strcpy(flownode_s[nodecount].username,person_name); + strcpy(flownode_s[nodecount].timeinfo,timeinfo1); + + nodecount = nodecount + 1; + //MEM_free(userName); + } + else + { + //˼ + tag_t owner = NULLTAG; + date_t date; + logical is_valid; + char *d_value = NULL; + AOM_ask_owner( cur_perform_task, &owner); + if( owner != NULLTAG ) + SA_ask_user_person_name(owner, person_name); + AOM_ask_value_date(cur_perform_task,"creation_date", &date);//fnd0StartDate + DATE_date_to_string(date,arg3value,&d_value); + //ITKCALL(AOM_UIF_ask_value( cur_perform_task, "fnd0StartDate", &d_value));; + + //CALL(DATE_date_to_string(date,arg3value,&timeinfo)); + //ITKCALL(DATE_string_to_date_t(d_value, &is_valid,&date)); + //CALL(DATE_date_to_string(date,arg3value,&timeinfo)); + //ECHO("timeinfo : %s",timeinfo); + //vector ans; + //if( d_value != NULL ) + //{ + // Split(d_value, ' ', ans); + // if(ans.size() > 1) + // strcat(output_str,ans[0].c_str()); + //} + EPM_ask_all_attachments(cur_perform_task,&perform_count,&perform_attaches,&attach_type); + + for(i=0;i 0) + { + for (i=0;i type_vec; + + //Split(exclude_type,";",type_vec); + + ECHO("1%d\n",userinfoscount); + ECHO("2%d\n",timeinfoscount); + + //õhandlerĽڵ + msg.task; + //ͨڵȡ + EPM_ask_root_task( msg.task, &root_task ); + //õµеһڵ + EPM_ask_sub_tasks( root_task, &sub_task_count, &sub_tasks); + //õ̵ + EPM_ask_name( root_task, root_task_name ); + // + ECHO("root_task_name=%s\n",root_task_name); + EPM_ask_name( current_task, task_name ); + ECHO( "sub_task_count = %d\n", sub_task_count ); + + //test========================== + //tag_t user = NULLTAG, *tasks = NULL; + //int n_task= 0; + //ITKCALL(SA_find_user( "admin", &user )); + //ITKCALL(SA_ask_user_work_contexts ( user, &n_task, &tasks)); + //ECHO("==========n_task=%d",n_task); + //============================== + + //DOڵ doڵ + if(strstr(task_name,"") !=NULL||strcmp(task_name,"") == 0) + { + ECHO("task_name:%s",task_name); + //ȡ + s = EPM_ask_responsible_party(current_task,&responsibleParty); + if(responsibleParty != NULLTAG) + { + decision = EPM_go; + } + //ȡǰû + s = POM_get_user(&userName,&aUserTag); + //ȡpersonname + SA_ask_user_person_name(aUserTag,person_name); + strcat(sign_info,task_name); + strcat(sign_info,"="); + strcat(sign_info,person_name); + strcat(sign_info,"|"); + strcat(sign_info,task_name); + strcat(sign_info,"="); + //POM_ask_v + //ȡʱԣ1󣬲2ƣ3ȡʱֵ + AOM_ask_value_date(current_task,prop_name,&decision_date); + //AOM_UIF_ask_value(current_task,prop_name, &timeinfo2); + //ʱṹתΪijʱʽַ + DATE_date_to_string(decision_date,arg3value,&timeinfo2); + ECHO("\n--------------\n timeinfo2=%s\n------------\n",timeinfo2); + strcat(sign_info,timeinfo2); + strcat(sign_info,"|"); + strcpy(flownode_s[nodecount].taskname,task_name); + strcpy(flownode_s[nodecount].username,person_name); + strcpy(flownode_s[nodecount].timeinfo,timeinfo2); + nodecount = nodecount + 1; + + } + else //performڵ + { + for(i=0;i +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int WF_signoff_rev(EPM_action_message_t msg); \ No newline at end of file diff --git a/jf_itk/string_helper.cpp b/jf_itk/string_helper.cpp new file mode 100644 index 0000000..553e6f3 --- /dev/null +++ b/jf_itk/string_helper.cpp @@ -0,0 +1,146 @@ +/** +* @file string_helper.cpp +* @brief string utility functions' implemention +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +* 14-Jau-2009 James modify Split functions, add trim blank characters +*/ +#pragma warning(disable:4996) +// +//#include +//#include +//#include +#include "string_helper.h" + +string TrimString( string strArg ) +{ + size_t index1 = 0; + index1 = strArg.find_first_not_of( ' '); + if( index1 != string::npos ) + strArg.erase( strArg.begin(), strArg.begin()+index1 ); + index1 = strArg.find_last_not_of( ' '); + if( index1 != string::npos ) + strArg.erase( strArg.begin() + index1 + 1 ); + return strArg; +} + +void Split( string strArg, char spliter, vector &ans ) +{ + ans.clear(); + size_t index0 = 0; + string one_arg; + if ( strArg.find_first_not_of(' ') == string::npos ) + strArg = ""; + while( strArg.size()>0 ) + { + index0 = strArg.find_first_of( spliter ); + if( index0 != string::npos ) + { + one_arg = strArg.substr( 0,index0 ); + strArg = strArg.substr( index0 + 1 ); + ans.push_back( one_arg ); + } + else + { + ans.push_back( strArg ); + break; + } + } +} + +void Split( string strArg, string spliter, vector &ans ) +{ + + ans.clear(); + + size_t index0; + string one_arg; + + if ( strArg.find_first_not_of(" ") == string::npos ) + strArg = ""; + + + while( strArg.size()>0 ) + { + + index0 = strArg.find(spliter); + + if( index0 != string::npos ) + { + + one_arg = strArg.substr( 0, index0 ); + strArg = strArg.substr( index0 + spliter.size() ); + + ans.push_back( one_arg ); + } + else + { + + ans.push_back( strArg ); + break; + } + } +} + + +void RemoveLiner( string &in, string &out ) +{ + char buf[BUFSIZ] = ""; + for( int i=0; i<(int)in.size(); i++ ) + { + if( in[i] == '\n') + continue; + else + sprintf( buf,"%s%c", buf, in[i] ); + } + out.assign(buf); +} + +////Converting a WChar string to a Ansi string +//std::string WChar2Ansi(LPCWSTR pwszSrc) +//{ +// int nLen = WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL); +// +// if (nLen<= 0) return std::string(""); +// +// char* pszDst = new char[nLen]; +// if (NULL == pszDst) return std::string(""); +// +// WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL); +// pszDst[nLen -1] = 0; +// +// std::string strTemp(pszDst); +// delete [] pszDst; +// +// return strTemp; +//} +// +//string ws2s(wstring& inputws){ return WChar2Ansi(inputws.c_str()); } +// +////Converting a Ansi string to WChar string +//std::wstring Ansi2WChar(LPCSTR pszSrc, int nLen) +//{ +// int nSize = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pszSrc, nLen, 0, 0); +// if(nSize <= 0) return NULL; +// +// WCHAR *pwszDst = new WCHAR[nSize+1]; +// if( NULL == pwszDst) return NULL; +// +// MultiByteToWideChar(CP_ACP, 0,(LPCSTR)pszSrc, nLen, pwszDst, nSize); +// pwszDst[nSize] = 0; +// +// if( pwszDst[0] == 0xFEFF) // skip Oxfeff +// for(int i = 0; i < nSize; i ++) +// pwszDst[i] = pwszDst[i+1]; +// +// wstring wcharString(pwszDst); +// delete pwszDst; +// +// return wcharString; +//} +// +//std::wstring s2ws(const string& s){ return Ansi2WChar(s.c_str(),s.size());} + diff --git a/jf_itk/string_helper.h b/jf_itk/string_helper.h new file mode 100644 index 0000000..b4f7532 --- /dev/null +++ b/jf_itk/string_helper.h @@ -0,0 +1,25 @@ +/** +* @file string_helper.h +* @brief string utilities to help dealing with string +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +*/ + +#ifndef STRING_HELPER +#define STRING_HELPER + +#include +#include +using namespace std; + +string TrimString( string strArg ); +void Split( string strArg, char spliter, vector &ans ); +void Split( string strArg, string spliter, vector &ans ); +void RemoveLiner( string &in, string &out ); +//string ws2s(wstring& inputws); +//wstring s2ws(const string& s); + +#endif \ No newline at end of file diff --git a/jf_itk/string_utils.cxx b/jf_itk/string_utils.cxx new file mode 100644 index 0000000..9f6b79a --- /dev/null +++ b/jf_itk/string_utils.cxx @@ -0,0 +1,253 @@ +/*================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +==================================================================================================================== +File description: + Filename: string_utils.c + Module : Common module. + + This file includes some operations of the string. + +==================================================================================================================== +Date Name Description of Change +3-Feb-2015 Ray li Initialize creation +$HISTORY$ +===================================================================================================================*/ +#ifndef _cplusplus +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE +#endif +#endif + +#include +#include +#include +#include +#include +#include + +#include "string_utils.h" + +void Split( string strArg, string spliter, vector &ans ) +{ + ans.clear(); + size_t index0; + string one_arg; + if ( strArg.find_first_not_of(' ') == string::npos ) + strArg = ""; + while( strArg.size()>0 ) + { + index0 = strArg.find(spliter); + if( index0 != string::npos ) + { + one_arg = strArg.substr( 0, index0 ); + strArg = strArg.substr( index0 + spliter.size() ); + ans.push_back( one_arg ); + } + else + { + ans.push_back( strArg ); + break; + } + } +} +char* GSTR_clone( char **dst, const char *src ) +{ + char *retVal = NULL; + int srcLen = 0; + + *dst = NULL; + if (src == NULL) + return NULL; + + srcLen = (int)tc_strlen( src ) + 1; + *dst = (char*)MEM_alloc( srcLen * sizeof(char) ); + retVal = tc_strncpy( *dst, src, srcLen ); + (*dst)[srcLen - 1] = '\0'; + + return retVal; +} + +char* GSTR_copy( char *dst, const char *src, int dstSize ) +{ + char *retVal = tc_strncpy( dst, src, dstSize ); + dst[dstSize - 1] = '\0'; + return retVal; +} + +char* GSTR_int_to_string( char **dst, int value ) +{ + char strVal[128 + 1]; + + *dst = NULL; + memset( strVal, 0, sizeof(strVal)/sizeof(char) ); + sprintf( strVal, "%d", value ); + + return GSTR_clone( dst, strVal ); +} + +void GSTR_format_int_to_string( char *dst, int digitNum, int value ) +{ + char sNum[WSO_desc_size_c + 1]; + sprintf( sNum, "%%0%dd", digitNum ); + sprintf( dst, sNum, value ); +} + +void GSTR_format_string( const char *dst, int m, const char *fill_char, char **out ) +{ + char sNum[WSO_name_size_c + 1] = {0}; + char sNew[WSO_name_size_c + 1] = {0}; + sprintf( sNum, "%%%d.%ds", m, m ); + sprintf( sNew, sNum, dst ); + STRNG_replace_str( sNew, " ", fill_char, out ); +} + + +char* GSTR_string_append( const char *s1, const char *s2 ) +{ + char *s = NULL; + if (s1 == NULL || s2 == NULL) + { + GSTR_clone(&s, s1 == NULL ? (s2 == NULL ? "" : s2) : s1 ); + } + else + { + int size = (int)tc_strlen(s1) + (int)tc_strlen(s2) + 1; + s = (char *)MEM_alloc( size ); + tc_strcpy( s, s1 ); + tc_strcat( s, s2 ); + s[size - 1] = '\0'; + } + return s; +} + +logical GSTR_is_float(const char *str) +{ + logical isfloat = true; + char *pStr = (char *)str; + logical hasPositive = false; + logical hasMinus = false; + logical hasDot = false; + + if (str == NULL) + return false; + + while (*pStr != '\0' && isfloat == true) + { + if ( (*pStr >= '0' && *pStr <= '9')) + { + //continue; + } + else if ( *pStr == '+' ) + { + isfloat = (hasPositive ? false : (hasPositive = true)); + } + else if ( *pStr == '-' ) + { + isfloat = (hasMinus ? false : (hasMinus = true)); + } + else if ( *pStr == '.' ) + { + isfloat = (hasDot ? false : (hasDot = true)); + } + else + isfloat = false; + + pStr ++; + } + return isfloat; +} + +logical GSTR_is_number(const char *str) +{ + logical is_number = true; + char *pStr = (char *)str; + if (str == NULL) + return false; + + while (*pStr != '\0') + { + if ( !( (*pStr >= '0' && *pStr <= '9') || *pStr == '-' ) ) + { + is_number = false; + break; + } + pStr ++; + } + return is_number; +} + +logical GSTR_is_ascii(char ch) +{ + return ((unsigned int)ch) < 128; +} + +int GSTR_trim_l( char *str, char s ) +{ + int count = 0; + char *pointer = str, *poffset = NULL; + if (str == NULL || str[0] == '\0') + return 0; + + while ( *pointer != '\0' ) + { + if ( *pointer != s ) + { + break; + } + count++; + pointer++; + } + if (count == 0) + return 0; + + poffset = str + count; + pointer = str; + while ( *poffset != '\0' ) + { + *pointer = *poffset; + pointer ++; + poffset ++; + } + *pointer = '\0'; + + return count; +} + +int GSTR_trim_r( char *str, char s ) +{ + int count = 0; + char *pointer = NULL; + if (str == NULL || str[0] == '\0') + return 0; + + pointer = str + ((int) strlen(str) - 1); + + while ( pointer != str ) + { + if ( *pointer != s ) + { + break; + } + + *pointer = '\0'; + + count++; + pointer--; + } + + return count; +} + +void GSTR_trim_float( char *floatValue ) +{ + if ( !IS_EMPTY(floatValue) && tc_strstr(floatValue, ".") != NULL ) + { + int len = 0; + GSTR_trim_r(floatValue, '0'); + len = (int)tc_strlen(floatValue); + if (floatValue[ len - 1 ] == '.') + floatValue[ len - 1 ] = '\0'; + } +} + diff --git a/jf_itk/string_utils.h b/jf_itk/string_utils.h new file mode 100644 index 0000000..4b379cc --- /dev/null +++ b/jf_itk/string_utils.h @@ -0,0 +1,125 @@ +/*===================================================================================================================== + Copyright(c) 2005 ORIGIN PLM Software Corp. All rights reserved. + Unpublished - All rights reserved +======================================================================================================================= +File description: + Filename: string_utils.h + Module : Common module. + + This file includes some operations of the string. + +======================================================================================================================= +Date Name Description of Change +14-Jul-2009 Ray Li Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#ifndef STRING_UTILS_H +#define STRING_UTILS_H +#include +#include +#include +using namespace std; +#ifdef __cplusplus + extern "C" + { +#endif + +// @{{ String assister +#define IS_NULL(S) ((S)==NULL) +#define IS_EMPTY(S) (((S)==NULL) || !(*(S))) +// @}} + void Split( string strArg, string spliter, vector &ans ); + /** + * Clones the string. + * @param dst - the output string. + * @param src - the string to be cloned. + * @return - the destinatin string pointer. + */ + extern char* GSTR_clone( char **dst, const char *src ); + + /** + * Copy safely the string with null end. + * @param dst - the output string. + * @param src - the string to be cloned. + * @param dstSize - the size of output string. + * @return - the destinatin string pointer. + */ + extern char *GSTR_copy( char *dst, const char *src, int dstSize ); + + /** + * Converts int to string. + * @param dst - the output string. + * @param value - the int to be cloned. + * @return - the destinatin string pointer. + */ + extern char* GSTR_int_to_string( char **dst, int value ); + + /** + * Formats the int/string value as string. + * @param dst - the destination string. + * @param digitNum - the digit number of the value. + * @param value - the value to be converted. + * @return - N/A. + */ + extern void GSTR_format_int_to_string( char *dst, int digitNum, int value ); + extern void GSTR_format_string( const char *dst, int m, const char *fill_char, char **out ); + + /** + * Appends the strings( never null returned ) + * @param s1 - string 1 + * @param s2 - string 2 + * @return - new string + */ + extern char* GSTR_string_append( const char *s1, const char *s2 ); + + /** + * Whether the string is float type + * @param str - The string + * + * NOTE: it's only check whether each word is in "+-.0123456789", not care the float with "E" or the float rule, + * like "00-1.+01", it will return true. + * @return - return true if it is one. + */ + extern logical GSTR_is_float(const char *str); + + /** + * Whether all char of the string are number + * @param str - The string + * + * NOTE: it's only check whether each word is in "0123456789" + * @return - return true if it is one. + */ + extern logical GSTR_is_number(const char *str); + + /** + * Is ascii char + * @param ch - ascii char + * @return - return true if it is. + */ + extern logical GSTR_is_ascii(char ch); + + /** + * Trims the string's prefix. + * @param str - The string + * @param s - The char + * + * @return - count. + */ + extern int GSTR_trim_l( char *str, char s ); + extern int GSTR_trim_r( char *str, char s ); + + /** + * Remove the zero. + * For Example: + * floatValue="50.00" -> = "50" + * floatValue="50.0100" -> = "50.01" + * @return - count. + */ + extern void GSTR_trim_float( char *floatValue ); + +#ifdef __cplusplus + } +#endif + + +#endif //STRING_UTILS_H diff --git a/jf_itk/tc_log.cxx b/jf_itk/tc_log.cxx new file mode 100644 index 0000000..8c4d149 --- /dev/null +++ b/jf_itk/tc_log.cxx @@ -0,0 +1,103 @@ +/** +* @file common_itk_util.cpp +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 18-July-2008 Ray +*/ +#include +#include +#include + +#include +#include +#include +#include +// +#ifdef WIN32 +#include +#include +#else +#include +#endif +// +#include "tc_log.h" + +#define ARGS_LENGTH 200 +#define MAX_PRINTLINE_LENGTH 2000 +#define MAX_PATH_LENGTH 2000 +#define MAX_ARGUMENT_LENGTH 400 +#define MAX_PARAMNAME_LENGTH 50 +#define MAX_FILE_EXT_LENGTH 10 +#define TRUE_FLAG 1 +#define FALSE_FLAG 0 +#define DETAILLOG 1 + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} + + +FILE* logFile = NULL; + +void CreateLogFile(char* logFileName) +{ + int i=0; + + logFile = NULL; + + + //get logFileName + sprintf(logFileName, "%s", logFileName); + printf("log file name: %s\n", logFileName); + + + //create log file + if((logFile = fopen(logFileName, "w"))==NULL) + { + printf("log file create failed\n"); + } + +} + +void WriteLog(const char* format, ...) +{ + va_list arg; + char tmp[MAX_PRINTLINE_LENGTH]; + + if(logFile) + { + //get the message + memset(tmp, 0, sizeof(tmp)); + va_start(arg, format); + vsprintf(tmp, format, arg); + va_end(arg); + + //----------print to command window for trace--------// + printf("%s\n", tmp); + + //print message to log file + fprintf(logFile, "%s\n", tmp); + fflush(logFile); + } + else + { + printf("*!Error!*: Log File Not Exist\n"); + } +} + +void CloseLog(void) +{ + if(logFile) + { + fclose(logFile); + logFile = NULL; + } +} diff --git a/jf_itk/tc_log.h b/jf_itk/tc_log.h new file mode 100644 index 0000000..8dc0a0a --- /dev/null +++ b/jf_itk/tc_log.h @@ -0,0 +1,30 @@ +/** +* @file common_itk_util.h +* @brief itk warpper utility function +* @author Ray +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 Ray +*/ + +#ifndef TC_LOG_H +#define TC_LOG_H + +#ifdef __cplusplus +extern "C" { +#endif + +void CreateLogFile(char* logFileName); +void WriteLog(const char* format, ...); +void CloseLog(void); +//int FindDatasetReferenceExt( tag_t datasettype, const char *datasettype_ref, char ext[10] ); +//int CompareDate( date_t date1, date_t date2 ); +//int GetRandomTempFile( char tempFile[256] ); +//logical IsItemRevisionType( char object_type[WSO_name_size_c + 1] ); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/jf_itk/w2_Clear_Form_PropValue.cpp b/jf_itk/w2_Clear_Form_PropValue.cpp new file mode 100644 index 0000000..ede30be --- /dev/null +++ b/jf_itk/w2_Clear_Form_PropValue.cpp @@ -0,0 +1,522 @@ +#include "w2_Clear_Form_PropValue.h" +#include "error_handling.h" +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//#include +using namespace std; +#ifdef __cplusplus +extern "C" { +#endif + + + int delete_msword(tag_t dataset,char *ext) +{ + tag_t spec_dataset_rev = NULLTAG , ref_object = NULLTAG; + AE_reference_type_t reference_type; + printf("\n111111111111\n"); + AE_ask_dataset_latest_rev(dataset, &spec_dataset_rev); + + char ref_name[WSO_name_size_c + 1] = "Fnd0word"; + //printf("\n22222222222\n"); + AE_ask_dataset_named_ref(spec_dataset_rev, ref_name, &reference_type, &ref_object); + if(reference_type == AE_PART_OF) + { + printf("\n3333333333333\n"); + char pathname[SS_MAXPATHLEN] = ""; + IMF_ask_file_pathname(ref_object, SS_WNT_MACHINE, pathname); + char origin_file_name[IMF_filename_size_c + 1] = ""; + IMF_ask_original_file_name(ref_object, origin_file_name); + printf("\n44444444444444\n"); + char new_ds_name[WSO_name_size_c + 1] = ""; + char *new_file_name = USER_new_file_name(new_ds_name, ref_name, ext, 0); + char *temp_dir = getenv("temp"); + printf("\n555555555555\n"); + char temp_file[SS_MAXPATHLEN] = ""; + strcpy(temp_file, temp_dir); + strcat(temp_file, "\\"); + strcat(temp_file, new_file_name); + + IMF_export_file(ref_object, temp_file); + printf("\n66666666666666\n"); + + int iCnt; + char *user_lib_env,pTempStr[500]; + char local_path[MAX_PATH] = ""; + char cmd[256] = ""; + //user_lib_env = getenv("TC_USER_LIB"); + //strcpy(local_path, user_lib_env); + + //iCnt = strlen(user_lib_env); + //while( user_lib_env[iCnt] != '\\' ) + //{ + // iCnt--; + //} + + //strcpy(pTempStr,""); + //strcpy(pTempStr,&user_lib_env[iCnt+1]); + + //if( strcmp(pTempStr,"SubstMacros-MSWord.wsf") != 0 ) + //{ + // strcat( user_lib_env, "\\SubstMacros-MSWord.wsf" ); + //} + + //strcpy( cmd, user_lib_env ); + strcpy( cmd, "DeleteMacros-MSWord.wsf" ); + strcat( cmd, " \"" ); + strcat( cmd, temp_file ); + strcat( cmd, "\"" ); + printf( "\n%s\n",cmd ); + system( cmd ); + printf("\n777777777777\n"); + //strcpy(user_lib_env, local_path); + + + tag_t new_file_tag = NULLTAG; + IMF_file_t file_descriptor; + IMF_import_file(temp_file, new_file_name, SS_BINARY, &new_file_tag, &file_descriptor); + IMF_set_original_file_name(new_file_tag, origin_file_name); + IMF_close_file(file_descriptor); + AOM_save(new_file_tag); + AOM_unlock(new_file_tag); + + AOM_lock(spec_dataset_rev); + + AE_remove_dataset_named_ref_by_tag(spec_dataset_rev, ref_name, ref_object); + + AE_add_dataset_named_ref(spec_dataset_rev, ref_name, AE_PART_OF, new_file_tag); + AOM_save(spec_dataset_rev); + AOM_unlock(spec_dataset_rev); + } + return ITK_ok; +} + + + + +int delete_msexcel(tag_t dataset, char *ext) +{ + tag_t spec_dataset_rev = NULLTAG, + ref_object = NULLTAG; + + AE_reference_type_t reference_type; + + AE_ask_dataset_latest_rev(dataset, &spec_dataset_rev); + + char ref_name[WSO_name_size_c + 1] = "excel"; + AE_ask_dataset_named_ref(spec_dataset_rev, ref_name, &reference_type, &ref_object); + if(reference_type == AE_PART_OF) + { + char pathname[SS_MAXPATHLEN] = ""; + IMF_ask_file_pathname(ref_object, SS_WNT_MACHINE, pathname); + char origin_file_name[IMF_filename_size_c + 1] = ""; + IMF_ask_original_file_name(ref_object, origin_file_name); + + char new_ds_name[WSO_name_size_c + 1] = ""; + char *new_file_name = USER_new_file_name(new_ds_name, ref_name, ext, 0); + char *temp_dir = getenv("temp"); + char temp_file[SS_MAXPATHLEN] = ""; + strcpy(temp_file, temp_dir); + strcat(temp_file, "\\"); + strcat(temp_file, new_file_name); + + IMF_export_file(ref_object, temp_file); + + + int iCnt; + char *user_lib_env,pTempStr[500]; + char local_path[MAX_PATH] = ""; + char cmd[256] = ""; + /*user_lib_env = getenv("TC_USER_LIB"); + strcpy(local_path, user_lib_env); + + iCnt = strlen(user_lib_env); + while( user_lib_env[iCnt] != '\\' ) + { + iCnt--; + } + strcpy(pTempStr,""); + strcpy(pTempStr,&user_lib_env[iCnt+1]); + + if( strcmp(pTempStr,"SubstMacros-MSExcel.wsf") != 0 ) + { + strcat( user_lib_env, "\\SubstMacros-MSExcel.wsf" ); + }*/ + //strcpy( cmd, user_lib_env ); + strcpy( cmd, "DeleteMacros-MSExcel.wsf" ); + strcat( cmd, " \"" ); + strcat( cmd, temp_file ); + strcat( cmd, "\"" ); + printf( "\n%s\n",cmd ); + system( cmd ); + + //strcpy(user_lib_env, local_path); + + + tag_t new_file_tag = NULLTAG; + IMF_file_t file_descriptor; + IMF_import_file(temp_file, new_file_name, SS_BINARY, &new_file_tag, &file_descriptor); + IMF_set_original_file_name(new_file_tag, origin_file_name); + IMF_close_file(file_descriptor); + AOM_save(new_file_tag); + AOM_unlock(new_file_tag); + + AOM_lock(spec_dataset_rev); + //CALL(AOM_load (dataset)); + //CALL(AOM_load(spec_dataset_rev)); + AE_remove_dataset_named_ref_by_tag(spec_dataset_rev, ref_name, ref_object); + AE_add_dataset_named_ref(spec_dataset_rev, ref_name, AE_PART_OF, new_file_tag); + AOM_save(spec_dataset_rev); + AOM_unlock(spec_dataset_rev); + } + + return ITK_ok; +} + + + + + + + int W2_Revise_clear_form( METHOD_message_t* msg, va_list args ) + { + int ifail = ITK_ok, i = 0, j = 0; + + char rev_type[ITEM_type_size_c + 1], + *optionname= "W2_Revise_clear_form";\ + map prop_map; + //int msgid = va_arg(args,int ); + tag_t new_rev = va_arg(args,tag_t ); + char* operation = va_arg(args,char* ); + + + /*tag_t parent_rev = va_arg(args,tag_t ); + int copyCount = va_arg(args,int ); + tag_t **obj_tags = va_arg(args,tag_t** );*/ + + printf("*******************************************************\n"); + printf("* W2_Revise_clear_form is comming *\n"); + printf("*******************************************************\n"); + + //printf("msgid==============================%d \n",msgid); + printf("new_rev==============================%d\n",new_rev); + char* id; + AOM_ask_value_string(new_rev,"object_type",&id); + printf("id==============================%s\n",id); + printf("operation==============================%s\n",operation); + //printf("parent_rev==============================%u\n",parent_rev); + //printf("copyCount==============================%d\n",copyCount); + + //-------------ȡѡ(origin+rev_type+_str),itemrevFormϵForm͡ + int option_value_count; + char **option_values; + char *PREF_W2_Revise_clear_form="WF_Revise_ItemRev";//ѡ + if(strcmp(operation,"Revise")!=0 && strcmp(operation,"SaveAs")!=0){ + return ifail; + } + ITKCALL(PREF_ask_char_values(PREF_W2_Revise_clear_form,&option_value_count,&option_values)); + printf("=====option_value_count======%d\n",option_value_count); + if(option_value_count == 0) + { + printf("optionѡ%s\n",PREF_W2_Revise_clear_form); + return ifail; + } + ////------------------ + //for (j = 1; j +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/** +* @headerfile standard c & cpp header files +*/ +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; + +/** +* @headerfile user's header files +*/ + + + diff --git a/jf_itk/w2_Clear_Form_PropValue.h b/jf_itk/w2_Clear_Form_PropValue.h new file mode 100644 index 0000000..ec00d9c --- /dev/null +++ b/jf_itk/w2_Clear_Form_PropValue.h @@ -0,0 +1,33 @@ + +#ifndef W2_CLEAR_FORM_PROPVALUE +#define W2_CLEAR_FORM_PROPVALUE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + extern USER_EXT_DLL_API int W2_Revise_clear_form( METHOD_message_t* msg, va_list args ); + + + +#ifdef __cplusplus +} +#endif +#include +#endif \ No newline at end of file diff --git a/jf_itk/wf_custom.cpp b/jf_itk/wf_custom.cpp new file mode 100644 index 0000000..ed2efc8 --- /dev/null +++ b/jf_itk/wf_custom.cpp @@ -0,0 +1,2049 @@ +#include "wf_custom.h" +#include "tccore\iman_msg.h" + +extern "C" int POM_AM__set_application_bypass(logical bypass); + +int len(char *p) +{ +int i=0; +while(*p++)i++; +return i; +} + +void split(char *src,const char *separator,char **dest,int *num) { + /* + src Դַ׵ַ(bufĵַ) + separator ָķַָ + dest ַ + num ַָĸ + */ + char *pNext; + int count = 0; + if (src == NULL || strlen(src) == 0) //ĵַΪջ򳤶Ϊ0ֱֹ + return; + if (separator == NULL || strlen(separator) == 0) //δֱַָָֹ + return; + pNext = (char *)strtok(src,separator); //ʹ(char *)ǿת(Ȼдеıвָ) + while(pNext != NULL) { + *dest++ = pNext; + ++count; + pNext = (char *)strtok(NULL,separator); //ʹ(char *)ǿת + } + *num = count; +} + +int Connor_set_bypass(void *returnValue) +{ + + POM_AM__set_application_bypass(true); + return 0; +} + +int Connor_close_bypass(void *returnValue) +{ + + POM_AM__set_application_bypass(false); + return 0; +} + + +/** +* bypass +*/ +int Connor_bypass(EPM_action_message_t msg){ + ECHO("==================bypass START =======================\n"); + int ifail = ITK_ok, arg_cnt; + char *argflag =NULL,*argvalue=NULL ,*arg = NULL; + int i=0, j=0; + BOOL bypass = FALSE; + arg_cnt = TC_number_of_arguments(msg.arguments); + ECHO("Ϊ%d\n",arg_cnt); + POM_AM__set_application_bypass(true); + if (arg_cnt > 0) + { + for (i=0;i0 ){ + + char * schdule_task_node_type = NULL; + AOM_ask_value_string(schdule_task_nodes[0],"object_type",&schdule_task_node_type); + char * scheduleTaskName =NULL; + char finish_date_str[300] = ""; + printf("object_type:%s\n",schdule_task_node_type); + if(strcmp(schdule_task_node_type,"ScheduleTask")==0){ + tag_t schdule = NULL_TAG; + // date_t finish_date ; + AOM_ask_value_tag(schdule_task_nodes[0],"schedule_tag",&schdule); + AOM_ask_value_string(schdule_task_nodes[0], "object_name", &scheduleTaskName); + printf("scheduleTaskName:%s\n",scheduleTaskName); + if(schdule != NULL_TAG){ + + //char * schdule_name = NULL; + char * job_name = NULL; + char * project_id = NULL; + char * project_name = NULL; + //date_t time; + //char * d_value=NULL; + int num=0; + tag_t * projects; + //AOM_ask_value_date(schdule_task_nodes[0],"finish_date", &time); + //DATE_date_to_string(time,"%Y-%m-%d",&d_value); + EPM_ask_job(tast_tag, &job); + AOM_ask_value_string(job,"object_name",&job_name); + //AOM_ask_value_string(schdule,"object_name",&schdule_name); + AOM_ask_value_tags(schdule,"project_list",&num,&projects); + + //printf("shcedule_name:%s\n",schdule_name); + //sprintf(finish_date_str,"%s-%s-%s",schdule_name,scheduleTaskName,d_value); + if (num>0) + { + AOM_ask_value_string(projects[0],"project_id",&project_id); + AOM_ask_value_string(projects[0],"object_name",&project_name); + sprintf(finish_date_str,"%s-%s-%s",scheduleTaskName,project_id,project_name); + }else + { + sprintf(finish_date_str,"%s-%s-%s",scheduleTaskName,"",""); + } + + AOM_lock(job); + AOM_set_value_string(job,"object_name",finish_date_str); + printf("str:%s\n",finish_date_str); + printf("\n"); + AOM_save(job); + AOM_unlock(job); + + if(job_name !=NULL){ + MEM_free(job_name); + job_name = NULL; + } + if(project_id !=NULL){ + MEM_free(project_id); + project_id = NULL; + } + if(project_name !=NULL){ + MEM_free(project_name); + project_name = NULL; + } + /*if(schdule_name !=NULL){ + MEM_free(schdule_name); + schdule_name = NULL; + }*/ + } + } + if(schdule_task_node_type !=NULL){ + MEM_free(schdule_task_node_type); + schdule_task_node_type = NULL; + } + } + if(task_name != NULL){ + MEM_free(task_name); + task_name = NULL; + } + if(schdule_task_nodes != NULL){ + MEM_free(schdule_task_nodes); + schdule_task_nodes = NULL; + } + + } + printf("سȨ\n"); + POM_AM__set_application_bypass(false); + printf("===================================\n"); + printf("ʱ \n"); + printf("===================================\n"); + + return ifail; + +} + + +int WF_schedule_has_baseline(EPM_rule_message_t msg){ + + printf("===================================\n"); + printf("ʱǷ,̷ ʼ\n"); + printf("===================================\n"); + + int ifail = EPM_go,att_cnt=0; + tag_t task_tag = NULL_TAG, + root_task_tag=NULLTAG, + *attachments=NULLTAG;; + task_tag = msg.task; + char err[1024]="\0"; + + if(task_tag == NULLTAG) + { + return EPM_nogo; + } + + EPM_ask_root_task(task_tag, &root_task_tag); + EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnt, &attachments); + + + + if(att_cnt<=0){ + printf("ĿΪ ˳\n"); + return EPM_nogo; + }else{ + for (int i = 0; i < att_cnt; i++) + { + tag_t tagt=NULLTAG,tag_tags=NULLTAG; + char *type=NULL,*name=NULL,*item_id=NULL; + tagt=attachments[i];// + ITKCALL(AOM_ask_value_string(tagt,"object_type",&type)); + ITKCALL(AOM_ask_value_string(tagt,"object_name",&name)); + printf(":%s\n",type); + + if ((strcmp(type,"Schedule") == 0)){ + printf("ͷ,\n"); + }else{ + printf("Ͳ\n"); + ifail=EPM_nogo; + sprintf(err,"%sʱ,޷ִ!!",name); + break; + } + + ITKCALL(AOM_ask_value_tag(tagt,"activeschbaseline_tag",&tag_tags));//Ļ + if(tag_tags==NULLTAG){ + + printf("δҵ,ִ\n"); + ifail=EPM_nogo; + sprintf(err,"ʱ%sڻ,ߺִи!!",name); + continue; + + } + if(type!=NULL){ + MEM_free(type); + type = NULL; + } + if(name!=NULL){ + MEM_free(name); + name = NULL; + } + + } + + printf("2222ifail:%d\n",ifail); + + } + if(strcmp(err, "") != 0){ + ifail=EPM_nogo; + printf(":%s\n",err); + EMH_store_error_s1(EMH_severity_information,278701,err);//󵯴 + + } + printf("ifail:%d\n",ifail); + + printf("===================================\n"); + printf("ʱǷ,̷ \n"); + printf("===================================\n"); + + return ifail; + + +} + + +//ĵĿ +//:-type ֵ:Document +int WF_set_project_prop(EPM_action_message_t msg){ + + printf("===================================\n"); + printf("ĵĿ ʼ\n"); + printf("===================================\n"); + + int ifail = ITK_ok; + int att_cnt=0,isas=0; + tag_t task_tag = NULLTAG, + root_task_tag=NULLTAG, + *attachments=NULL; + + vector type_vec; + + char arg1value[1024] = ""; + char *argflag =NULL,*argvalue=NULL ,*arg = NULL; + int arg_cnt = 0; + int arg_col=0; + + //ȡhandlerIJĸ + arg_cnt = TC_number_of_arguments(msg.arguments); + ECHO("Ϊ%d\n",arg_cnt); + + if (arg_cnt > 0) + { + for (int i=0;i0){ + + for (int i = 0; i < att_cnt; i++) + { + tag_t tagt=NULLTAG,*tag_tags=NULL; + char* type=NULL; + int tag_col=0; + + ITKCALL(AOM_ask_value_string(attachments[i],"object_type",&type)); + printf(":%s\n",type); + if (strcmp(type,"Folder")==0) + { + int doc_num=0; + tag_t *doc_tags=NULL; + ITKCALL(AOM_ask_value_tags(attachments[i],"contents",&doc_num,&doc_tags)); + for (int j = 0; j < doc_num; j++) + { + tagt=doc_tags[j]; + + boolean istype=false; + for (int t = 0; t < type_vec.size(); t++) + { + char typevalue[64] = ""; + strcpy(typevalue,type_vec[t].c_str()); + int is=checkIsTypeOrSubtype(tagt,typevalue); + if(is==1){ + printf("ͷ\n"); + istype=true; + break; + } + } + printf("111\n"); + if (istype) + { + printf("222\n"); + int numtask=0,numpro=0; + tag_t *tasks=NULL,*pro_tags=NULL; + tag_t schedule_tag; + ITKCALL(AOM_ask_value_tags(root_task_tag,"fnd0RootScheduleTask",&numtask,&tasks)); + printf(":%d\n",numtask); + if (numtask>0) + { + ITKCALL(AOM_ask_value_tag(tasks[0],"schedule_tag",&schedule_tag)); + ITKCALL(AOM_ask_value_tags(schedule_tag,"project_list",&numpro,&pro_tags)); + printf("Ŀ:%d\n",numpro); + if (numpro>0) + { + tag_t rev_tagt; + ITKCALL(ITEM_ask_latest_rev(tagt,&rev_tagt));//°汾 + char * proname=NULL, *proid=NULL ,*khmc=NULL; + ITKCALL(AOM_ask_value_string(pro_tags[0],"object_name",&proname)); + ITKCALL(AOM_ask_value_string(pro_tags[0],"project_id",&proid)); + ITKCALL(AOM_ask_value_string(pro_tags[0],"wf2_customerName",&khmc)); + printf("Ŀ:%s\n",proname); + printf("Ŀid:%s\n",proid); + printf("ͻ:%s\n",khmc); + ITKCALL(AOM_lock(rev_tagt)); + ITKCALL(AOM_set_value_string(rev_tagt,"wf2_projectName",proname)); + ITKCALL(AOM_set_value_string(rev_tagt,"wf2_projectNumber",proid)); + ITKCALL(AOM_set_value_string(rev_tagt,"wf2_customerName",khmc)); + ITKCALL(AOM_save(rev_tagt)); + ITKCALL(AOM_unlock(rev_tagt)); + if(proname !=NULL){ + MEM_free(proname); + proname = NULL; + } + if(proid !=NULL){ + MEM_free(proid); + proid = NULL; + } + }else{ + printf("ָʱҲĿ!"); + } + } + if(tasks !=NULL){ + MEM_free(tasks); + tasks = NULL; + } + if(pro_tags !=NULL){ + MEM_free(pro_tags); + pro_tags = NULL; + } + + } + } + } + + if(tag_tags !=NULL){ + MEM_free(tag_tags); + tag_tags = NULL; + } + if(type !=NULL){ + MEM_free(type); + type = NULL; + } + + + } + } + if(attachments !=NULL){ + MEM_free(attachments); + attachments = NULL; + } + + printf("سȨ\n"); + POM_AM__set_application_bypass(false); + printf("===================================\n"); + printf("ĵĿ \n"); + printf("===================================\n"); + + return ifail; +} + +int WF_project_has_folder(EPM_rule_message_t msg){ + + printf("===================================\n"); + printf("Ŀ ʼ\n"); + printf("===================================\n"); + + int ifail = EPM_go; + int att_cnt=0; + tag_t task_tag = NULLTAG, + root_task_tag=NULLTAG, + *attachments=NULL; + char err[1024]="\0"; + + task_tag = msg.task; + EPM_ask_root_task(task_tag, &root_task_tag); + EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnt, &attachments); + + if(att_cnt>0){ + for (int i = 0; i < att_cnt; i++) + { + tag_t tagt=NULLTAG; + char* type=NULL; + int tag_col=0; + + ITKCALL(AOM_ask_value_string(attachments[i],"object_type",&type)); + + printf(":%s\n",type); + if (strcmp(type,"Folder")==0) + { + int doc_num=0; + tag_t *doc_tags=NULL; + ITKCALL(AOM_ask_value_tags(attachments[i],"contents",&doc_num,&doc_tags)); + if(doc_num>0) + { + int num = 0; + tag_t *num_tags = NULL; + tag_t rev_tagt; + for (int j = 0; j < doc_num; j++) + { + tagt = doc_tags[j]; + int is=checkIsTypeOrSubtype(tagt,"Item"); + if(is == 1){ + + ITKCALL(ITEM_ask_latest_rev(tagt,&rev_tagt)); + }else{ + ifail = EPM_nogo; + sprintf(err,"ϴItemϴ!!"); + } + + ITKCALL(AOM_ask_value_tags(rev_tagt,"release_status_list",&num,&num_tags)); + if(num == 0) + { + ifail = EPM_nogo; + sprintf(err,"汾ûз뷢!!"); + } + } + if(num_tags !=NULL){ + MEM_free(num_tags); + num_tags = NULL; + } + }else{ + ifail = EPM_nogo; + sprintf(err,"ļΪգϴ!!"); + } + if(doc_tags !=NULL){ + MEM_free(doc_tags); + doc_tags = NULL; + } + } + if(type !=NULL){ + MEM_free(type); + type = NULL; + } + } + } + if(attachments !=NULL){ + MEM_free(attachments); + attachments = NULL; + } + if(strcmp(err, "") != 0){ + ifail=EPM_nogo; + printf(":%s\n",err); + EMH_store_error_s1(EMH_severity_information,278701,err);//󵯴 + + } + return ifail; +} + +int BOM_CHI_ISRELEASE(EPM_rule_message_t msg){ + + printf("===================================\n"); + printf("BOMӼǷ񷢲,̷ ʼ\n"); + printf("===================================\n"); + + int ifail = EPM_go,att_cnt=0; + tag_t task_tag = NULL_TAG, + root_task_tag=NULLTAG, + *attachments;; + task_tag = msg.task; + char errs[2500]="\0"; + char err[2000]="\0"; + + if(task_tag == NULLTAG) + { + return EPM_nogo; + } + + EPM_ask_root_task(task_tag, &root_task_tag); + EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnt, &attachments); + + + if(att_cnt<=0){ + printf("ĿΪ ˳\n"); + return EPM_go; + }else{ + POM_AM__set_application_bypass(true); + for (int i = 0; i < att_cnt; i++) + { + tag_t tagt=NULLTAG; + char *name=NULL; + int form_c=0; + tagt=attachments[i];// + if (checkIsTypeOrSubtype(tagt,"PSBOMViewRevision")!=1) + { + printf("ͲPSBOMViewRevision\n"); + continue; + } + printf("PSBOMViewRevision,\n"); + ITKCALL(AOM_ask_value_string(tagt,"object_string",&name)); + int m=0,c_line_count = 0; + tag_t bom_window_tag = NULLTAG, + top_line_tag = NULLTAG, + *c_line_tags; + ITKCALL(BOM_create_window(&bom_window_tag));//windowͼ + ITKCALL(BOM_set_window_top_line_bvr(bom_window_tag,tagt,&top_line_tag));//ȡbomline + ITKCALL(BOM_line_ask_all_child_lines(top_line_tag,&c_line_count,&c_line_tags)); + if(c_line_count == 0){ + printf("ûBOMṹ\n"); + + }else{ + getchibomline_isrelease(top_line_tag,err); + if (strcmp(err,"")!=0) + { + sprintf(errs,"BOM%sӼ%sδ!!",name,err); + EMH_store_error_s1(EMH_severity_information,278701,errs);//󵯴 + ifail=EPM_nogo; + } + + } + ITKCALL(BOM_close_window(bom_window_tag)); + if(name!=NULL){ + MEM_free(name); + name = NULL; + } + } + POM_AM__set_application_bypass(false); + } + + printf("ifail:%d\n",ifail); + + printf("===================================\n"); + printf("BOMӼǷ񷢲,̷ \n"); + printf("===================================\n"); + + return ifail; + + +} + + +//ݹbom жǷ񷢲 +boolean getchibomline_isrelease(tag_t top_line_tag, char* err){ + + int m=0,status_count = 0 , + rev_form_cnt=0, + c_line_count = 0 , + tuzhi_col=0; + tag_t bom_window_tag = NULLTAG, + *c_line_tags = NULL, + *rev_form_tags = NULL, + *tuzhi_tags= NULL; + printf("nnnn\n"); + ITKCALL(BOM_line_ask_all_child_lines(top_line_tag,&c_line_count,&c_line_tags)); + printf("c_line_count=%d\n"+c_line_count); + if(c_line_count == 0){ + printf("ûBOMṹ\n"); + + }else{ + + for (int m = 0; m < c_line_count; m++) + { + tag_t rev_tag =NULLTAG; + char * name="\0"; + ITKCALL(AOM_ask_value_tag(c_line_tags[m],"bl_line_object",&rev_tag));//ȡBOMLINEİ汾 + ITKCALL(AOM_ask_value_string(rev_tag,"object_string",&name)); + int wl_release_count=0; + tag_t *wl_release_tags=NULL; + ITKCALL(AOM_ask_value_tags(rev_tag,"release_status_list",&wl_release_count,&wl_release_tags)); + if(wl_release_count > 0) + { + printf("汾ѷ\n"); + }else{ + printf("汾δ\n"); + strcat(err,"["); + strcat(err,name); + strcat(err,"]"); + } + + getchibomline_isrelease(c_line_tags[m],err); + + } + + } + + return true; +} + +int WF_check_item_rev(EPM_rule_message_t msg){ + printf("===================================\n"); + printf("Ƿ񷢲 ʼ\n"); + printf("===================================\n"); + + int ifail = EPM_go; + int att_cnt=0,isas=0; + tag_t task_tag = NULLTAG, + root_task_tag=NULLTAG, + *attachments=NULL, + *relations=NULL; + + + char item1value[1024] = ""; + char relationvalue[1024] = ""; + char item2value[1024] = ""; + char *argflag =NULL,*argvalue=NULL ,*arg = NULL; + int arg_cnt = 0; + int arg_col=0; + int rel_cnt = 0; + + + //ȡhandlerIJĸ + arg_cnt = TC_number_of_arguments(msg.arguments); + ECHO("Ϊ%d\n",arg_cnt); + + if (arg_cnt > 0) + { + for (int i=0;i0) + { + for (int i = 0; i < att_cnt; i++) + { + tag_t tagt=NULLTAG,*tag_tags=NULL; + char* type=NULL; + int tag_col=0; + int num = 0; + tag_t *num_tags = NULL; + char* tagType=NULL; + ITKCALL(AOM_ask_value_string(attachments[i],"object_type",&type)); + printf(":%s\n",type); + printf(":%s\n",item1value); + if(checkIsTypeOrSubtype(attachments[i],item1value) == 1) + { + ITKCALL(AOM_ask_value_tags(attachments[i],relationvalue,&rel_cnt,&relations)); + + if(rel_cnt>0) + { + for (int j = 0; j < rel_cnt; j++) + { + if (checkIsTypeOrSubtype(relations[j],item2value) == 1){ + ITKCALL(AOM_ask_value_tags(relations[j],"release_status_list",&num,&num_tags)); + if(num <= 0) + { + ifail = EPM_nogo; + EMH_store_error_s1(EMH_severity_information,278701,"汾ûз뷢!!");//󵯴 + return ifail; + } + } + + } + }else{ + ifail = EPM_nogo; + EMH_store_error_s1(EMH_severity_information,278701,"ϵļûа汾!!");//󵯴 + return ifail; + } + } + } + } + return ifail; +} + + +int BOM_CHI_HASNUMBER(EPM_rule_message_t msg){ + + printf("===================================\n"); + printf("BOMӼǷд,̷ ʼ\n"); + printf("===================================\n"); + + int ifail = EPM_go,att_cnt=0; + tag_t task_tag = NULL_TAG, + root_task_tag=NULLTAG, + *attachments;; + task_tag = msg.task; + char errs[2500]="\0"; + char err[2000]="\0"; + + if(task_tag == NULLTAG) + { + return EPM_nogo; + } + + EPM_ask_root_task(task_tag, &root_task_tag); + EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnt, &attachments); + + + if(att_cnt<=0){ + printf("ĿΪ ˳\n"); + return EPM_go; + }else{ + POM_AM__set_application_bypass(true); + for (int i = 0; i < att_cnt; i++) + { + tag_t tagt=NULLTAG; + char *name=NULL; + int form_c=0; + tagt=attachments[i];// + if (checkIsTypeOrSubtype(tagt,"PSBOMViewRevision")!=1) + { + printf("ͲPSBOMViewRevision\n"); + continue; + } + printf("PSBOMViewRevision,\n"); + ITKCALL(AOM_ask_value_string(tagt,"object_string",&name)); + int m=0,c_line_count = 0; + tag_t bom_window_tag = NULLTAG, + top_line_tag = NULLTAG, + *c_line_tags; + ITKCALL(BOM_create_window(&bom_window_tag));//windowͼ + ITKCALL(BOM_set_window_top_line_bvr(bom_window_tag,tagt,&top_line_tag));//ȡbomline + ITKCALL(BOM_line_ask_all_child_lines(top_line_tag,&c_line_count,&c_line_tags)); + if(c_line_count == 0){ + printf("ûBOMṹ\n"); + + }else{ + getchibomline_num(top_line_tag,err); + if (strcmp(err,"")!=0) + { + sprintf(errs,"BOM%s%sδд!!",name,err); + EMH_store_error_s1(EMH_severity_information,278701,errs);//󵯴 + ifail=EPM_nogo; + } + + } + ITKCALL(BOM_close_window(bom_window_tag)); + if(name!=NULL){ + MEM_free(name); + name = NULL; + } + } + POM_AM__set_application_bypass(false); + } + + printf("ifail:%d\n",ifail); + + printf("===================================\n"); + printf("BOMӼǷд,̷ \n"); + printf("===================================\n"); + + return ifail; + + +} + +//ݹbom жǷ +boolean getchibomline_num(tag_t top_line_tag, char* err){ + + int m=0,status_count = 0 , + rev_form_cnt=0, + c_line_count = 0 , + tuzhi_col=0; + tag_t bom_window_tag = NULLTAG, + *c_line_tags = NULL, + *rev_form_tags = NULL, + *tuzhi_tags= NULL; + printf("nnnn\n"); + ITKCALL(BOM_line_ask_all_child_lines(top_line_tag,&c_line_count,&c_line_tags)); + printf("c_line_count=%d\n"+c_line_count); + if(c_line_count == 0){ + printf("ûBOMṹ\n"); + + }else{ + + for (int m = 0; m < c_line_count; m++) + { + tag_t rev_tag =NULLTAG; + char * name="\0"; + char * num="\0"; + ITKCALL(AOM_ask_value_string(c_line_tags[m],"bl_indented_title",&name));//ȡBOMLINE + ITKCALL(AOM_ask_value_string(c_line_tags[m],"WF2_number",&num)); + if(strcmp("",num) == 0 || strcmp(" ",num) == 0) + { + strcat(err,"["); + strcat(err,name); + strcat(err,"]"); + }else{ + + } + + getchibomline_num(c_line_tags[m],err); + + } + + } + + return true; +} + +//wordĵӡͼƬ +int WF_set_picture(EPM_action_message_t msg){ + + printf("===================================\n"); + printf("wordĵӡͼƬ ʼ\n"); + printf("===================================\n"); + + int ifail = ITK_ok; + int att_cnt=0,jpg_count=0; + tag_t task_tag = NULLTAG, + root_task_tag=NULLTAG, + *attachments=NULL; + char** jpg_values; + tag_t jpg_tag=NULLTAG; + tag_t *pathFile=NULLTAG; + int Num = 0; + printf("Ȩ\n"); + POM_AM__set_application_bypass(true); + + task_tag = msg.task; + + EPM_ask_root_task(task_tag, &root_task_tag); + EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnt, &attachments); + ITKCALL(PREF_ask_char_values("WF2_JPG_PATH",&jpg_count,&jpg_values)); + ITK__convert_uid_to_tag(jpg_values[0],&jpg_tag); + ITKCALL(AOM_ask_value_tags(jpg_tag,"ref_list",&Num,&pathFile)); + char jpg_path[SS_MAXPATHLEN] = ""; + ITKCALL(IMF_ask_file_pathname(pathFile[0], SS_WNT_MACHINE, jpg_path)); + + if(att_cnt>0){ + + for (int i = 0; i < att_cnt; i++) + { + int doc_num=0; + tag_t *doc_tags=NULL; + tag_t * dataFile = NULL; + int fileNum = 0; + char* tag_type; + char * type; + char * name; + ITKCALL(AOM_ask_value_string(attachments[i],"object_type",&tag_type)); + printf("tag_type=%s\n",tag_type); + if (strstr(tag_type,"Revision") != NULL && strstr(tag_type,"Master") == NULL) + { + ITKCALL(AOM_ask_value_tags(attachments[i],"IMAN_specification",&doc_num,&doc_tags)); + if (doc_num > 0) + { + for (int i = 0; i < doc_num; i++) + { + ITKCALL(AOM_ask_value_string(doc_tags[i],"object_type",&type)); + printf("type=%s\n",type); + if (strcmp(type,"MSWordX")==0){ + //ITKCALL(AOM_ask_value_tags(doc_tags[i],"ref_list",&fileNum,&dataFile)); + tag_t spec_dataset_rev = NULLTAG , ref_object = NULLTAG; + AE_reference_type_t reference_type; + AE_ask_dataset_latest_rev(doc_tags[i], &spec_dataset_rev); + char ref_name[WSO_name_size_c + 1] = "Fnd0word"; + AE_ask_dataset_named_ref(spec_dataset_rev, ref_name, &reference_type, &ref_object); + if(reference_type == AE_PART_OF) + { + char pathname[SS_MAXPATHLEN] = ""; + ITKCALL(IMF_ask_file_pathname(ref_object, SS_WNT_MACHINE, pathname)); + char origin_file_name[IMF_filename_size_c + 1] = ""; + IMF_ask_original_file_name(ref_object, origin_file_name); + char new_ds_name[WSO_name_size_c + 1] = ""; + char *new_file_name = USER_new_file_name(new_ds_name, ref_name, "docm", 0); + char *temp_dir = getenv("temp"); + char temp_file[SS_MAXPATHLEN] = ""; + strcpy(temp_file, temp_dir); + strcat(temp_file, "\\"); + strcat(temp_file, new_file_name); + + IMF_export_file(ref_object, temp_file); + + char path[128] = "\0"; + strcat(path,getenv("TEMP")); + strcat(path, "\\"); + strcat(path, new_file_name); + strcat(path,".txt"); + FILE *fpWrite=fopen(path,"w"); + fprintf(fpWrite,"%s","ܿӡ="); + fprintf(fpWrite,"%s\n",jpg_path); + fclose(fpWrite); + char cmd[256] = ""; + strcpy(cmd, "SubstMacros-MSWord.wsf"); + strcat(cmd, " \""); + strcat(cmd, temp_file); + strcat(cmd, "\" \""); + strcat(cmd, path); + strcat(cmd, "\""); + printf("\n%s\n",cmd); + system(cmd); + + tag_t new_file_tag = NULLTAG; + IMF_file_t file_descriptor; + IMF_import_file(temp_file, new_file_name, SS_BINARY, &new_file_tag, &file_descriptor); + IMF_set_original_file_name(new_file_tag, origin_file_name); + IMF_close_file(file_descriptor); + AOM_save(new_file_tag); + AOM_unlock(new_file_tag); + + AOM_lock(spec_dataset_rev); + + AE_remove_dataset_named_ref_by_tag(spec_dataset_rev, ref_name, ref_object); + + AE_add_dataset_named_ref(spec_dataset_rev, ref_name, AE_PART_OF, new_file_tag); + AOM_save(spec_dataset_rev); + AOM_unlock(spec_dataset_rev); + } + }else if (strcmp(type,"MSExcelX")==0) + { + //ITKCALL(AOM_ask_value_tags(doc_tags[i],"ref_list",&fileNum,&dataFile)); + tag_t spec_dataset_rev = NULLTAG , ref_object = NULLTAG; + AE_reference_type_t reference_type; + AE_ask_dataset_latest_rev(doc_tags[i], &spec_dataset_rev); + char ref_name[WSO_name_size_c + 1] = "excel"; + AE_ask_dataset_named_ref(spec_dataset_rev, ref_name, &reference_type, &ref_object); + if(reference_type == AE_PART_OF) + { + char pathname[SS_MAXPATHLEN] = ""; + ITKCALL(IMF_ask_file_pathname(ref_object, SS_WNT_MACHINE, pathname)); + char origin_file_name[IMF_filename_size_c + 1] = ""; + IMF_ask_original_file_name(ref_object, origin_file_name); + char new_ds_name[WSO_name_size_c + 1] = ""; + char *new_file_name = USER_new_file_name(new_ds_name, ref_name, "xlsm", 0); + char *temp_dir = getenv("temp"); + char temp_file[SS_MAXPATHLEN] = ""; + strcpy(temp_file, temp_dir); + strcat(temp_file, "\\"); + strcat(temp_file, new_file_name); + + IMF_export_file(ref_object, temp_file); + + char path[128] = "\0"; + strcat(path,getenv("TEMP")); + strcat(path, "\\"); + strcat(path, new_file_name); + strcat(path,".txt"); + FILE *fpWrite=fopen(path,"w"); + fprintf(fpWrite,"%s","ܿӡ="); + fprintf(fpWrite,"%s\n",jpg_path); + fclose(fpWrite); + char cmd[256] = ""; + strcpy(cmd, "SubstMacros-MSExcel.wsf"); + strcat(cmd, " \""); + strcat(cmd, temp_file); + strcat(cmd, "\" \""); + strcat(cmd, path); + strcat(cmd, "\""); + printf("\n%s\n",cmd); + system(cmd); + + tag_t new_file_tag = NULLTAG; + IMF_file_t file_descriptor; + IMF_import_file(temp_file, new_file_name, SS_BINARY, &new_file_tag, &file_descriptor); + IMF_set_original_file_name(new_file_tag, origin_file_name); + IMF_close_file(file_descriptor); + AOM_save(new_file_tag); + AOM_unlock(new_file_tag); + + AOM_lock(spec_dataset_rev); + + AE_remove_dataset_named_ref_by_tag(spec_dataset_rev, ref_name, ref_object); + + AE_add_dataset_named_ref(spec_dataset_rev, ref_name, AE_PART_OF, new_file_tag); + AOM_save(spec_dataset_rev); + AOM_unlock(spec_dataset_rev); + } + } + } + } + } + } + } + + printf("سȨ\n"); + POM_AM__set_application_bypass(false); + printf("===================================\n"); + printf("wordĵӡͼƬ \n"); + printf("===================================\n"); + + return ifail; + +} + +//wordĵļ·˳ +int WF_set_ID(EPM_action_message_t msg){ + + printf("===================================\n"); + printf("wordĵļ·˳ ʼ\n"); + printf("===================================\n"); + + int ifail = ITK_ok; + int att_cnt=0; + tag_t task_tag = NULLTAG, + item_tag = NULLTAG, + root_task_tag=NULLTAG, + *attachments=NULL; + char *message; + char** entries; + char** values; + tag_t* results; + char * rev; + char * item_type; + char * ID; + char WF_time[32] = "\0"; //ǰʱ + int doc_num=0; + tag_t *doc_tags=NULL; + tag_t * dataFile = NULL; + int fileNum = 0; + char* tag_type; + char * type; + char * name; + printf("Ȩ\n"); + POM_AM__set_application_bypass(true); + + task_tag = msg.task; + + EPM_ask_root_task(task_tag, &root_task_tag); + EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnt, &attachments); + ITKCALL(AOM_ask_value_string(attachments[0],"item_revision_id",&rev)); + ITKCALL(ITEM_ask_item_of_rev(attachments[0],&item_tag)); + ITKCALL(AOM_ask_value_string(item_tag,"wf2_time_id",&ID)); + ITKCALL(AOM_ask_value_string(attachments[0],"object_type",&item_type)); + time_t t; + struct tm * lt; + time (&t);//ȡUnixʱ + lt = localtime (&t);//תΪʱṹ + int lenth = 0; + lenth = len(ID); + printf("lenth=%d\n", lenth ); + char str[20] = {""}; + strcpy(str, ID); + char dest[20] = {""}; + strncpy(dest, str, 4); + printf("dest=%s\n", dest ); + char year[32] = "\0"; //ǰ + sprintf(year,"%d",lt->tm_year+1900); + printf("year=%s\n", year ); + if(strcmp("",ID)!=0 && strcmp(year,dest)==0){ + printf("˳ŲΪ\n"); + strcat(WF_time,ID); + strcat(WF_time,rev); + printf("ļ·˳Ϊ%s\n",WF_time); + }else{ + printf("˳Ϊ\n"); + char before_time[32] = "\0"; //ʱ + char after_time[32] = "\0"; //ʱ + sprintf(before_time,"%d-%d-%d %d%d:%d%d",lt->tm_year+1900,12,31,0,0,0,0); + sprintf(after_time,"%d-%d-%d %d%d:%d%d",lt->tm_year+1900,1,1,0,0,0,0); + // + const char query_name_product[1][QRY_name_size_c + 1]={"ļ·ѯ"}; + tag_t query_tag=NULLTAG; + int Num = 0; + int entry_count1=0; + char** entries1; + char** values1; + char *other_values1[4]; + char *other_entrys1[4]; + for (int i = 0; i < 4; i++) + { + other_values1[i] = (char*)calloc(48,sizeof(char)); + other_entrys1[i] = (char*)calloc(48,sizeof(char)); + } + ITKCALL(QRY_find(query_name_product[0],&query_tag)); + if(query_tag==NULLTAG) + { + printf("query_tag=NULLTAG,ûҵ [%s]ѯ\n",query_name_product[0] ); + ITK_exit_module(1); + return 1; + } + else + { + printf("ҵѯ\n"); + } + + ITKCALL(QRY_find_user_entries(query_tag,&entry_count1,&entries1,&values1));//entries1ѯʽvalues1ѯֵMEM_freeͷţ + if(entry_count1==0) + { + printf("entry_count1=0,ѯûòѯ\n"); + //ITK_exit_module(1); + if(entries!=NULL){ + MEM_free(entries1); + entries1= NULL; + } + if(values1!=NULL){ + MEM_free(values1); + values1= NULL; + } + return 1; + } + + //date_tag.second = p->tm_sec ; + + for(int n=0;ntm_mon+1 < 10) + { + sprintf(WF_time,"%d%s%d-%s%s%d-",lt->tm_year+1900,"0",lt->tm_mon+1,"0","0",Num+1); + }else + { + sprintf(WF_time,"%d%d-%s%s%d-",lt->tm_year+1900,lt->tm_mon+1,"0","0",Num+1); + } + }else if(Num < 100 && Num > 10) + { + if (lt->tm_mon+1 < 10) + { + sprintf(WF_time,"%d%s%d-%s%d-",lt->tm_year+1900,"0",lt->tm_mon+1,"0",Num+1); + }else + { + sprintf(WF_time,"%d%d-%s%d-",lt->tm_year+1900,lt->tm_mon+1,"0",Num+1); + } + }else + { + if (lt->tm_mon+1 < 10) + { + sprintf(WF_time,"%d%s%d-%d-",lt->tm_year+1900,"0",lt->tm_mon+1,Num+1); + }else + { + sprintf(WF_time,"%d%d-%d-",lt->tm_year+1900,lt->tm_mon+1,Num+1); + } + } + + printf("ļΪ: \"%s\" \n", WF_time); + AOM_lock(item_tag); + ITKCALL(ifail = AOM_set_value_string(item_tag,"wf2_time_id",WF_time)); + AOM_save(item_tag); + AOM_unlock(item_tag); + if(ifail !=ITK_ok){ + printf("ֵ쳣 \n"); + return 1; + } + strcat(WF_time,rev); + printf ( "%d/%d/%d %d:%d:%d\n",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);// + printf("ļ·˳Ϊ%s\n",WF_time); + + } + + ITKCALL(AOM_ask_value_tags(attachments[0],"IMAN_specification",&doc_num,&doc_tags)); + if (doc_num > 0) + { + for (int i = 0; i < doc_num; i++) + { + ITKCALL(AOM_ask_value_string(doc_tags[i],"object_type",&type)); + if (strcmp(type,"MSWordX")==0) + { + printf("type=%s\n",type); + //ITKCALL(AOM_ask_value_tags(doc_tags[i],"ref_list",&fileNum,&dataFile)); + tag_t spec_dataset_rev = NULLTAG , ref_object = NULLTAG; + AE_reference_type_t reference_type; + AE_ask_dataset_latest_rev(doc_tags[i], &spec_dataset_rev); + char ref_name[WSO_name_size_c + 1] = "Fnd0word"; + AE_ask_dataset_named_ref(spec_dataset_rev, ref_name, &reference_type, &ref_object); + if(reference_type == AE_PART_OF) + { + char pathname[SS_MAXPATHLEN] = ""; + ITKCALL(IMF_ask_file_pathname(ref_object, SS_WNT_MACHINE, pathname)); + char origin_file_name[IMF_filename_size_c + 1] = ""; + IMF_ask_original_file_name(ref_object, origin_file_name); + char new_ds_name[WSO_name_size_c + 1] = ""; + char *new_file_name = USER_new_file_name(new_ds_name, ref_name, "docm", 0); + char *temp_dir = getenv("temp"); + char temp_file[SS_MAXPATHLEN] = ""; + strcpy(temp_file, temp_dir); + strcat(temp_file, "\\"); + strcat(temp_file, new_file_name); + + IMF_export_file(ref_object, temp_file); + char path[128] = "\0"; + char doc_id[128] = "\0"; + strcat(path,getenv("TEMP")); + strcat(path, "\\"); + strcat(path, new_file_name); + strcat(path, "-ļ"); + strcat(path,".txt"); + printf("pathΪ%s\n",path); + FILE *fpWrite=fopen(path,"w"); + fprintf(fpWrite,"%s","ļ="); + strcat(doc_id,WF_time); + fprintf(fpWrite,"%s\n",doc_id); + fclose(fpWrite); + printf("ļŴ洢ɹ\n"); + char cmd[256] = ""; + strcpy(cmd, "SetID-MSWord.wsf"); + strcat(cmd, " \""); + strcat(cmd, temp_file); + strcat(cmd, "\" \""); + strcat(cmd, path); + strcat(cmd, "\""); + printf("\n%s\n",cmd); + system(cmd); + + tag_t new_file_tag = NULLTAG; + IMF_file_t file_descriptor; + IMF_import_file(temp_file, new_file_name, SS_BINARY, &new_file_tag, &file_descriptor); + IMF_set_original_file_name(new_file_tag, origin_file_name); + IMF_close_file(file_descriptor); + AOM_save(new_file_tag); + AOM_unlock(new_file_tag); + + AOM_lock(spec_dataset_rev); + + AE_remove_dataset_named_ref_by_tag(spec_dataset_rev, ref_name, ref_object); + + AE_add_dataset_named_ref(spec_dataset_rev, ref_name, AE_PART_OF, new_file_tag); + AOM_save(spec_dataset_rev); + AOM_unlock(spec_dataset_rev); + } + + } + } + } + + printf("سȨ\n"); + POM_AM__set_application_bypass(false); + printf("===================================\n"); + printf("wordĵļ·˳ \n"); + printf("===================================\n"); + + return ifail; + +} + + +//ԶָĿ +int WF_item_to_Project(EPM_rule_message_t msg){ + ECHO("==================ĿָĿ=======================\n"); + int ifail = EPM_go , + att_cnt=0, + pro_col=0, + i = 0 , + j=0, + n=0; + + + tag_t task_tag = NULLTAG , + root_task_tag =NULLTAG , + * pro_tags=NULL, + pro_tag=NULL, + *attachments = NULL; + + boolean isadmin=false; + boolean istaskname=false; + char errs[10240] = "\0"; + + task_tag = msg.task; + if(task_tag == NULLTAG) + { + printf("Ϊ,˳\n"); + return EPM_nogo; + } + + + EPM_ask_root_task(task_tag, &root_task_tag); + EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnt, &attachments); + + int count = 0 ; + tag_t * schdule_task_nodes = NULL; + char * schdule_task_name=NULL; + + printf("ʼȡSCHDULE \n"); + AOM_ask_value_tags(task_tag,"fnd0RootScheduleTask",&count,&schdule_task_nodes); + printf("count=%d \n",count); + if(count>0){ + tag_t schdule = NULL_TAG; + int couwork_all=0, + couwork_sta=0; + tag_t * work_tag_all=NULL, + * work_tag_sta=NULL; + char * workname; + char * workname1; + ITKCALL(AOM_ask_value_tag(schdule_task_nodes[0],"schedule_tag",&schdule)); + ITKCALL(AOM_ask_value_string(schdule_task_nodes[0],"object_name",&schdule_task_name)); + + ITKCALL(AOM_ask_value_tags(schdule,"fnd0AllWorkflows",&couwork_all,&work_tag_all));//ܹ + ITKCALL(AOM_ask_value_tags(schdule,"fnd0StartedWorkflowTasks",&couwork_sta,&work_tag_sta));//ѿʼĹ + + ITKCALL(AOM_ask_value_tags(schdule,"project_list",&pro_col,&pro_tags));//Ŀ + if(pro_col>0){ + pro_tag=pro_tags[0]; + }else{ + EMH_store_error_s1(EMH_severity_information,278701,"ʱδָĿ,޷!!!");//󵯴 + printf("ʱδָĿ,޷\n"); + return EPM_nogo; + } + + int prouser_col_1=0, + prouser_col_2=0, + prouser_col_3=0; + tag_t aUserTag=NULLTAG, + * prouser_tag_1=NULL, + * prouser_tag_2=NULL, + * prouser_tag_3=NULL; + char * userName=NULL, + //person_name[SA_name_size_c+1]="", + * person_name=NULL, + * user_name1=NULL, + * user_name2=NULL, + * user_name3=NULL; + + + PROJ_ask_team(pro_tag,&prouser_col_1,&prouser_tag_1,&prouser_col_2,&prouser_tag_2,&prouser_col_3,&prouser_tag_3);//ĿԱ + printf("prouser_col_1=%d prouser_col_2=%d prouser_col_3=%d\n ",prouser_col_1,prouser_col_2,prouser_col_3); + //ȡǰû + POM_get_user(&userName,&aUserTag); + //ȡpersonname + ITKCALL(AOM_ask_value_string(aUserTag,"user_name",&person_name)); + //SA_ask_user_person_name(aUserTag,person_name); + printf("ǰûperson_name=%s\n",person_name); + + if (prouser_col_2>0) //Աû + { + for (int i = 0; i < prouser_col_2; i++) + { + ITKCALL(AOM_ask_value_string(prouser_tag_2[i],"user_name",&user_name2)); + + printf("prouser_tag_2=%s\n",user_name2); + if(strcmp( user_name2, person_name ) == 0){ + isadmin=true; + } + } + + } + if(userName !=NULL){ + MEM_free(userName); + userName = NULL; + } + if(person_name !=NULL){ + MEM_free(person_name); + userName = NULL; + } + if(user_name1 !=NULL){ + MEM_free(user_name1); + user_name1 = NULL; + } + if(user_name2 !=NULL){ + MEM_free(user_name2); + user_name2 = NULL; + } + if(user_name3 !=NULL){ + MEM_free(user_name3); + user_name3 = NULL; + } + } + printf("ʼָĿ\n"); + + strcat(errs, "Ŀ"); + + for(i = 0 ;i < att_cnt;i++){ + tag_t target_tag = attachments[i];//Ŀ ļ + + char * task_type = NULL; + char err[100]="\0"; + + + //ITKCALL(AOM_ask_value_string(target_tag,"object_string",&item_id_temp)); + + int item_count=0; + + tag_t *item_tags=NULL; + printf("111\n"); + + ITKCALL(AOM_ask_value_string(target_tag,"object_type",&task_type)); + printf("current task type = %s\n", task_type); + + if((strstr(task_type,"Folder") != NULL)){//жǷļ + ITKCALL(AOM_ask_value_tags(target_tag,"contents",&item_count,&item_tags)); + if(item_count>0){ + + for(j=0;j0){ + + for (int i = 0; i < att_cnt; i++) + { + int doc_num=0; + tag_t *doc_tags=NULL; + tag_t * dataFile = NULL; + int fileNum = 0; + char* tag_type; + char* project_id; + char * type; + char * name; + ITKCALL(AOM_ask_value_string(attachments[i],"object_type",&tag_type)); + printf("tag_type=%s\n",tag_type); + if (strstr(tag_type,"Revision") != NULL) + { + + ITKCALL(AOM_ask_value_string(attachments[i],"project_ids",&project_id)); + printf("project_id=%s\n",project_id); + char id[512]=""; + strcpy(id,"T"); + strcat(id,project_id); + printf("id=%s\n",id); + const char query_name_product[1][QRY_name_size_c + 1]={" ID"}; + char *message; + tag_t* results; + tag_t query_tag1=NULLTAG; + int entry_count1=0; + char** entries1; + char** values1; + char *other_values1[1]; + char *other_entrys1[1]; + other_values1[0] = (char*)calloc(48,sizeof(char)); + other_entrys1[0] = (char*)calloc(48,sizeof(char)); + int num_found1=0; + ITKCALL(QRY_find(query_name_product[0],&query_tag1)); + if(query_tag1==NULLTAG) + { + WriteLog("query_tag=NULLTAG,ûҵ [%s]ѯ\n",query_name_product[0] ); + ITK_exit_module(1); + return 0; + }else + { + WriteLog("ҵѯ\n"); + } + + ITKCALL(QRY_find_user_entries(query_tag1,&entry_count1,&entries1,&values1));//entries1ѯʽvalues1ѯֵMEM_freeͷţ + if(entry_count1==0) + { + WriteLog("entry_count1=0,ѯûòѯ\n"); + //ITK_exit_module(1); + if(entries1!=NULL){ + MEM_free(entries1); + entries1= NULL; + } + if(values1!=NULL){ + MEM_free(values1); + values1= NULL; + } + return 0; + } + + for(int n=0;n 0) + { + for (int i = 0; i < doc_num; i++) + { + ITKCALL(AOM_ask_value_string(doc_tags[i],"object_type",&type)); + printf("type=%s\n",type); + if (strcmp(type,"MSExcelX")==0) + { + //ITKCALL(AOM_ask_value_tags(doc_tags[i],"ref_list",&fileNum,&dataFile)); + tag_t spec_dataset_rev = NULLTAG , ref_object = NULLTAG; + AE_reference_type_t reference_type; + AE_ask_dataset_latest_rev(doc_tags[i], &spec_dataset_rev); + char ref_name[WSO_name_size_c + 1] = "excel"; + AE_ask_dataset_named_ref(spec_dataset_rev, ref_name, &reference_type, &ref_object); + if(reference_type == AE_PART_OF) + { + char pathname[SS_MAXPATHLEN] = ""; + ITKCALL(IMF_ask_file_pathname(ref_object, SS_WNT_MACHINE, pathname)); + char origin_file_name[IMF_filename_size_c + 1] = ""; + IMF_ask_original_file_name(ref_object, origin_file_name); + char new_ds_name[WSO_name_size_c + 1] = ""; + char *new_file_name = USER_new_file_name(new_ds_name, ref_name, "xlsm", 0); + char *temp_dir = getenv("temp"); + char temp_file[SS_MAXPATHLEN] = ""; + strcpy(temp_file, temp_dir); + strcat(temp_file, "\\"); + strcat(temp_file, new_file_name); + + IMF_export_file(ref_object, temp_file); + + char path1[128] = "\0"; + strcat(path1,getenv("TEMP")); + strcat(path1, "\\"); + strcat(path1, new_file_name); + strcat(path1,".txt"); + FILE *fpWrite=fopen(path1,"w"); + fprintf(fpWrite,"%s","ƷͼƬ="); + fprintf(fpWrite,"%s\n",path); + fclose(fpWrite); + char cmd[256] = ""; + strcpy(cmd, "SetPicture-MSExcel.wsf"); + strcat(cmd, " \""); + strcat(cmd, temp_file); + strcat(cmd, "\" \""); + strcat(cmd, path1); + strcat(cmd, "\""); + printf("\n%s\n",cmd); + system(cmd); + remove(path); + + tag_t new_file_tag = NULLTAG; + IMF_file_t file_descriptor; + IMF_import_file(temp_file, new_file_name, SS_BINARY, &new_file_tag, &file_descriptor); + IMF_set_original_file_name(new_file_tag, origin_file_name); + IMF_close_file(file_descriptor); + AOM_save(new_file_tag); + AOM_unlock(new_file_tag); + AOM_lock(spec_dataset_rev); + AE_remove_dataset_named_ref_by_tag(spec_dataset_rev, ref_name, ref_object); + AE_add_dataset_named_ref(spec_dataset_rev, ref_name, AE_PART_OF, new_file_tag); + AOM_save(spec_dataset_rev); + AOM_unlock(spec_dataset_rev); + } + } + } + } + } + } + } + + printf("سȨ\n"); + POM_AM__set_application_bypass(false); + printf("===================================\n"); + printf("ӹƻͼֽͼƬͼƬ \n"); + printf("===================================\n"); + + return ifail; + +} + + +//̵ǰhomeĿ¼µļ +int WF_LC_Folder_System(EPM_action_message_t msg) { + printf("===================================\n"); + printf("̵ǰhomeĿ¼µļ ʼ \n"); + printf("===================================\n"); + int ifail = ITK_ok; + printf("Ȩ\n"); + POM_AM__set_application_bypass(true); + char *userName; + tag_t aUserTag = NULLTAG;//ǰû + tag_t homefolder = NULLTAG; //õǰûhomeļж + tag_t targetfolder = NULLTAG; //ȡָļж + tag_t *folder; // + int item_count = 0; + tag_t newcopyFolder = NULLTAG; //Ƶĵµļж + char *task_name; + int s = 0; + + + //̽ڵ + tag_t root_task = NULLTAG, *sub_tasks = NULL, current_task = NULLTAG, type_tag = NULLTAG; + printf("̽ڵ\n"); + int sub_task_count = 0; + //EPM_ask_root_task(task_tag, &root_task_tag); + // EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnd, &attachments); + printf("ȡû\n"); + s = POM_get_user(&userName, &aUserTag); + //ȡǰûhomeļ + ITKCALL(SA_ask_user_home_folder(aUserTag, &homefolder)); + //ȡָļж + ITKCALL(AOM_ask_value_tags(homefolder,"contents",&item_count,&folder)); + for (int i = 0; i < item_count; i++) + { + char *name; + ITKCALL(AOM_ask_value_string(folder[i],"object_name",&name)); + if(strcmp("ҵļ",name)==0){ + targetfolder = folder[i]; + break; + } + if(name != NULL){ + MEM_free(name); + } + } + //õhandlerĽڵ + //msg.task; + current_task = msg.task; + //жϵǰڵ + if (current_task != NULLTAG) + { + printf("%%%%%%%%%%%%++++++++++++++ ǰڵ㲻Ϊ"); + char *task_name; + ITKCALL(AOM_ask_value_string(current_task, "object_name", &task_name)); + ECHO("task_name = %s\n", task_name); + if(strstr(task_name,"")!=NULL){ + if(targetfolder != NULL){ + ITKCALL(FL_insert(targetfolder, current_task, 999)); + ITKCALL(AOM_save(targetfolder)); + }else + { + ITKCALL(FL_insert(homefolder, current_task, 999)); + ITKCALL(AOM_save(homefolder)); + } + }else{ + int count = 0,perform_count = 0,usr_item_count = 0; + tag_t *be_tag = NULLTAG,*usr_folder; + char *node_task_name; + tag_t *perform_attaches = NULLTAG,memberTag = NULLTAG,user_tag = NULLTAG,usr_homefolder = NULLTAG; + int *attach_type; + SIGNOFF_TYPE_t memberType; + ITKCALL(AOM_ask_value_tags(current_task,"predecessors",&count, &be_tag)); + for (int j = 0; j < count; j++) + { + EPM_ask_name2(be_tag[j], &node_task_name); + ECHO("node_task_name = %s\n", node_task_name); + if (stricmp(node_task_name, "select-signoff-team") == 0) { + EPM_ask_all_attachments(be_tag[j], &perform_count, &perform_attaches, &attach_type); + ECHO("perform_count=%d\n", perform_count); + for (int i = 0; i +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ERROR_QRY_NOT_FOUND (EMH_USER_error_base + 120) +int tm_show_object_name(EPM_action_message_t msg); +int Connor_set_bypass(void *returnValue); +int Connor_close_bypass(void *returnValue); +int Connor_bypass(EPM_action_message_t msg); +int connor_set_release_status(void * returnValue); +int WF_schedule_has_baseline(EPM_rule_message_t msg); +int WF_set_project_prop(EPM_action_message_t msg); +int WF_project_has_folder(EPM_rule_message_t msg); +int BOM_CHI_ISRELEASE(EPM_rule_message_t msg); +boolean getchibomline_isrelease(tag_t top_line_tag, char* err); +int BOM_CHI_HASNUMBER(EPM_rule_message_t msg); +boolean getchibomline_num(tag_t top_line_tag, char* err); +int WF_check_item_rev(EPM_rule_message_t msg); +int WF_set_picture(EPM_action_message_t msg); +int WF_set_ID(EPM_action_message_t msg); +int WF_item_to_Project(EPM_rule_message_t msg); +int WF_into_picture(EPM_action_message_t msg); +int WF_LC_Folder_System(EPM_action_message_t msg); \ No newline at end of file diff --git a/jf_itk/x64/Release/FED_itk.lastbuildstate b/jf_itk/x64/Release/FED_itk.lastbuildstate new file mode 100644 index 0000000..402d111 --- /dev/null +++ b/jf_itk/x64/Release/FED_itk.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v110:false +Release|x64|C:\Users\61666\Desktop\福尔达最新代码\福尔达服务端\FED_ITK\| diff --git a/jf_itk/x64/Release/JK_itk.Build.CppClean.log b/jf_itk/x64/Release/JK_itk.Build.CppClean.log new file mode 100644 index 0000000..3fbefca --- /dev/null +++ b/jf_itk/x64/Release/JK_itk.Build.CppClean.log @@ -0,0 +1,55 @@ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\COMMON_ITK_UTIL.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\VC110.PDB +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\STRING_UTILS.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\STRING_HELPER.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\OCILIB.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\LIBJF_CUSTOM_MAIN.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\JK_CUSTOM_ERP.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\JK_CUSTOM.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\HZ_CUSTOM.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\HX_CUSTOM.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\ERP_UTILS.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\ERP_SEND_ITEMS.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\EPM_SIGN_REV.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\EPM_SIGNOFF_DATASET.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\EPM_REGISTER_HANDLER.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\EPM_CHECK_STATUS.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\EPM_ATTACH_OBJECTS.OBJ +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\JF_ITK\X64\RELEASE\CONNOR_UTIL.OBJ +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\x64\Release\JK_itk.lib +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\x64\Release\JK_itk.exp +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\X64\RELEASE\JK_ITK.DLL +F:\CONNOR(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\X64\RELEASE\JK_ITK.PDB +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\common_itk_util.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\connor_util.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\epm_attach_objects.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\epm_check_status.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\epm_register_handler.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\epm_signoff_dataset.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\epm_sign_rev.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\erp_send_items.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\erp_utils.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\hx_custom.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\hz_custom.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\jk_custom.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\jk_custom_erp.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\libjf_custom_main.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\ocilib.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\string_helper.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\string_utils.obj +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\cl.command.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\CL.read.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\CL.write.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\JK_itk.write.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\link-cvtres.read.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\link-cvtres.write.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\link-mt.read.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\link-mt.write.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\link-rc.read.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\link-rc.write.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\link.command.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\link.read.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\link.write.1.tlog +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\jf_itk\x64\Release\vc110.pdb +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\x64\Release\JK_itk.pdb +F:\Connor(项目管理)\金卡项目\二次开发代码\ITK\JK_ITK\x64\Release\JK_itk.dll diff --git a/jf_itk/x64/Release/JK_itk.lastbuildstate b/jf_itk/x64/Release/JK_itk.lastbuildstate new file mode 100644 index 0000000..9ea5ac6 --- /dev/null +++ b/jf_itk/x64/Release/JK_itk.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v110:false +Release|x64|C:\Users\61666\Desktop\金卡服务端\JK_ITK\| diff --git a/jf_itk/x64/Release/WFPLM_itk.Build.CppClean.log b/jf_itk/x64/Release/WFPLM_itk.Build.CppClean.log new file mode 100644 index 0000000..d228df5 --- /dev/null +++ b/jf_itk/x64/Release/WFPLM_itk.Build.CppClean.log @@ -0,0 +1,14 @@ +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\vc142.pdb +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\common_itk_util.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\wf_custom.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\string_utils.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\string_helper.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\signoff_rev.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\ocilib.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\libjf_custom_main.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\erp_utils.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\epm_register_handler.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\connor_util.obj +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\wfplm_itk.tlog\cl.command.1.tlog +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\wfplm_itk.tlog\cl.read.1.tlog +c:\users\wangc\desktop\万丰最新代码\wfplm_itk\jf_itk\x64\release\wfplm_itk.tlog\cl.write.1.tlog diff --git a/jf_itk/x64/Release/WFPLM_itk.lastbuildstate b/jf_itk/x64/Release/WFPLM_itk.lastbuildstate new file mode 100644 index 0000000..2aa9fd0 --- /dev/null +++ b/jf_itk/x64/Release/WFPLM_itk.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v110:false +Release|x64|C:\Users\cloong\Desktop\万丰最新代码\WFPLM_ITK\| diff --git a/jf_itk/x64/Release/WFPLM_itk.tlog/CL.command.1.tlog b/jf_itk/x64/Release/WFPLM_itk.tlog/CL.command.1.tlog new file mode 100644 index 0000000..566302e Binary files /dev/null and b/jf_itk/x64/Release/WFPLM_itk.tlog/CL.command.1.tlog differ diff --git a/jf_itk/x64/Release/WFPLM_itk.tlog/CL.read.1.tlog b/jf_itk/x64/Release/WFPLM_itk.tlog/CL.read.1.tlog new file mode 100644 index 0000000..6cae26b Binary files /dev/null and b/jf_itk/x64/Release/WFPLM_itk.tlog/CL.read.1.tlog differ diff --git a/jf_itk/x64/Release/WFPLM_itk.tlog/CL.write.1.tlog b/jf_itk/x64/Release/WFPLM_itk.tlog/CL.write.1.tlog new file mode 100644 index 0000000..b50828d Binary files /dev/null and b/jf_itk/x64/Release/WFPLM_itk.tlog/CL.write.1.tlog differ diff --git a/jf_itk/x64/Release/WFPLM_itk.tlog/WFPLM_itk.lastbuildstate b/jf_itk/x64/Release/WFPLM_itk.tlog/WFPLM_itk.lastbuildstate new file mode 100644 index 0000000..d84815d --- /dev/null +++ b/jf_itk/x64/Release/WFPLM_itk.tlog/WFPLM_itk.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.28.29910:TargetPlatformVersion=10.0.19041.0: +Release|x64|C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\| diff --git a/jf_itk/x64/Release/WFPLM_itk.tlog/unsuccessfulbuild b/jf_itk/x64/Release/WFPLM_itk.tlog/unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/jf_itk/x64/Release/common_itk_util.obj b/jf_itk/x64/Release/common_itk_util.obj new file mode 100644 index 0000000..ba29a28 Binary files /dev/null and b/jf_itk/x64/Release/common_itk_util.obj differ diff --git a/jf_itk/x64/Release/connor_util.obj b/jf_itk/x64/Release/connor_util.obj new file mode 100644 index 0000000..678d7ca Binary files /dev/null and b/jf_itk/x64/Release/connor_util.obj differ diff --git a/jf_itk/x64/Release/epm_register_handler.obj b/jf_itk/x64/Release/epm_register_handler.obj new file mode 100644 index 0000000..3b7deec Binary files /dev/null and b/jf_itk/x64/Release/epm_register_handler.obj differ diff --git a/jf_itk/x64/Release/erp_utils.obj b/jf_itk/x64/Release/erp_utils.obj new file mode 100644 index 0000000..540ae08 Binary files /dev/null and b/jf_itk/x64/Release/erp_utils.obj differ diff --git a/jf_itk/x64/Release/hz_itk.Build.CppClean.log b/jf_itk/x64/Release/hz_itk.Build.CppClean.log new file mode 100644 index 0000000..5ff40bc --- /dev/null +++ b/jf_itk/x64/Release/hz_itk.Build.CppClean.log @@ -0,0 +1,51 @@ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\STRING_UTILS.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\STRING_HELPER.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\OCILIB.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\LIBJF_CUSTOM_MAIN.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\HZ_CUSTOM.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\HX_CUSTOM.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\ERP_UTILS.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\ERP_SEND_ITEMS.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\EPM_SIGN_REV.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\EPM_SIGNOFF_DATASET.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\EPM_REGISTER_HANDLER.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\EPM_CHECK_STATUS.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\EPM_ATTACH_OBJECTS.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\CONNOR_UTIL.OBJ +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\VC110.PDB +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\JF_ITK\X64\RELEASE\COMMON_ITK_UTIL.OBJ +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\x64\Release\hz_itk.lib +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\x64\Release\hz_itk.exp +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\X64\RELEASE\HZ_ITK.DLL +F:\CONNOR(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\X64\RELEASE\HZ_ITK.PDB +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\common_itk_util.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\connor_util.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\epm_attach_objects.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\epm_check_status.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\epm_register_handler.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\epm_signoff_dataset.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\epm_sign_rev.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\erp_send_items.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\erp_utils.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\hx_custom.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\hz_custom.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\libjf_custom_main.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\ocilib.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\string_helper.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\string_utils.obj +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\cl.command.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\CL.read.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\CL.write.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\hz_itk.write.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\link-cvtres.read.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\link-cvtres.write.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\link-mt.read.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\link-mt.write.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\link-rc.read.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\link-rc.write.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\link.command.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\link.read.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\link.write.1.tlog +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\jf_itk\x64\Release\vc110.pdb +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\x64\Release\hz_itk.pdb +F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\x64\Release\hz_itk.dll diff --git a/jf_itk/x64/Release/hz_itk.lastbuildstate b/jf_itk/x64/Release/hz_itk.lastbuildstate new file mode 100644 index 0000000..4633199 --- /dev/null +++ b/jf_itk/x64/Release/hz_itk.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v110:false +Release|x64|F:\Connor(项目管理)\宏协\BYPASS\项目ITK\HZ_ITK\| diff --git a/jf_itk/x64/Release/jf_itk.Build.CppClean.log b/jf_itk/x64/Release/jf_itk.Build.CppClean.log new file mode 100644 index 0000000..779f4b4 --- /dev/null +++ b/jf_itk/x64/Release/jf_itk.Build.CppClean.log @@ -0,0 +1,29 @@ +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\cl.command.1.tlog +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\CL.read.1.tlog +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\CL.write.1.tlog +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\COMMON_ITK_UTIL.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\EPM_REGISTER_HANDLER.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\EPM_SIGN_REV.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\EPM_SIGNOFF_DATASET.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\ERP_SEND_ITEMS.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\ERP_UTILS.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\JF_ITK.DLL.INTERMEDIATE.MANIFEST +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\jf_itk.vcxprojResolveAssemblyReference.cache +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\jf_itk.write.1.tlog +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\LIBJF_CUSTOM_MAIN.OBJ +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\link.command.1.tlog +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\link.read.1.tlog +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\link.write.1.tlog +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\mt.command.1.tlog +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\mt.read.1.tlog +D:\Work\CONNOR\继峰\CODE\jf_itk\jf_itk\x64\Release\mt.write.1.tlog +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\OCILIB.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\STRING_HELPER.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\STRING_UTILS.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\TC_LOG.OBJ +D:\WORK\CONNOR\继峰\CODE\JF_ITK\JF_ITK\X64\RELEASE\VC100.PDB +D:\WORK\CONNOR\继峰\CODE\JF_ITK\X64\RELEASE\$LIBJF.DLL +D:\Work\CONNOR\继峰\CODE\jf_itk\x64\Release\jf_itk.exp +D:\Work\CONNOR\继峰\CODE\jf_itk\x64\Release\jf_itk.lib +D:\WORK\CONNOR\继峰\CODE\JF_ITK\X64\RELEASE\JF_ITK.PDB +D:\WORK\CONNOR\继峰\CODE\JF_ITK\X64\RELEASE\LIBJF.DLL diff --git a/jf_itk/x64/Release/jf_itk.lastbuildstate b/jf_itk/x64/Release/jf_itk.lastbuildstate new file mode 100644 index 0000000..8997680 --- /dev/null +++ b/jf_itk/x64/Release/jf_itk.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|x64|F:\Connor(项目管理)\继峰项目\签名\jf_itk\| diff --git a/jf_itk/x64/Release/jf_itk.log b/jf_itk/x64/Release/jf_itk.log new file mode 100644 index 0000000..3af7ae0 --- /dev/null +++ b/jf_itk/x64/Release/jf_itk.log @@ -0,0 +1,288 @@ + common_itk_util.c +C:\Users\wangc\Desktop\万丰\代码\include\tc\emh_const.h(61,1): warning C4995: “TC_include_tc_emh_const_h_deprecated”: 名称被标记为 #pragma deprecated + connor_util.cpp + epm_register_handler.cpp +C:\Users\wangc\Desktop\万丰\代码\include\tc\emh_const.h(61,1): warning C4995: “TC_include_tc_emh_const_h_deprecated”: 名称被标记为 #pragma deprecated +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(70,12): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(66,29): warning C4101: “str”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(103,9): warning C4101: “now”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(102,56): warning C4101: “temp2”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(102,21): warning C4101: “expire_date”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(102,7): warning C4101: “date_buf”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(104,17): warning C4101: “p”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(102,34): warning C4101: “env”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(102,44): warning C4101: “temp1”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\epm_register_handler.cpp(596,14): warning C4101: “mth_tag”: 未引用的局部变量 + erp_utils.cxx + libjf_custom_main.cpp +C:\Users\wangc\Desktop\万丰\代码\include\tc\emh_const.h(61,1): warning C4995: “TC_include_tc_emh_const_h_deprecated”: 名称被标记为 #pragma deprecated + ocilib.cxx +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\ocilib.cxx(158,4): warning C4267: “参数”: 从“size_t”转换到“ub4”,可能丢失数据 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\ocilib.cxx(181,4): warning C4267: “参数”: 从“size_t”转换到“ub4”,可能丢失数据 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\ocilib.cxx(249,3): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\ocilib.cxx(264,3): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\ocilib.cxx(378,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\ocilib.cxx(412,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + signoff_rev.cpp +C:\Users\wangc\Desktop\万丰\代码\include\tc\emh_const.h(61,1): warning C4995: “TC_include_tc_emh_const_h_deprecated”: 名称被标记为 #pragma deprecated +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(105,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(106,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(107,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(143,10): warning C4129: “c”: 不可识别的字符转义序列 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(156,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(157,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(158,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(159,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(160,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(68,7): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(50,8): warning C4101: “userName”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(117,12): warning C4101: “is_valid”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(188,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(193,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(194,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(195,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(184,10): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(201,11): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(213,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(218,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(219,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(220,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(209,10): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(225,11): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(324,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(331,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(338,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(413,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(414,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(415,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(416,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(417,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(418,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(426,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(427,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(428,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(429,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(430,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(518,11): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(522,11): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(524,11): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(536,11): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(539,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(553,11): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(556,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(593,11): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(596,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(319,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(327,12): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(334,12): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(341,12): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(344,13): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(516,10): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(534,10): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(551,10): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(591,10): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\signoff_rev.cpp(627,12): warning C4102: “end_handler”: 未引用的标签 + string_helper.cpp + string_utils.cxx + w2_Clear_Form_PropValue.cpp +C:\Users\wangc\Desktop\万丰\代码\include\tc\emh_const.h(61,1): warning C4995: “TC_include_tc_emh_const_h_deprecated”: 名称被标记为 #pragma deprecated +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(62,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(63,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(64,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(91,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(92,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(93,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(94,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(59,20): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(69,9): warning C4101: “iCnt”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(70,22): warning C4101: “pTempStr”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(70,9): warning C4101: “user_lib_env”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(145,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(146,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(147,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(172,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(173,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(174,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(175,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(143,20): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(152,9): warning C4101: “iCnt”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(153,22): warning C4101: “pTempStr”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(153,9): warning C4101: “user_lib_env”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(261,17): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(274,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(258,18): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(264,26): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(272,19): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(277,15): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(211,9): warning C4101: “rev_type”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(352,67): warning C4101: “desc_path”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(444,20): warning C4101: “err_function”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(444,8): warning C4101: “err_string”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(466,6): error C2143: 语法错误: 缺少“)”(在“*”的前面) +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(466,6): error C2143: 语法错误: 缺少“;”(在“*”的前面) +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(466,6): error C2182: “va_list”: 非法使用“void”类型 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(466,6): error C2377: “va_list”: 重定义;typedef 不能由任何其他符号重载 +D:\vs2019\VC\Tools\MSVC\14.28.29910\include\vadefs.h(72): message : 参见“va_list”的声明 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(466,6): error C2059: 语法错误:“)” +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(466,6): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(466,6): error C2065: “src”: 未声明的标识符 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(467,11): error C2065: “src”: 未声明的标识符 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(467,15): error C2059: 语法错误:“;” +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(472,1): error C2059: 语法错误:“}” +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\w2_Clear_Form_PropValue.cpp(472,1): error C2143: 语法错误: 缺少“;”(在“}”的前面) +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(68,1): error C2143: 语法错误: 缺少“;”(在“{”的前面) +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(68,1): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(74,14): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(181,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(269,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(278,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(294,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(366,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(375,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(391,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(464,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(473,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(489,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(613,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(622,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(634,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(649,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(720,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(729,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(745,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(787,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(812,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(827,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(841,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(850,5): error C2061: 语法错误: 标识符“LOV_usage_t” +C:\Users\wangc\Desktop\万丰\代码\include\lov\lov.h(876,5): error C2061: 语法错误: 标识符“LOV_usage_t” + wf_custom.cpp +C:\Users\wangc\Desktop\万丰\代码\include\tc\emh_const.h(61,1): warning C4995: “TC_include_tc_emh_const_h_deprecated”: 名称被标记为 #pragma deprecated +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(26,22): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(30,26): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(68,7): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(70,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(72,14): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(191,7): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(194,7): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(289,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(298,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(371,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(411,7): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(367,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(547,8): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(554,8): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(563,6): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(644,6): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(704,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(705,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(706,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(756,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(763,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(770,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(881,6): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(935,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(936,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(937,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1019,10): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1020,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1021,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1026,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1027,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1028,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1029,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1035,10): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1036,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1037,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1038,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1039,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1040,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1078,10): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1079,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1080,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1085,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1086,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1087,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1088,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1094,10): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1095,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1096,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1097,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1098,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1099,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1017,27): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1026,22): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1030,24): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1076,27): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1085,22): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1089,24): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(990,11): warning C4101: “name”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1183,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1192,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1193,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1350,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1381,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1382,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1383,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1388,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1389,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1390,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1391,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1392,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1396,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1401,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1402,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1403,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1404,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1405,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1406,6): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1178,7): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1185,2): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1188,2): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1199,3): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1200,3): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1316,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1319,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1325,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1328,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1334,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1337,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1379,23): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1388,18): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1394,20): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1163,9): warning C4101: “name”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1151,9): warning C4101: “values”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1161,8): warning C4101: “tag_type”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1564,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1488,10): warning C4101: “workname1”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1487,10): warning C4101: “workname”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1716,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1717,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1805,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1819,8): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1820,8): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1826,8): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1827,8): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1828,8): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1862,10): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1863,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1864,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1869,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1870,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1871,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1872,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1878,10): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1879,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1880,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1881,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1882,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1883,10): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1860,27): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1869,23): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1873,24): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1685,9): warning C4101: “jpg_values”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1707,11): warning C4101: “name”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1720,11): warning C4101: “message”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1797,13): warning C4101: “type”: 未引用的局部变量 +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1993,9): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +C:\Users\wangc\Desktop\万丰最新代码\WFPLM_ITK\jf_itk\wf_custom.cpp(1934,8): warning C4101: “task_name”: 未引用的局部变量 diff --git a/jf_itk/x64/Release/jf_itk.vcxproj.FileListAbsolute.txt b/jf_itk/x64/Release/jf_itk.vcxproj.FileListAbsolute.txt new file mode 100644 index 0000000..e69de29 diff --git a/jf_itk/x64/Release/libjf_custom_main.obj b/jf_itk/x64/Release/libjf_custom_main.obj new file mode 100644 index 0000000..5ff5286 Binary files /dev/null and b/jf_itk/x64/Release/libjf_custom_main.obj differ diff --git a/jf_itk/x64/Release/ocilib.obj b/jf_itk/x64/Release/ocilib.obj new file mode 100644 index 0000000..3a708d4 Binary files /dev/null and b/jf_itk/x64/Release/ocilib.obj differ diff --git a/jf_itk/x64/Release/signoff_rev.obj b/jf_itk/x64/Release/signoff_rev.obj new file mode 100644 index 0000000..516e9b3 Binary files /dev/null and b/jf_itk/x64/Release/signoff_rev.obj differ diff --git a/jf_itk/x64/Release/string_helper.obj b/jf_itk/x64/Release/string_helper.obj new file mode 100644 index 0000000..654edc8 Binary files /dev/null and b/jf_itk/x64/Release/string_helper.obj differ diff --git a/jf_itk/x64/Release/string_utils.obj b/jf_itk/x64/Release/string_utils.obj new file mode 100644 index 0000000..eba4e68 Binary files /dev/null and b/jf_itk/x64/Release/string_utils.obj differ diff --git a/jf_itk/x64/Release/tmom_itk.Build.CppClean.log b/jf_itk/x64/Release/tmom_itk.Build.CppClean.log new file mode 100644 index 0000000..f18926d --- /dev/null +++ b/jf_itk/x64/Release/tmom_itk.Build.CppClean.log @@ -0,0 +1,27 @@ +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\cl.command.1.tlog +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\CL.read.1.tlog +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\CL.write.1.tlog +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\COMMON_ITK_UTIL.OBJ +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\EPM_REGISTER_HANDLER.OBJ +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\EPM_SIGN_REV.OBJ +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\EPM_SIGNOFF_DATASET.OBJ +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\ERP_SEND_ITEMS.OBJ +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\ERP_UTILS.OBJ +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\jf_itk.vcxprojResolveAssemblyReference.cache +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\LIBJF_CUSTOM_MAIN.OBJ +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\link.command.1.tlog +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\link.read.1.tlog +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\link.write.1.tlog +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\mt.command.1.tlog +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\mt.read.1.tlog +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\mt.write.1.tlog +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\OCILIB.OBJ +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\STRING_HELPER.OBJ +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\STRING_UTILS.OBJ +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\TMOM_ITK.DLL.INTERMEDIATE.MANIFEST +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\jf_itk\x64\Release\tmom_itk.write.1.tlog +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\JF_ITK\X64\RELEASE\VC100.PDB +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\X64\RELEASE\TMOM_ITK.DLL +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\x64\Release\tmom_itk.exp +F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\x64\Release\tmom_itk.lib +F:\CONNOR(项目管理)\东睦项目\项目ITK\JF_ITK\X64\RELEASE\TMOM_ITK.PDB diff --git a/jf_itk/x64/Release/tmom_itk.lastbuildstate b/jf_itk/x64/Release/tmom_itk.lastbuildstate new file mode 100644 index 0000000..0fe1292 --- /dev/null +++ b/jf_itk/x64/Release/tmom_itk.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|x64|F:\Connor(项目管理)\东睦项目\项目ITK\jf_itk\| diff --git a/jf_itk/x64/Release/vc142.pdb b/jf_itk/x64/Release/vc142.pdb new file mode 100644 index 0000000..134edcb Binary files /dev/null and b/jf_itk/x64/Release/vc142.pdb differ diff --git a/jf_itk/x64/Release/wf_custom.obj b/jf_itk/x64/Release/wf_custom.obj new file mode 100644 index 0000000..7e0e5bd Binary files /dev/null and b/jf_itk/x64/Release/wf_custom.obj differ diff --git a/x64/Release/WFPLM_itk.exp b/x64/Release/WFPLM_itk.exp new file mode 100644 index 0000000..f316a81 Binary files /dev/null and b/x64/Release/WFPLM_itk.exp differ diff --git a/x64/Release/WFPLM_itk.lib b/x64/Release/WFPLM_itk.lib new file mode 100644 index 0000000..89c245f Binary files /dev/null and b/x64/Release/WFPLM_itk.lib differ