Example #1
0
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;
}
Example #2
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;
}
Example #3
0
//吊架和支架数据的导入pfg20050615
//flag=0 为吊架; flag=1 为支架
//记录集是结果集 对应ZA表
//rsHR记录集是数据源集(弹簧、吊架)
//ltemp 支吊架号
void CAESARIIToPHS::ImportHangerRestraints(_RecordsetPtr rsData,_RecordsetPtr rsHR,long &ltemp,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);
	}
}
Example #4
0
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);
}
Example #5
0
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;
}
Example #6
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";
}
Example #7
0
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;
}
Example #8
0
void
assnum(unsigned char **p, long i)
{
	int j = ltos(i);
	replace(p, &numbuf[j]);
}
Example #9
0
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;
		}
	}
}
Example #10
0
/*
 * 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;
}
Example #11
0
StrPP::StrPP(const long n)
{
  Init();
  ltos(n);
}
Example #12
0
StrPP& StrPP::operator=(const long n)
{
  ltos(n);
  return *this;
}
Example #13
0
StrPP::StrPP(const int n)
{
  Init();
  ltos((long)n);
}
Example #14
0
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;
}
Example #16
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 */
}
Example #17
0
//绘制表格
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());
	}
}
Example #18
0
/*
 * 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 */
}