on 2013 Dec 17 2:38 PM
Am developing with PB 12.1 classic. We have an app that was migrated from PB 7 through 8, 10, 11, and now 12. All the way through we brought the old version of the PFC with us. That approach has served us well, but we have complaints about printing. I've seen posts about this online too. If you use the Printer Selection dialog it prints to the default printer even if you select a different one. Someone said to get a newer version of pfccom32.dll as there is a bug in there that causes this issue. So I'm looking for a shortcut. I can't afford the time to install a newer version of the PFC, for example the ones provided by Bruce Armstrong. I have licenses to older versions, but I'm hoping that someone can tell me where to get a later version, or which version of PB I should install to get a newer version of pfccom32.dll that does not have this problem. Hopefully the newer version will work with the old version of the PFC, but I am skeptical. Thanks!
I am writing one reply to Marco, Chris, and Bruce.
First, I want to thank all of you for chiming in.
The product I am working on gets very limited attention. This will be our first release of this product in 4 years. So using a newer version of the PFC cannot be justified from a development or QA perspective. Using the newer Print pscript functions is reasonable, but even the effort there is hard to justify for this issue. I was looking for a quick and dirty solution. I do not regret sticking with an old version of the PFC. Users can workaround the issue by temporarily changing their default printer outside of our application. They generally want to print to the default printer, except when they want to create a PDF from the output.
Thanks guys. Nice to hear from some PB heavyweights.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have licenses to older versions, but I'm hoping that someone can tell me where to get a later version, or which version of PB I should install to get a newer version of pfccom32.dll that does not have this problem.
Older versions were licensed. As of PB10, PFC was open sourced. Also, as of PowerBuilder 8, pfccom32.dll was removed from PFC and replaced with a call into the PBVM.
http://pbdj.sys-con.com/node/42339
One side effect of this is that Sybase no longer needs to provide the PFCCOM32.DLL file with PFC as a result. The only thing that DLL did was support the printer setup dialog call, so the PFC code has been modified to call the new PowerScript function.
That call was then exposed in later versions of PowerBuilder as a native PowerScript function (PrintSetupPrinter). If you simply want to address the printing issue, I suggest replacing the code that referenced PFCCOM32.DLL with the native PowerScript function.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Harvey;
Unfortunately, that was absolutely the wrong thing to do by migrating the PFC forward. In essence you have been playing with a "time bomb" just ticking away waiting to take down your PB applications!
The PFC is to PB what a set of tires are to your car. They are a matched set: rim size, tread pattern, profile height, tread width, etc all determine the cars handling characteristics. Also for example, the type of rubber determines how each tire flexes in tight turns. Thus - you are always warned about mixing and matching tires ... especially from a different manufacturer or in odd pairs.
The PFC is exactly the same. Each version of the PFC matches its corresponding version of PB. That is still the same today if you look at the PFC website home on CodePlex. When PFC based PB applications are migrated - the PFC (not the PFE) layer should always be replaced to match the PB vehicle.
Now what you have is totally mismatched PFC for the PB version you are using that includes unnecessary features, deprecated functionality and worse still - a version that does not understand Unicode or the 64bit world.
Personally, I would invest the time in bringing your PFC layer up-to-date before using the newly migrated PB 12.5.x application. I think its time to get a proper "rebuild" done on your PB vehicle before going out on the MS-Windows race track. 🙂
Regards ... Chris
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Short answer is: you're screwed. Sorry.
My affection for PFC is unhidden, but the choice to create this DLL, with a hard coded link to a version-specific PowerBuilder DLL, was terrible. This dependency was removed from PFC before it was released to open source, so the source code for this DLL was never released. While, IMHO, this is a better architectural choice (making the PB code of PFC more upgrade-friendly), this eliminates the possibility of getting a more current version of pfccom32.dll that you're asking for.
The options I see for you:
There is no option that is as easy as the one you are looking for, to the best of my knowledge, but there are lots of smart people around that may suggest other options.
Good luck,
Terry.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Just cheking our application for 64Bit readyness...
PFCCOM32.DLL is obsolete since PB8 is released:
PB 8 introduces the PrintGetPrinter (get name of default printer), PrintSetPrinter (set default printer), and PrintGetPrinters (get the list of printers on the client) functions. It also adds the PrintSetupPrinter function to display the printer setup dialog to the user. One side effect of this is that Sybase no longer needs to provide the PFCCOM32.DLL file with PFC as a result. The only thing that DLL did was support the printer setup dialog call, so the PFC code has been modified to call the new PowerScript function.
Source : PowerBuilder 8 For The Rest Of Us? | PowerBuilder Journal
Regards
Marco
User | Count |
---|---|
70 | |
10 | |
10 | |
7 | |
6 | |
6 | |
6 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.