This component caught my attention because in all my atempts to embed components i never succeeded in embedding an component that you can use for user keyboard input.
It always keeped crashing Navision. And with the reason that Navision has a strange behavoir of always moving the keyboard focus to its own controls i gave up this development thinking i would never succeed.
By seeing this download i was pleasantly supprised to see that it is possible. But also this component has the same result, it crashes navision at startup. Don't know if i did anything wrong but i didn't understand the instructions about the gacutil.exe.
From your documentation i see you also experience the focus problem sometimes. I wonder if you will be able to solve them. My only thought was at that time to steal the focus back again form navision but that probably would result in many other problems. Also maybe hooking the focus event from navision and stopping it from executing in a controlled manner is a sollution but that may be dangerous and complex.
Maybe you can give more detailed installation instructions or you can add an installer; this should not be so difficult and will ease installation as the .Net deployment automattically includes all dependency files.
Regards, Jan-Pieter
In a world without Borders or Fences, who needs Windows and Gates?
But i saw that the variable sais "unknown automation server.class" while the registration of the component did not give an error message. But i suppose the registration did not work correctly otherwise the class library would have been found.
If you are able to solve the crashing and focus problem i think this will be an usefull product.
In a world without Borders or Fences, who needs Windows and Gates?
But i saw that the variable sais "unknown automation server.class" while the registration of the component did not give an error message. But i suppose the registration did not work correctly otherwise the class library would have been found.
If you are able to solve the crashing and focus problem i think this will be an usefull product.
I still would suggest to create an installer program. That is fairly simple to create with .NET.
I think the problem of the crashing is improper installation (at least in my case). If you look at the global automation variables it sais "Unknown automation server". In that case the cause for sure is improper installation.
I also think it is always good practise to create and add an installer.
And .. i wonder if the WM_Timer sollution is a good idea .. but we will see if it works sometimes you cant avoid timers.
In a world without Borders or Fences, who needs Windows and Gates?
I am going to go out on a limb here and ask you guys a simple question...
How do I install this product? I have downloaded the package but I can't for the life of me figure out how to get from "Unknown Automation Server.Unknown Class" to the actual DLL... If you know what I mean.
Please Help. ](*,)
Elmar F. Vidisson
Certified Navision Attain Developer
What exactly is the reserved form for (I saw it is the subform for the demo-form). But in that form what is '123' (the source expression of the only text-field on that form).
How can I use this practically, do I have to get out every line with the function an then store them individuelly in the database and on the other way, read out the lines one by one and store it in the object for displaying and modifying?
Anybody used this in combination with navision-functionality (e.g. Items, Customers, Interaction Log Entries).
May anybody can help me out.
Thanks in advance.
Best wishes from Austria
Thomas Buchholz
ekey biometric systems GmbH
4031 Linz
Austria
web: http://www.ekey.net
you have to create OCX(!!!) instead of ".NET automation DLL".
This is not true. The DLL works as a wrapper for the OCX. The DLL contains functions that hosts the OCX on a navision form so it seems like and behaves like it is just a normal navision component instead of an external tool.
The DLL will do the creation of the OCX for you, so you have to create (instantiate) the DLL class.
I experienced the same sympthons in my attempts to create this kind of component like you did. It crashes at the mouseover event. Probably the windows component will send WM messages when doing just that to the parent window and probably the navision form (as being the parent window!) cannot handle this specific WM event in some situations (probably when there are standard focusable navision controls on the same form).
Anyway navision acts weird when it comes to the focussing of controls.
In a world without Borders or Fences, who needs Windows and Gates?
My controls are written in VB6 as well. They respond well within Navision.
Though when i tried to embed VB6 textbox controls they failed with the same sympthons. Even when i made an OCX wrapper (so that the VB6 wrapper control was between navision and the VB6 textbox) still the same crashing behavior.
I'm not sure whethever the messages of the control are received by the DLL. Since the control is explicitly attached to another window, typically i would expect that the real parent window (the navision subform) would receive the WM messages, and the DLL would receive the custom created events. I dont think WM messages are send to the DLL as it doesn't have a window handle.
In a world without Borders or Fences, who needs Windows and Gates?
Comments
It always keeped crashing Navision. And with the reason that Navision has a strange behavoir of always moving the keyboard focus to its own controls i gave up this development thinking i would never succeed.
By seeing this download i was pleasantly supprised to see that it is possible. But also this component has the same result, it crashes navision at startup. Don't know if i did anything wrong but i didn't understand the instructions about the gacutil.exe.
From your documentation i see you also experience the focus problem sometimes. I wonder if you will be able to solve them. My only thought was at that time to steal the focus back again form navision but that probably would result in many other problems. Also maybe hooking the focus event from navision and stopping it from executing in a controlled manner is a sollution but that may be dangerous and complex.
Maybe you can give more detailed installation instructions or you can add an installer; this should not be so difficult and will ease installation as the .Net deployment automattically includes all dependency files.
Regards, Jan-Pieter
Some craches take place on 3.60 and 3.70
But i saw that the variable sais "unknown automation server.class" while the registration of the component did not give an error message. But i suppose the registration did not work correctly otherwise the class library would have been found.
If you are able to solve the crashing and focus problem i think this will be an usefull product.
That is conflict of timers (internal Navision and cursor blanking timer in component).
Try to set the TimerInterval property of form to 10000 (10 sec for example) and leave empty OnTimer trigger.
...
Yeah, that is the problem. I've changed WM_TIMER-message code and got no crashes. Wait for version 2.0
I have the same problem. I also get this on 4.0
Update:
Got it working. Was a RTFM problem...
Component crashes Navision Client 3.7. With "timer hack" too.
If it was hard to write, it should be hard to understand.
I think the problem of the crashing is improper installation (at least in my case). If you look at the global automation variables it sais "Unknown automation server". In that case the cause for sure is improper installation.
I also think it is always good practise to create and add an installer.
And .. i wonder if the WM_Timer sollution is a good idea .. but we will see if it works sometimes you cant avoid timers.
In a year Navision 5.0 will be released. Navision 5.0 knows how to handle .NET.
Only a year!
If it was hard to write, it should be hard to understand."
Personally i feel that the phrase ".Net compliant" sounds more interesting then it will probably will be.
How do I install this product? I have downloaded the package but I can't for the life of me figure out how to get from "Unknown Automation Server.Unknown Class" to the actual DLL... If you know what I mean.
Please Help. ](*,)
Certified Navision Attain Developer
What exactly is the reserved form for (I saw it is the subform for the demo-form). But in that form what is '123' (the source expression of the only text-field on that form).
How can I use this practically, do I have to get out every line with the function an then store them individuelly in the database and on the other way, read out the lines one by one and store it in the object for displaying and modifying?
Anybody used this in combination with navision-functionality (e.g. Items, Customers, Interaction Log Entries).
May anybody can help me out.
Thanks in advance.
Best wishes from Austria
ekey biometric systems GmbH
4031 Linz
Austria
web: http://www.ekey.net
This is not true. The DLL works as a wrapper for the OCX. The DLL contains functions that hosts the OCX on a navision form so it seems like and behaves like it is just a normal navision component instead of an external tool.
The DLL will do the creation of the OCX for you, so you have to create (instantiate) the DLL class.
I experienced the same sympthons in my attempts to create this kind of component like you did. It crashes at the mouseover event. Probably the windows component will send WM messages when doing just that to the parent window and probably the navision form (as being the parent window!) cannot handle this specific WM event in some situations (probably when there are standard focusable navision controls on the same form).
Anyway navision acts weird when it comes to the focussing of controls.
My controls are written in VB6 as well. They respond well within Navision.
Though when i tried to embed VB6 textbox controls they failed with the same sympthons. Even when i made an OCX wrapper (so that the VB6 wrapper control was between navision and the VB6 textbox) still the same crashing behavior.
I'm not sure whethever the messages of the control are received by the DLL. Since the control is explicitly attached to another window, typically i would expect that the real parent window (the navision subform) would receive the WM messages, and the DLL would receive the custom created events. I dont think WM messages are send to the DLL as it doesn't have a window handle.
Would be nice :P
I did some experiments with streams as well but no luck.
Only solution i can think of is to use a temporary file, but it would be nicer to use streams ...