ZRX¿ª·¢ÊÖ²á

ʹÓÃÊÂÎñµÄ×¢ÒâÊÂÏ

? Óëopen-closeÒ»ÆðʹÓÃҪעÒâ

ÊÂÎñ¿ÉÒÔÓëopen-close»ìºÏʹÓ㬵«±ØÐë¸÷×ÔÅä¶Ô£¬²»ÄÜÔÚZcDbTransaction::getObject()´ò¿ªÄ³¸ö¶ÔÏóºó£¬ÓÖµ÷ÓøöÔÏó×ÔÉíµÄclose()º¯Êý¹Ø±Õ¡£

? ´ò¿ª¶ÔÏóҪעÒâ

ÊÂÎñ»úÖÆËäÈ»¿ÉÒÔÔÚ¶ÔÏó´¦ÓÚopenForWrite»òopenForReadµÄ״̬Ï£¬µ÷ÓÃgetObject()ÒÔ¶Á»òдµÄ·½Ê½´ò¿ª£¬µ«ÊÇÔÚ¶ÔÏó´¦ÓÚopenForNotify״̬ÏÂʱ£¬ÊDz»ÄÜÓÃgetObject()ÒÔд·½Ê½´ò¿ªµÄ¡£

? ǶÌ×ʹÓÃҪעÒâ

ÊÂÎñ¿ÉÒÔǶÌ×ʹÓ㬼´ÔÚÒ»¸öÊÂÎñÖÐÔÙ¿ªÊ¼Ò»¸öÊÂÎñ¡£µ«Òª×¢ÒâÁ½µã£º 1. ²»ÄÜÔÚÊÂÎñ½áÊø»ò·ÅÆúµÄ¹ý³ÌÖпªÊ¼Ò»¸öÊÂÎñ¡£

2. ÔÚÓÐǶÌ×ÊÂÎñµÄÇé¿öÏ£¬Ö»ÓÐ×îÍâ²ãµÄÊÂÎñ½áÊøµÄʱºò£¬²Å»áÌá½»ËùÓÐÊÂÎñµÄÊý¾Ý¡£

ÊÂÎñ¹ÜÀí¹¦Äܽӿڣº

1£© ³¤ÊÂÎñ¹ÜÀíÀà

ZcApLongTransactionManager::checkIn ZcApLongTransactionManager::checkOut ZcDbLongTransaction::addToWorkSet ZcDbLongTransaction::newWorkSetIterator ZcDbLongTransaction::removeFromWorkSet ZcDbLongTransaction::originBlock ZcDbLongTransaction::originObject ZcDbLongTransaction::workSetHas 2£© ³¤ÊÂÎñ¹¤×÷¼¯±éÀúÆ÷

ZcDbLongTransWorkSetIterator::start ZcDbLongTransWorkSetIterator::step

ZcDbLongTransWorkSetIterator::curObjectIsErased ZcDbLongTransWorkSetIterator::curObjectIsPrimary ZcDbLongTransWorkSetIterator::curObjectIsRemoved ZcDbLongTransWorkSetIterator::done ZcDbLongTransWorkSetIterator::objected 3£© ÊÂÎñ¹ÜÀíÀà

ZcDbTransactionManager::getAllObjects ZcDbTransactionManager::getObject ZcDbTransactionManager::abortTransaction

ZcDbTransactionManager::addNewlyCreatedDBRObject ZcDbTransactionManager:: startTransaction 4£© ÊÂÎñÀà

ZcTransaction::getAllObjects ZcTransaction::getObject

Îĵµ¹ÜÀí

ZWCADÊÇÒ»¸öÖ§³Ö¶àÎĵµ£¨MDI£©µÄÓ¦ÓóÌÐò£¬²¢ÌṩÁËÒ»Ì×Õë¶ÔZWCADÎĵµ¹ÜÀíµÄÓ¦Óýӿڣ¬Ã¿Ò»¸ö´ò¿ªµÄdwgͼÐÎΪһ¸öZcApDocumentÎĵµ¶ÔÏó£¬Îĵµ¹ÜÀíÓ¦ÓÃÀàZcApDocManager¹ÜÀíËùÓеÄZcApDocumen¶ÔÏó¡£Îĵµµü´úÆ÷ZcApDocumentIteratorÌṩһÌ×µü´úµÄ·½·¨À´±éÀúµ±Ç°CAD´ò¿ªµÄËùÓÐÎĵµ¡£Îĵµ·´Ó¦Æ÷ZcApDocManagerReactorÓÃÀ´Í¨¸æµ±Ç°Îĵµ²Ù×÷µÄʼþ¡£

1£©Îĵµ¶ÔÏóÀàZcApDocument ZcApDocument::cDoc ZcApDocumen::docTitle ZcApDocument::fileName ZcApDocument::isReadOnly

2£©Îĵµ¹ÜÀíÓ¦ÓÃÀàZcApDocManager ZcApDocManager::addReactor

ZcApDocManager::appContextNewDocument ZcApDocManager::appContextOpenDocument ZcApDocManager::curDocument ZcApDocManager::document ZcApDocManager::documentCount

ZcApDocManager::newAcApDocumentIterator ZcApDocManager::openDocument ZcApDocManager::removeReactor

3£©Îĵµµü´úÆ÷ZcApDocumentIterator ZcApDocumentIterator::docment ZcApDocumentIterator::done ZcApDocumentIterator::step

4£© Îĵµ·´Ó¦Æ÷

ZcApDocManagerReactor::documentActivated ZcApDocManagerReactor::documentBecameCurrent ZcApDocManagerReactor::documentCreated

ZcApDocManagerReactor::documentCreateStarted ZcApDocManagerReactor::documentDestroyed ZcApDocManagerReactor::documentToBeActivated ZcApDocManagerReactor::documentToBeDeactivated ZcApDocManagerReactor::documentToBeDestroyed

´úÂëʾÀý£ºÈçºÎ»ñµÃµ½µ±Ç°ZWCAD´ò¿ªµÄËùÓÐÎĵµÃû³Æ£¿

void listDocuments() {

ZcDbDatabase* pDb = zcdbHostApplicationServices()->workingDatabase(); ZcApDocument* pCurDoc = zcDocManager->document(pDb); const char * strCurTitle = pCurDoc->docTitle();

zcutPrintf(\ZcApDocumentIterator* pDocIter;

pDocIter = zcDocManager->newZcApDocumentIterator(); zcutPrintf(\ZcApDocument* pDoc = NULL; int nIndex = 1;

for ( ; !pDocIter->done(); pDocIter->step()) {

pDoc = pDocIter->document();

const char * strTitle = pDoc->docTitle(); const char * strFileName = pDoc->fileName();

zcutPrintf(\

nIndex, strTitle, strFileName); }

}

delete pDocIter;

nIndex++;

Ìáʾ£ºÎĵµ¹ÜÀíÀàµÄ½Ó¿ÚµÄÏêϸʹÓÿÉÒԲο¼ZRXSDK\\Sample\\Ŀ¼ÏµÄʾÀý³ÌÐòDocumentManager

×Ô¶¨ÒåʵÌåOPM

ʲôÊÇ×Ô¶¨ÒåʵÌåOPM£¿

Õë¶Ô×Ô¶¨ÒåʵÌåÀàÐÍ£¬Óû§¿É×ÔÐж¨ÒåºÍÀ©Õ¹¸ÃʵÌåµÄÊôÐÔ£¬¸ù¾Ý¾ßÌåÐèÒª¶Ô×Ô¶¨ÒåʵÌåµÄÌØÐÔ¶¨ÒåºÍ·ÖÀà¡£Ö§³Ö¶àÖÖÊý¾ÝÀàÐ͵ÄÊôÐÔ£¬°üÀ¨£º×Ö·û´®¡¢ÕûÐÍ¡¢¸¡µã¡¢±äÌåµÈ¡£Ö§³Ö¶à¸öʵÌåÊôÐÔ¼¯ºÏµÄ½»¼¯¡£

×Ô¶¨ÒåʵÌåOPMÌØÐÔ£º

1£© ÏÔʾ×Ô¶¨ÒåÊôÐÔµÄÃû³Æ

2£© ÏÔʾ»ù±¾ÊôÐÔ£¨ÑÕÉ«£¬Í¼²ã£¬ÏßÐ͵ȣ© 3£© ÏÔʾ×Ô¶¨ÒåʵÌå×Ô¶¨ÒåµÄÊôÐÔ 4£© ·ÖÀàÏÔʾ×Ô¶¨ÒåʵÌåÊôÐÔ

5£© ±à¼­ÐÞ¸Ä×Ô¶¨ÒåʵÌåÊôÐÔ£¨Ö§³Ö¶à¸öʵÌåÊôÐÔ½»¼¯µÄ±à¼­£©

OPMʹÓÃ×¢ÒâÊÂÏ

1£© ĿǰËùÖ§³ÖµÄ×Ô¶¨ÒåʵÌåÊôÐÔÀ¸µÄÏÔʾ»¹²»È«Ã棬´ÓʵÌåÀàÐͶøÑÔ£¬½öÖ§³Ö´Ó

IZcadEntityÅÉÉúµÄ×Ô¶¨ÒåʵÌ壻

2£© ËùÖ§³ÖµÄOPM½Ó¿Ú½öÏÞÓÚÊý¾Ý²ãÃæ£¨ÈçIOPMPropertyExpander£¬

IOPMPropertyExtension£©£¬Ôݲ»Ö§³ÖÓë½çÃæÏà¹ØµÄ½Ó¿Ú£¨ÈçIPerPropertyDisplay£©¡£

Ìáʾ£º×Ô¶¨ÒåʵÌåOPMµÄʹÓÿɲο¼ZRXSDK\\Sample\\Ŀ¼ÏµÄʾÀý³ÌÐòZRX_Misc

MFCÀ©Õ¹UIÀà

ZRXÖ§³ÖÓû§Ê¹ÓÃMFCÀ´À©Õ¹¿ª·¢×Ô¼ºµÄÓ¦ÓóÌÐò¡£ÀýÈçÔÚZRXÓ¦ÓóÌÐòÉÏʹÓÃMFC´´½¨CDialog¡¢CButton¡¢CComboBox¡¢CEditµÈ¿Ø¼þ¡£Í¬Ñù£¬ ZRXÌṩÁ˼¸¸ö»ù±¾µÄUI½Ó¿ÚÀ๩¶þ´Î¿ª·¢Ê¹Óãº

CZdUiBaseDialog¡ª¡ª¼Ì³ÐÓÚCDialog£¬Ìṩ»ù±¾¶Ô»°¿ò´°¿Ú¹¦ÄÜ

CZdUiDailog¡ª¡ª¼Ì³ÐÓÚCZdUiBaseDialog£¬Ìṩ´°¿Ú³ß´ç±ä»¯ºÍÓÀ¾ÃÊý¾ÝµÄ´æ´¢¹¦ÄÜ CZcUiDialog¡ª¡ª¼Ì³ÐÓÚCZdUiDailog£¬À©Õ¹ºÍÍêÕûCZdUiDailogÀàµÄ¹¦ÄÜ

¿ÉÍ£¿¿Ãæ°å£¨DockControlBar£©

ZWCAD¿ÉÍ£¿¿Ãæ°å¹¦ÄÜÖ÷ҪʹÓÃÈ«¾Ö½Ó¿Úº¯Êýzdsw_excuteUICommand, °ÑÌØ¶¨¹¦ÄܵĻص÷º¯Êýת½Óµ½ZWCADÖ÷UIÏß³ÌÉÏÖ´ÐС£Òò´Ë£¬ÔÚÓ¦Óøù¦ÄÜǰ£¬ÐèÒªÊÂÏÈÍê³ÉÌØÐÔ¹¦ÄܵĻص÷º¯Êý¡£

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)