home *** CD-ROM | disk | FTP | other *** search
/ TestDrive Super Store 4.0 / TESTDRIVE_4.ISO / org2 / orgmerge.smm < prev    next >
Encoding:
INI File  |  1994-10-30  |  22.7 KB  |  1,672 lines

  1. [ver]
  2.     4
  3. [sty]
  4.     
  5. [files]
  6. [charset]
  7.     82
  8.     ANSI (Windows, IBM CP 1252)
  9. [revisions]
  10.     0
  11. [recfile]
  12.     C:\TEMP\TEMP.SAM
  13.     
  14.     1
  15.     0
  16.     32200
  17.     38944
  18.     71
  19.     48
  20. [prn]
  21.     Generic / Text Only
  22. [port]
  23.     FILE:
  24. [lang]
  25.     1
  26. [fldnames]
  27.     Field1
  28.     Field2
  29.     Field3
  30.     Field4
  31.     Field5
  32.     Field6
  33.     Field7
  34.     Field8
  35. [desc]
  36.     This macro uses DDE to take Address records from Lotus Organizer 2.0 and use them in a mail merge with Ami Pro.
  37.     
  38.     
  39.     
  40.     
  41.     783208188
  42.     48
  43.     769637593
  44.     1509
  45.     7
  46.     1049
  47.     7676
  48.     24
  49.     24
  50.     
  51.     
  52.     
  53.     
  54.     
  55.     
  56.     1
  57. [fopts]
  58.     0
  59.     1
  60.     0
  61.     0
  62.     
  63.     
  64. [lnopts]
  65.     2
  66.     Body Text
  67.     1
  68. [docopts]
  69.     5
  70.     2
  71. [GramStyle]
  72.     
  73. [tag]
  74.     Body Text
  75.     2
  76.     [fnt]
  77.         Arial
  78.         200
  79.         0
  80.         16384
  81.     [algn]
  82.         1
  83.         1
  84.         0
  85.         0
  86.         0
  87.     [spc]
  88.         33
  89.         273
  90.         1
  91.         0
  92.         0
  93.         1
  94.         100
  95.     [brk]
  96.         4
  97.     [line]
  98.         8
  99.         0
  100.         1
  101.         0
  102.         1
  103.         1
  104.         1
  105.         10
  106.         10
  107.         1
  108.     [spec]
  109.         0
  110.         0
  111.         
  112.         0
  113.         1
  114.         1
  115.         0
  116.         0
  117.         0
  118.         0
  119.     [nfmt]
  120.         272
  121.         1
  122.         3
  123.         .
  124.         ,
  125.         $
  126.     Body Text
  127.     0
  128.     0
  129. [tag]
  130.     Function
  131.     3
  132.     [fnt]
  133.         Arial
  134.         200
  135.         0
  136.         16385
  137.     [algn]
  138.         1
  139.         1
  140.         0
  141.         0
  142.         0
  143.     [spc]
  144.         33
  145.         244
  146.         1
  147.         0
  148.         0
  149.         1
  150.         100
  151.     [brk]
  152.         68
  153.     [line]
  154.         8
  155.         0
  156.         1
  157.         0
  158.         1
  159.         1
  160.         1
  161.         10
  162.         10
  163.         1
  164.     [spec]
  165.         0
  166.         0
  167.         
  168.         0
  169.         1
  170.         1
  171.         0
  172.         0
  173.         0
  174.         0
  175.     [nfmt]
  176.         272
  177.         1
  178.         3
  179.         .
  180.         ,
  181.         $
  182.     Body Text
  183.     0
  184.     0
  185. [tag]
  186.     Header
  187.     4
  188.     [fnt]
  189.         Tms Rmn
  190.         200
  191.         0
  192.         49153
  193.     [algn]
  194.         4
  195.         1
  196.         0
  197.         0
  198.         0
  199.     [spc]
  200.         33
  201.         273
  202.         1
  203.         0
  204.         0
  205.         1
  206.         100
  207.     [brk]
  208.         4
  209.     [line]
  210.         8
  211.         0
  212.         1
  213.         0
  214.         1
  215.         1
  216.         1
  217.         10
  218.         10
  219.         1
  220.     [spec]
  221.         0
  222.         0
  223.         
  224.         0
  225.         1
  226.         1
  227.         0
  228.         0
  229.         0
  230.         0
  231.     [nfmt]
  232.         272
  233.         1
  234.         3
  235.         .
  236.         ,
  237.         $
  238.     Header
  239.     0
  240.     0
  241. [tag]
  242.     Comments
  243.     5
  244.     [fnt]
  245.         Arial
  246.         200
  247.         32768
  248.         16385
  249.     [algn]
  250.         1
  251.         1
  252.         216
  253.         0
  254.         0
  255.     [spc]
  256.         33
  257.         273
  258.         1
  259.         0
  260.         0
  261.         1
  262.         100
  263.     [brk]
  264.         4
  265.     [line]
  266.         8
  267.         0
  268.         1
  269.         0
  270.         1
  271.         1
  272.         1
  273.         10
  274.         10
  275.         1
  276.     [spec]
  277.         0
  278.         0
  279.         
  280.         0
  281.         1
  282.         1
  283.         0
  284.         0
  285.         0
  286.         0
  287.     [nfmt]
  288.         272
  289.         1
  290.         3
  291.         .
  292.         ,
  293.         $
  294.     Body Text
  295.     0
  296.     0
  297. [lay]
  298.     Standard
  299.     513
  300.     [rght]
  301.         15840
  302.         12240
  303.         1
  304.         720
  305.         1080
  306.         1
  307.         1252
  308.         1440
  309.         2
  310.         1
  311.         0
  312.         1
  313.         1
  314.         2
  315.         1
  316.         720
  317.         10800
  318.         14
  319.         1
  320.         720
  321.         1
  322.         1440
  323.         1
  324.         2160
  325.         1
  326.         2880
  327.         1
  328.         3600
  329.         1
  330.         4320
  331.         1
  332.         5040
  333.         1
  334.         5760
  335.         1
  336.         6480
  337.         1
  338.         7200
  339.         1
  340.         7920
  341.         1
  342.         8640
  343.         1
  344.         9360
  345.         1
  346.         10080
  347.     [hrght]
  348.     [lyfrm]
  349.         1
  350.         11200
  351.         0
  352.         0
  353.         12240
  354.         1252
  355.         0
  356.         1
  357.         3
  358.         1 0 0 0 0 0 0
  359.         0
  360.         0
  361.         1
  362.     [frmlay]
  363.         1252
  364.         12240
  365.         1
  366.         1440
  367.         0
  368.         1
  369.         360
  370.         1440
  371.         0
  372.         1
  373.         0
  374.         1
  375.         1
  376.         0
  377.         1
  378.         1440
  379.         10800
  380.         0
  381.     [txt]
  382. @Header@<:X3,0;GetDocInfo$(1)>ORG2MAIL.SMM<:X~3,0;GetDocInfo$(1)>
  383.  
  384. @Header@<:X3,0;Description>This macro uses DDE to take Address records from Lotus Organizer 2.0 and use them in a mail merge with Ami Pro.<:X~3,0;Description>
  385.  
  386. @Header@By:  
  387.  
  388. @Header@<:X3,0;EditDate %Dd>Friday, September 23, 1994<:X~3,0;EditDate %Dd> at 
  389. <:X3,0;EditDate %T6>6:08 <:X~3,0;EditDate %T6>
  390.  
  391. @Header@
  392. >
  393.     [frght]
  394.     [lyfrm]
  395.         1
  396.         13248
  397.         0
  398.         14760
  399.         12240
  400.         15840
  401.         0
  402.         1
  403.         3
  404.         1 0 0 0 0 0 0
  405.         0
  406.         0
  407.         2
  408.     [frmlay]
  409.         15840
  410.         12240
  411.         1
  412.         1440
  413.         360
  414.         1
  415.         14940
  416.         1440
  417.         0
  418.         1
  419.         0
  420.         1
  421.         1
  422.         0
  423.         1
  424.         1440
  425.         10800
  426.         0
  427.     [txt]
  428. @Header@Revision Number <:X3,0;NumEdits>22<:X~3,0;NumEdits>
  429.  
  430. @Header@<:P10,0,Page > of <:X3,16384;NumPages>6<:X~3,16384;NumPages>
  431.  
  432. >
  433. [elay]
  434. [l1]
  435.     0
  436. [pg]
  437.     7
  438.     54 0 0 4 0 0 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  439.     109 0 8 4 0 1 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  440.     163 0 33 4 0 1 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  441.     216 0 0 4 0 0 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  442.     271 0 42 4 0 1 0 65535 2 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  443.     324 0 6 4 0 1 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  444.     370 0 10 1029 0 0 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  445. [edoc]
  446. Define        IniSection            "OrganizerMerge"
  447.  
  448. Define        IniKey                "AddressSection"
  449.  
  450. Define        IniFileName            "AmiPro2.Ini"
  451.  
  452. Define        DefaultAddressSection          "Address"    
  453.  
  454.  
  455. Define        LockWindowUpdate()        DllCall("User,LockWindowUpdate,AH",%1)
  456.  
  457. @Outline2@Define         Getfocus()             DllCall("user,GetFocus,H")
  458.  
  459. @Outline2@
  460.  
  461. ' Dialog box defines
  462.  
  463. Define        PleaseSelect    "Please select the Organizer section that you would like to use as the merge datafile.  After you have created the datafile, you will be taken to step 2 of merge: Create and Edit a Merge Document. "
  464.  
  465. Define        WelcomeText    "Welcome to the Organizer 2.0 Merge Assistant"
  466.  
  467.  
  468. Declare        CreateAmiDataFile(SectionName, IndexField, OrgFileName)
  469.  
  470. Declare        GetOpenOrgFileName()
  471.  
  472. Declare        FontDlg(Action, Hdlg, id)
  473.  
  474. Define        TextBox             1000
  475.  
  476.  
  477.  
  478. FUNCTION GetAddress()
  479.  
  480. <+!><:f240,QCourier,0,128,0>
  481.  
  482. <+!><:f240,QCourier,0,128,0>'<-!>
  483.  
  484. <+!><:f240,QCourier,0,128,0>'    MAIL MERGE MACRO USING LOTUS ORGANIZER 2.0<-!>
  485.  
  486. <+!><:f240,QCourier,0,128,0>'            (Created by Adam Mark Johnson 23/9/94)<-!>
  487.  
  488. <:f240,QCourier,0,128,0>
  489.  
  490. <+!><:f240,QCourier,0,128,0>'    Set variable defaults<-!>
  491.  
  492. <+!><:f240,QCourier,0,128,0>'<-!><:f>
  493.  
  494.  
  495. OrganizeEXEName = GetProfileString$("Lotus Applications","Organize","Lotus.INI")
  496.  
  497. OrganizeFilePath = GetProfileString$("Settings","OrgFilesPath","Organize.INI")
  498.  
  499. AmiDir = GetAmiDirectory$()
  500.  
  501.  
  502. TEMPDIR = DOSGetEnv$("TEMP")
  503.  
  504. TempDataFileName = "{TEMPDIR}\TEMP.SAM"
  505.  
  506.  
  507. <:f240,QCourier,0,128,0><+!>'    Query the Organizer System topic to see what file is currently
  508.  
  509. <+!><:f240,QCourier,0,128,0>'    open<-!><:f>
  510.  
  511. <+!><:f240,QCourier,0,128,0>
  512.  
  513. OrganizerFileName = GetOpenOrgFileName() 
  514.  
  515.  
  516. if OrganizerFileName = ""
  517.  
  518.     Message( "Organizer does not have a file open" )
  519.  
  520.     Return 0;
  521.  
  522. endif
  523.  
  524.  
  525. <+!><:f240,QCourier,0,128,0>'    Get the Address section name<-!><:f>
  526.  
  527. ' This is sticky, so it should be set to whatever was selected in the previous merge
  528.  
  529.  
  530. AddressSection = GetProfileString$(IniSection, IniKey, IniFileName)
  531.  
  532. If AddressSection = ""
  533.  
  534.     AddressSection = DefaultAddressSection
  535.  
  536. Endif
  537.  
  538.  
  539.  
  540. FontDlg(1,0,0)    ' Create a small font for use in the dialog box
  541.  
  542. SetDlgCallBack(0,"InitDlg")
  543.  
  544.  
  545. FillEdit (1003, OrganizerFileName)
  546.  
  547. FillEdit (1004, PleaseSelect)
  548.  
  549. FillEdit(1005, WelcomeText)
  550.  
  551. FillEdit(8000, AddressSection)
  552.  
  553. FillEdit( 9501, "Company" )
  554.  
  555. FillEdit( 9501, "Last Name" )
  556.  
  557. FillEdit( 9501, "First Name")
  558.  
  559. FillEdit(9501, "City")
  560.  
  561. FillEdit(9501, "State")
  562.  
  563. FillEdit( 9501, "Category" )
  564.  
  565. FillEdit( 9501, "User selected" )
  566.  
  567.  
  568. Box = DialogBox( "." , "OrgMerge" )
  569.  
  570. FontDlg(4,0,0)    ' Destroy the small font that was created earlier
  571.  
  572.  
  573. If Box <<<;> 1
  574.  
  575. <:f240,QCourier,0,128,0><+!>    'User pressed cancel or box not found<-!><:f>
  576.  
  577.     Return 0;
  578.  
  579. EndIF
  580.  
  581.  
  582. IndexMethod = GetDialogField$(9501)
  583.  
  584. AddressSectionName = GetDialogField$(8000)
  585.  
  586.  
  587. @Comments@' Write the name of the address section to the amipro2.ini so we can prefill the editbox the next time
  588.  
  589. WriteProfileString(IniSection, IniKey, AddressSectionName,IniFileName)
  590.  
  591.  
  592. If IndexMethod = "User defined" 
  593.  
  594.     IndexMethod="Spare-Index"
  595.  
  596. Else
  597.  
  598.     IndexMethod="{IndexMethod} Index"
  599.  
  600. EndIf
  601.  
  602. <-!><+!><:f240,QCourier,0,128,0>
  603.  
  604. CreateAmiDataFile(AddressSectionName, IndexMethod, OrganizerFileName)
  605.  
  606.  
  607. @Comments@'    Delete the existing Temp data file 
  608.  
  609. @Comments@'    (doesn't matter if file didn't exist)
  610.  
  611.  
  612. DosDelFile ( TempDataFileName )
  613.  
  614.  
  615. @Comments@'    Save the current data as the temp data file.
  616.  
  617. SaveAs(TempDataFileName  32 ""  ""   )
  618.  
  619.  
  620. <:f240,QCourier,0,128,0><+!>'    Close the current file.<-!><:f>
  621.  
  622. FileChanged(1, 0)
  623.  
  624. If 1 = FileClose()
  625.  
  626.     IF GetOpenFileCount() <<1
  627.  
  628.         If New
  629.  
  630.             SelectDataFile(TempDataFileName,"")
  631.  
  632.         Endif
  633.  
  634.     Else
  635.  
  636.         SelectDataFile(TempDataFileName,"")
  637.  
  638.     Endif        
  639.  
  640. Endif
  641.  
  642.      
  643.  
  644. <-!>'    DosDelFile ( TempDataFileName )
  645.  
  646.  
  647. BailOut:
  648.  
  649.  
  650. END FUNCTION
  651.  
  652. @Function@
  653. @Function@
  654. @Function@Function InitDlg(Hdlg, id, value)
  655.  
  656. ' This function is called before the merge assistant dialog box is displayed.
  657.  
  658. ' The dialogbox is created - this routine will set the text of several fields to a smaller font that is easier to read
  659.  
  660.  
  661. ' We created a small font before we popped this box. 
  662.  
  663. ' Now assign several controls to display with the smaller font.  
  664.  
  665. FontDlg(3, Hdlg, TextBox)
  666.  
  667. FontDlg(3, Hdlg, 1004)
  668.  
  669. FontDlg(3, Hdlg, 1003)
  670.  
  671. End function
  672.  
  673.  
  674.  
  675.  
  676.  
  677. @Function@Function GetOpenOrgFileName()
  678.  
  679. id = DDEInitiate("ORGANIZE200", "System")
  680.  
  681. IF id = 0
  682.  
  683.      Message("Could not initiate DDE, probably because the Organizer is not running.")
  684.  
  685.     return 0;
  686.  
  687. Else
  688.  
  689.     'If the Organizer has a file open then the file name can be found by skipping
  690.  
  691.     'past the System topic name, Strings are separated by the tab character.
  692.  
  693. <:f200,BHelv,0,0,0>    FieldValue = <:f>DDEReceive$(id, <:f200,BHelv,0,0,0>"Topics"<:f><:f200,BHelv,0,0,0> 
  694. <:f>)    
  695.  
  696.     I = strchr( 1, Fieldvalue, CHR$( 9 ) )
  697.  
  698.     if -1 = I
  699.  
  700.         Message( "Organizer does not have a file open" )
  701.  
  702.         DDETerminate(id)
  703.  
  704.         return 0;
  705.  
  706.     Else
  707.  
  708.         FileName = MID$( Fieldvalue, I+1, len( Fieldvalue ) - I )
  709.  
  710.     Endif
  711.  
  712.     DDETerminate(id)
  713.  
  714. Endif
  715.  
  716. Return FileName
  717.  
  718. End Function
  719.  
  720. @Function@
  721. @Function@Function CreateAmiDataFile(AddressSectionName, IndexMethod, OrganizerFileName)
  722.  
  723. <:f240,QCourier,0,128,0><+!>'    Create list of all known Address DDE fields<-!><:f>
  724.  
  725. <+@><:I0,0,0,0><:f200,BHelv,0,0,0>
  726.  
  727. <+@><:I0,0,0,0><:f200,BHelv,0,0,0>    NUMBER_OF_FIELDS  = 32
  728.  
  729. <+@><:I0,0,0,0><:f200,BHelv,0,0,0>    Dim DDEAddressFields(<:f><:f200,BHelv,0,0,0>NUMBER_OF_FIELDS 
  730. <:f><:f200,BHelv,0,0,0>)
  731.  
  732. <+@><:I0,0,0,0><:f200,BHelv,0,0,0>
  733.  
  734.     DDEAddressFields(1) = "Categories"
  735.  
  736.     DDEAddressFields(2) = "FirstName"
  737.  
  738.     DDEAddressFields(3) = "LastName"
  739.  
  740.     DDEAddressFields(4) = "Title"
  741.  
  742.     DDEAddressFields(5) = "Position"
  743.  
  744.     DDEAddressFields(6) = "Company"
  745.  
  746.     DDEAddressFields(7) = "Address"
  747.  
  748.     DDEAddressFields(8) = "City"
  749.  
  750.     DDEAddressFields(9) = "State"
  751.  
  752.     DDEAddressFields(10) = "Zip"
  753.  
  754.     DDEAddressFields(11) = "Country"
  755.  
  756.     DDEAddressFields(12) = "Phone"
  757.  
  758.     DDEAddressFields(13) = "Extn"
  759.  
  760.     DDEAddressFields(14) = "Fax"
  761.  
  762.     DDEAddressFields(15) = "E-mail"
  763.  
  764.     DDEAddressFields(16) = "Unused 1"
  765.  
  766.     DDEAddressFields(17) = "Unused 2"
  767.  
  768.     DDEAddressFields(18) = "Notes"
  769.  
  770.     DDEAddressFields(19) = "Home-Position"
  771.  
  772.     DDEAddressFields(20) = "Home-Company"
  773.  
  774.     DDEAddressFields(21) = "Home-Address"
  775.  
  776.     DDEAddressFields(22) = "Home-City"
  777.  
  778.     DDEAddressFields(23) = "Home-State"
  779.  
  780.     DDEAddressFields(24) = "Home-Zip"
  781.  
  782.     DDEAddressFields(25) = "Home-Country"
  783.  
  784.     DDEAddressFields(26) = "Home-Phone"
  785.  
  786.     DDEAddressFields(27) = "Home-Extn"
  787.  
  788.     DDEAddressFields(28) = "Home-Fax"
  789.  
  790.     DDEAddressFields(29) = "Home-EMail"
  791.  
  792.     DDEAddressFields(30) = "Home-Unused1"
  793.  
  794.     DDEAddressFields(31) = "Home-Unused2"
  795.  
  796.     DDEAddressFields(32) = "Home-Notes"
  797.  
  798.  
  799. id = DDEInitiate("ORGANIZE200", OrganizerFileName)
  800.  
  801. IF id = 0
  802.  
  803.     Message("Could not initiate DDE, probably because the Organizer didn't have the file {OrganizerFileName} open.")
  804.  
  805.         Return 0
  806.  
  807. ENDIF
  808.  
  809.  
  810. <:f240,QCourier,0,128,0><+!>'    Access the Address section<-!><:f>
  811.  
  812.  
  813. command = "<[><[>SelectSection(""{AddressSectionName}"")]"
  814.  
  815. retval = DDEExecute(id, command)
  816.  
  817. IF retval = -1
  818.  
  819.     Message("Could not find Address section. Section name used =     {AddressSectionName}")
  820.  
  821.     Goto Bailout
  822.  
  823. ENDIF
  824.  
  825. 'command = "<[><[>SelectIndex(""Spare-Index"")]"
  826.  
  827. command = "<[><[>SelectIndex(""{IndexMethod}"")]"
  828.  
  829. retval = DDEExecute(id, command)
  830.  
  831. IF retval = -1
  832.  
  833.     Message("Could not find Spare Index")
  834.  
  835.     Stat = 0;
  836.  
  837.     Goto Bailout
  838.  
  839. ENDIF
  840.  
  841.  
  842. <-!><+!><:f240,QCourier,0,128,0>'    Find the first record.<-!><:f>
  843.  
  844. <+!><:f240,QCourier,0,128,0>
  845.  
  846. command = "<[><[>Find(""<<FIRST<;>"")]"
  847.  
  848. retval = DDEExecute(id, command)
  849.  
  850.  
  851. if retval = -1
  852.  
  853.     Message("Could not execute Find statement")
  854.  
  855.     Stat = 0
  856.  
  857.     Goto Bailout;
  858.  
  859. ENDIF
  860.  
  861.  
  862. <+@><:S+-1><:f240,QCourier,0,128,0><+!>'    Create a temporary data file for use with the mail merge.<-!><:f>
  863.  
  864. <:>
  865.  
  866.  
  867. If GetOpenFileCount() << 1
  868.  
  869. @Comments@    ' We must open a document, or the createdatafile command will return an error
  870.  
  871.     DefStyle =  GetProfileString$("AmiPro","DefStyle","AmiPro.ini")
  872.  
  873.     New(DefStyle, 1, 0)
  874.  
  875. Endif
  876.  
  877.  
  878. If CreateDataFile( )
  879.  
  880. Else
  881.  
  882.     Return -1
  883.  
  884. Endif
  885.  
  886.  
  887. ' Turn off painting in the current window
  888.  
  889. hWnd = GetFocus()
  890.  
  891. HourGlass(on)
  892.  
  893. LockWindowUpdate(hWnd)
  894.  
  895.  
  896. Type( "<[>CTRLHome]<[>Home]<[>SHIFTEnd]<[>CTRLHome]~|<[>Enter]" )    
  897.  
  898. For T = 1 To <:f200,BHelv,0,0,0>NUMBER_OF_FIELDS <:f>
  899.  
  900. <:f200,BHelv,0,0,0>    Type ( <:f><:f200,BHelv,0,0,0>DDEAddressFields<:f><:f200,BHelv,0,0,0>(T)<:f><:f200,BHelv,0,0,0> )
  901.  
  902. <:f200,BHelv,0,0,0>    Type ( "~" )
  903.  
  904. Next
  905.  
  906. <:f200,BHelv,0,0,0>Type ( "<[>Backspace]|<[>Enter]" )<:f>
  907.  
  908. <:f200,BHelv,0,0,0>
  909.  
  910. <+!><:f240,QCourier,0,128,0>'Loop around getting all of the Address records from the Address 
  911.     <-!><:f>
  912.  
  913. <+!><:f240,QCourier,0,128,0>
  914.  
  915. Count = 0
  916.  
  917. NoMoreRecords = 0
  918.  
  919. WHILE retval != -1 and NoMoreRecords <<10
  920.  
  921.     BlankRecord = 1
  922.  
  923. <:f200,BHelv,0,0,0>    TypeThis = ""<:f>
  924.  
  925.     For T = 1 To <:f200,BHelv,0,0,0>NUMBER_OF_FIELDS <:f>
  926.  
  927. <:f200,BHelv,0,0,0>        FieldValue = <:f>DDEReceive$(id, <:f200,BHelv,0,0,0>DDEAddressFields<:f><:f200,BHelv,0,0,0>(T)<:f><:f200,BHelv,0,0,0> 
  928. <:f>)
  929.  
  930. <:f200,BHelv,0,0,0>        If FieldValue <<<;> ""<:f>    <:f200,BArial,255,0,0>'  This could be a blank record or the end of the data file. 
  931. <:f>
  932.  
  933. <:f200,BHelv,0,0,0>            BlankRecord = 0
  934.  
  935. <:f200,BHelv,0,0,0>        EndIf<:f><:f200,BHelv,0,0,0> <:f>
  936.  
  937. <:f200,BHelv,0,0,0>        TypeThis = "{TypeThis}{FieldValue}~<:f><:f200,BHelv,0,0,0>"<:f>
  938.  
  939.     Next
  940.  
  941. <:f200,BHelv,0,0,0>
  942.  
  943. <:f200,BHelv,0,0,0>    Define    cNowConverting    "Converting record number : "
  944.  
  945. <:f200,BHelv,0,0,0>    StatusMsg = StrCat$(cNowConverting, Count) 
  946.  
  947. <:f200,BHelv,0,0,0>    StatusBarMsg(StatusMsg)
  948.  
  949. <:f200,BHelv,0,0,0>    <:f><:f200,BHelv,0,0,0>TypeThis = "{TypeThis}<:f><:f200,BHelv,0,0,0><[>Backspace]|<[>Enter]" 
  950. <:f>
  951.  
  952.     If BlankRecord = 1
  953.  
  954.         NoMoreRecords = NoMoreRecords +1
  955.  
  956.     Else
  957.  
  958.         MoreRecords = 0
  959.  
  960.         Type ( <:f200,BHelv,0,0,0>TypeThis<:f> )
  961.  
  962. <:f200,BHelv,0,0,0>        TypeThis=""<:f>
  963.  
  964.     EndIf
  965.  
  966.     command = "<[><[>Find(""<<NEXT<;>"")]"
  967.  
  968.     retval = DDEExecute(id, command)
  969.  
  970.     If retval = -1 
  971.  
  972.         Message("Couldn't execute Find next statement.")
  973.  
  974.         Goto Bailout;
  975.  
  976.     ENDIF
  977.  
  978.     Count = Count + 1
  979.  
  980. WEND
  981.  
  982.  
  983. <+@><:S+-1><:f240,QCourier,0,128,0><+!>'    End the DDE Conversation<:>.<-!><:f>
  984.  
  985.  
  986. Bailout:
  987.  
  988. LockWindowUpdate("")
  989.  
  990.  
  991. DDETerminate(id)    <:f200,BArial,255,0,0>'  This only terminated the last DDE Channel 
  992. <:f>
  993.  
  994. End Function
  995.  
  996.  
  997.  
  998. @Function@Function FontDlg(Action, Hdlg, id)
  999.  
  1000. ' 1    Create a font and allocvar
  1001.  
  1002. ' 2    Return the handle of the create font 
  1003.  
  1004. ' 3    Set the id specified to the font
  1005.  
  1006. ' 4    Freeglobalvar and delete created object
  1007.  
  1008.  
  1009. @Outline2@define    CreateFontDLG()        DllCall("gdi,CreateFont,HHHHHHHHHHHHHHC", %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14)
  1010.  
  1011. @Outline2@define    DeleteObjectDLG(handle)    DllCall("gdi,DeleteObject,HH", %1)
  1012.  
  1013. @Outline2@define    SendMessageDLG(hwnd, msg, wpara, lparm)    DllCall("user,SendMessage,HHHHJ", %1, %2, %3, %4)
  1014.  
  1015. @Outline2@
  1016. @Outline2@
  1017. Switch Action
  1018.  
  1019.     Case 1    ' Create the font and store it
  1020.  
  1021. @Outline2@        Font = CreateFontDLG(13, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 32, "Helv")
  1022.  
  1023.         AllocGlobalVar("FontHandle",1)
  1024.  
  1025.         If Font
  1026.  
  1027.             SetGlobalVar("FontHandle",Font)
  1028.  
  1029.             Return Font
  1030.  
  1031.         Else
  1032.  
  1033.             Return 0;    ' no font
  1034.  
  1035.         Endif
  1036.  
  1037.         Break;
  1038.  
  1039.     Case 2    ' Return the handle to the font
  1040.  
  1041.         Handle = GetGlobalVar$("FontHandle")
  1042.  
  1043.         If Handle 
  1044.  
  1045.             Return Handle
  1046.  
  1047.         Else
  1048.  
  1049.             Return 0
  1050.  
  1051.         Endif
  1052.  
  1053.  
  1054.     Case 3    ' Set the id to the font
  1055.  
  1056.         Handle = GetGlobalVar$("FontHandle")
  1057.  
  1058.         If Handle 
  1059.  
  1060.             IdControl = GetDlgITem(Hdlg, id)
  1061.  
  1062.             SendMessageDlg(idControl, 0x30, Handle, 0)
  1063.  
  1064.             Return 1
  1065.  
  1066.         Else
  1067.  
  1068.             Return 0
  1069.  
  1070.         Endif
  1071.  
  1072.         Break;        
  1073.  
  1074.         
  1075.  
  1076.     Case 4    ' Delete the font and clear the var
  1077.  
  1078.         Handle = GetGlobalVar$("FontHandle")
  1079.  
  1080.         If Handle
  1081.  
  1082.             DeleteObjectDLG(Handle)
  1083.  
  1084.             Stat = 1    
  1085.  
  1086.         Else
  1087.  
  1088.             Stat = 0
  1089.  
  1090.         Endif
  1091.  
  1092.         FreeGlobalVar("FontHandle")
  1093.  
  1094.         Return Stat        
  1095.  
  1096.     Default
  1097.  
  1098.         Message("Fontdlg received an invalid parameter {Action}")
  1099.  
  1100. EndSwitch    
  1101.  
  1102.  
  1103. End Function
  1104.  
  1105. @Subhead@
  1106.  
  1107.  
  1108. DIALOG    OrgMerge
  1109.  
  1110. -2134376448    10    56    56    220    117    ""    ""    "Organizer 2.0 Merge Assistant"
  1111.  
  1112. FONT    8    "HELV"
  1113.  
  1114. 172    3    40    14    1    1342373889    "button"    "OK"    0 
  1115.  
  1116. 172    20    40    14    2    1342373888    "button"    "Cancel"    0 
  1117.  
  1118. 5    67    30    8    1001    1342177280    "static"    "Section:"    0 
  1119.  
  1120. 5    88    29    8    1002    1342177280    "static"    "Sort by:"    0 
  1121.  
  1122. 40    86    84    44    9501    1344274435    "combobox"    ""    0 
  1123.  
  1124. 40    65    83    12    8000    1350631552    "edit"    ""    0 
  1125.  
  1126. 82    50    100    10    1003    1342177280    "static"    "filename"    0 
  1127.  
  1128. 5    50    76    8    1000    1342177280    "static"    "Current Organizer filename:"    0 
  1129.  
  1130. 5    14    150    34    1004    1342177280    "static"    "text"    0 
  1131.  
  1132. 5    3    160    8    1005    1342177280    "static"    "Welcome"    0 
  1133.  
  1134. END DIALOG
  1135.  
  1136. >
  1137.  
  1138. [Embedded]
  1139. 00016842
  1140. >
  1141. [macsum] 6
  1142. GetAddress 0 0 11 19
  1143. InitDlg 1451 3 1 118
  1144. GetOpenOrgFileName 1550 0 5 132
  1145. CreateAmiDataFile 2025 3 17 154
  1146. FontDlg 4699 3 5 297
  1147. OrgMerge 5545 0 -1 356
  1148. [macse]
  1149. 14 GetAddress
  1150. 0 286 "Lotus Applications" "Organize" "Lotus.INI"
  1151. 13
  1152. 8 1
  1153. 0 286 "Settings" "OrgFilesPath" "Organize.INI"
  1154. 13
  1155. 8 2
  1156. 0 798
  1157. 13
  1158. 8 3
  1159. 0 774 "TEMP"
  1160. 13
  1161. 8 4
  1162. 7 "{4}\TEMP.SAM"
  1163. 8 5
  1164. 16 GetOpenOrgFileName
  1165. 13
  1166. 8 6
  1167. 6 6
  1168. 7 ""
  1169. 18 0
  1170. 11 00000311
  1171. 0 3 "Organizer does not have a file open"
  1172. 5 0
  1173. 15
  1174. 9
  1175. 0 286 "OrganizerMerge" "AddressSection" "AmiPro2.Ini"
  1176. 13
  1177. 8 7
  1178. 6 7
  1179. 7 ""
  1180. 18 0
  1181. 11 00000423
  1182. 7 "Address"
  1183. 8 7
  1184. 16 FontDlg 1 0 0
  1185. 0 41 0 "InitDlg"
  1186. 0 31 1003 "{6}"
  1187. 0 31 1004 "Please select the Organizer section that you would like to use as the merge datafile.  After you have created the datafile, you will be taken to step 2 of merge: Create and Edit a Merge Document. "
  1188. 0 31 1005 "Welcome to the Organizer 2.0 Merge Assistant"
  1189. 0 31 8000 "{7}"
  1190. 0 31 9501 "Company"
  1191. 0 31 9501 "Last Name"
  1192. 0 31 9501 "First Name"
  1193. 0 31 9501 "City"
  1194. 0 31 9501 "State"
  1195. 0 31 9501 "Category"
  1196. 0 31 9501 "User selected"
  1197. 0 26 "." "OrgMerge"
  1198. 13
  1199. 8 8
  1200. 16 FontDlg 4 0 0
  1201. 6 8
  1202. 5 1
  1203. 18 1
  1204. 11 00001004
  1205. 5 0
  1206. 15
  1207. 9
  1208. 0 27 9501
  1209. 13
  1210. 8 9
  1211. 0 27 8000
  1212. 13
  1213. 8 10
  1214. 0 287 "OrganizerMerge" "AddressSection" "{10}" "AmiPro2.Ini"
  1215. 6 9
  1216. 7 "User defined"
  1217. 18 0
  1218. 11 00001184
  1219. 7 "Spare-Index"
  1220. 8 9
  1221. 10 00001204
  1222. 7 "{9} Index"
  1223. 8 9
  1224. 16 CreateAmiDataFile "{10}" "{9}" "{6}"
  1225. 0 779 "{5}"
  1226. 2 104 1 "{5}" 32 "" ""
  1227. 0 34 1 0
  1228. 5 1
  1229. 2 147 1
  1230. 13
  1231. 18 0
  1232. 11 00001439
  1233. 0 1050
  1234. 13
  1235. 5 1
  1236. 18 5
  1237. 11 00001421
  1238. 24 101
  1239. 13
  1240. 11 00001408
  1241. 2 780 1 "{5}" ""
  1242. 10 00001439
  1243. 2 780 1 "{5}" ""
  1244. 6 0
  1245. 15
  1246. 9
  1247. 14 InitDlg
  1248. 16 FontDlg 3 "{0}" 1000
  1249. 16 FontDlg 3 "{0}" 1004
  1250. 16 FontDlg 3 "{0}" 1003
  1251. 6 3
  1252. 15
  1253. 9
  1254. 14 GetOpenOrgFileName
  1255. 0 8 "ORGANIZE200" "System"
  1256. 13
  1257. 8 1
  1258. 6 1
  1259. 5 0
  1260. 18 0
  1261. 11 00000192
  1262. 0 3 "Could not initiate DDE, probably because the Organizer is not running."
  1263. 5 0
  1264. 15
  1265. 9
  1266. 10 00000451
  1267. 0 10 "{1}" "Topics"
  1268. 13
  1269. 8 2
  1270. 0 39 9
  1271. 13
  1272. 0 13 1 "{2}" [X]
  1273. 13
  1274. 8 3
  1275. 5 -1
  1276. 6 3
  1277. 18 0
  1278. 11 00000370
  1279. 0 3 "Organizer does not have a file open"
  1280. 0 9 "{1}"
  1281. 5 0
  1282. 15
  1283. 9
  1284. 10 00000440
  1285. 6 3
  1286. 5 1
  1287. 3 0
  1288. 0 14 "{2}"
  1289. 13
  1290. 6 3
  1291. 3 1
  1292. 0 15 "{2}" [X] [X]
  1293. 13
  1294. 8 4
  1295. 0 9 "{1}"
  1296. 6 4
  1297. 15
  1298. 9
  1299. 6 0
  1300. 15
  1301. 9
  1302. 14 CreateAmiDataFile
  1303. 5 32
  1304. 8 4
  1305. 6 4
  1306. 21 5 [X]
  1307. 5 1
  1308. 7 "Categories"
  1309. 23 5
  1310. 5 2
  1311. 7 "FirstName"
  1312. 23 5
  1313. 5 3
  1314. 7 "LastName"
  1315. 23 5
  1316. 5 4
  1317. 7 "Title"
  1318. 23 5
  1319. 5 5
  1320. 7 "Position"
  1321. 23 5
  1322. 5 6
  1323. 7 "Company"
  1324. 23 5
  1325. 5 7
  1326. 7 "Address"
  1327. 23 5
  1328. 5 8
  1329. 7 "City"
  1330. 23 5
  1331. 5 9
  1332. 7 "State"
  1333. 23 5
  1334. 5 10
  1335. 7 "Zip"
  1336. 23 5
  1337. 5 11
  1338. 7 "Country"
  1339. 23 5
  1340. 5 12
  1341. 7 "Phone"
  1342. 23 5
  1343. 5 13
  1344. 7 "Extn"
  1345. 23 5
  1346. 5 14
  1347. 7 "Fax"
  1348. 23 5
  1349. 5 15
  1350. 7 "E-mail"
  1351. 23 5
  1352. 5 16
  1353. 7 "Unused 1"
  1354. 23 5
  1355. 5 17
  1356. 7 "Unused 2"
  1357. 23 5
  1358. 5 18
  1359. 7 "Notes"
  1360. 23 5
  1361. 5 19
  1362. 7 "Home-Position"
  1363. 23 5
  1364. 5 20
  1365. 7 "Home-Company"
  1366. 23 5
  1367. 5 21
  1368. 7 "Home-Address"
  1369. 23 5
  1370. 5 22
  1371. 7 "Home-City"
  1372. 23 5
  1373. 5 23
  1374. 7 "Home-State"
  1375. 23 5
  1376. 5 24
  1377. 7 "Home-Zip"
  1378. 23 5
  1379. 5 25
  1380. 7 "Home-Country"
  1381. 23 5
  1382. 5 26
  1383. 7 "Home-Phone"
  1384. 23 5
  1385. 5 27
  1386. 7 "Home-Extn"
  1387. 23 5
  1388. 5 28
  1389. 7 "Home-Fax"
  1390. 23 5
  1391. 5 29
  1392. 7 "Home-EMail"
  1393. 23 5
  1394. 5 30
  1395. 7 "Home-Unused1"
  1396. 23 5
  1397. 5 31
  1398. 7 "Home-Unused2"
  1399. 23 5
  1400. 5 32
  1401. 7 "Home-Notes"
  1402. 23 5
  1403. 0 8 "ORGANIZE200" "{2}"
  1404. 13
  1405. 8 6
  1406. 6 6
  1407. 5 0
  1408. 18 0
  1409. 11 00001042
  1410. 0 3 "Could not initiate DDE, probably because the Organizer didn't have the file {2} open."
  1411. 5 0
  1412. 15
  1413. 9
  1414. 7 "[[SelectSection(""{0}"")]"
  1415. 8 7
  1416. 0 11 "{6}" "{7}"
  1417. 13
  1418. 8 8
  1419. 6 8
  1420. 5 -1
  1421. 18 0
  1422. 11 00001212
  1423. 0 3 "Could not find Address section. Section name used =     {0}"
  1424. 10 00002614
  1425. 7 "[[SelectIndex(""{1}"")]"
  1426. 8 7
  1427. 0 11 "{6}" "{7}"
  1428. 13
  1429. 8 8
  1430. 6 8
  1431. 5 -1
  1432. 18 0
  1433. 11 00001360
  1434. 0 3 "Could not find Spare Index"
  1435. 5 0
  1436. 8 9
  1437. 10 00002614
  1438. 7 "[[Find(""<<FIRST>"")]"
  1439. 8 7
  1440. 0 11 "{6}" "{7}"
  1441. 13
  1442. 8 8
  1443. 6 8
  1444. 5 -1
  1445. 18 0
  1446. 11 00001512
  1447. 0 3 "Could not execute Find statement"
  1448. 5 0
  1449. 8 9
  1450. 10 00002614
  1451. 0 1050
  1452. 13
  1453. 5 1
  1454. 18 5
  1455. 11 00001618
  1456. 0 286 "AmiPro" "DefStyle" "AmiPro.ini"
  1457. 13
  1458. 8 10
  1459. 2 101 1 "{10}" 1 0
  1460. 2 784 1
  1461. 13
  1462. 11 00001657
  1463. 10 00001670
  1464. 5 -1
  1465. 15
  1466. 9
  1467. 0 284 "user,GetFocus,H"
  1468. 13
  1469. 8 11
  1470. 0 296 1
  1471. 0 284 "User,LockWindowUpdate,AH" "{11}"
  1472. 0 6 "[16420][36][4131][16420]~|[13]"
  1473. 5 1
  1474. 8 12
  1475. 6 4
  1476. 6 12
  1477. 18 2
  1478. 12 00001882
  1479. 10 00001925
  1480. 5 1
  1481. 6 12
  1482. 3 0
  1483. 8 12
  1484. 10 00001804
  1485. 6 12
  1486. 22 5
  1487. 0 6 [X]
  1488. 0 6 "~"
  1489. 10 00001847
  1490. 0 6 "[8]|[13]"
  1491. 5 0
  1492. 8 13
  1493. 5 0
  1494. 8 14
  1495. 6 8
  1496. 5 -1
  1497. 18 1
  1498. 6 14
  1499. 5 10
  1500. 18 5
  1501. 1 1
  1502. 11 00002614
  1503. 5 1
  1504. 8 15
  1505. 7 ""
  1506. 8 16
  1507. 5 1
  1508. 8 12
  1509. 6 4
  1510. 6 12
  1511. 18 2
  1512. 12 00002128
  1513. 10 00002242
  1514. 5 1
  1515. 6 12
  1516. 3 0
  1517. 8 12
  1518. 10 00002050
  1519. 6 12
  1520. 22 5
  1521. 0 10 "{6}" [X]
  1522. 13
  1523. 8 17
  1524. 6 17
  1525. 7 ""
  1526. 18 1
  1527. 11 00002208
  1528. 5 0
  1529. 8 15
  1530. 7 "{16}{17}~"
  1531. 8 16
  1532. 10 00002093
  1533. 0 16 "Converting record number : " "{13}"
  1534. 13
  1535. 8 18
  1536. 0 789 "{18}"
  1537. 7 "{16}[8]|[13]"
  1538. 8 16
  1539. 6 15
  1540. 5 1
  1541. 18 0
  1542. 11 00002398
  1543. 6 14
  1544. 5 1
  1545. 3 0
  1546. 8 14
  1547. 10 00002433
  1548. 5 0
  1549. 8 19
  1550. 0 6 "{16}"
  1551. 7 ""
  1552. 8 16
  1553. 7 "[[Find(""<<NEXT>"")]"
  1554. 8 7
  1555. 0 11 "{6}" "{7}"
  1556. 13
  1557. 8 8
  1558. 6 8
  1559. 5 -1
  1560. 18 0
  1561. 11 00002579
  1562. 0 3 "Couldn't execute Find next statement."
  1563. 10 00002614
  1564. 6 13
  1565. 5 1
  1566. 3 0
  1567. 8 13
  1568. 10 00001963
  1569. 0 284 "User,LockWindowUpdate,AH" ""
  1570. 0 9 "{6}"
  1571. 6 3
  1572. 15
  1573. 9
  1574. 14 FontDlg
  1575. 5 1
  1576. 6 0
  1577. 18 0
  1578. 11 00000255
  1579. 0 284 "gdi,CreateFont,HHHHHHHHHHHHHHC" 13 0 0 0 400 0 0 0 0 0 0 0 0 "Helv"
  1580. 13
  1581. 8 4
  1582. 0 271 "FontHandle" 1
  1583. 6 4
  1584. 11 00000217
  1585. 0 264 "FontHandle" "{4}"
  1586. 6 4
  1587. 15
  1588. 9
  1589. 10 00000229
  1590. 5 0
  1591. 15
  1592. 9
  1593. 10 00000834
  1594. 10 00000834
  1595. 5 2
  1596. 6 0
  1597. 18 0
  1598. 11 00000381
  1599. 0 265 "FontHandle"
  1600. 13
  1601. 8 5
  1602. 6 5
  1603. 11 00000356
  1604. 6 5
  1605. 15
  1606. 9
  1607. 10 00000368
  1608. 5 0
  1609. 15
  1610. 9
  1611. 10 00000834
  1612. 5 3
  1613. 6 0
  1614. 18 0
  1615. 11 00000596
  1616. 0 265 "FontHandle"
  1617. 13
  1618. 8 5
  1619. 6 5
  1620. 11 00000558
  1621. 0 44 "{1}" "{2}"
  1622. 13
  1623. 8 6
  1624. 0 284 "user,SendMessage,HHHHJ" "{6}" 48 "{5}" 0
  1625. 5 1
  1626. 15
  1627. 9
  1628. 10 00000570
  1629. 5 0
  1630. 15
  1631. 9
  1632. 10 00000834
  1633. 10 00000834
  1634. 5 4
  1635. 6 0
  1636. 18 0
  1637. 11 00000785
  1638. 0 265 "FontHandle"
  1639. 13
  1640. 8 5
  1641. 6 5
  1642. 11 00000730
  1643. 0 284 "gdi,DeleteObject,HH" "{5}"
  1644. 5 1
  1645. 8 7
  1646. 10 00000740
  1647. 5 0
  1648. 8 7
  1649. 0 266 "FontHandle"
  1650. 6 7
  1651. 15
  1652. 9
  1653. 10 00000834
  1654. 0 3 "Fontdlg received an invalid parameter {0}"
  1655. 6 3
  1656. 15
  1657. 9
  1658. DIALOG OrgMerge
  1659. -2134376448 10 56 56 220 117 "" "" "Organizer 2.0 Merge Assistant" 
  1660. FONT 8 "HELV" 
  1661. 172 3 40 14 1 1342373889 "button" "OK" 0 
  1662. 172 20 40 14 2 1342373888 "button" "Cancel" 0 
  1663. 5 67 30 8 1001 1342177280 "static" "Section:" 0 
  1664. 5 88 29 8 1002 1342177280 "static" "Sort by:" 0 
  1665. 40 86 84 44 9501 1344274435 "combobox" "" 0 
  1666. 40 65 83 12 8000 1350631552 "edit" "" 0 
  1667. 82 50 100 10 1003 1342177280 "static" "filename" 0 
  1668. 5 50 76 8 1000 1342177280 "static" "Current Organizer filename:" 0 
  1669. 5 14 150 34 1004 1342177280 "static" "text" 0 
  1670. 5 3 160 8 1005 1342177280 "static" "Welcome" 0 
  1671. 00016867
  1672.