In the past I have had good experience with gradually migrating an ADM2 application to DWP, from Netsetup, but I don't really know how they are doing right now. What I /do/ know that their toolkit is extremely easy to work with, as opposed to working with ADM2, which I still don't really...
Just out of curiosity, what application is this, an (old) version of MFG/Pro?
You say another process is running a pstimer. Does that program do something with the worktable?
Is there an option to rewrite this part to work with a buffer parameter?
Your code would then look something like this...
Its duct-tape programming, but since you're using worktables and locking them exclusively, the code is already basically lost, so (end of rant) you could try this:
DEFINE SHARE WORKTABLE myWorkTable NO-UNDO
field myField AS CHAR.
DO TRANSACTION:
FIND FIRST myWorkTable NO-ERROR .
IF NOT...
A few suggestions you could try:
1. Use a buffer for the worktable in all places this is referenced. I have seen it solve problems in a lot of places where strange behaviour occurred
2. Use a temp-table instead of worktables. Not likely to be the cause of your issue, but at least it pulls you...
Aaaarch, keep that include code away from my eyes!
Why not use something like this:
RUN fillCombo
( cbCustomer:HANDLE
, "FOR EACH customer NO-LOCK"
, "cust-num,name"
).
/* Fill a combo box
*/
DEFINE INPUT PARAMETER phCombo AS HANDLE NO-UNDO.
DEFINE INPUT PARAMETER...
I would love to see more of this, because I am truly curious how this works and what it can do, however I don't think I could really put it to use since the client I am at now decided to move away from Progress by rebuilding the application in .Net. Yes, this tool might be of use then, but the...
We use include files solely for tt definitions that need to be tossed around and we only define one temp-table per include. Exception is a dataset where the complete definition is in one include. The name of the include is always the same as the name of the include file, so we have calls like...
In that case you might benefit from using the library I mentioned. My suggestion:
Download the file "resizable.p" from Github (or used attached file)
Place it in your codebase.
Remove the code you currently have in the ON WINDOW-RESIZED event
Run resizable.p in the init section of your...
Progress is nasty when you are resizing. Your logic for resizing a window should take into account whether the user is enlarging or shrinking the window. I have done a lot on resizing for the application I work on, so I do have some experience here.
I worked on a library that could be used for...
Ok, try this. If you right-click outside the browse, but on the frame itself (not on buttons or anything else on the frame) then the popup for the browse will appear
And to add to the documentation part @Stefan posted: it suggests to use shared variables instead for more efficient code.
For this the same advice applies, namely: DON'T!
Shared variables are evil, just as includes with code and the release statement.
They all might have their place, but as...
I was puzzledly looking at your code, wondering how it could possibly run and - if it would run - what it should do.
Still not convinced that I know what you are trying to achieve here.
The example does not compile in 11.7, let alone run. I think you are trying to use run-time parameters.
If...
Not quite sure what you want to achieve, but I use below code to enforce right click when the user presses the left button.
Maybe this can get you on track:
PROCEDURE SendMessageA EXTERNAL "user32.dll":
DEFINE INPUT PARAMETER hwnd AS long NO-UNDO.
DEFINE INPUT PARAMETER wmsg AS long...
I dusted off an old version of DataDigger and got it running in v9. Don't ask why I keep a copy of v9 :)
Check the repo at GitHub - patrickTingen/DataDiggerV9: DataDigger for Progress v9 or simply download it here
It contains both source files and .r files for v9.1D
Extract the zip in...
Alternative approach:
#Tray:
FOR EACH tray NO-LOCK
WHERE tray.tf-own = l-cus
AND tray.tf-type >= l-type1
AND tray.tf-type <= l-type2
AND tray.tf-delete-date = ?:
FOR EACH item NO-LOCK
WHERE item.if-tray = tray.tf-tray
AND...
Try this
FOR EACH tray NO-LOCK
WHERE tray.tf-own = l-cus
AND tray.tf-type >= l-type1
AND tray.tf-type <= l-type2
AND tray.tf-delete-date = ?
,
EACH item NO-LOCK
WHERE item.if-tray = tray.tf-tray
AND item.if-delete-date = ?
BREAK BY...
For the past few days, I have been receiving blank emails from our ERP system. We have several places where the system mails strange things so sending mail is not uncommon. Blank emails are, though. I managed to trace the mails back to the specific server and checked the logfiles of smtpmail...
Not sure, based on your example, but my experience is that if you encounter strange problems with locking, you can do yourself an enourmous favour by using explicit buffers for each table you reference. No exceptions; always use a buffer. I've seen multiple times strange and seemingly unsolvable...
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.