Results 1 to 12 of 12
  1. #1
    Platinum Lounger
    Join Date
    Dec 2000
    Location
    Queanbeyan, New South Wales, Australia
    Posts
    3,730
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Replace normal.dot?

    Hi,
    In previous messages, I've mentione problems with Normal.dot, and problems with trying to copy in routines into Normal.dot (with virus checking).

    Is there a way (perhaps with add-ins) that I could completely eliminaite normal.dot?

    My requirements are:

    .We have a common AutoNew which has to be run unless there is an AutoNew in the document- in most cases, we have to invoke the common AutoNew manually

    .There are macros attached to form fields (on exit) which have to be common across all templates

    .There are common routines invoked from various macros which have to be flxible, and able to be updated in a single location.

    Add-ins looked great- however, an AutoNew in an Add-in is not invoked when a document based on a template is created. An Autonew in Normal.dot IS invoked.

    I had some troubles invoking add-in macros from templates- but I'm not so sure this is a problem now.

    I had previously chosen to go along a path of updating skeleton routines in Normal.dot, as it fitted all our business needs quite well. However, (see various previous posts), TPTB have decreed thsat we cannot copy even skeleton routines into Normal.dot, as it may trigger the virus checker (MacAfee is triggered; Inoculan is not triggered- yet).

    My apologies for several posts on this matter. I'm researching a few different solutions- so each questions is trying to find an answer to the same problem by asking different answers.
    Subway Belconnen- home of the Signboard to make you smile. Get (almost) daily updates- follow SubwayBelconnen on Twitter.

  2. #2
    Gold Lounger
    Join Date
    Dec 2000
    Location
    Hollywood (sorta), California, USA
    Posts
    2,759
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Geoff,

    I wrote a long reply for you, then got distracted by an email, came back and the text here was gone. Oh, well. Here's the short version:

    1. Leave Normal.dot alone. Don't do anything to a user's Normal.dot except redirect it by setting the Workgrouptemplate folder (in a global app add-in) to a network folder. And the only reason to do that is to accomodate the roaming user. And if user profiles are turned on and your clients are WinNT or 2000, you really don't need to do that. In my case, I cannot trust the people responsible for our networks to keep the roaming user profiles working properly. So, I manage the normal.dot location independently.

    2. Migrate away from AutoNew, AutoOpen and AutoExit macros in templates. You must then account for that functionality by...

    3. Writing a global add-in app that manages the complete document creation process. I know this might sound crazy or daunting, but I'm convinced it's the only way to manage a company's document automation. Instead of attaching macros to form fields, the app will test for the presence of bookmarks and docvars and trigger the necessary functionality.

    4. One global add-in will lend itself nicely to common routines applicable to any document based on any template.

    If you could see my app "Document Central" you could see what I mean by all this. I've had my share of problems -- mostly learning curve stuff -- but I think the idea is rests on a pretty strong foundation. And besides, it works great!
    Kevin <IMG SRC=http://www.wopr.com/w3tuserpics/Kevin_sig.gif alt="Keep the change, ya filthy animal...">
    <img src=/w3timages/blackline.gif width=33% height=2><img src=/w3timages/redline.gif width=33% height=2><img src=/w3timages/blackline.gif width=33% height=2>

  3. #3
    Platinum Lounger
    Join Date
    Dec 2000
    Location
    Queanbeyan, New South Wales, Australia
    Posts
    3,730
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Kevin,

    >Writing a global add-in app that manages the complete document creation process.

    I'm not sure what you mean by this. Are you saying every form is created dynamically? Or something else? Casn you expand a little on what you mean here please?

    Thanks
    Subway Belconnen- home of the Signboard to make you smile. Get (almost) daily updates- follow SubwayBelconnen on Twitter.

  4. #4
    Gold Lounger
    Join Date
    Dec 2000
    Location
    Hollywood (sorta), California, USA
    Posts
    2,759
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Geoff,

    >Are you saying every form is created dynamically

    No. Whether you mean document forms or VBA forms, none of them are created dynamically. Don't see the point in that.

    What I am describing is more like what Microsoft calls Wizards -- prompting the user to make selections that the code uses to create a document based on those selections. But this is a lot more stream-lined than wizards.

    Let me walk you through a typical example:

    Let's say you have a company letterhead. The logo is the same no matter which employee is creating the letter, so you put that in a template (letterhead.dot). Each company division, however, has a different phone number and location and each employee's phone number is required in the address block as well. Instead of creating a letterhead.dot template for each division and employee, you create only one template used by the entire organization. The address block of the template contains doc vars "DivisonName", "DivAddress", "DivPhone", "EmpPhone", etc.

    When an employee wants to create a letter document, they start the UI for the global app (or instead of creating a custom UI you can add menu items to do the same thing) -- I like the UI because it focuses the user's attention to the TASK of document creation. I am seriously considering both options in the next version, though. Anyway the user starts the UI with a hot-key or mouse click. The UI displays document types as radio buttons, one of which is Letterhead. That gets selected with a click. Then the user is prompted for any information required by the company to be included in a letterhead document.

    Let's say your company has 24 standard letters. Prompt the user with a dropdown of that list (these letter "pieces" are stored in the template in autoext). The user selects "Communication Confirmation" from that list. Letters are addressed to recipients, so your app prompts the user to select the recipeints for this letter from a list that gets pulled from a company address list in an Exchange Public folder. If that list does not contain the name, you have a convient check box to activate the user's Outlook Contact List from which they select the name. All that "prompted for" information is stored in your app vars. The UI has a Finished button which the user clicks to indicate the "data collection" phase is complete.

    Your app then adds a new doc from the template, pulls the employees division, phone number and any other relevant information from a database and inserts that data into the document doc vars. The app also inserts the autotext piece named "Communication Confirmation" into the letter body and the recipients into the appropriate location(s). The next thing the user sees is the new customized letterhead document. Maybe not 100% complete, but just about.

    We have some pretty complex documents that are related to cases filed by our clients - like Decision documents. One item prompted for on Decisions is the CaseID. I use that number to get data items from a SQL database to plug into the document.

    User's also maintain a profile so that their address and lots of other "employee" specific info can be inserted into documents that require it.

    We did have to do a lot of template preparation work. It's more complex than this simple example. But once the document analysis is complete (you have to get lots of help from the business units -- team effort all the way) the project is well worth the investment.

    I suspect this approach is a teutonic plate shift for many businesses. But then again, maybe not. What are you thinking?
    Kevin <IMG SRC=http://www.wopr.com/w3tuserpics/Kevin_sig.gif alt="Keep the change, ya filthy animal...">
    <img src=/w3timages/blackline.gif width=33% height=2><img src=/w3timages/redline.gif width=33% height=2><img src=/w3timages/blackline.gif width=33% height=2>

  5. #5
    Platinum Lounger
    Join Date
    Dec 2000
    Location
    Queanbeyan, New South Wales, Australia
    Posts
    3,730
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Kevin,

    Thanks for your detailed explanation. I can see where you're coming from much better now.

    We do use the "wizard" approach for a handful of complex documents, and that works well.

    However, 98% of them are just plain, uncomplicated documents with fill-in textboxes and dropdowns. There's over 500 of these. They are quick to create, and capable of being created by non-technical people. So, as much as I would like to have the work of creating wizards for all these forms, I don't think managment would agree to that approach <img src=/S/laugh.gif border=0 width=15 height=15>

    The purpose of the AutoNew is to populate the common form fields. (There's also a macro attached to certain form fields which updates a user's info when it is changed).

    Taking a quote from another post, "I could add an AutoNew to all 500+ templates in our system, but I'd rather avoid that if I can. Apart from the size of the job, that makes it just that little more dangerous for the non-programmer who will maintain the system when I'm no longer around."

    I've just started to investigate events in the Add-in- I don't know if I'll get any joy there, but I'll try.

    Thanks for your comments so far.
    Subway Belconnen- home of the Signboard to make you smile. Get (almost) daily updates- follow SubwayBelconnen on Twitter.

  6. #6
    Gold Lounger
    Join Date
    Dec 2000
    Location
    Hollywood (sorta), California, USA
    Posts
    2,759
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Geoff,

    It just seems to make sense that you either build a global approach to document creation or you deal with "500 AutoNews" everytime a company wide change is required or problem crops up. Either way you have some work to do. The Add-in approach leaves a better legacy, too. One main App to maintain instead of hundreds of document modules.

    You can still do documents with fill-in boxes with the global add-in approach. That's the nice thing about it. My point is if you start the document creation process from the add-in app, you have the control you need and the functionality the user needs.

    You do misunderstand the bit about the wizards. I have not created wizards for our 1000+ documents. If you will, I wrote one big wizard for all documents. And the app I refer to was designed to be easier to use the Word itself.

    As far as management not agreeing... Well, our management helped design our system because they saw the wisdom of centralized administration, deployment and maintenance. Once you explain the approach, it sells itself.

    Well, anyway, I'm rather convinced, as you can tell. I hope this helps in some way.
    Kevin <IMG SRC=http://www.wopr.com/w3tuserpics/Kevin_sig.gif alt="Keep the change, ya filthy animal...">
    <img src=/w3timages/blackline.gif width=33% height=2><img src=/w3timages/redline.gif width=33% height=2><img src=/w3timages/blackline.gif width=33% height=2>

  7. #7
    Platinum Lounger
    Join Date
    Dec 2000
    Location
    Queanbeyan, New South Wales, Australia
    Posts
    3,730
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Kevin,

    >My point is if you start the document creation process from the add-in app, you have the control you need and the functionality the user needs.

    Yes, I think that might be my answer.

    Documents are created after the user selects a custom button from the toolbar, and then selects a document from one of a number of categories. So when the document is created, I am still executing code. I don't need Autonew at all (I don't think!).

    Thanks for that- it could well work. I can't wait to get back to the office!
    Subway Belconnen- home of the Signboard to make you smile. Get (almost) daily updates- follow SubwayBelconnen on Twitter.

  8. #8
    Gold Lounger
    Join Date
    Dec 2000
    Location
    Hollywood (sorta), California, USA
    Posts
    2,759
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Geoff,

    It's too bad you're so far away! I'd love to show you how this works. Not that you won't figure out all the details yourself, of course. Glad to be able to offer some inspiration.
    Kevin <IMG SRC=http://www.wopr.com/w3tuserpics/Kevin_sig.gif alt="Keep the change, ya filthy animal...">
    <img src=/w3timages/blackline.gif width=33% height=2><img src=/w3timages/redline.gif width=33% height=2><img src=/w3timages/blackline.gif width=33% height=2>

  9. #9
    Platinum Lounger
    Join Date
    Dec 2000
    Location
    Queanbeyan, New South Wales, Australia
    Posts
    3,730
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Kevin,

    I think I do get a reasonable picture of what you're doing- thanks for the explanation.

    This time though, I needed a fairly quick solution- or "off with his head". I got that, thanks for your pointer. I've been at work now for a lot of Sunday- but come Monday morning, I'll be able to present management with a solution to a problem rather than just an explantion of the problem.
    Subway Belconnen- home of the Signboard to make you smile. Get (almost) daily updates- follow SubwayBelconnen on Twitter.

  10. #10
    Gold Lounger
    Join Date
    Dec 2000
    Location
    Hollywood (sorta), California, USA
    Posts
    2,759
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Geoff,

    I all this back and forth re: your problem with Normal.dot, I forgot to mention Application Events -- which might dovetail nicely with your desire to have a "AutoNew" macro execute when ANY document is opened. As I said in another post, I simply take over the FileOpen event in my global app and can do anything I want for any document based on any template. But if you don't want to mess with trapping (and replacing) Word dialogs, use the Application Event "DocumentChange". It will be triggered when any document is created, opened or closed.

    See Dave Rado's fine acticle at

    <A target="_blank" HREF=http://www.mvps.org/word/FAQs/MacrosVBA/PseudoAutoMacros.htm>http://www.mvps.org/word/FAQs/Macros...AutoMacros.htm</A>

    to see how to set this up.
    Kevin <IMG SRC=http://www.wopr.com/w3tuserpics/Kevin_sig.gif alt="Keep the change, ya filthy animal...">
    <img src=/w3timages/blackline.gif width=33% height=2><img src=/w3timages/redline.gif width=33% height=2><img src=/w3timages/blackline.gif width=33% height=2>

  11. #11
    Platinum Lounger
    Join Date
    Dec 2000
    Location
    Queanbeyan, New South Wales, Australia
    Posts
    3,730
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Kevin,

    Thanks for that.

    I did start along that path a while back, but had some problems. I can't rememeber what they were just now, but there was some correspondence on the Word programming newsgroup some time back (while the lounge was dead).

    I probably could have made it work eventually, but it was becoming a little too complex at the time. I started to revisit it again, but your clue to the solution I'm following short cut that path- for now anyway.

    Thanks
    Subway Belconnen- home of the Signboard to make you smile. Get (almost) daily updates- follow SubwayBelconnen on Twitter.

  12. #12
    Platinum Lounger
    Join Date
    Dec 2000
    Location
    Queanbeyan, New South Wales, Australia
    Posts
    3,730
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Replace normal.dot?

    Kevin,

    I've just tracked down one of the problems I was having with this approach.

    I have code in the add-in which checks Normal.dot to see if the custom buttons all exist, and if there are any old routines still sitting there which need to be removed. If there are, Normal.dot gets changed and saved- but when that happens, all the Application Events (such as "DocumentChange") are ignored completely for the rest of the session.

    It doesn't matter if the statement:
    <pre>Set oAppClass.oApp = Word.Application
    </pre>

    is at the start of at the end of the routine.

    I could put up a message advising the user to quite Word- but I'd be concerned about the safety of that whole way of doing things. I get an impression it's all a bit flakey.
    Subway Belconnen- home of the Signboard to make you smile. Get (almost) daily updates- follow SubwayBelconnen on Twitter.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •