#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),itemrev与Form关系、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 */