![]() |
Telelogic DOORS (steve huntington) | ![]() |
new topic :
profile :
search :
help :
dashboard :
calendar :
home
|
||
Latest News:
|
|
Topic Title: Word Export - speed increase tip Topic Summary: Created On: 15-Feb-2006 01:25 Status: Post and Reply |
Linear : Threading : Single : Branch |
|
![]() |
![]()
|
![]() |
|
Regarding the export of DOORS data to MS 'Word', I noticed that the export starts off at a reasonable speed, but then slows down significantly as more data is exported. I found that this slowdown is related to the 'undo' feature in Word, as more data is exported, Word saves each OLE command in its undo buffer so that you could potentially step backwards 'undoing' the export step by step. The following dxl command will force Word to clear its undo buffer, which has the effect of restoring the export speed back to the original pace again. oleMethod (objDoc, "UndoClear") I add this command to my word export script so that it fires off after each table export, or after say 20 objects have been exported. The effect on a large document export is a significant speed increase. ------------------------- Andrew Tagg Thales Air Systems, Melbourne Australia. andrew.tagg@thalesatm.com |
|
![]() |
|
![]() |
|
This is a great tip. You can also improve the speed of the export into MS Word by minimizing the Word application into the task bar after it starts up. This reduces the amount of time required to refresh the screen.
During development of various DXL to generate Excel spreadsheets, I discovered that the Excel API does not support the Undo feature, so it is not necessary (or possible) to perform an "UndoClear". -Dennis |
|
![]() |
|
![]() |
|
I also found that changing the view in Word to "Normal" instead of "Print Layout" significantly speeds things up as it stops it from re-paginating endlessly.
Thanks for the UndoClear tip, I'll give that a try as well! ~Vanessa ------------------------- Vanessa White Astronautics Corporation of America Milwaukee, WI v-DOT-white-AT-astronautics-DOT-com |
|
![]() |
|
![]() |
|
Some more performance enhancers...
------------------------- Shawn Stepper shawn.e.stepper@wellsfargo.com |
|
![]() |
|
![]() |
|
At eh risk of overkill on this subject, I also found the following useful article on another forum: http://msdn2.microsoft.com/en-us/library/aa203688(office.11).aspx.
This has a very detailed description of how word tables tick.
Rgds
Andrew
------------------------- Andrew Tagg Thales Air Systems, Melbourne Australia. andrew.tagg@thalesatm.com |
|
![]() |
|
![]() |
|
MS-WORD tip: It is possible under word with the VBA command: Application.ScreenUpdating = False that no update will be shown on the screen. Attention if you finished your word document creation do not forget to set Application.ScreenUpdating = True or you see only white background on your word file.
Now to my question (as a new DOORS user) for speeding up, is it possible in DOORS-DXL to send special VBA command to MS-Word, e.g. as ActiveDocument.SaveAs or Application.ScreenUpdating?
|
|
![]() |
|
![]() |
|
Hi Martin, check out the following 2 routines. I just call these before and after the export routine. Note that you have to run the of routine after you have opened at least one doc. //Retrieve some objects ------------------------- Andrew Tagg Thales Air Systems, Melbourne Australia. andrew.tagg@thalesatm.com |
|
![]() |
|
![]() |
|
Here is a routine to use the built in Save As... dialog. Note that it calls some other functions that are not included here, but most of them can just be deleted.
------------------------- Shawn Stepper shawn.e.stepper@wellsfargo.com |
|
![]() |
|
![]() |
|
Thank your for your quick responses and it will help me very much.
|
|
![]() |
|
![]() |
|
Yet another speed increse for export to Microsoft Word, OK I admit this might be bordering on obsession by now, buth there you go. ------------------------- Andrew Tagg Thales Air Systems, Melbourne Australia. andrew.tagg@thalesatm.com |
|
![]() |
|
![]() |
|
Hi all,
having read the suggestions in this thread I was wondering if anyone has tried to apply some of them to the export with WEXP. Since most of the code is encrypted I find it difficult to decide where to put the speeders ... Any suggestions? Karl |
|
![]() |
|
![]() |
|
Hi,
Can you please indicate how I can e.g. call the: "oleMethod (objDoc, "UndoClear")" from within WEXP. I would like to call this method e.g. after each object in the export. I see the file: usercallout.inc where there is a method that is called for every object. Now my real question is, how do I connect to the Document Object in Word to execute the method as you described? I don't see a reference to the Document Object variable in the method: "void processObject (Object o)" in the usercallouts.inc. Many thanks in advance, it would really be great if you can help me! Edited: 29-Mar-2007 at 16:43 by John Vugts |
|
![]() |
|
![]() |
|
Hi John, hi @all,
here is a code snippet to do the job within WEXP. It must be included/changed in \WEXP\include\usercallouts.inc The print command is only inserted to see if it works ![]() You may need to choose the correct number of objects to be proccessed between each buffer clear. It might be a little bit tricky to find the right value, because the call of ClearUndo of course needs extra time too ![]() You should delete the print statement when you have choosen the appropiate value ... Greetings Reik ------------------------- Evosoft GmbH for Siemens Industry Sector Berlin, Germany |
|
![]() |
|
![]() |
|
Hi,
Great! I will give it a try this weekend. Thanks, John Edited: 30-Mar-2007 at 08:20 by John Vugts |
|
![]() |
|
![]() |
|
Hi,
I gave it a quick try. I replaced the 3 functions with your code. Unfortunately I get the following errors: -E- DXL: Edited: 30-Mar-2007 at 08:40 by John Vugts |
|
![]() |
|
![]() |
|
Hi John,
this seems to be problem of different versions of WEXP (we are using version 11.5) So I've changed it into native DOORs syntax .... Greetings Reik ------------------------- Evosoft GmbH for Siemens Industry Sector Berlin, Germany |
|
![]() |
|
![]() |
|
Hi,
Thanks. I indeed figured out that the operator overloading defined in the oleops is not accessible in the usercallout.inc in my wexp version (11.4.9). I indeed also used the native ole stuff, and now it works. I will add the error checking you provided in your example (I have none now :-)). Once more thanks a lot for your time, it is working now. Regards, John Edited: 30-Mar-2007 at 09:59 by John Vugts |
|
![]() |
|
![]() |
|
Hi John,
sorry you are right, I've "moved up" the inclusion oleops.inc before inclusion of usercallouts.inc in wexplod.inc some time ago. So it worked for me in the easy way ![]() Greetings Reik ------------------------- Evosoft GmbH for Siemens Industry Sector Berlin, Germany |
|
![]() |
|
![]() |
|
Hi Reik,
I was very interested in this discussion because we have some problem when exporting larger modules using WEXP. I tried the solution and found one problem: The function processTemplateAttribute is only called, ***if*** an object is exported into a template. Unfortunately, for our modules, only one object (actually it is the document history) at the end of the module is exported into a template, so the whole thing is not initialized until the export is 99% complete. Is there any possibility, to solve this? Enforce the call to processTemplateAttribute somehow? Or an alternate method to get the document OLE object? Thank you in advance for any hints. regards, Michael ------------------------------ Michael Eisele Boehringer-Ingelheim Pharma GmbH & Co KG Biberach, Germany Edited: 2-Apr-2007 at 15:51 by Michael Eisele |
|
![]() |
|
![]() |
|
Hi,
The trick works i.e. it is possible to call the method on the word document object. However, I still get the error: "Word has insufficient memory. You will not be able to undo this action once it is completed. Do you want to continue?" when generating a document. So the "UndoClear" does not solve the problem. Does anybody have an idea how I can avoid this Word error while exporting a bigger document? Thanks in advance, John. Edited: 2-Apr-2007 at 17:23 by John Vugts |
|
![]() |
|
Telelogic DOORS
» DXL Exchange
»
Word Export - speed increase tip
|
![]() |
FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.