static int ossfs_mknod(const char *path, mode_t mode, dev_t rdev) { gint res; OssObject *object; GError *error; GString *dir; g_debug("ossfs_mknod(path=%s, mode=%d)", path, mode); dir = g_string_new(path); if (S_ISDIR(mode)) { /* mkdir */ g_string_append_c(dir, '/'); } object = oss_object_new(dir->str); g_string_free(dir, TRUE); if (!object) return -ENOMEM; g_hash_table_insert(object->meta, g_strdup(OSS_META_MODE), ltos((long)mode)); error = NULL; res = oss_object_put(service, object, &error); if (res) { if (error->code == OSS_ERROR_NO_SUCH_BUCKET) res = -ENOENT; else if (error->code == OSS_ERROR_ACCESS_DENIED) res = -EACCES; else if (error->code == OSS_ERROR_INVALID_OBJECT_NAME) res = -ENAMETOOLONG; else res = -EIO; oss_object_destroy(object); g_error_free(error); return res; } oss_object_destroy(object); return 0; }
static int ossfs_truncate(const char *path, off_t size) { gint res; OssObject *object; GError *error; struct stat stbuf; g_debug("ossfs_truncate(path=%s, size=%ld)", path, (long)size); object = oss_object_new(path); if (!object) return -ENOMEM; error = NULL; res = oss_object_get(service, object, &error); if (res) { if (error->code == OSS_ERROR_NO_SUCH_KEY) res = -ENOENT; else if (error->code == OSS_ERROR_INVALID_OBJECT_NAME) res = -ENAMETOOLONG; else res = -EIO; oss_object_destroy(object); g_error_free(error); return res; } if (object->content == NULL) { oss_object_destroy(object); return -EIO; } res = ftruncate(fileno(object->content), size); if (res == -1) return -errno; res = ossfs_getattr(object->key, &stbuf); if (res) { oss_object_destroy(object); return res; } g_hash_table_insert(object->meta, g_strdup(OSS_META_MODE), ltos((long)stbuf.st_mode)); error = NULL; res = oss_object_put(service, object, &error); if (res) { if (error->code == OSS_ERROR_NO_SUCH_BUCKET) res = -ENOENT; else if (error->code == OSS_ERROR_ACCESS_DENIED) res = -EACCES; else if (error->code == OSS_ERROR_INVALID_OBJECT_NAME) res = -ENAMETOOLONG; else res = -EIO; oss_object_destroy(object); g_error_free(error); return res; } if (cache_contains(object->key)) { cache_remove(object->key); } oss_object_destroy(object); return 0; }
//吊架和支架数据的导入pfg20050615 //flag=0 为吊架; flag=1 为支架 //记录集是结果集 对应ZA表 //rsHR记录集是数据源集(弹簧、吊架) //ltemp 支吊架号 void CAESARIIToPHS::ImportHangerRestraints(_RecordsetPtr rsData,_RecordsetPtr rsHR,long <emp,long &FileNameID,char *strPSAVER,long &node,int flag) { _variant_t tmpvar; long lTmp; try { if(flag) { tmpvar=rsHR->GetCollect(_T("node_num")); lTmp=vtoi(rsHR->GetCollect(_T("RES_TYPEID")));//pfg20050624 } else { tmpvar=rsHR->GetCollect(_T("node")); } if(tmpvar.vt==VT_EMPTY||tmpvar.vt==VT_NULL) { return; } else { node=vtoi(tmpvar); } if ( node < 1e-6 ) //5.2版本中所有的约束信息会导入INPUT_RESTRAINTS表中(同一约束点会有四条记录,所以会有NODE_NUM为-1情况) return; if(rsData->GetRecordCount()>0) { rsData->MoveFirst(); } rsData->Filter = _variant_t(CString("[jsdbh1] = ") + ltos(node)+" AND [FileNameID]="+ltos(FileNameID)); if (rsData->adoEOF&&rsData->BOF) { rsData->AddNew(); rsData->PutCollect("VolumeID",_variant_t(EDIBgbl::SelVlmID)); rsData->PutCollect("zdjh",_variant_t((long)(ltemp+1))); rsData->PutCollect("FileNameID",_variant_t(FileNameID)); ltemp++; rsData->Update(); } rsData->PutCollect("PSAver", _variant_t(strPSAVER)); rsData->PutCollect("UPxyz",_variant_t((long)m_iUPxyz)); rsData->PutCollect("JSDBH1", _variant_t((long)node)); rsData->Update(); } catch (_com_error &e) { CString strMsg; strMsg.Format("%s:%d %s", __FILE__, __LINE__, (LPSTR)e.Description()); AfxMessageBox(strMsg); } }
void CPreDrawPag::VerifyCirDiaOrMinOffset(BOOL bVerifyCirDia) { UpdateData(TRUE); if( bVerifyCirDia ) { if( m_fCircleDiameter > 10 ) m_fCircleDiameter = 6; float fSEQyOffset = _ttoi(m_sComboSEQyOffset); if( m_fCircleDiameter > fSEQyOffset ) { m_sComboSEQyOffset = ltos( m_fCircleDiameter ); } } else { int iSel = m_ComboSEQyOffset.GetCurSel(); if( iSel < 0 ) m_ComboSEQyOffset.GetWindowText(m_sComboSEQyOffset); else m_ComboSEQyOffset.GetLBText(iSel,m_sComboSEQyOffset); float fSEQyOffset = _ttoi(m_sComboSEQyOffset); if( fSEQyOffset > 40 ) fSEQyOffset = 10; if( fSEQyOffset < 5 ) fSEQyOffset = 5; if( m_bCheckTagUsingCircle ) { if( fSEQyOffset < m_fCircleDiameter ) { fSEQyOffset = m_fCircleDiameter; } } m_sComboSEQyOffset = ltos(fSEQyOffset); } UpdateData(FALSE); }
static int ossfs_chmod(const char *path, mode_t mode) { gint res; OssObject *object; GError *error; GString *dir; struct stat stbuf; g_debug("ossfs_chmod(path=%s, mode=%d)", path, mode); dir = g_string_new(path); if (S_ISDIR(mode)) { /* path is a directory */ g_debug("%s is a directory", path); g_string_append_c(dir, '/'); } object = oss_object_new(dir->str); g_string_free(dir, TRUE); if (!object) return -ENOMEM; error = NULL; res = oss_object_head(service, object, &error); if (res) { oss_object_destroy(object); g_error_free(error); switch (error->code) { case OSS_ERROR_NO_SUCH_KEY: return -ENOENT; } return -EIO; } g_hash_table_insert(object->meta, g_strdup(OSS_META_MODE), ltos((long)mode)); error = NULL; res = oss_object_copy(service, object, bucket, object, &error); if (res) { if (error->code == OSS_ERROR_NO_SUCH_BUCKET) res = -ENOENT; else if (error->code == OSS_ERROR_ACCESS_DENIED) res = -EACCES; else if (error->code == OSS_ERROR_INVALID_OBJECT_NAME) res = -ENAMETOOLONG; else res = -EIO; oss_object_destroy(object); g_error_free(error); return res; } if (cache_contains(object->key)) { cache_remove(object->key); } oss_object_destroy(object); return 0; }
string sConnector::ToString() { CT2CA pszConvertedAnsiString (text); std::string strStd (pszConvertedAnsiString); return name + "," + ltos(lineType) + "," + ltos(lineThickness) + "," + ltos(lineColor) + "," + strStd //formatted text + "," + ltos(start.x) + "," + ltos(start.y) + "," + ltos(end.x) + "," + ltos(end.y) + "\n"; }
static int ossfs_symlink(const char *from, const char *to) { gint res; OssObject *object; GError *error; FILE *f; gsize cnt; g_debug("ossfs_symlink(from=%s, to=%s)", from, to); object = oss_object_new(to); if (!object) return -ENOMEM; g_hash_table_insert(object->meta, g_strdup(OSS_META_MODE), ltos((long)(default_mode | S_IFLNK))); f = tmpfile(); if (f == NULL) { oss_object_destroy(object); return -errno; } object->content = f; cnt = fwrite(from, 1, strlen(from), f); if (cnt < strlen(from)) { oss_object_destroy(object); return -EIO; } rewind(f); error = NULL; res = oss_object_put(service, object, &error); if (res) { if (error->code == OSS_ERROR_NO_SUCH_BUCKET) res = -ENOENT; else if (error->code == OSS_ERROR_ACCESS_DENIED) res = -EACCES; else if (error->code == OSS_ERROR_INVALID_OBJECT_NAME) res = -ENAMETOOLONG; else res = -EIO; oss_object_destroy(object); g_error_free(error); return res; } if (cache_contains(object->key)) { cache_remove(object->key); } oss_object_destroy(object); return 0; }
void assnum(unsigned char **p, long i) { int j = ltos(i); replace(p, &numbuf[j]); }
void mgrCtsList(int fd, short evfd, void *arg) { sp_conn_p c = (sp_conn_p)arg; spXmlParser p("/home/dev/cpp/docroot/sirius/modules.xsl"); std::string myxml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; char * presult; svec d,i; svec::iterator di,ii; fprintf(stderr,"%s line %d...\n",__func__,__LINE__); for(;;){ //this permits few cycles switch(c->hndstate) { case 0: fprintf(stderr,"%s line %d...\n",__func__,__LINE__); c->hndstate = 1; //nextstate if(!runProgram("vzlist -H -a -o ctid,hostname,ostemplate,ip,status,numproc,diskspace,diskspace.s,laverage,cpulimit,cpuunits,ioprio,onboot",c)){ fprintf(stderr,"%s line %d...\n",__func__,__LINE__); c->hndstate = 2; //nextstate break; //next cycle } fprintf(stderr,"%s line %d...\n",__func__,__LINE__); return; case 1: //prepare output buf c->resp->status=200; fprintf(stderr,"%s line %d...\n",__func__,__LINE__); (*c->resp->h_out)["Content-Type"] = "text/html"; conn_compile_resp(c); fprintf(stderr,"%s line %d...\n",__func__,__LINE__); //process retrieved buffer d = explode(c->rp->buf,c->rp->len,'\n'); //free run result runProgramFinish(c->rp); fprintf(stderr,"%s line %d...\n",__func__,__LINE__); myxml += "<doc mtime=\"45gvergv4rg\" binary=\"/mgr/\" theme=\"/sirius/\" " "fixpng=\"\" localdir=\"local/\" img=\"\" css=\"main.css\" logolink=\"/mgr/\" logo=\"logo-vdsmgr.png\" >" "<p_num>1</p_num>" "<p_cnt>1</p_cnt>" "<p_sort>''</p_sort>" "<p_order>''</p_order>" "<plid></plid>" "<func>vds</func>" "<slave>0</slave>" "<tfilter></tfilter>" "<metadata type=\"list\" selficon=\"main\">" "<coldata type=\"list\" key=\"sss\">" "<col type=\"data\" name=\"elid\" wrap=\"no\" align=\"left\" />" "<col type=\"data\" name=\"host\" wrap=\"no\" align=\"left\" />" "<col type=\"data\" name=\"ipaddr\" wrap=\"no\" align=\"left\" />" "<col type=\"data\" name=\"ostempl\" wrap=\"no\" align=\"left\" />" "<col type=\"data\" name=\"numproc\" wrap=\"no\" align=\"left\" />" "<col type=\"data\" name=\"status\" wrap=\"no\" align=\"left\" />" "<col type=\"data\" name=\"laverage\" wrap=\"no\" align=\"left\" />" "<col type=\"data\" name=\"space\" wrap=\"no\" align=\"left\" />" "</coldata>" "<toolbar type=\"list\" key=\"sss\">" "<toolbtn type=\"func\" name=\"create\" img=\"t-new\" default=\"yes\" func=\"tb_op_new('vds.add')\" />" "<toolbtn type=\"edit\" img=\"t-edit\" default=\"no\" func=\"vds.edit\" />" //"<toolbtn type=\"edit\" img=\"t-on\" func=\"vds.start\" />" //"<toolbtn type=\"edit\" img=\"t-off\" func=\"vds.stop\" />" "</toolbar>" "</metadata>" ; fprintf(stderr,"%s line %d...\n",__func__,__LINE__); for(di = d.begin(); di < d.end(); di++) { i = explode(di->c_str()); //conn_fillresp(c,di->c_str()); myxml += "<elem>"; myxml += "<elid>"+i[0]+"</elid>"; myxml += "<host>"+i[1]+"</host>"; myxml += "<ostempl>"+i[2]+"</ostempl>"; myxml += "<ipaddr>"+i[3]+"</ipaddr>"; myxml += "<status>"+i[4]+"</status>"; myxml += "<numproc>"+i[5]+"</numproc>"; myxml += "<space>"+ltos(atol(i[6].c_str())/1024)+(std::string)"/"+ltos(atol(i[7].c_str())/1024)+"</space>"; myxml += "<laverage>"+i[8]+"</laverage>"; myxml += "</elem>"; } myxml += "<messages>" "<msg name=\"title\">Список контейнеров</msg>" "<msg name=\"elid\">Сист. номер</msg>" "<msg name=\"numproc\">Процессов</msg>" "<msg name=\"ostempl\">Шаблон ОС</msg>" "<msg name=\"laverage\">Нагрузка</msg>" "<msg name=\"status\">Состояние</msg>" "<msg name=\"ipaddr\">IP-адрес</msg>" "<msg name=\"space\">Использование диска</msg>" "<msg name=\"host\">Хост</msg>" "<msg name=\"hint_create\">create111</msg>" "</messages>" "</doc>"; fprintf(stderr,"%s line %d... %s\n",__func__,__LINE__,myxml.c_str()); presult = p.parse(myxml); if(presult != NULL){ conn_fillresp(c,presult); }else{ conn_fillresp(c,"Template parse error"); } c->handler = sp_finish_request; sp_next(c, c->handler); return; case 2: //error 500 c->resp->status=500; c->handler = sp_finish_request; sp_next(c, c->handler); return; } } }
/* * set a variable * * int f; default flag * int n; numeric arg (can overide prompted value) */ int setvar(int f, int n) { int status; /* status return */ #if DEBUGM char *sp; /* temp string pointer */ char *ep; /* ptr to end of outline */ #endif struct variable_description vd; /* variable num/type */ char var[NVSIZE + 1]; /* name of variable to fetch */ char value[NSTRING]; /* value to set variable to */ /* first get the variable to set.. */ if (clexec == FALSE) { status = mlreply("Variable to set: ", &var[0], NVSIZE); if (status != TRUE) return status; } else { /* macro line argument */ /* grab token and skip it */ execstr = token(execstr, var, NVSIZE + 1); } /* check the legality and find the var */ findvar(var, &vd, NVSIZE + 1); /* if its not legal....bitch */ if (vd.v_type == -1) { mlwrite("%%No such variable as '%s'", var); return FALSE; } /* get the value for that variable */ if (f == TRUE) strcpy(value, itoa(n)); else { status = mlreply("Value: ", &value[0], NSTRING); if (status != TRUE) return status; } /* and set the appropriate value */ status = svar(&vd, value); #if DEBUGM /* if $debug == TRUE, every assignment will echo a statment to that effect here. */ if (macbug) { strcpy(outline, "((("); /* assignment status */ strcat(outline, ltos(status)); strcat(outline, ":"); /* variable name */ strcat(outline, var); strcat(outline, ":"); /* and lastly the value we tried to assign */ strcat(outline, value); strcat(outline, ")))"); /* expand '%' to "%%" so mlwrite wont bitch */ sp = outline; while (*sp) if (*sp++ == '%') { /* advance to the end */ ep = --sp; while (*ep++); /* null terminate the string one out */ *(ep + 1) = 0; /* copy backwards */ while (ep-- > sp) *(ep + 1) = *ep; /* and advance sp past the new % */ sp += 2; } /* write out the debug line */ mlforce(outline); update(TRUE); /* and get the keystroke to hold the output */ if (get1key() == abortc) { mlforce("(Macro aborted)"); status = FALSE; } } #endif /* and return it */ return status; }
StrPP::StrPP(const long n) { Init(); ltos(n); }
StrPP& StrPP::operator=(const long n) { ltos(n); return *this; }
StrPP::StrPP(const int n) { Init(); ltos((long)n); }
void CPreDrawPag::SetCtrlValue() { //lfx 2005.6.30 加 焊缝选项 m_bDrawWeldSymbol = modPHScal::gbDrawWeldSymbol; m_bAutoWeldViewInsertPoint = modPHScal::gbAutoWeldViewInsertPoint; m_bDrawWeldViewDim = modPHScal::gbDrawWeldViewDim; m_bWeldAutoDirectAndPos = modPHScal::gbWeldAutoDirectAndPos; //END lfx 2005.6.30 m_bNotDrawWeight = EDIBAcad::g_bNotDrawSingleWeight; m_bInsertLength = EDIBAcad::g_bInsertLength; m_bPrintSA_Value = EDIBAcad::g_bPrintSA_Value; m_bInstallElevation = EDIBAcad::g_bInstallElevation; m_bColdHeatState = EDIBAcad::g_bColdHeatState; m_bHzabs = EDIBAcad::g_bHzabs; m_bSymbol = EDIBgbl::bSymbol; m_bTBhq = modPHScal::gbTBhq; m_bNoWaiKuang = modPHScal::gbNoWaiKuang; m_OrientationPicture=modPHScal::gbOrientationPicture;//pfg20050531 m_bCheckOSFlag = EDIBgbl::gbTbOS; m_sComboSEQyOffset = ltos(modPHScal::gnSEQyOffset); m_bCheckNotPROMPT_ACAD_SHIFT = modPHScal::gbNotPrompt_ACAD_SHIFT; m_IsACAD = modPHScal::gIsACAD; m_bCheckNotPROMPT_Catlog_Overwrite = modPHScal::gbNotPrompt_Catlog_OVERWRITE; CheckRadioButton(IDC_DRAWSIZE_A3,IDC_DRAWSIZE_AUTO,IDC_DRAWSIZE_A3+modPHScal::giDrawSIZE_A3A4); CheckRadioButton(IDC_RCAD,IDC_RMICROSTATION,IDC_RCAD+modPHScal::gIsACAD); CheckRadioButton(IDC_RADIO230,IDC_RADIO232,IDC_RADIO230+modPHScal::giPhsOutINFOTableType);//PFG20050523 if(modPHScal::gsPhsColor == "white") OnPhscolor0(); else if( modPHScal::gsPhsColor == "Green") OnPhscolor1(); else if(modPHScal::gsPhsColor == "Auto") OnPhscolor2(); else OnPhscolor0(); m_bCheckDraw_BOM = modPHScal::gbDraw_BOM; m_bCheckAnnotateCSPR = modPHScal::gbAnnotateCSPR; m_bCheckDrawOverWrite =modPHScal::gbDrawOVERWRITE; m_bNoFenQu=modPHScal::gbNoFenQu; m_bCheckDrawNoPre = modPHScal::gbDrawNoPreMethod; m_bCheckAutoSaveDrawing = modPHScal::gbAutoSaveDrawing; m_sTextDrawNoStartNumber.Format(_T("%02d"),modPHScal::glDrawNoStartNumber); this->CheckRadioButton(IDC_DWGPRE0,IDC_DWGPRE1,IDC_DWGPRE0+modPHScal::glDWGPreMethod); if(modPHScal::glDWGPreMethod==0) { GetDlgItem(IDC_FRM_DWGPRE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PRECHAR)->ShowWindow(SW_HIDE); } else if(modPHScal::glDWGPreMethod==1) { GetDlgItem(IDC_FRM_DWGPRE)->ShowWindow(SW_SHOW); GetDlgItem(IDC_PRECHAR)->ShowWindow(SW_SHOW); } m_stextDWGPRE = modPHScal::gsDWGPre; m_bCheckDraw_SumWeight = EDIBAcad::g_bDrawSumWeight; //m_bCheckGroupWare = EDIBAcad::g_bGroupWare; m_GroupWare = EDIBAcad::g_bGroupWare; m_strDwgVersion = EDIBgbl::strDwgVersion; //Add by lfx 置初始图号 2005.4.1 m_MaxLGLong=EDIBgbl::MaxLGLong;//pfg 20050922 //cbl //材料表与零件明细表中的“组件”写成,自定义名字文本框是否显示出来 if(m_GroupWare == 2) { m_GroupWareEdit.ShowWindow(SW_SHOW); } else { m_GroupWareEdit.ShowWindow(SW_HIDE); } // m_strGroupWareName = EDIBAcad::g_strGroupWareName; m_bCheckCustomPicNo = EDIBAcad::g_bCustomPicNo; m_bCheckLJMX_BJBW = EDIBAcad::g_bLJMX_BJBW; m_bCheckBGForBJBW = EDIBAcad::g_bBGForBJBW; m_bCheckDWForBJBW = EDIBAcad::g_bDWForBJBW; m_bSumBomSprFactory = EDIBAcad::g_bSumBomSprFactory; m_bBomSprFactory = EDIBAcad::g_bBomSprFactory; m_bDimLocation = EDIBAcad::g_bLocationDimension; m_bCheckDLOADBJBW = EDIBAcad::g_bDLOADBJBW; m_bCheckDrawNameWithoutNo = EDIBAcad::g_bDrawNameWithoutNo; m_fCircleDiameter = modPHScal::gfSeqCircleDiameter; m_fSeqTxtHeight = modPHScal::gfSeqTxtHeight; m_bCheckTagUsingCircle = EDIBAcad::g_bTagUsingCircle; if( m_bCheckTagUsingCircle ) { GetDlgItem(IDC_EDIT_CIRCLE_DIAMETER)->EnableWindow(TRUE); } else { GetDlgItem(IDC_EDIT_CIRCLE_DIAMETER)->EnableWindow(FALSE); } m_fOvertopDim = EDIBAcad::g_fOvertopDim; m_fDistanceOffset = EDIBAcad::g_fDistanceOffset; m_fSetTKWidth = EDIBAcad::g_fSetTKWidth; m_fSetTableWidth = EDIBAcad::g_fSetTableWidth; m_bDimNumber = EDIBAcad::g_bDimNumber; UpdateData(false); }
int F843362(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret=0; CAccTrans& ats=CAccTrans::GetInst(); des2src(ats.trans.opercode,rPack->semp); ats.trans.transcode=MAKETRANSCODEADD(TCM_DEPOSITOPERPOS); ret=ats.InitTrans(); if(ret) return ret; char deviceid[31]=""; T_t_dpsoperpos tDepositOperPos; T_t_dpsoper tDepositOper; T_t_dpsshoppos tDepositShopPos; memset(&tDepositOperPos,0,sizeof(tDepositOperPos)); memset(&tDepositOper,0,sizeof(tDepositOper)); memset(&tDepositShopPos,0,sizeof(tDepositShopPos)); if(!strlen(rPack->vsvarstr1)) { return E_INPUT_DATA_INVAILD; } ret=DB_t_dpsoper_read_by_opercode(rPack->scust_auth,&tDepositOper); if(ret) { if(DB_NOTFOUND==ret) return ERRINFO(E_NOTEXIST_DEPOSITOPER,rPack->scust_auth); else return E_DB_DEPOSITOPER_R; } if(tDepositOper.devlimitflag[0]!='1') { return E_OPER_NO_NEED_DEVICE; } des2src(tDepositOperPos.opercode,rPack->scust_auth); des2src(tDepositOperPos.openoper,rPack->semp); des2src(tDepositOperPos.lastsaved,CAccTrans::GetInst().hostdatetime); vector<string> strlist; split2list(rPack->vsvarstr1,',',strlist); for(int i=0;i<strlist.size();i++) { tDepositOperPos.deviceid=atoi(strlist[i].c_str()); //如果操作员不是充值商户操作员则不允许绑定充值商户设备 ret=DB_t_dpsshoppos_read_by_deviceid(tDepositOperPos.deviceid, &tDepositShopPos); if(ret) { if(ret==DB_NOTFOUND) { if(tDepositOper.shopoperflag[0]=='1') { return ERRINFO(E_DEVICE_NOTIS_DEPOSITSHOP,tDepositOperPos.deviceid); } } else { return E_DB_DEPOSITSHOPPOS_R; } } else { if(tDepositOper.shopoperflag[0]=='0') { return ERRINFO(E_DEVICE_IS_DEPOSITSHOP,tDepositOperPos.deviceid); } } SQLCODE=0; ret=DB_t_dpsoperpos_add(&tDepositOperPos); if(ret) { writelog(LOG_ERR,"opercode[%s]",tDepositOperPos.opercode); if(DB_REPEAT==ret) { return ERRINFO(E_DB_DEPOSITOPERPOS_E,tDepositOperPos.opercode,ltos(tDepositOperPos.deviceid).c_str()); } else { return E_DB_DEPOSITOPERPOS_I; } } } return 0; }
/* * Evaluate a function. * * @fname: name of function to evaluate. */ char *gtfun(char *fname) { int fnum; /* index to function to eval */ int status; /* return status */ char *tsp; /* temporary string pointer */ char arg1[NSTRING]; /* value of first argument */ char arg2[NSTRING]; /* value of second argument */ char arg3[NSTRING]; /* value of third argument */ static char result[2 * NSTRING]; /* string result */ /* look the function up in the function table */ fname[3] = 0; /* only first 3 chars significant */ mklower(fname); /* and let it be upper or lower case */ for (fnum = 0; fnum < ARRAY_SIZE(funcs); fnum++) if (strcmp(fname, funcs[fnum].f_name) == 0) break; /* return errorm on a bad reference */ if (fnum == ARRAY_SIZE(funcs)) return errorm; /* if needed, retrieve the first argument */ if (funcs[fnum].f_type >= MONAMIC) { if ((status = macarg(arg1)) != TRUE) return errorm; /* if needed, retrieve the second argument */ if (funcs[fnum].f_type >= DYNAMIC) { if ((status = macarg(arg2)) != TRUE) return errorm; /* if needed, retrieve the third argument */ if (funcs[fnum].f_type >= TRINAMIC) if ((status = macarg(arg3)) != TRUE) return errorm; } } /* and now evaluate it! */ switch (fnum) { case UFADD: return itoa(atoi(arg1) + atoi(arg2)); case UFSUB: return itoa(atoi(arg1) - atoi(arg2)); case UFTIMES: return itoa(atoi(arg1) * atoi(arg2)); case UFDIV: return itoa(atoi(arg1) / atoi(arg2)); case UFMOD: return itoa(atoi(arg1) % atoi(arg2)); case UFNEG: return itoa(-atoi(arg1)); case UFCAT: strcpy(result, arg1); return strcat(result, arg2); case UFLEFT: return strncpy(result, arg1, atoi(arg2)); case UFRIGHT: return (strcpy(result, &arg1[(strlen(arg1) - atoi(arg2))])); case UFMID: return (strncpy(result, &arg1[atoi(arg2) - 1], atoi(arg3))); case UFNOT: return ltos(stol(arg1) == FALSE); case UFEQUAL: return ltos(atoi(arg1) == atoi(arg2)); case UFLESS: return ltos(atoi(arg1) < atoi(arg2)); case UFGREATER: return ltos(atoi(arg1) > atoi(arg2)); case UFSEQUAL: return ltos(strcmp(arg1, arg2) == 0); case UFSLESS: return ltos(strcmp(arg1, arg2) < 0); case UFSGREAT: return ltos(strcmp(arg1, arg2) > 0); case UFIND: return strcpy(result, getval(arg1)); case UFAND: return ltos(stol(arg1) && stol(arg2)); case UFOR: return ltos(stol(arg1) || stol(arg2)); case UFLENGTH: return itoa(strlen(arg1)); case UFUPPER: return mkupper(arg1); case UFLOWER: return mklower(arg1); case UFTRUTH: return ltos(atoi(arg1) == 42); case UFASCII: return itoa((int) arg1[0]); case UFCHR: result[0] = atoi(arg1); result[1] = 0; return result; case UFGTKEY: result[0] = tgetc(); result[1] = 0; return result; case UFRND: return itoa((ernd() % abs(atoi(arg1))) + 1); case UFABS: return itoa(abs(atoi(arg1))); case UFSINDEX: return itoa(sindex(arg1, arg2)); case UFENV: #if ENVFUNC tsp = getenv(arg1); return tsp == NULL ? "" : tsp; #else return ""; #endif case UFBIND: return transbind(arg1); case UFEXIST: return ltos(fexist(arg1)); case UFFIND: tsp = flook(arg1, TRUE); return tsp == NULL ? "" : tsp; case UFBAND: return itoa(atoi(arg1) & atoi(arg2)); case UFBOR: return itoa(atoi(arg1) | atoi(arg2)); case UFBXOR: return itoa(atoi(arg1) ^ atoi(arg2)); case UFBNOT: return itoa(~atoi(arg1)); case UFXLATE: return xlat(arg1, arg2, arg3); } exit(-11); /* never should get here */ }
//绘制表格 void CDrawZDJTableID::DrawzdjTable(int index,bool bIsCom) { try { bool Found=false; CCadPoint p0, p1; _RecordsetPtr rs; rs.CreateInstance(__uuidof(Recordset)); _RecordsetPtr rs1; rs1.CreateInstance(__uuidof(Recordset)); int i=0; int k=0; static int n=0; if(index!=iZDJDRAWEXECL && index!=iZDJDRAWCatalogueExcel) { EDIBAcad::StartAcad(); EDIBAcad::DisplayAcadTop(); EDIBAcad::SetAcadTop(); EDIBAcad::GetActiveAcadDoc(); } //如果当前打开的图形不是(PhsBlkDir & _T("phs.dwg")),需要重新打开 //因为后面的操作需要大量的图形块准备好 CString sTmp,sTmp1; _variant_t vTmp; CMObject objTmp; CCadPoint pTmp; CString SQLx; _variant_t varTmp; _variant_t varNull; varNull.ChangeType(VT_NULL); if(index!=iZDJDRAWTag && index!=iZDJDRAWbom) { //判断是否所有支吊架计算完成。 try { if(!FrmTxsr.m_pViewTxsr->m_ActiveRs->adoEOF && !FrmTxsr.m_pViewTxsr->m_ActiveRs->BOF) FrmTxsr.m_pViewTxsr->m_ActiveRs->Update(); } catch (_com_error &e) { CString strMsg; strMsg.Format("%s:%d %s", __FILE__, __LINE__, (LPSTR)e.Description()); AfxMessageBox(strMsg); } CString SQLx = _T("SELECT count(*) FROM [") + EDIBgbl::Btype[EDIBgbl::TZA] + _T("] WHERE ( bCalSuccess=0 OR bCalSuccess IS NULL )"); if(modPHScal::gbSumAllVolume ) { SQLx +=_T(" AND VolumeID IN ( SELECT VolumeID FROM Volume WHERE EnginID=\'") + EDIBgbl::SelPrjID + _T("\' AND ZYID = ") + ltos(EDIBgbl::SelSpecID) + _T(" AND SJJDID = ") + ltos(EDIBgbl::SelDsgnID) + _T(" AND SJHYID = ") + ltos(EDIBgbl::SelHyID) +_T(") "); } else { SQLx +=_T(" AND VolumeID =") + ltos(EDIBgbl::SelVlmID); } long i1,i2; rs1->Open(_variant_t(SQLx),(IDispatch*)::conPRJDB,adOpenForwardOnly,adLockReadOnly,adCmdText); i1=vtoi(rs1->GetCollect(_variant_t((long)0))); rs1->Close(); SQLx = _T("SELECT count(*) FROM [") + EDIBgbl::Btype[EDIBgbl::TZA] + _T("] WHERE "); if(modPHScal::gbSumAllVolume ) { SQLx +=_T(" VolumeID IN ( SELECT VolumeID FROM Volume WHERE EnginID=\'") + EDIBgbl::SelPrjID + _T("\' AND ZYID = ") + ltos(EDIBgbl::SelSpecID) + _T(" AND SJJDID = ") + ltos(EDIBgbl::SelDsgnID) + _T(" AND SJHYID = ") + ltos(EDIBgbl::SelHyID) +_T(") "); } else { SQLx +=_T(" VolumeID =") + ltos(EDIBgbl::SelVlmID); } rs1->Open(_variant_t(SQLx),(IDispatch*)::conPRJDB,adOpenForwardOnly,adLockReadOnly,adCmdText); i2=vtoi(rs1->GetCollect(_variant_t((long)0))); rs1->Close(); rs1=NULL; CString strTmp; strTmp.Format(GetResStr(IDS_SomePhsNotCalSuccess),ltos(i2),ltos(i2-i1),ltos(i1)); if( IDNO == ShowMessage(strTmp,MB_DEFBUTTON1|MB_ICONQUESTION|MB_YESNO) ) return; } switch(index) { case iZDJDRAWTag: break; case iZDJDRAWbom: modPHScal::SetBasePoint(); Cavphs->GetphsSEQ(FrmTxsr.m_pViewTxsr->m_ActiveRs); EDIBDB::MakeTmp2ToBom(); p0.SetPoint(modPHScal::pt2x,modPHScal::pt2y); EDIBAcad::DeleteAllEntitiesInLayers(1,_T("bom")); rs->Open((_bstr_t)_T("SELECT * FROM TMP2"), _variant_t((IDispatch*)EDIBgbl::dbPRJ,true), adOpenStatic, adLockOptimistic, adCmdText); EDIBAcad::DrawTableACAD(p0, EDIBgbl::TLJ, atan(1.0) * 0.0, rs,0,1.0f,_T("Bom"),_T("Bom"),_T("%g"),modPHScal::iAlignLjmx); sTmp.Format(GetResStr(IDS_xDrawingFinished),EDIBgbl::Cbtype[EDIBgbl::TCL].MnuCaption); ShowMessage(sTmp); break; case iZDJDRAWbomBJBW: modPHScal::SetBasePoint(); Cavphs->GetphsSEQ(FrmTxsr.m_pViewTxsr->m_ActiveRs); EDIBDB::MakeTmp2ToBom(); p0.SetPoint(modPHScal::pt2x,modPHScal::pt2y); EDIBAcad::DeleteAllEntitiesInLayers(1,_T("bom")); rs->Open((_bstr_t)_T("SELECT * FROM TMP2"), _variant_t((IDispatch*)EDIBgbl::dbPRJ,true), adOpenStatic, adLockOptimistic, adCmdText); EDIBAcad::DrawTableACAD(p0, EDIBgbl::TLJ_BJBW, atan(1.0) * 0.0, rs,0,1.0f,_T("Bom"),_T("Bom"),_T("%g"),modPHScal::iAlignLjmx); sTmp.Format(GetResStr(IDS_xDrawingFinished),EDIBgbl::Cbtype[EDIBgbl::TCL].MnuCaption); ShowMessage(sTmp); break; case iZDJDRAWload: modPHScal::SetBasePoint(); modPHScal::PhsDisplacementLoadINFOMake(); break; case iZDJDRAW270mm: //每次计算一个支吊架时生成当前当前支吊架一览表,计算完成后总的一览表就生成了。 //每次计算一个支吊架时生成当前当前支吊架明细一览表,计算完成后总的明细一览表就生成了。 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t var; var=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp = var; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TZD, atan(1.0) * 0.0, rs, 0,1.0f, _T("YLB")); } break; case iZDJDRAW180mm: //每次计算一个支吊架时生成当前支吊架一览表,计算完成后总的一览表就生成了。 //每次计算一个支吊架时生成当前支吊架明细一览表,计算完成后总的明细一览表就生成了。 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp = v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TZD180, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; case iZDJDRAW270L: SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE ZDJH IN ( SELECT ZDJH FROM [") + EDIBgbl::Btype[EDIBgbl::TZA] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" AND TYPE LIKE \'????\' ) AND VolumeID =")+ ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp = v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TZD270L, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; case iZDJDRAWEXECL: SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE ZDJH IN ( SELECT ZDJH FROM [") + EDIBgbl::Btype[EDIBgbl::TZA] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" AND TYPE LIKE \'????\' ) AND VolumeID =")+ ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) { EDIBAcad::DrawTableExcel( EDIBgbl::TZDExcel, rs); } sTmp.Format(GetResStr(IDS_xDrawingFinished),EDIBgbl::Cbtype[EDIBgbl::TZDExcel].MnuCaption); ShowMessage(sTmp); break; case iZDJDRAW705mm: //判断是否所有支吊架计算完成。 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp =v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TZD800, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; case iZDJDRAW705mmHSY: ////核四院支吊架明细一览表 //判断是否所有支吊架计算完成。 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp =v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TZD800HSY, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; case iZDJDRAW705mmQGY: ////支吊架明细一览表 //判断是否所有支吊架计算完成。 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp =v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TZD800QGY, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; case iZDJDRAW270pc: //巴陵石化设计院支吊架表 //每次计算一个支吊架时生成当前当前支吊架一览表,计算完成后总的一览表就生成了。 //每次计算一个支吊架时生成当前当前支吊架明细一览表,计算完成后总的明细一览表就生成了。 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp = v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TZP, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; case iZDJDRAWCatalogue: EDIBDB::DrawID = EDIBAcad::GetDrawIDAndName(1, EDIBDB::DrawName); //绘制目录 //每次计算一个支吊架时生成当前当前支吊架图纸目录信息,计算完成后总的目录就生成了。 SQLx=_T("DELETE FROM [ML] WHERE VolumeID IS NULL AND ZDJH IS NULL"); EDIBgbl::dbPRJDB->Execute((_bstr_t)SQLx, NULL, adCmdText); SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TML] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY SEQ"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) { //如果第一个图纸的序号>=1,在前面添加空的图纸目录,以便用户手工修改 VARIANT vTmp; HRESULT hr = S_OK; CString strFind; strFind = _T("ZDJH <> NULL"); hr = rs->Find((_bstr_t)strFind, 0, adSearchForward); if( rs->adoEOF) return; rs->get_Collect((_variant_t)_T("SEQ"), &varTmp); k = vtoi(varTmp); for( i = 1 ;i< k ;i++) { strFind = _T("SEQ=") + ltos(i); hr = rs->Find((_bstr_t)strFind, 0, adSearchForward); if( rs->adoEOF) { rs->AddNew(); rs->put_Collect((_variant_t)_T("SEQ"),_variant_t((long)i)); rs->put_Collect((_variant_t)_T("Pages"),_variant_t((long)1)); rs->put_Collect((_variant_t)_T("DrawNo"),STR_VAR(_T("1"))); rs->put_Collect((_variant_t)_T("DrawNa"),STR_VAR(_T("1"))); rs->put_Collect((_variant_t)_T("Zdjh"),varNull); rs->put_Collect((_variant_t)_T("VolumeID"),varNull); rs->Update(); } } rs->Close(); //zsy 12/17 改为用ARX画图 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TML] + _T("] WHERE VolumeID IS NULL OR VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY SEQ"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenDynamic, adLockOptimistic, adCmdText); ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp = v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TML, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("ML")); } break; case iZDJDRAWCatalogueExcel: EDIBDB::DrawID = EDIBAcad::GetDrawIDAndName(1, EDIBDB::DrawName); //绘制目录 //每次计算一个支吊架时生成当前当前支吊架图纸目录信息,计算完成后总的目录就生成了。 SQLx=_T("DELETE FROM [ML] WHERE VolumeID IS NULL AND ZDJH IS NULL"); EDIBgbl::dbPRJDB->Execute((_bstr_t)SQLx, NULL, adCmdText); SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TML] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY SEQ"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenDynamic, adLockOptimistic, adCmdText); VARIANT vTmp; if(!rs->BOF && !rs->adoEOF) { //如果第一个图纸的序号>=1,在前面添加空的图纸目录,以便用户手工修改 HRESULT hr = S_OK; CString strFind; strFind = _T("ZDJH <> NULL"); hr = rs->Find((_bstr_t)strFind, 0, adSearchForward); if( !rs->adoEOF) return; rs->get_Collect((_variant_t)_T("SEQ"), &varTmp); k = vtoi(varTmp); _variant_t vTmp; for( i = 1 ;i< k ;i++) { strFind = _T("SEQ=") + ltos(i); hr = rs->Find((_bstr_t)strFind, 0, adSearchForward); if( rs->adoEOF) { rs->AddNew(); rs->put_Collect((_variant_t)_T("SEQ"),_variant_t((long)i)); rs->put_Collect((_variant_t)_T("Pages"),_variant_t((long)1)); rs->put_Collect((_variant_t)_T("DrawNo"),STR_VAR(_T("1"))); rs->put_Collect((_variant_t)_T("DrawNa"),STR_VAR(_T("1"))); rs->put_Collect((_variant_t)_T("Zdjh"),varNull); rs->put_Collect((_variant_t)_T("VolumeID"),varNull); rs->Update(); } } rs->Close(); SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TML] + _T("] WHERE VolumeID IS NULL OR VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY SEQ"); rs->Open((_bstr_t)SQLx,_variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenKeyset, adLockOptimistic, adCmdText); EDIBAcad::DrawTableExcel(EDIBgbl::TMLE, rs); } sTmp.Format(GetResStr(IDS_xDrawingFinished),EDIBgbl::Cbtype[EDIBgbl::TML].MnuCaption); ShowMessage(sTmp); break; case iZDJDRAWm_phs : //开始手工修改 EDIBAcad::MakeNewLayer(_T("M_phs0"), acRed); break; case iZDJDRAWXN180mm://绘制西南电力院的支吊架一览表 //Z8表 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp = v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TZDSWED180, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; case iZDJDRAW705mmHBYZ: //华北冶建 //z9 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp = v; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, EDIBgbl::TZD800HBYJ, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; case iZDJDRAWloadBJBW://北京巴威支吊荷载位移表 modPHScal::SetBasePoint(); modPHScal::PhsDisplacementLoadINFOMake("hz",0,EDIBgbl::TzDLOADNEW); break; //pfg20050601//北京华宇 case iZDJDRAWBJHY01: //判断是否所有支吊架计算完成。 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp =v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, 36, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; case iZDJDRAWBJHY02: //判断是否所有支吊架计算完成。 SQLx = _T("SELECT * FROM [") + EDIBgbl::Btype[EDIBgbl::TZD] + _T("] WHERE VolumeID=") + ltos(EDIBgbl::SelVlmID) + _T(" ORDER BY zdjh"); rs->Open((_bstr_t)SQLx, _variant_t((IDispatch*)EDIBgbl::dbPRJDB,true), adOpenStatic, adLockOptimistic, adCmdText); if(!rs->BOF && !rs->adoEOF) {//zsy 12/17 改为用ARX画图 ShowMessage(GetResStr(IDS_PleasePickApointAsZDJYLBInsertPointINAutoCAD)); if( EDIBAcad::gbACADR14 || !bIsCom ) //使用动态库画图 { rs->Close(); }else { _variant_t v=EDIBAcad::objAcadDoc.GetPropertyByName(_T("Utility")); objTmp = v.pdispVal; p1=objTmp.Invoke(_T("GetPoint"),2,(LPVARIANT)p0,&_variant_t(GetResStr(IDS_PleasePickApointAsBOMInsertPointINAutoCAD))); p0 = p1; } EDIBAcad::DrawTableACAD(p0, 37, atan(1.0) * 0.0, rs, 0 , 1.0f, _T("YLB")); } break; //pfg20050601 } } catch(_com_error e) { ShowMessage(e.Description()); } }
/* * gtenv() * * char *vname; name of environment variable to retrieve */ char *gtenv(char *vname) { int vnum; /* ordinal number of var refrenced */ /* scan the list, looking for the referenced name */ for (vnum = 0; vnum < ARRAY_SIZE(envars); vnum++) if (strcmp(vname, envars[vnum]) == 0) break; /* return errorm on a bad reference */ if (vnum == ARRAY_SIZE(envars)) #if ENVFUNC { char *ename = getenv(vname); if (ename != NULL) return ename; else return errorm; } #else return errorm; #endif /* otherwise, fetch the appropriate value */ switch (vnum) { case EVFILLCOL: return itoa(fillcol); case EVPAGELEN: return itoa(term.t_nrow + 1); case EVCURCOL: return itoa(getccol(FALSE)); case EVCURLINE: return itoa(getcline()); case EVRAM: return itoa((int) (envram / 1024l)); case EVFLICKER: return ltos(flickcode); case EVCURWIDTH: return itoa(term.t_ncol); case EVCBUFNAME: return curbp->b_bname; case EVCFNAME: return curbp->b_fname; case EVSRES: return sres; case EVDEBUG: return ltos(macbug); case EVSTATUS: return ltos(cmdstatus); case EVPALETTE: return palstr; case EVASAVE: return itoa(gasave); case EVACOUNT: return itoa(gacount); case EVLASTKEY: return itoa(lastkey); case EVCURCHAR: return (curwp->w_dotp->l_used == curwp->w_doto ? itoa('\n') : itoa(lgetc(curwp->w_dotp, curwp->w_doto))); case EVDISCMD: return ltos(discmd); case EVVERSION: return VERSION; case EVPROGNAME: return PROGRAM_NAME_LONG; case EVSEED: return itoa(seed); case EVDISINP: return ltos(disinp); case EVWLINE: return itoa(curwp->w_ntrows); case EVCWLINE: return itoa(getwpos()); case EVTARGET: saveflag = lastflag; return itoa(curgoal); case EVSEARCH: return pat; case EVREPLACE: return rpat; case EVMATCH: return (patmatch == NULL) ? "" : patmatch; case EVKILL: return getkill(); case EVCMODE: return itoa(curbp->b_mode); case EVGMODE: return itoa(gmode); case EVTPAUSE: return itoa(term.t_pause); case EVPENDING: #if TYPEAH return ltos(typahead()); #else return falsem; #endif case EVLWIDTH: return itoa(llength(curwp->w_dotp)); case EVLINE: return getctext(); case EVGFLAGS: return itoa(gflags); case EVRVAL: return itoa(rval); case EVTAB: return itoa(tabmask + 1); case EVOVERLAP: return itoa(overlap); case EVSCROLLCOUNT: return itoa(scrollcount); #if SCROLLCODE case EVSCROLL: return ltos(term.t_scroll != NULL); #else case EVSCROLL: return ltos(0); #endif } exit(-12); /* again, we should never get here */ }