/tags/build44/harbour/contrib/ole/hbtest.prg

# · Clipper · 171 lines · 111 code · 56 blank · 4 comment · 9 complexity · 92053a073031f63c99e1b366d5b9cceb MD5 · raw file

  1. *
  2. * HBTEST.PRG
  3. *
  4. * Este ejemplo es para probar con Harbour en modo consola, sin FiveWin
  5. * para Harbour.
  6. *
  7. * This example is done for testing with Harbour in console mode, without
  8. * FiveWin for Harbour.
  9. *
  10. #define CRLF Chr( 13 ) + Chr( 10 )
  11. PROCEDURE MAIN()
  12. LOCAL nOption
  13. CLS
  14. SetColor("W+/R")
  15. @ 6, 25 TO 16, 55 DOUBLE
  16. @ 8, 28 SAY "Probar OLE con..."
  17. While .t.
  18. @ 10, 32 PROMPT "Excel"
  19. @ 11, 32 PROMPT "Word"
  20. @ 12, 32 PROMPT "Internet Explorer"
  21. @ 13, 32 PROMPT "Outlook"
  22. @ 14, 32 PROMPT "Salir"
  23. MENU TO nOption
  24. IF nOption == 0
  25. nOption := 5
  26. ELSEIF nOption == 1
  27. EXCEL97()
  28. ELSEIF nOption == 2
  29. WORD97()
  30. ELSEIF nOption == 3
  31. IEXPLORER()
  32. ELSEIF nOption == 4
  33. OUTLOOK()
  34. ELSEIF nOption == 5
  35. EXIT
  36. ENDIF
  37. End
  38. SetColor("W/N")
  39. CLS
  40. RETURN
  41. //--------------------------------------------------------------------
  42. STATIC PROCEDURE EXCEL97()
  43. LOCAL oExcel, oHoja
  44. oExcel := TOleAuto():New( "Excel.Application" )
  45. oExcel:WorkBooks:Add()
  46. oHoja := oExcel:ActiveSheet()
  47. oHoja:Cells:Font:Name := "Arial"
  48. oHoja:Cells:Font:Size := 12
  49. oHoja:Cells( 3, 1 ):Value := "Texto:"
  50. oHoja:Cells( 3, 2 ):Value := "Esto es un texto"
  51. oHoja:Cells( 4, 1 ):Value := "Número:"
  52. oHoja:Cells( 4, 2 ):NumberFormat := "#.##0,00"
  53. oHoja:Cells( 4, 2 ):Value := 1234.50
  54. oHoja:Cells( 5, 1 ):Value := "Lógico:"
  55. oHoja:Cells( 5, 2 ):Value := .T.
  56. oHoja:Cells( 6, 1 ):Value := "Fecha:"
  57. oHoja:Cells( 6, 2 ):Value := DATE()
  58. oHoja:Columns( 1 ):Font:Bold := .T.
  59. oHoja:Columns( 2 ):HorizontalAlignment := -4152 // xlRight
  60. oHoja:Columns( 1 ):AutoFit()
  61. oHoja:Columns( 2 ):AutoFit()
  62. oHoja:Cells( 1, 1 ):Value := "OLE desde FW"
  63. oHoja:Cells( 1, 1 ):Font:Size := 16
  64. oHoja:Range( "A1:B1" ):HorizontalAlignment := 7
  65. oHoja:Cells( 1, 1 ):Select()
  66. oExcel:Visible := .T.
  67. oHoja:End()
  68. oExcel:End()
  69. RETURN
  70. //--------------------------------------------------------------------
  71. STATIC PROCEDURE WORD97()
  72. LOCAL oWord, oTexto
  73. oWord:=TOleAuto():New( "Word.Application" )
  74. oWord:Documents:Add()
  75. oTexto := oWord:Selection()
  76. oTexto:Text := "OLE desde FW"+CRLF
  77. oTexto:Font:Name := "Arial"
  78. oTexto:Font:Size := 48
  79. oTexto:Font:Bold := .T.
  80. oWord:Visible := .T.
  81. oWord:WindowState := 1 // Maximizado
  82. oTexto:End()
  83. oWord:End()
  84. RETURN
  85. //--------------------------------------------------------------------
  86. STATIC PROCEDURE IEXPLORER()
  87. LOCAL oIE
  88. oIE:=TOleAuto():New( "InternetExplorer.Application" )
  89. oIE:Visible := .T.
  90. oIE:Navigate( "http://www.fivetech.com" )
  91. oIE:End()
  92. RETURN
  93. //--------------------------------------------------------------------
  94. STATIC PROCEDURE OUTLOOK()
  95. LOCAL oOL, oLista, oMail, i
  96. oOL := TOleAuto():New( "Outlook.Application.9" )
  97. IF Ole2TxtError() != "S_OK"
  98. Alert("Outlook 2000 no está disponible.", "Error")
  99. ELSE
  100. oMail := oOL:CreateItem( 0 ) // olMailItem
  101. FOR i := 1 TO 10
  102. oMail:Recipients:Add( "Contacto" + LTRIM( STR( i, 2 ) ) + ;
  103. "<contacto" + LTRIM( STR( i, 2 ) ) + "@servidor.com>" )
  104. NEXT
  105. oLista := oOL:CreateItem( 7 ) // olDistributionListItem
  106. oLista:DLName := "Prueba de lista de distribución"
  107. oLista:Display( .F. )
  108. oLista:AddMembers( oMail:Recipients )
  109. oLista:Save()
  110. oLista:Close( 0 )
  111. oMail:End()
  112. oLista:End()
  113. oOL:End()
  114. ENDIF
  115. RETURN