| 1,pdms没有java接口 2,pdms有一种他们自己定义的PML解释语言,可进行完全的pdms开发。pdms的开发思路就是封装一些核心函数,提供给外部pml调用,以保证核心的安全。否则,开发者会把pdms弄成一锅粥煮,然后崩溃。他们就是要把开发人员变成pml程序员。 3,pdms提供一种动态链接库接口,只能读pdms数据库,不能写pdms数据库。随着pdms市场的壮大,也许应该做个计划,来支持写pdms数据库。并支持VBA/C#/Java之类的通用接口。 4,当务之急,aveva还是要修改如下函数不能正常返回值BUG: PDMS DARS 接口函数d3rtex不能读取表达式汉字   Post By:2008-4-8 16:59:30  PDMS DARS 接口函数BUG
 d3rtex ( "Stext", cd3tex, &id3err ) 该函数d3rtex在读取表达式时,如含有(符号时,若\'字符后面紧跟汉字字符时,返回值不正确。例如,在UESOFT网站下载的pdms工程600MW项目中,元件库GD2000,元件 =8377/70026,节点SDTE属性STEXT值在PDMS数据库中本来是: ( \'钢板焊制异径管 Φ\' + STR ( ATTRIB PARA[6 ] ) + \'X\' + STR ( ATTRIB PARA[7 ] ) ) d3rtex ( "Stext", cd3tex, &id3err )读出来的“钢板焊制异径管 Φ”正确值本来应该是: &~8V0e:8VFRl>69\ & &~&5 & 但函数d3rtex读出来的实际值变成了 “Ve8Fl6\”。 只有在PDMS界面把SDTE节点STEXT属性更新一次,读出来的值才正确。使用PML宏更新STEXT属性中的双字节字符、单字节字符,只有单字节字符能被正确读出。如果去掉STEXT字段中汉字字符前的(或者\'字符,读出来的值才正确。 \'&~8V0e:8VFRl>69\ & &~&5 &\' + STR ( ATTRIB PARA[6 ] ) + \'X\' + STR ( ATTRIB PARA [7 ] )  详见http://www.dodoinfo.com/b/dispbbs.asp?boardid=66&Id=2284 //////////////////////////////////////////////////////////////////////////// 函数:PdsReadDoubleArrAtt
 //------------------------------------------------------------------------
 // 功能:读取double数组类型的属性的值
 //------------------------------------------------------------------------
 // 输入:
 // strAttType: 属性的类型
 //------------------------------------------------------------------------
 // 输出:
 // dArrAttValue: 属性的值
 //------------------------------------------------------------------------
 // 返回:
 // PDMSImport::ErraorStatus: 错误状态
 //////////////////////////////////////////////////////////////////////////
 PDMSImport::ErrorStatus PdsReadDoubleArrAtt(const CString&  strAttType,
 DoubleArray&   dArrAttValue)
 {
 int es = 0;
 int nNum;
 int nLength = 100;
 PDMS_NAME szAttType = {0};
 float    dAttValue[100] = {0};
 strcpy( szAttType, (LPCTSTR)strAttType);
  d3rra(szAttType, &nLength, dAttValue, &nNum, &es);if ( es != 0 )
 {
 return (PDMSImport::ErrorStatus)es;
 }
 dArrAttValue.RemoveAll();
 for(int i = 0; i< nNum; i++)
 dArrAttValue.Add(dAttValue);
 return PDMSImport::eOK;
 }
 //////////////////////////////////////////////////////////////////////////// 函数:PdsReadPosAtt
 //------------------------------------------------------------------------
 // 功能:读取当前element相对于指定坐标系的位置
 //------------------------------------------------------------------------
 // 输入:
 // strAttType: 指定的坐标系(包括 PDMS names,  PDMS reference numbers,
 //      PDMS nouns and the text \'OWN/ER\')
 //------------------------------------------------------------------------
 // 输出:
 // iAttValue: 属性的值(3维double型数组)
 //------------------------------------------------------------------------
 // 返回:
 // PDMSImport::ErraorStatus: 错误状态
 //////////////////////////////////////////////////////////////////////////
 PDMSImport::ErrorStatus PdsReadPosAtt( const CString& strAttType,
 DoubleArray& dArrAttValue )
 {
 int es = 0;
 PDMS_NAME szAttType = {0};
 float fArrAttValue[3] = {0};
 strcpy( szAttType,(LPCTSTR)strAttType );
  d3rprl( szAttType, fArrAttValue, &es );if ( es != 0 )
 {
 return (PDMSImport::ErrorStatus)es;
 }
 dArrAttValue.RemoveAll();
 for ( int i = 0; i < 3; i++ )
 {
 dArrAttValue.Add( fArrAttValue );
 }
 return PDMSImport::eOK;
 }
 
 
 
 
 |