void CPreDrawPag::OnDrawpreno() { // TODO: Add your control notification handler code here UpdateData(); static CFont font; LOGFONT lf; lf.lfHeight=8; //font.DeleteObject(); if(m_bCheckDrawNoPre == 1) { // LabelStartPN.Caption = "支吊架起始图号" m_sLabelStartPN= GetResStr(IDS_MsgBox_60570) + EDIBgbl::TBNSelPrjVlm; //strcpy(lf.lfFaceName,"arial"); //font.CreateFontIndirect(&lf); //m_LabelStartPN.SetFont(&font); } else { // LabelStartPN.Caption = "支吊架起始图号" m_sLabelStartPN= GetResStr(IDS_MsgBox_60570) + EDIBgbl::TBNSelPrjVlm; //strcpy(lf.lfFaceName,"arial"); //font.CreateFontIndirect(&lf); //m_LabelStartPN.SetFont(&font); } UpdateData(false); }
CPreDrawPag::CPreDrawPag() : CPropertyPage(CPreDrawPag::IDD) { //{{AFX_DATA_INIT(CPreDrawPag) m_OrientationPicture=false;//pfg20050426 m_bCheckDrawNoPre = TRUE; m_bCheckOSFlag = TRUE; m_bCheckDraw_BOM = TRUE; m_bCheckDrawOverWrite = TRUE; m_bCheckAnnotateCSPR = TRUE; m_bCheckNotPROMPT_ACAD_SHIFT = FALSE; m_bCheckNotPROMPT_Catlog_Overwrite = FALSE; m_bCheckAutoSaveDrawing = FALSE; m_sComboSEQyOffset = _T(""); m_sTextDrawNoStartNumber = _T(""); m_strDwgVersion = _T(""); m_stextDWGPRE = _T(""); m_sLabelStartPN = GetResStr(IDS_PHSFirstChartMark); m_bNoFenQu = FALSE; m_bTBhq = TRUE; m_bBomSprFactory = FALSE; m_bSumBomSprFactory = FALSE; m_bDimLocation = FALSE; m_bCheckDraw_SumWeight = FALSE; m_GroupWare = 0; m_strGroupWareName = _T(""); m_bCheckTagUsingCircle = FALSE; m_bCheckCustomPicNo = FALSE; m_bCheckLJMX_BJBW = FALSE; m_bCheckBGForBJBW = FALSE; m_bCheckDWForBJBW = FALSE; m_fCircleDiameter = 0.0f; m_bCheckDLOADBJBW = FALSE; m_bCheckDrawNameWithoutNo = FALSE; m_fSeqTxtHeight = 0.0f; m_bNoWaiKuang = FALSE; m_bNotDrawWeight = FALSE; m_bInsertLength = FALSE; m_bColdHeatState = FALSE; m_bInstallElevation = FALSE; m_bHzabs = TRUE; m_bPrintSA_Value = FALSE; m_fOvertopDim = 2.0f; m_fDistanceOffset = 0.0f; m_bDimNumber = FALSE; m_fSetTableWidth = 0.0f; m_fSetTKWidth = 0.3f; m_IsACAD = 0; m_bDrawWeldSymbol = FALSE; m_bAutoWeldViewInsertPoint = FALSE; m_bDrawWeldViewDim = FALSE; m_bWeldAutoDirectAndPos = FALSE; m_MaxLGLong=110;//拉杆最大绘制长度 m_MaxLGLong = 0.0; m_bSymbol = FALSE; //}}AFX_DATA_INIT m_iOldTabFontSel=-1; }
BOOL CCalculate::AutoCalPhs(const VARIANT FAR& varRs, short zdjh, short nth) { // TODO: Add your dispatch handler code here CFrmStatus FrmProgress; if(!IsWindow(FrmProgress.m_hWnd)) FrmProgress.Create(IDD_STATUS,NULL); FrmProgress.CenterWindow(); FrmProgress.ShowWindow(SW_SHOW); modPHScal::zdjh=zdjh; modPHScal::iSelSampleID=vtoi(FrmTxsr.m_pViewTxsr->m_ActiveRs->GetCollect(_T("iSelSampleID"))); CString sTmp; sTmp.Format(_T("%d"),zdjh); frmStatus.m_Label1.Format(GetResStr(IDS_CalculatingNoXphs),sTmp);// _T("正在计算") & zdjh & _T("号支吊架") frmStatus.SetWindowText(GetResStr(IDS_PhsCalculation)); //' _T("计算支吊架") frmStatus.UpdateData(false); frmStatus.UpdateStatus(0.02f,true); frmStatus.UpdateWindow(); _RecordsetPtr rs; rs.CreateInstance(__uuidof(Recordset)); if(varRs.vt == VT_DISPATCH && varRs.pdispVal != NULL) { rs = _RecordsetPtr (varRs.pdispVal ); } else { AfxMessageBox("数据库错误,退出计算!"); return FALSE; } modPHScal::VB_Cal (rs,zdjh,FrmProgress,nth); FrmProgress.UpdateWindow(); FrmProgress.ShowWindow(SW_HIDE); FrmProgress.DestroyWindow(); return TRUE; }
BOOL CSelZdjhDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here try { m_dbGrid.SetForeColor(0xff0000); m_dbGrid.SetBackColor(0xffc0c0); if(m_rs!=NULL) { m_dbGrid.SetRefDataSource(m_rs->GetDataSource()); int C=m_dbGrid.GetColumns().GetCount(); int i=0; for(i=C-1;i>2;i--) { m_dbGrid.GetColumns().Remove(_variant_t((long)i)); } m_dbGrid.GetColumns().Remove(_variant_t((long)0)); m_dbGrid.GetColumns().GetItem(_variant_t((long)0)).SetDataField("ZDJH"); m_dbGrid.GetColumns().GetItem(_variant_t((long)0)).SetCaption(GetResStr(IDS_PHSMARK)); //m_dbGrid.GetColumns().GetItem(_variant_t((long)0)).SetWidth(80); m_dbGrid.GetColumns().GetItem(_variant_t((long)1)).SetDataField("JSDBH1"); m_dbGrid.GetColumns().GetItem(_variant_t((long)1)).SetCaption(GetResStr(IDS_CountNodeMark)); } } catch (_com_error &e) { CString strMsg; strMsg.Format("%s:%d %s", __FILE__, __LINE__, (LPSTR)e.Description()); AfxMessageBox(strMsg); } catch(...) { } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
// // GetResStrEx // void GetResStrEx(HINSTANCE hInstance, UINT uIDText, LPSTR pszText, size_t cchText, LPCSTR pszDefText, ...) { char szFormat[MAX_LINE_LENGTH]; va_list vargs; if (pszText != NULL && cchText > 0) { GetResStr(hInstance, uIDText, szFormat, MAX_LINE_LENGTH, pszDefText); va_start(vargs, pszDefText); StringCchVPrintf(pszText, cchText, szFormat, vargs); va_end(vargs); } }
void ModEncrypt::EncryptCompanyName(LPCSTR /*ByVal*/ strPassWord, bool /*ByVal*/ bGetPassWord) { //目的:生成或获取单位名称 //Dim EncryptedMessage As String, TextChar As String, KeyChar As String, EncryptedChar //Dim f, i As Long, lngStrLen As Long USES_CONVERSION; try { DWORD i; CFile f; //CString EncryptedMessage; wchar_t EncryptedMessage[256]; char TextChar[2]; wchar_t EncryptedChar[2]; EncryptedChar[1]=0; memset(EncryptedMessage,0,sizeof(EncryptedMessage)); DWORD C; if( bGetPassWord ) { //如果是获取公司名称 if (FileExists(user::gstrWinDir + FilejmCompanyName1) ) { f.Open(user::gstrWinDir + FilejmCompanyName1,CFile::modeRead); f.Read(&C,sizeof(DWORD)); f.Read(EncryptedMessage,C*sizeof(wchar_t)); gstrLegalCompanyName = ""; for( i = 0 ;i<C;i++) { TextChar[0]=((char*)EncryptedMessage)[i*2+1]; TextChar[1]=((char*)EncryptedMessage)[i*2]; short xx=(*(wchar_t*)TextChar); short xx2=strPassWord[i%strlen(strPassWord)]; EncryptedChar[0] =xx ^ xx2; ((char*)EncryptedMessage)[i*2+1]=((char*)&EncryptedChar)[0]; ((char*)EncryptedMessage)[i*2]=((char*)&EncryptedChar)[1]; //xx=EncryptedChar; EncryptedChar[0]=EncryptedMessage[i]; gstrLegalCompanyName+=(char*)EncryptedChar; } f.Close(); } else ShowMessage(GetResStr(IDS_ItsDemoVersionOrIllegalUser)); } else { if(!f.Open(user::gstrWinDir + FilejmCompanyName0,/*CFile::modeNoTruncate|*/CFile::modeCreate|CFile::modeReadWrite)) return; DWORD i1=0,iC=0; wchar_t c2; wchar_t c3; c3=0; char* pComName=T2A((LPTSTR)(LPCTSTR)gstrLegalCompanyName); for(i=0;i<gstrLegalCompanyName.GetLength();i++) { c2=0; char c1=pComName[i]; if((c1 & 0x80)!=0) { ((char*)&c2)[0]=pComName[i]; i++; ((char*)&c2)[1]=pComName[i]; } else { ((char*)&c2)[0]=pComName[i]; } ((char*)&c3)[1]=strPassWord[i1%strlen(strPassWord)]; EncryptedMessage[i1]=c2 ^ c3; i1++; iC++; } f.Write(&iC,sizeof(DWORD)); f.Write(EncryptedMessage,iC*sizeof(wchar_t)); f.Close(); } } catch(CFileException * e) { e->ReportError(); e->Delete(); } }
bool ModEncrypt::CheckLegalUser() { //CString strPassWord; int i; DWORD dwReturnCode; CString strMsg; //检测网络狗 if(UEGetSettingInstallNumber("4",iDogMH) ==iDogMH) { bIsNetDog=false; } else bIsNetDog=true; NetDogHandle = (unsigned long *)&Doghandle; //if(!gbLegalUser) { //运行次数计数 i = UEGetSettingInstallNumber("2", 0); UESaveSettingInstallNumber("2", i + 1); gbLegalUser = false; //检查是否正版软件 if (FileExists(user::gstrWinDir + FilejmBASE1) && FileExists(user::gstrWinDir + FilePsw) && FileExists(user::gstrWinDir + FileIns) ) { //VerifyEncryptFile(strPassWord); VerifyEncryptFile(); //gstrDBZdjCrudePassWord = strPassWord + conStrDBPasswordSuffix gstrDBProductPassWord =CString( "Product") + conStrDBPasswordSuffix; gstrDBZdjCrudePassWord = gstrDBProductPassWord; } } if(bIsNetDog) { gbLegalUser=false; NetDogPassword=5602521; dwReturnCode = NetDogLogin(); if(dwReturnCode!=DOGSUCCESS) { gbLegalUser=false; bIsNetDog=false; if(110003==dwReturnCode) strMsg.Format(IDS_USER_EXCESS_UPPER_LIMIT,dwReturnCode); else strMsg.Format(_T("NetDogLogin function error! code:%d"),dwReturnCode); ShowMessage(strMsg); } else { DWORD CurrentDogNo=GetNHDogNo(); if(gLngVersionID==0 || CurrentDogNo== 0 || gLngSavedMicroDogID ==0 || gLngSavedMicroDogID != CurrentDogNo || glngVersion != glngAppVersion) { gbLegalUser=false; strMsg=GetResStr(IDS_DOG_NO_ERROR); ShowMessage(strMsg); dwReturnCode=NetDogLogout(); if(dwReturnCode!=0) { strMsg.Format(_T("NetDogLogout function error! code:%d"),dwReturnCode); AfxMessageBox(strMsg); } NetDogHandle=NULL; bIsNetDog=false; } else { gbLegalUser=true; bIsNetDog=true; } } } else { //如果是演示版,检查是否时间到期 if( ! gbLegalUser ){ CheckInstallDate(); } } return gbLegalUser; }
void ModEncrypt::VerifyEncryptFile(/*CString& strPassWord*/) { char *szPassWord=NULL; char *MP=NULL; char *EP=NULL; char *EP1=NULL; try { long i=0,iPos=0; char tmp; // a$ // bTmp String * 1 CFile f; DWORD lngEP,lngMP; if(!f.Open(user::gstrWinDir+FilejmBASE1,CFile::modeRead)) return; //开始字符串长度 f.SeekToBegin(); f.Read(&lngMP,sizeof(lngMP)); MP=new char[lngMP+1]; f.Read(MP,lngMP); MP[lngMP]='\0'; //然后是密码长度 f.Read(& lngEP,sizeof(lngEP)); f.Read(& glngLimitedDemoVersionDays,sizeof(DWORD)); f.Read(& gLngSavedMicroDogID,sizeof(DWORD)); f.Read(& gLngVersionID,sizeof(DWORD)); f.Read(& glngVersion,sizeof(glngVersion)); EP=new char[lngEP+1]; f.Read(EP,lngEP); EP[lngEP]='\0'; f.Close(); //if(strPassWord=="") { if(!f.Open(user::gstrWinDir + FilePsw,CFile::modeRead)) goto FunOut; int len=f.GetLength(); len-=16; f.Seek(16,CFile::begin); szPassWord=new char[len+1]; f.Read(szPassWord,len); szPassWord[len]='\0'; f.Close(); } //MP.ReleaseBuffer(); //EP.ReleaseBuffer(); //strPassWord.ReleaseBuffer(); int passlen=strlen(szPassWord); EP1=new char [passlen+1]; for( i = 0 ; i<passlen;i++) { tmp=szPassWord[i]; if( '0' <= tmp && tmp <='9' ){ iPos = tmp - '0' + 2; }else if( 'A' <= tmp && tmp <= 'Z' ){ iPos = tmp - 'A' + 12; } else if('a' <= tmp && tmp <= 'z' ){ iPos = tmp - 'a' + 12; } EP1[i]=(char)MP[iPos-1]; //MsgBox EP1 } EP1[i]='\0'; if( strcmp(EP1, EP)==0 ) { EncryptCompanyName(szPassWord, true); //EncryptCompanyName(strPassWord, false); /*#if DebugMode = -1 ){ //MsgBox "你是合法用户!" #endif*/ if( gLngVersionID == 1236 && glngVersion == glngAppVersion ){ //标准版标志 gbLegalUser = true; }else{ gbLegalUser = false; } if( FileExists(user::gstrWinDir + FileOutDate) ) ::DeleteFile( user::gstrWinDir + FileOutDate); if( FileExists(user::gstrWinDir + FileFlag) ) ::DeleteFile( user::gstrWinDir + FileFlag); if(!f.Open(user::gstrWinDir+FileFlag,CFile::modeWrite|CFile::modeCreate)) goto FunOut; lngEP = 1234; f.Write(&lngEP,sizeof(DWORD)); f.Close(); SetFileTime(user::gstrWinDir + FileWinCom, user::gstrWinDir + FileFlag); } else { //MsgBox "你是非法用户!" gstrLegalCompanyName = GetResStr(IDS_YouAreIllegalUser); gLngVersionID=0; gbLegalUser = false; } } catch(CFileException * e) { e->ReportError(); e->Delete(); } FunOut: delete [] szPassWord; delete [] MP; delete [] EP; delete [] EP1; }
//pfg20050614 把CASEARII 4.50 中的数据导入到 AutoPhs中去 void CAESARIIToPHS::ReadResult_CAESARII45(_Recordset* rsResult, CString SourceDataFileName,long maxZdjh,long FileNameID,char * strPSAVER) { //char* strPSAVER = "CASEARII 4.50"; CString ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=%s;Jet OLEDB:Database Password=%s"; CString dbConnectionString; _RecordsetPtr m_prsCASENUM; //热态(冷态)的记录集 _RecordsetPtr m_prsHangers; //表[OUTPUT_HANGERS]记录集 _RecordsetPtr m_prsDisplacements; //表[OUTPUT_DISPLACEMENTS]记录集 _RecordsetPtr m_prsRestraints; //表[OUTPUT_RESTRAINTS]记录集 _RecordsetPtr m_prsJGHZ; //每个节点最大值 _RecordsetPtr m_prsJOBNAME; //不同工程名的记录集 _RecordsetPtr prsInputHangers; //表INPUT_HANGERS 记录集 pfg20050614 _RecordsetPtr prsInputRestraints; //表INPUT_RESTRAINTS记录集 pfg20050614 _RecordsetPtr m_prsBasicData; //用来获取温度,管径的记录集 _RecordsetPtr m_prsTempCASENUM; //用来处理TO_NODE的临时记录集 m_pConnSourceDB.CreateInstance(__uuidof(Connection)); m_prsJOBNAME.CreateInstance(__uuidof(Recordset)); m_prsCASENUM.CreateInstance(__uuidof(Recordset)); prsInputHangers.CreateInstance(__uuidof(Recordset)); prsInputRestraints.CreateInstance(__uuidof(Recordset)); CString m_strSQL; CString strFind; _variant_t tmpvar; long ltemp; long node; CString PSA_OutDataFUnit; //源表的单位 CString PSA_OutDataMUnit; _RecordsetPtr rsData = rsResult; CFile m_CAESARIIFile; //二进制文件对象 CString m_strCAESARIIFileName; //二进制文件名 //处理二进制文件所用的变量 long loff = 272 ; //偏移量 long basepoint = 180; //基本偏移量 bool bReadinDB = true; //判断是从数据库读取还是从二进制文件中读取,缺省从数据库中读取 /*********************************/ CString m_strFilePath; CString m_strTYPE; CString m_strJOBNAME_P; //工程文件名*._P CString m_strJOBNAME_A; //工程文件名*._A CString m_strGKname; //工况名 CString m_strRGKname; //热工况数据来源工况名 CString m_strLGKname; //冷工况数据来源工况名 CString* m_pstrTempJobname; float PI=3.1416f; int iC1 = 0; long iCount = 0; //节点个数 int nCount = 0; //存储节点个数,得到二进制文件中节点的个数 ltemp = maxZdjh; int iJobCount=0;//工程的个数 CSelPSAProjectNameDlg* m_selDlg; long iType=0;//支吊架类型pfg20050624 // int IsCaesarError=0;//pfg20050627 try { dbConnectionString.Format(ConnectionString,SourceDataFileName,""); m_pConnSourceDB->Open(_bstr_t(dbConnectionString),"","",0); m_strSQL.Format(_T("SELECT DISTINCT [JOBNAME] FROM [OUTPUT_LOCAL_ELEMENT_FORCES]")); //用此方法打开的记录集才能调用GetRecodsetCount()获得记录数 m_prsJOBNAME->Open(_variant_t(m_strSQL),(IDispatch*)m_pConnSourceDB,adOpenStatic,adLockOptimistic,adCmdText); //在对话框的列表框中加入工程文件名,组合框加入工况名,并获取用户的选择 m_selDlg = new CSelPSAProjectNameDlg; iJobCount= m_prsJOBNAME->GetRecordCount(); //pfg20050705当工程名称没有时程序应该返回(start) if(iJobCount==0) { AfxMessageBox("数据源为空!"); return; } //pfg20050705 当工程名称没有时程序应该回(end) m_selDlg->JobNameNum =iJobCount; m_pstrTempJobname = new CString[iJobCount]; for ( int i=0 ;i<iJobCount;i++) { m_pstrTempJobname[i] = vtos(m_prsJOBNAME->GetCollect("JOBNAME")); m_prsJOBNAME->MoveNext(); } m_prsJOBNAME->Close(); m_strSQL.Empty(); m_strSQL.Format(_T("SELECT DISTINCT [CASE],[JOBNAME] FROM [OUTPUT_LOCAL_ELEMENT_FORCES]")); m_prsJOBNAME->Open(_variant_t(m_strSQL),(IDispatch*)m_pConnSourceDB,adOpenStatic,adLockOptimistic,adCmdText); int ii = m_prsJOBNAME->GetRecordCount(); m_selDlg->GKNum = ii; //pfg20050705这是所有工程的工况,在对话框类中要进行过滤(start) m_selDlg->m_pRsJOBNAME=m_prsJOBNAME; //pfg20050705这是所有工程的工况,在对话框类中要进行过滤(end) m_selDlg->m_pstrProjectName = m_pstrTempJobname; if ( m_selDlg->DoModal() == IDOK) { m_strJOBNAME_P = m_selDlg->m_strTempProject ; m_strGKname = m_selDlg->m_strTempGK ; m_iUPxyz = m_selDlg->iUpxyz ; m_strRGKname = m_selDlg->m_strTempRGK ; m_strLGKname = m_selDlg->m_strTempLGK ; m_strUNITFORCE=m_selDlg->m_ForceUnits;//pfg20050630 m_strUNITMOMENTAL=(m_strUNITFORCE=="N")?("N.m"):("kgf.m");//pfg20050630 // m_bCheckRigPHSMaxLoad = m_selDlg->m_bCheckRigPHSMaxLoad; m_iSpringLoadType = m_selDlg->m_iSpringLoadType; } else { return; //按下对话框的取消按钮退出提取程序 } m_prsJOBNAME->Close(); delete m_selDlg; delete [] m_pstrTempJobname; //显示进度条 frmStatus.ShowWindow(SW_SHOW); frmStatus.m_Label1= GetResStr(IDS_FROMFILE) + SourceDataFileName; frmStatus.m_Label2= GetResStr(IDS_TODATABASE) + EDIBgbl::GetDBName(EDIBgbl::dbPRJDB) + GetResStr(IDS_InTable) + EDIBgbl::TBNRawData; frmStatus.SetWindowText( GetResStr(IDS_DATASWITCH)); frmStatus.UpdateData(false); frmStatus.UpdateStatus(0,true); //判断是从二进制文件还是数据库中读取管径,温度 m_strSQL.Format(_T("SELECT * FROM [INPUT_BASIC_ELEMENT_DATA] ")); m_prsBasicData = m_pConnSourceDB->Execute(_bstr_t(m_strSQL),NULL,adCmdText); if ( m_prsBasicData->BOF && m_prsBasicData->adoEOF ) bReadinDB = false; m_prsBasicData->Close(); m_strSQL.Format(_T("SELECT * FROM [OUTPUT_LOCAL_ELEMENT_FORCES] WHERE [JOBNAME] = '%s' AND [CASE] = '%s' "),m_strJOBNAME_P,m_strRGKname); m_prsCASENUM->Open(_variant_t(m_strSQL),(IDispatch*)m_pConnSourceDB,adOpenStatic,adLockOptimistic,adCmdText); iCount = m_prsCASENUM->GetRecordCount(); if(iCount==0)//pfg20050704没有记录返回 { CString strError; strError.Format("提示:工程='%s',工况='%s'在表(OUTPUT_LOCAL_ELEMENT_FORCES)中没有记录!",m_strJOBNAME_P,m_strRGKname); AfxMessageBox(strError); return; } //获取二进制文件名 m_strCAESARIIFileName = m_strJOBNAME_P; m_strFilePath = GetFilePath(SourceDataFileName); m_strCAESARIIFileName = m_strFilePath + "\\" + m_strCAESARIIFileName.Left(m_strCAESARIIFileName.GetLength()-3) + "._A"; //二进制文件扩展名为._A,它存储CAESARII管道应力分析模型原始数据 m_strJOBNAME_A = m_strJOBNAME_P.Left(m_strJOBNAME_P.GetLength()-3)+"._A"; //读取源表中的单位符号 tmpvar = m_prsCASENUM->GetCollect("FUNITS"); PSA_OutDataFUnit = vtos(tmpvar); tmpvar = m_prsCASENUM->GetCollect("MUNITS"); PSA_OutDataMUnit = vtos(tmpvar); //取吊架记录集 m_strSQL.Format("select * from input_hangers where jobname='%s'",m_strJOBNAME_A); try { prsInputHangers->Open(_variant_t(m_strSQL),(IDispatch*)m_pConnSourceDB,adOpenStatic,adLockOptimistic,adCmdText); if(prsInputHangers->GetRecordCount()>0) { prsInputHangers->MoveFirst(); } } catch (_com_error &e) { CString strMsg; strMsg.Format("%s:%d %s", __FILE__, __LINE__, (LPSTR)e.Description()); AfxMessageBox(strMsg); } //取支架数据 m_strSQL.Format("select * from input_restraints where jobname='%s'",m_strJOBNAME_A); try { prsInputRestraints->Open(_variant_t(m_strSQL),(IDispatch*)m_pConnSourceDB,adOpenStatic,adLockOptimistic,adCmdText); if(prsInputRestraints->GetRecordCount()>0) { prsInputRestraints->MoveFirst(); } } catch (_com_error &e) { CString strMsg; strMsg.Format("%s:%d %s", __FILE__, __LINE__, (LPSTR)e.Description()); AfxMessageBox(strMsg); } //20050624pfg(start) int n=0,m=0; n=prsInputHangers->GetRecordCount(); n+=prsInputRestraints->GetRecordCount(); if(n==0)//pfg20050624 当支吊架的个数为零时返回 { AfxMessageBox("表:INPUT_HANGERS和INPUT_RESTRAINTS为空!"); return; } //20050624pfg(end) for(i=0;i<2;i++) { if(i==0) { //处理吊架 for(;!prsInputHangers->adoEOF;prsInputHangers->MoveNext()) { if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入吊架数据 ImportHangerRestraints(rsData,prsInputHangers,ltemp,FileNameID,strPSAVER,node,0); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入各方向的推力 importUnitsForces(rsData,node,m_strJOBNAME_P,PSA_OutDataFUnit,PSA_OutDataMUnit,m_strRGKname,m_strLGKname); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入热态线位移、角位移 ImportDisplacements(rsData,node,m_strRGKname,m_strJOBNAME_P,1); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入冷态线位移、角位移 ImportDisplacements(rsData,node,m_strLGKname,m_strJOBNAME_P,0); //导入管道直径等 ImportDiameter(rsData,node,m_strJOBNAME_A); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入弹簧数据(包括弹簧类型转换) ImportHanger(rsData,node,m_strJOBNAME_P); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //确定支吊架类型pfg20050622(转换刚性支吊架和恒力弹簧类型) // ConversionTypeCaesarToPhs(rsData,node,m_strJOBNAME_P,m_strRGKname,iType); // ConversionTypeCaesarToPhs(rsData,node,m_strJOBNAME_P,m_strLGKname,iType); //pfg20050624(start) m++; frmStatus.UpdateStatus((float)m/(float)n,true); frmStatus.UpdateWindow(); //pfg20050624(end) rsData->Filter=""; rsData->Update();//pfg20050630 } rsData->Filter="";//pfg20050627 } //处理吊架结束 else { //处理支架(start) for(;!prsInputRestraints->adoEOF;prsInputRestraints->MoveNext()) { if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入吊架数据 ImportHangerRestraints(rsData,prsInputRestraints,ltemp,FileNameID,strPSAVER,node,1); if ( node < 1e-6 ) //5.2版本中所有的约束信息会导入INPUT_RESTRAINTS表中(同一约束点会有四条记录,所以会有NODE_NUM为-1情况) continue; if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //确定支吊架类型pfg20050622 ConversionTypeCaesarToPhs(rsData,node,m_strJOBNAME_P,m_strRGKname,iType); // ConversionTypeCaesarToPhs(rsData,node,m_strJOBNAME_P,m_strLGKname,iType); if(iType==177)//pfg20050624当是固定支架时、它的冷态采用另一种工况 { //导入各方向的推力 importUnitsForces(rsData,node,m_strJOBNAME_P,PSA_OutDataFUnit,PSA_OutDataMUnit,m_strRGKname,m_strGKname); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入冷态线位移、角位移 ImportDisplacements(rsData,node,m_strGKname,m_strJOBNAME_P,0); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 } else { //导入各方向的推力 importUnitsForces(rsData,node,m_strJOBNAME_P,PSA_OutDataFUnit,PSA_OutDataMUnit,m_strRGKname,m_strLGKname); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入冷态线位移、角位移 ImportDisplacements(rsData,node,m_strLGKname,m_strJOBNAME_P,0); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 } //导入热态线位移、角位移 ImportDisplacements(rsData,node,m_strRGKname,m_strJOBNAME_P,1); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入管道直径等 ImportDiameter(rsData,node,m_strJOBNAME_A); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //导入弹簧数据 // ImportHanger(rsData,node,m_strJOBNAME_P); if(m_IsCaesarError) break;//pfg20050627当单位转换出错、终止导入数据 //pfg20050624(start) m++; frmStatus.UpdateStatus((float)m/(float)n,true); frmStatus.UpdateWindow(); //pfg20050624(end) rsData->Filter=""; rsData->Update();//pfg20050630 } rsData->Filter="";//pfg20050627 } //处理支架结束(end) //rsData->Update();//pfg20050630 } } catch (_com_error &e) { CString strMsg; strMsg.Format("%s:%d %s", __FILE__, __LINE__, (LPSTR)e.Description()); AfxMessageBox(strMsg); } }
void CCalculate::VBCal(long zdjh, long nth) { // TODO: Add your dispatch handler code here /* if( !PhsDrawUser::InitDB() ) return; _RecordsetPtr rsZ1(__uuidof(Recordset)); CRString strSQL; try { strSQL.Format("SELECT nth FROM Z1 WHERE [VolumeID]=%d AND [ZDJH]=%d", PhsDrawUser::m_iVlmID,PhsDrawUser::m_iZdjh); rsZ1->CursorLocation = adUseClient; rsZ1->Open(_variant_t(strSQL),(IDispatch*)PhsDrawUser::m_pConnPRJDB,adOpenStatic,adLockOptimistic,adCmdText); if( rsZ1->adoEOF && rsZ1->BOF ) return; if( (long)rsZ1->RecordCount > 1 )//根据路数确定使用标准支吊架选型还是非标支吊架选型 { rsZ1->Close(); PhsNonStandardAutoCalc(); } else { long lnth = vtoi(rsZ1->GetCollect("nth")); rsZ1->Close(); PhsStandardAutoCalc( lnth ); } } catch(_com_error& e) { ReportError(e.Description(), __FILE__, __LINE__); } PhsDrawUser::UnInitDB(); */ /* VARIANT var1,var2; VariantInit(&var1); VariantInit(&var2); _RecordsetPtr rs; rs.CreateInstance(__uuidof(Recordset)); CFrmStatus *frm; var1 = varRs; // VariantCopy(&var1,&varRs); HRESULT hr = VariantChangeType(&var2,&var1,0,VT_UNKNOWN); if(FAILED(hr)) return ; rs = (_RecordsetPtr) var1.punkVal; // if(rs->adoEOF && rs->BOF) // { AfxMessageBox("rs"); // } // hr = VariantChangeType(&var2,&varFrm,0,VT_UNKNOWN); // frm = (CFrmStatus*)var2.punkVal; */ CFrmStatus FrmProgress; if(!IsWindow(FrmProgress.m_hWnd)) FrmProgress.Create(IDD_STATUS,NULL); FrmProgress.CenterWindow(); FrmProgress.ShowWindow(SW_SHOW); CString sTmp; sTmp.Format("%d",zdjh); FrmProgress.m_Label1.Format(GetResStr(IDS_CalculatingNoXphs),sTmp);// "正在计算" & zdjh & "号支吊架" FrmProgress.SetWindowText(GetResStr(IDS_PhsCalculation));// "计算支吊架" FrmProgress.UpdateData(false); FrmProgress.UpdateStatus(0.02f,true); FrmProgress.UpdateWindow(); _RecordsetPtr rs; rs.CreateInstance(__uuidof(Recordset)); CString strSQL; strSQL.Format("SELECT * FROM [ZA] WHERE [VolumeID]=%d AND [ZDJH]=%d",EDIBgbl::SelVlmID,zdjh); rs->Open(_variant_t(strSQL),(IDispatch*)conPRJDB,adOpenStatic,adLockOptimistic,adCmdText); if( rs->adoEOF && rs->BOF ) AfxMessageBox("recordset empty"); modPHScal::VB_Cal (rs,zdjh,FrmProgress,nth); FrmProgress.UpdateWindow(); FrmProgress.ShowWindow(SW_HIDE); FrmProgress.DestroyWindow(); }
const char *LoadResStr(const char *id) { return GetResStr(id, Table); }
//绘制表格 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()); } }
void CFrmPreferences::OnOK() { // TODO: Add extra validation here bool FLAG = modPHScal::gbSPRBHLOADUNITBYNEWTON; //保存 m_wndCalPag.SaveIniValue(); m_wndDrawPag.SaveIniValue(); m_wndPointPag.SaveIniValue(); if(m_wndStylePag.GetActiveTimes() > 1) { m_wndStylePag.SaveIniValue(); } SetRegValue(_T("Settings"), _T("CSPRAutoLugDia"), modPHScal::gbCSPRAutoLugDia); SetRegValue(_T("Settings"), _T("AutoTZ"), modPHScal::AutoOrdinateDrawing); SetRegValue(_T("Settings"), _T("CalSAbyConservativenessMethod"), (modPHScal::gbCalSAbyConservativenessMethod)); SetRegValue(_T("Settings"), _T("CalSAbyPJG"), (modPHScal::gbCalSAbyPJG)); SetRegValue(_T("Settings"), _T("CalCSPRLugDiaByPjg"), (modPHScal::gbCalCSPRLugDiaByPjg)); SetRegValue(_T("Settings"), _T("CalPARTbyMaxLoad"), (modPHScal::gbCalPARTbyMaxLoad)); SetRegValue(_T("Settings"), _T("AddPartWeight2PMax"), (modPHScal::gbAddPartWeight2PMax)); SetRegValue(_T("Settings"), _T("AddPartWeight2CSPRPgz"), (modPHScal::gbAddPartWeight2CSPRPgz)); SetRegValue(_T("Settings"), _T("AddPartWeight2SPRPgz"), (modPHScal::gbAddPartWeight2SPRPgz));//2007.07.30 SetRegValue(_T("Settings"),_T("PAForceZero"),(modPHScal::gbPAForceZero));//2007.09.25 SetRegValue(_T("Settings"), _T("MaxPgzPaz"), (modPHScal::gbMaxPgzPaz));//2007.09.03 SetRegValue(_T("Settings"), _T("MinMaxDispByActualDisp"), (modPHScal::gbMinMaxDispByActualDisp)); SetRegValue(_T("Settings"), _T("PhsOutINFOTableType"), (modPHScal::giPhsOutINFOTableType)); SetRegValue(_T("Settings"), _T("DrawSIZE_A3A4"), (modPHScal::giDrawSIZE_A3A4)); SetRegValue(_T("Settings"), _T("IsACAD"), (modPHScal::gIsACAD)); SetRegValue(_T("Settings"), _T("SpringOrder"), (modPHScal::giSpringOrder)); SetRegValue(_T("Settings"), _T("strSpringOrder"), modPHScal::gstrSpringOrder); SetRegValue(_T("Settings"), _T("strSpringOrderSQL"), modPHScal::gstrSpringOrderSQL); SetRegValue(_T("Settings"), _T("PhsColor"), modPHScal::gsPhsColor); SetRegValue(_T("Settings"), _T("Draw_BOM"), (modPHScal::gbDraw_BOM)); SetRegValue(_T("Settings"), _T("AnnotateCSPR"), (modPHScal::gbAnnotateCSPR)); SetRegValue(_T("Settings"), _T("Draw_OVERWRITE"), (modPHScal::gbDrawOVERWRITE)); SetRegValue(_T("Settings"), _T("WorksWithBoltsNuts"), (modPHScal::gbWorksWithBoltsNuts)); SetRegValue(_T("Settings"), _T("WorksWithSABoltsNuts"), (modPHScal::gbWorksWithSABoltsNuts)); SetRegValue(_T("Settings"), _T("DW_delta"), (modPHScal::gnDW_delta)); SetRegValue(_T("Settings"), _T("ZDJH"), (EDIBgbl::glCurRecordNo)); SetRegValue(_T("Settings"), _T("DrawNoPreMethod"), (modPHScal::gbDrawNoPreMethod)); SetRegValue(_T("Settings"), _T("AutoSaveDrawing"), (modPHScal::gbAutoSaveDrawing)); SetRegValue(_T("Settings"), _T("DrawNoStartNumber"), (modPHScal::glDrawNoStartNumber)); SetRegValue(_T("Settings"), _T("DwgVersion"), (EDIBgbl::strDwgVersion)); SetRegValue(_T("Settings"), _T("MaxLGLong"), (EDIBgbl::MaxLGLong));//pfg20050922 SetRegValue(_T("Settings"), _T("DWGPreMethod"), (modPHScal::glDWGPreMethod)); SetRegValue(_T("Settings"), _T("DWGPre"), modPHScal::gsDWGPre); SetRegValue(_T("Settings"), _T("CSPRCanSpecialDesign"), (modPHScal::gbCSPRCanSpecialDesign)); SetRegValue(_T("Settings"), _T("LimitLugMinDia"), (modPHScal::gbLimitLugMinDia)); SetRegValue(_T("Settings"), _T("AutoAlignCSPRtoSA"), (modPHScal::gbAutoAlignCSPRtoSA)); SetRegValue(_T("Settings"), _T("SumAllVolume"), (modPHScal::gbSumAllVolume)); //////////////////////////// if(FLAG!=modPHScal::gbSPRBHLOADUNITBYNEWTON)//单位改变时要初始化 { //this->ShowWindow(SW_HIDE); //modPHScal::blnSelphsSPEC(true); _variant_t tmpvar; int inttbExist=0;//0表示第一次进入循环,1表示表存在,2表示表不存在 _RecordsetPtr rsX; rsX.CreateInstance(__uuidof(Recordset)); _ConnectionPtr db, db1; db.CreateInstance(__uuidof(Connection)); db1.CreateInstance(__uuidof(Connection)); long lngErrNum ; CString sTmp; CString strConnect; strConnect.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s"), basDirectory::DBShareDir + _T("zdjcrude.mdb"), ModEncrypt::gstrDBZdjCrudePassWord); db->Open((_bstr_t)strConnect, "", "", adModeUnknown); db1->Open((_bstr_t)("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+basDirectory::ProjectDBDir+_T("sort.mdb")), (_bstr_t)"", (_bstr_t)"",adModeUnknown); if(rsX->State == adStateOpen) rsX->Close(); rsX->Open((_bstr_t)_T("SELECT * FROM phsManuSPRING ORDER BY [Observation],[standard] ASC"), _variant_t((IDispatch*)EDIBgbl::dbSORT,true), adOpenDynamic, adLockOptimistic, adCmdText); modPHScal::gsPhsSPRINGSel.TrimLeft();modPHScal::gsPhsSPRINGSel.TrimRight(); if( rsX->adoEOF && rsX->BOF ) { lngErrNum = IDS_NotFoundThisStandardInSortMdb; sTmp.Format(GetResStr(lngErrNum),EDIBgbl::GetDBName(db1),_T("phsManuBoltsNuts"),modPHScal::gsPhsBoltsNutsSel); ShowMessage(sTmp); if(rsX->State == adStateOpen) rsX->Close(); if(db->State == adStateOpen) db->Close(); if(db1->State == adStateOpen) db1->Close(); CPropertySheet::EndDialog(IDOK); } if(modPHScal::gsPhsSPRINGSel != _T("") ){ // rsX->Filter=_variant_t(CString(_T("standard=\'") )+ gsPhsPASel + _T("\'")); //rsX.FindFirst //rsX->Find(_bstr_t(CString(_T("standard=\'"))+gsPhsSPRINGSel+_T("\'")),0,adSearchForward); HRESULT hr = S_OK; CString strFind; strFind = _T("standard=\'")+modPHScal::gsPhsSPRINGSel+_T("\'"); hr = rsX->Find((_bstr_t)strFind, 0, adSearchForward); if( !rsX->adoEOF) { rsX->MoveFirst(); inttbExist=2; } } else { rsX->MoveFirst(); inttbExist=2; } while((inttbExist!=1)&&(!rsX->adoEOF)) { rsX->get_Collect((_variant_t)_T("standard"),&tmpvar); if(tmpvar.vt==VT_NULL) modPHScal::gsPhsSPRINGSel=_T(""); else{ modPHScal::gsPhsSPRINGSel=vtos(tmpvar); modPHScal::gsPhsSPRINGSel.TrimLeft();modPHScal::gsPhsSPRINGSel.TrimRight(); } rsX->get_Collect((_variant_t)_T("Spring_property"),&tmpvar); if(tmpvar.vt==VT_NULL) modPHScal::tbnSPRINGproperty=_T(""); else{ modPHScal::tbnSPRINGproperty=vtos(tmpvar); modPHScal::tbnSPRINGproperty.TrimLeft();modPHScal::tbnSPRINGproperty.TrimRight(); } rsX->get_Collect((_variant_t)_T("Spring_propertyMaxDist"),&tmpvar); if(tmpvar.vt==VT_NULL) modPHScal::tbnDiscSPRINGpropertyMaxDist=_T(""); else{ modPHScal::tbnDiscSPRINGpropertyMaxDist=vtos(tmpvar); modPHScal::tbnDiscSPRINGpropertyMaxDist.TrimLeft();modPHScal::tbnDiscSPRINGpropertyMaxDist.TrimRight(); } rsX->get_Collect((_variant_t)_T("Spring_id"),&tmpvar); if(tmpvar.vt==VT_NULL) modPHScal::tbnSPRINGid=_T(""); else{ modPHScal::tbnSPRINGid=vtos(tmpvar); modPHScal::tbnSPRINGid.TrimLeft();modPHScal::tbnSPRINGid.TrimRight(); } rsX->get_Collect((_variant_t)_T("Spring_Crude"),&tmpvar); if(tmpvar.vt==VT_NULL) modPHScal::tbnSPRINGCrude=_T(""); else{ modPHScal::tbnSPRINGCrude=vtos(tmpvar); modPHScal::tbnSPRINGCrude.TrimLeft();modPHScal::tbnSPRINGCrude.TrimRight(); } rsX->get_Collect((_variant_t)_T("CrudeTurnbuckle"),&tmpvar); if(tmpvar.vt==VT_NULL) modPHScal::tbnSPRINGL5Crude=_T(""); else{ modPHScal::tbnSPRINGL5Crude=vtos(tmpvar); modPHScal::tbnSPRINGL5Crude.TrimLeft();modPHScal::tbnSPRINGL5Crude.TrimRight(); } //以下判断弹簧原始数据表在数据库中是否存在 rsX->get_Collect((_variant_t)_T("DiameterSerial"),&tmpvar); if(tmpvar.vt==VT_NULL) modPHScal::tbnSPRDiameterSerial=_T(""); else{ modPHScal::tbnSPRDiameterSerial=vtos(tmpvar); modPHScal::tbnSPRDiameterSerial.TrimLeft();modPHScal::tbnSPRDiameterSerial.TrimRight(); } if(!modPHScal::HStbExists(db,db1,modPHScal::tbnSPRDiameterSerial,_T("phsManuSPRING"),_T("DiameterSerial"),modPHScal::gsPhsSPRINGSel)) { if(inttbExist==0) //第一次移到第一条记录上 { rsX->MoveFirst(); inttbExist=2; } else //不是第一次,向后移一条记录 rsX->MoveNext(); continue; } if(!modPHScal::HStbExists(db,db1,modPHScal::tbnSPRINGCrude,_T("phsManuSPRING"),_T("Spring_Crude"),modPHScal::gsPhsSPRINGSel)) { if(inttbExist==0) //第一次移到第一条记录上 { rsX->MoveFirst(); inttbExist=2; } else //不是第一次,向后移一条记录 rsX->MoveNext(); continue; } if(!modPHScal::HStbExists(db,db1,modPHScal::tbnSPRINGL5Crude,_T("phsManuSPRING"),_T("CrudeTurnbuckle"),modPHScal::gsPhsSPRINGSel)) { if(inttbExist==0) //第一次移到第一条记录上 { rsX->MoveFirst(); inttbExist=2; } else //不是第一次,向后移一条记录 rsX->MoveNext(); continue; } if(!modPHScal::HStbExists(db,db1,modPHScal::tbnSPRINGid,_T("phsManuSPRING"),_T("Spring_id"),modPHScal::gsPhsSPRINGSel)) { if(inttbExist==0) //第一次移到第一条记录上 { rsX->MoveFirst(); inttbExist=2; } else //不是第一次,向后移一条记录 rsX->MoveNext(); continue; } if(!modPHScal::HStbExists(db,db1,modPHScal::tbnSPRINGproperty,_T("phsManuSPRING"),_T("Spring_property"),modPHScal::gsPhsSPRINGSel)) { if(inttbExist==0) //第一次移到第一条记录上 { rsX->MoveFirst(); inttbExist=2; } else //不是第一次,向后移一条记录 rsX->MoveNext(); continue; } if(!modPHScal::HStbExists(db,db1,modPHScal::tbnDiscSPRINGpropertyMaxDist,_T("phsManuSPRING"),_T("Spring_propertyMaxDist"),modPHScal::gsPhsSPRINGSel)) { if(inttbExist==0) //第一次移到第一条记录上 { rsX->MoveFirst(); inttbExist=2; } else //不是第一次,向后移一条记录 rsX->MoveNext(); continue; } inttbExist=1; } if(inttbExist!=1) { if(rsX->State == adStateOpen) rsX->Close(); if(db->State == adStateOpen) db->Close(); if(db1->State == adStateOpen) db1->Close(); CPropertySheet::EndDialog(IDOK); } inttbExist=0; rsX->get_Collect((_variant_t)_T("SerialNumPerSPR"),&tmpvar); if(tmpvar.vt==VT_NULL) modPHScal::giAllowedMaxSerialNumPerSPR=0; else{ modPHScal::giAllowedMaxSerialNumPerSPR=vtoi(tmpvar); // giAllowedMaxSerialNumPerSPR.TrimLeft();giAllowedMaxSerialNumPerSPR.TrimRight(); } rsX->get_Collect((_variant_t)_T("SerialNumSPRs"),&tmpvar); if(tmpvar.vt==VT_NULL) modPHScal::giAllowedMaxSerialNumSPRs=0; else{ modPHScal::giAllowedMaxSerialNumSPRs=vtoi(tmpvar); //giAllowedMaxSerialNumSPRs.TrimLeft();giAllowedMaxSerialNumSPRs.TrimRight(); } //当导入了规范或者启动过之后 bool bSPECchanged = true; if((bSPECchanged || modPHScal::gbStartedOnceAPHS) && !(modPHScal::gsPhsSPRINGSel == modPHScal::gsOldPhsSPRINGSel)) modPHScal::CreateTmpSPRPropertyTable(modPHScal::giAllowedMaxSerialNumSPRs); //获得弹簧或恒力弹簧编号规格的单位制 //以下判断恒力弹簧/碟簧规格编号力单位制描述字段值是否存在 rsX->get_Collect((_variant_t)_T("Unit_Force"),&tmpvar); if(tmpvar.vt==VT_NULL) { lngErrNum = IDS_NullXfieldInphsManuXOfsortMdb; sTmp.Format(GetResStr(lngErrNum),EDIBgbl::GetDBName(db1),_T("phsManuSPRING"),modPHScal::gsPhsSPRINGSel ,_T("Unit_Force")); ShowMessage(sTmp); if(rsX->State == adStateOpen) rsX->Close(); if(db->State == adStateOpen) db->Close(); if(db1->State == adStateOpen) db1->Close(); CPropertySheet::EndDialog(IDOK); } else{ sTmp=vtos(tmpvar); sTmp.TrimLeft();sTmp.TrimRight(); if(sTmp.Left(1)==_T("N")) { if(!modPHScal::gbSPRBHLOADUNITBYNEWTON) { modPHScal::gsSPRUnitOfLoad = _T("kgf"); rsX->put_Collect((_variant_t)_T("Unit_Force"),STR_VAR("kgf")); rsX->Update(); //如果没有导入,只修改模板库下的原始数据库; //修改方法: rsX->get_Collect((_variant_t)_T("Folder"), &tmpvar); if(tmpvar.vt==VT_NULL||vtos(tmpvar)=="") ; else { //如果有导入,还要修改导入路径下的原始数据库; } } else { modPHScal::gsSPRUnitOfLoad = _T("N"); } // gsSPRUnitOfLoad = _T("N"); } else if(sTmp.Left(3)==_T("daN")) modPHScal::gsSPRUnitOfLoad = _T("daN"); else if(sTmp.Left(3)==_T("kgf")) { if(modPHScal::gbSPRBHLOADUNITBYNEWTON) { modPHScal::gsSPRUnitOfLoad = _T("N"); rsX->put_Collect((_variant_t)_T("Unit_Force"),STR_VAR("N")); rsX->Update(); //如果没有导入,只修改模板库下的原始数据库; //修改方法: rsX->get_Collect((_variant_t)_T("Folder"),&tmpvar); if(tmpvar.vt==VT_NULL||vtos(tmpvar)=="") ; else { //如果有导入,还要修改导入路径下的原始数据库; } } else { modPHScal::gsSPRUnitOfLoad = _T("kgf"); } } else //没找任何荷载单位制识别字符 { sTmp.Format(GetResStr(IDS_NotFoundUnitStringInBHFormat),EDIBgbl::GetDBName(db1),_T("phsManuSPRING"),GetResStr(IDS_SPR),vtos(tmpvar)); ShowMessage(sTmp); modPHScal::gsSPRUnitOfLoad = _T("daN"); } } } CPropertySheet::EndDialog(IDOK); }
BOOL CFrmPreferences::OnInitDialog() { BOOL bResult = CPropertySheet::OnInitDialog(); // TODO: Add your specialized code here modPHScal::ReadAutoPHSiniValue(); //m_wndPreSheet.ModifyStyleEx(0,WS_EX_CONTROLPARENT); //m_wndPreSheet.ModifyStyle(0,WS_TABSTOP); SetActivePage(&m_wndCalPag); SetActivePage(&m_wndDrawPag); SetActivePage(&m_wndPointPag); SetActivePage(&m_wndStylePag); SetActivePage(&m_wndCalPag); SetWindowText(GetResStr(IDS_frmPreferences_frmPreferences)); //ID_APPLY_NOW SetWindowCenter(this->m_hWnd); CRect rc1,rc2,rc3; GetClientRect(&rc1); GetDlgItem(IDOK)->GetWindowRect(&rc2); ScreenToClient(&rc2); GetDlgItem(IDHELP)->GetWindowRect(&rc3); ScreenToClient(&rc3); int cx = rc2.left - (rc1.Width() - (rc3.right - rc2.left))/2; rc2.left-=cx; rc2.right-=cx; GetDlgItem(IDOK)->MoveWindow(&rc2); GetDlgItem(IDCANCEL)->GetWindowRect(&rc2); ScreenToClient(&rc2); rc2.left-=cx; rc2.right-=cx; GetDlgItem(IDCANCEL)->MoveWindow(&rc2); GetDlgItem(ID_APPLY_NOW)->GetWindowRect(&rc2); ScreenToClient(&rc2); rc2.left-=cx; rc2.right-=cx; GetDlgItem(ID_APPLY_NOW)->MoveWindow(&rc2); GetDlgItem(IDHELP)->GetWindowRect(&rc2); ScreenToClient(&rc2); rc2.left-=cx; rc2.right-=cx; GetDlgItem(IDHELP)->MoveWindow(&rc2); CRect rcBtnDefault; GetDlgItem(IDHELP)->GetWindowRect(&rcBtnDefault); ScreenToClient(&rcBtnDefault); rcBtnDefault.left += 80; rcBtnDefault.right += 80; CFont* pFont = GetDlgItem(IDHELP)->GetFont(); m_btnDefault.Create("恢复默认", WS_CHILD|WS_VISIBLE|WS_TABSTOP|BS_PUSHBUTTON, rcBtnDefault, this, ID_BTN_DEFAULT); m_btnDefault.SetFont(pFont); //m_wndCalPag.SetComboSpringOrder(false); /*m_wndCalPag.SetCtrlValue(); m_wndDrawPag.SetCtrlValue(); m_wndPointPag.SetCtrlValue();*/ return bResult; }