Go Premium for a chance to win a PS4. Enter to Win

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 330
  • Last Modified:

Additional Function not showing up.

Hi Experts
 I have been trying to add my own User Defined Function to Crystal 8.5 with no success.  I have compiled my VB code as a dll and placed this dll in the WINNT\Crystal directory and registered it. At this point I would expect it to be visible under 'Additonal Funtions' in Funtions in the Formula editor.  We have been able to do this in verions 7 of Crystal but ever since we upgraded we have not been able to get it to work.

Here is my VB code.  It is one I found off of Crystals web site.

Option Explicit
Public UFPrefixFunctions As Boolean

Private Sub Class_Initialize()
  UFPrefixFunctions = False
End Sub

Public Function DateToString(date1 As Date) As String
     DateToString = Format(date1, "Long Date")
End Function

Does anyone know what I am missing?


  • 4
  • 4
1 Solution
I assume since you have done this before you are naming the dll correctly.  It must be CRUFLxxx.DLL.

BrightonAuthor Commented:
Yes.  The program listed above is compiled and registered as CRUFLTraining.DLL in my WINNT\Crystal directory.
What name are you looking for in the Additional Functions List.

CR renames your function.  As a guess look for


New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

BrightonAuthor Commented:
Yes, I was expecting to see TrainingDateToString or something with Training or even DateToString in the name.
I have looked at all the additonal functions and none of them are even close to what I was looking for.
I just created an ActiveX DLL using your code and compiled it in VB.  I compiled it to my library directory (not windows\system) and CR recognized it immediately.

My first attempt didn't work (wouldn't compile) but when I started from a fresh project it did.

Suggest you create a new ActiveX dll project, add a class module, then type in your code and make the dll and see if it is rcognized.

BrightonAuthor Commented:
I redid the DLL as you suggested but still no luck.  Is there a reference that needs to be check in VB?

I didn't add any references or components.
Here is what it defaulted

The Project Properties
General Tab
project type  -  ActiveX DLL
startup object - (none)
Project name - cruflTraining
Upgrade ActiveX controls - checked
Threading model - Apartment Threaded

Make Tab
Application Title - CRUFLTraining
Remove information about unused ActiveX controls - checked

Compile Tab
Compile to Native code - selected
Optimize for fast Code - selected

Component Tab
Project compatubility - selected
cruflTraining.dll in the text box

Project References
VB for Applications
VB runtime objects and procedures
VB objects and procedures
OLE Automation

Project Components
Designers Tab
Data Environment
Data Report

BrightonAuthor Commented:
Thanks!  It appears to be case sensitive. Once I changed the project name to lowercase and recompiled it worked but that doesn't make sense.  Why just changing the project name and nothing else make it work?  Thanks Again.

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now