Hi Peter,
I haven't touched v17 yet. There might be easier way. If not, you could try
LONGINT ARRY FROM SELECTION and pack the array into shared object.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>This may be related to other thread - Defining and documenting objects - as
>it
I guess most engineers of its ISP were on vacation (the famous French summer
vacation).
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>I have been trying to get licensing since Friday Still no luck.
>
>dave
>
>On Tue, Aug 7, 2018 at 4:26 AM, Pat Bensky via 4D_Tech
Quote
"Over the course of different versions, the most useful 4D Pack routines were
progressively integrated into 4D itself, while those that became obsolete were
removed. Starting with 4D v16 R2, the 4D Pack plug-in is no longer provided in
versions of
4D"
end quote
We use RealVNC on all servers but use TeamViewer for client machines. We used
to use LogMeIn for client machines but our support guys prefer Teamviewer and I
didn't ask why.
Alan Chan
**
4D Internet Users Group (4D iNUG)
FAQ:
Oops... I reply too fast. You've answered your question.
Alan Chan
Chip Scheide <4d_o...@pghrepository.org> writes:
>(I think that to get around the Set process variable you would use
>'Storage')
**
4D Internet Users Group (4D
May be using Shared Object to replace variable.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>1 - doesn't this idea 'break' with preemptive code (using Set Process
>Variable)?
>(I think that to get around the Set process variable you would use
>'Storage')
>2 - how does 4D
Why not? It isn't supported? I just checked In Transaction in trigger is a
preemptive compliant. It means, preemptive mode does expect transaction. Any
hidden constraint?
Without transaction, trigger is meaningless. When a trigger invoked, mulitple
tables might be updated inside the trigger.
I don't need preemptive client side on data updates. I care about server side
only. Data entry/updates are human works in our case, one at a time (one entry
per second through barcode scanner). If triggers on server could be completed
in less time
even when server loading is heavy, it won't
That's what I understand in the first place as following.
- do data entry in a form (UI in application process)
- in the form, I click a button call SAVE RECORD (in the same applicaation
process)
- As long as all codes in the trigger are preemptive compliant, the trigger
would be running in
I'm a bit confused.
When I just call SAVE RECORD in data entry form (cooperative process), I was
told it's not OK because it's from a process that have UI. Now, your latest
reply claimed it's OK. Or only if there's no trigger and transaction?
If I create a new process that contain "no" UI from
Thanks. OK. Forget about the syntax, just the idea.
- open data entry dialog
- check button value
- if button value is validate, save all new value in an object, then call
worker with object and form window process as parameters
- the worker process create new/load an existing record and modify
>other processes (without using semaphores etc.), so in many ways its like a
>stored procedure (and not a method with the “execute on server” property.)
>
>2018/07/12 13:36、Alan Chan via 4D_Tech
><4d_tech@lists.4d.com<mailto:4d_tech@lists.4d.com>>のメール:
>Of cours
o resolve expressions such as Table(n)->
>(all triggers are inspected for such expressions, so actually its better to
>use absolute tokens)
>
>2018/07/12 12:20、Alan Chan via 4D_Tech
><4d_tech@lists.4d.com<mailto:4d_tech@lists.4d
Hopefully, 4D remote could be supported in 4D 18:-(
However, 4D server (thus triggers) is supported. I'm just wondering does anyone
try that out on triggers?
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Are you doing all this in single user mode?
>
>I think a lot of people don't
May be trying to use Char(1) instead of "xxx".
Char(1) works well for us.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>On v13.5:
>
>Forever, we've had a Labels option with this code:
>
>PRINT LABEL(Table(iTableNumber)->;"xxx")
>
>This has always worked as expected: it opens the
In additions to what you did in your link, did you also do the following :
1) Set standard action to no action instead of accept
2) Set form event to on clicked
3) Add a method in button to do your search or whatever and make sure no
command of ACCEPT being used.
It has been working for us for
Our system has all default Accept/Cancel shortcut unchecked in Database Design
Interface setting. We disabled it 20+ years ago:-) It was a tough call back
then.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>It gets weird if you have an application-wide default close and cancel
Would setting the Standard Action to No Action be OK in button properties?
Then add a method in button to do whatever you like.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Aloha,
>
>I'm playing with the "proper" way to open up a form. Here's what I have:
> Open form
We can't access it either:-(
Very unstable recently.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>livedoc, taow, 4dbb web servers do not respond.
>So do you?
>
>--
>Arnaud de Montard
>
>
>
>**
>4D Internet
Hmm... I didn't see -20002 there.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>which should logically exclude predefined error codes,
>but even then, you are not prohibited from using a certain range.
>
>http://doc.4d.com/4Dv16R4/4D/16-R4/Error-Codes.200-3316679.en.html
ml
>http://doc.4d.com/4Dv16R4/4D/16-R4/On-Backup-Shutdown-database-method.301-3316859.en.html
>
>which should logically exclude predefined error codes,
>but even then, you are not prohibited from using a certain range.
>
>http://doc.4d.com/4Dv16R4/4D/16-R4/Error-Codes.200-3316679.en
m: 4D_Tech [mailto:4d_tech-boun...@lists.4d.com] On Behalf Of Alan Chan via
>4D_Tech
>Sent: Friday, February 02, 2018 1:36 AM
>To: 4d_tech@lists.4d.com
>Cc: Alan Chan <a...@belhk.com>
>Subject: Error Code reserved by 4D
>
>I thought error codes under -15000 were not rese
I thought error codes under -15000 were not reserved by 4D. Now it produces
error -20002 that might crash with user generated error for business rules
control.
Could anyone tell if 4D changes error code range reserved by 4D?
TIA.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>I
Omnis is still around and very alive.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>How many of you
>used to work using Foxbase, dBase, Omnis, to name a few. Just be greatful
>that the company has been able to keep up with the times and is still a
>viable product.
We don't know about 13.5. However, with 13.6, we haven't encountered any issue
on Windows 10 so far.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Hey everyone - in a nutshell, what's the current wisdom on 4D v13.5
>compatibility with the different flavors of Windows 10? I've
Alternative simplified version of Num for this situation
C_REAL($0;$num) //same as ES_num yet support decimal
C_TEXT($1)
C_LONGINT($len;$i;$k;$j)
$num:=0
$len:=Length($1)
For ($i;$len;1;-1)
$k:=Character code($1[[$i]])
If (($k>47) & ($k<58))
$num:=$num+(($k-48)*(10^($len-$i-$j)))
Else
If
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Maybe it does matter how many listboxes are on the form?
I assumed you built LB with one method per LB.
>
>Maybe LISTBOX INSERT COLUMN becomes slower when more columns are inserted?
I assumed that you were "appending" column instead of inserting
I just tested LISTBOX INSERT COLUMN command on array based LB that takes only 0
to 1 ms to complete on my MBP 2.90GHZ with 16G memory. I'm not sure if size of
array is the factor.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>The LISTBOX INSERT COLUMN command takes on average
If your customer want to be king, he/she has to act like one, spend like one.
Did your customer try to put up more resources on hardware? Investing 32G+
memory on 4.0Ghz+ machine with great grahic chip for big monitor to run your
application might be helpful especially populating 27 listbox
Just curious, 4 seconds for idle connections timeout?
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>SET DATABASE PARAMETER(54;4)// Idle connections timeout
**
4D Internet Users Group (4D iNUG)
FAQ:
I agree with your taste:-) In fact, we originally used alternate color that
looks really good and I love it. This is the case in "most" scenario except
those contains so many columns and rows in a limited sized LB. This would make
it so cramped.
Finally, we have 2 desgins - one with alternate
Hi Keith,
Good trick. For the moment, we didn't use zebra stripes for other reasons. We
might simply draw a line under the header for Windows 10 users with Miyako's
approach.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Alan, I noticed this too - it does look odd - and I
this:
>
>https://github.com/4D-JP/4d-tips-listbox-header-border
>
>> 2017/11/10 17:47、Alan Chan via 4D_Tech <4d_tech@lists.4d.com> のメール:
>> no line for header which looks odd.
>
>
**
4D Internet Use
Any idea how to set horizontal gridline only for header but not rows in Listbox
in 4D 15.5?
On Mac, there’s horizontal line for header automatically which looks good.
However, on Windows 10, no line for header which looks odd.
I tried LISTBOX SET GRID and none of followings works:-(
LISTBOX
Table
Project Master
Employee Master
Project member
Project master <- Project member -> Employee master
Project member table contains Role (integer) 0=regular member; 1=role A; 2=role
B; 3=whatever role
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Given a Project table and an
I am not challenging how 4D feature request should be working. I'm just
wondering if 4D support folks file the request with the link to this thread like
http://4d.1045681.n5.nabble.com/Warning-Settings-properties-values-on-object-field-by-object-notation-td5755088.html
and
Interesting, we don't actual use stylesheet. Back to old days (non-unicode), we
need to assign different font for different languages. Due to different OS
version and platform, we allow users to set font but not font size and saved by
machine. These
setting has been embedded in our system for
Just rewrite it not to use variable to blob which might be easier to read.
C_TEXT($0;$1;$2;$3;$source;$oldStr;$newStr;$result;$tempTxt)
//ES_ReplaceStr($source;$oldString;$newString;{$count pointer})->Resulted text
C_POINTER($4)
Hi Chip,
I forgot to mention that the method is for doc which is in utf16 format.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>To replace shorter old string with longer one, you could try the following:
**
4D
Hi Chip,
This is a known issue on v13. When old string and new string is of different
length, it will become very slow if the file was large and large number of
occurance. 4D has rewritten it on v15.
I posted a method on
Hi Koen,
I think your case is very different and might be v16 issue as user was still on
server list and you couldn't disconnet it.
The trigger issue (not actually an issue) I mentioned was the record was locked
and the related user wasn't even on the server list.
Alan Chan
4D iNug Technical
If a record wasn't unloaded in trigger properly, the record would be locked
even after the invoking client user left the system (no longer signed in). The
only way is to restart the server.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>The client timeout will remove a dead user
Yes, this is highly recommended. "All Variables are typed" is one of greatest
debug tool in 4D.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>I would also recommend changing the settings from
> Generate Typing
>to
> All Variables are typed
Case sensitive comparison support in Find in array/Find in sorted array is long
overdue. Even best, supported in string compariosn operator (or new operator
for string)
$true:=($string1=*$string2)
$true:=($string1>*$string2)
$true:=($string1<*$string2)
Alan Chan
4D iNug Technical
We do use v13.6 on Windows 8 and 10 without your problem. Did you try 13.6
instead of 13.3?
v11 of 4D does exhibit problem you mentioned. I'm not sure if the problem
exists in 13.3 or not.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Hi all,
>
>No one use 4D V13 on windows 8?
>
I wrote a Get Prime routine in 56 lines of 4D code years ago for fun to
generate prime number in array of whatever number users enter as parameter.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>https://i.redd.it/fjcv9evg6u8z.png
We always install new On err call on triggers.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>I don't remember...triggers?
**
4D Internet Users Group (4D iNUG)
FAQ: http://lists.4d.com/faqnug.html
Archive:
Thanks. It's good to know.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Well observed. Aussies can be *way* to polite to tell someone when they're
>being rude, so, yeah, they might not complain about a little thing that
>they can live with.
We have been formatting Australia phone number like
(2) 3456 7899
434 567 899
Are these acceptable by Australian? So far, we haven't got any complaint (may
be they're too nice to say anything).
TIA
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Note that local custom varies. For
It's our standard design to do test "In Transaction" and Trigger Level in
trigger. We never used cascade trigger either.
Error handling in trigger is also standard in our design. We have to create
large error code base for error interpretion in multiple language.
Alan Chan
4D iNug Technical
Yes, having UI in transaction is not ideal (at least in our design) and that's
why we never used that approach.
Update pricing is pretty routine for us as well (in our retail module) but we
never need nested transaction.
if no ui is involved,
Master transaction
nested transaction 1 for task
Hi Peter,
I never used component and have no idea what complication would it be in
transaction. Nonetheless, we do a lot of updates from time to time. We only use
normal transaction and trigger even for millions of records. We normally split
into 5,000 to
10,000 records per transaction. I
If I understand nested transaction correctly, it's like creating an invoice
master in a transaction (remain opened), then add invoice line item in nested
transaction (start and end nested transaction in one go), add nth line of
invoice items in new
nested transaction continously. Failure of one
It's a great feature if long transaction that holding up records isn't an issue
to your operation. Of course, make sure no one would take coffee in the middle
of a transaction:-)
We could only afford single transaction started and ended within a short
wrapper method.
Alan Chan
4D iNug
Hi Chip,
Try the following and it should be done in a second or 2 (compiled).
//ES_ReplaceStr_Shrink($source;$oldString;$newString;{$count
pointer})->Resulted text
C_TEXT($0;$1;$2;$3;$source;$oldStr;$newStr;$result;$tempTxt)
C_POINTER($4)
I might be missing something obvious. Why not simply using SQL login to access
external database and the data could be accessed by multiple 4D clients.
SQL LOGIN($externaAddress;$user;$pswd;*)
If (OK=1)
Begin SQL
//do whatever SQL query
End SQL
SQL LOGOUT
End if
Alan Chan
4D iNug Technical
on for "multilang.txt"
>
>> 2017/05/23 19:42、Alan Chan via 4D_Tech <4d_tech@lists.4d.com> のメール:
>>
>> However, data in other non-roman character sets couldn't be viewed correctly
>> and
>> requires manual update (re-enter the field).
>
*
During conversion of our customers' data from 2003 to v11 in unicode mode, we
did some trick to allow 4D convert data to unicode correctly. It only helps if
your data contains only one type of non-roman character.
For instance, most of our users use Traditional Chinese (big5) in 2003. Before
If you have removed a table or field, then add new table or field, it might
cause problem if the old data is still there.
Repair it might help. It won't harm if it doesn't.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>I verified a data file and MSC reported the data were fine
Did you check OK variable after SET CHANNEL?
By the way, I prefer using Goto Selected Record instead of Next Record.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>SET CHANNEL(10;$File_Path)
>
>For ($i;1;Records in selection([Bug_Reporting]))
>SEND RECORD([Bug_Reporting])
>NEXT
Replace String($text;lf;cr) -> all lf becomes cr including crlf becoming crcr
Replace string($text;crlf;cr) -> none would be found
That's why you need to run Replace String($text;crlf;cr) first.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>That should have read replace string of
Like I said, many developers don't like 4D access system, in fact, any 4D
inbuilt-tools such as QR editor, Query Editor, Label Editor, Sequence Number,
Triggers etc. I'm weird and kept using them intensively even after
developing on 4D for 27
years. I'm happily remained to be amature:-)
Technical <4d_tech@lists.4d.com> writes:
>Right - so the ultimate permission is the most permissive of all available.
>
>On Fri, May 12, 2017 at 4:56 PM, Alan Chan via 4D_Tech <4d_tech@lists.4d.com
>> wrote:
>
>> I assume a member might belongs to multiple teams but
If implemented correctly, performance hit could be minimum.
Do what query
if(records in selection([WhateverTable]>0)
if(<>TeamAccessRequired)\\some customers do not need this feature
Query selection with array([WhateverTable]Team;<>CurTeam)
end if
end if
<>CurTeam is loaded from team member
I assume a member might belongs to multiple teams but will a member belongs to
multiple clubs?
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Hi Alan,
>Those are the go-to solutions. In my case we aren't using the 4D password
>system so I can't rely on that. Plus I need actual
Hi Chip,
Thanks for your advice. The discussion is about how optimized Replace String is
in v16 especially on * operation even comparing with position(*) which
supposed to be very fast. It's not about how to design a 4D app with those
commands.
Alan Chan
4D iNug Technical
Hi Chip
We have been talking about * all along. Without * has never been in my test.
My test always consider total length of text "and" total count of occurrence.
My test is for 4,300,000 length text and 100,000 occurrence. It took 14ms on my
machine.
Alan Chan
4D iNug Technical
Oops... my bad. Reading too fast. Please ignore this.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>I found out why your result is quite different from mine. In your code, you
>evaluate the time once per execution of position. However, the replace string
>was evaluated once per
Hi Arnaud,
I found out why your result is quite different from mine. In your code, you
evaluate the time once per execution of position. However, the replace string
was evaluated once per 10,000 replacement (per execution of replace string).
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com>
This was a known problem only happened on Mac. The issue seems fixed in 13.6.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>Hi Walt,
>
>No, not grouped.
>
>I worked around it by using OBJECT SET FORMAT in the on load event. Which
>works but begs the question of why I have to.
>
>
>
I agree. Longint for sequence number would definitely outlast me:-(
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>last I knew (this could easily have changed)
>Sequence number range is +/- MAX LONGINT (so ~2.1 x 10^9)
>
>
>On Wed, 29 Mar 2017 18:38:56 +0800,
4D would support 64bit integer by then. If not, sequence number (or
auto-increment) would be the first one to get in trouble.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>so code to convert date to epoch time like that one just recently discussed
>(Re: [4DTidbits Blog] Epoch &
We have been using Sequence Number for years without any problem. It depends
how/when you use it
My suggestion is to make use of newer features such as Auto-increment on either
UUID or Longint. If you don't want to use auto-increment for whatever reasons,
you could call it at Trigger for new
Hi David,
It WORKS like a charm!
THANKS for sharing the tips.
Alan Chan
4D iNug Technical <4d_tech@lists.4d.com> writes:
>We ran into the v13 / MacBook Pro with touchbar crashing issue in Sierra
>10.12.1 and 10.12.2. The fix was maddeningly simple - instead of attempting
>to connect to a
74 matches
Mail list logo