Re: Please give us a split-pane in the Method Editor

2017-05-29 Thread David Adams via 4D_Tech
Kirk,

Nice examples!

Vote early, vote often! Talk here is just talk as 4D *officially* ignores
this list. Over on the forums, 4D only unofficially ignores us ;-)
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Web Areas On Form Page >1

2017-05-29 Thread Kirk Brooks via 4D_Tech
Cannon,
I know my solution works on both platforms but since I develop on a Mac I
don't know if it even showed up on the Windows side.

I seem to recall coming to the same conclusion Ingo mentioned - that the
web area isn't instantiated until it's actually displayed.

This is all in v15 , BTW. And using the webkit. I don't know if any of this
changed since or if it's tied to the webkit. Basically I got what I needed
working and moved on...

On Mon, May 29, 2017 at 1:32 PM, Cannon Smith via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> Hi Kirk,
> ​
>
> It’s interesting that this works correctly for Steve. I’m wondering if
> it’s because I’ve only tried on the Mac so far and he’s using Windows. Do
> you know if you’ve tried it on both platforms?
>
> --
Kirk Brooks
San Francisco, CA
===

*The only thing necessary for the triumph of evil is for good men to do
nothing.*

*- Edmund Burke*
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Please give us a split-pane in the Method Editor

2017-05-29 Thread Kirk Brooks via 4D_Tech
You know if every method really on did one thing, and only had a few params
that never changed and ... well then the split screen really wouldn't be
necessary.

But here are the places I really miss it.
1) when I'm passing parameters to a method in a c-obj.
After I'm more than about 15 lines down I would really like to be able to
see the top of the method, where I'd document what's in the c-obj, right on
top of the code I'm working with. Especially if this is a complex branching
situation where I'm more like 100 lines from the top. Even with a large
screen (which I have) it's not as easy. And if the c-obj has more than a
few keys it's even more involved.

2) when I'm working with a single method that calls itself.
I like to put all the actual code for most of my forms into a single
process method I call a 'form controller'. This method will have some
actions that can be called from objects within the method. Like "save" -
the save button, obviously, but maybe also something that causes a refresh,
reset, new record - whatever. The situation is that I need to be sure I
have everything lined up correctly between where I'm working and what the
'save' code is expecting.

3) when I'm documenting the method.
I prefer to put all the documentation at the top of the method in most
cases. In fact I start each method with at least a simple sentence
declaring what it's purpose is. This usually changes over time becoming
more complex - and being able to see the code in question right by the
documentation is a big help.



On Mon, May 29, 2017 at 3:36 PM, David Adams via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> Please give us a split-pane in the Method Editor
> http://forums.4d.fr/Post//19482991/1/
>
> Please vote for this feature request. And if anyone wants to make a better
> argument, please do! It's early here and I'm not at my best yet...
>

-- 
Kirk Brooks
San Francisco, CA
===

*The only thing necessary for the triumph of evil is for good men to do
nothing.*

*- Edmund Burke*
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Favorite tricks and keystrokes: Please take one and leave on

2017-05-29 Thread Chip Scheide via 4D_Tech
type the command + (
and the command and parameters display at the bottom of the window


> 
> - Need a quick reminder of command parameters? Just hover the mouse 
> over the 4D command name and wait for the tool tip to appear. 

Hell is other people 
 Jean-Paul Sartre
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Favorite tricks and keystrokes: Please take one and leave on

2017-05-29 Thread Kirk Brooks via 4D_Tech
On Mon, May 29, 2017 at 3:16 PM, David Adams via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> On Mon, May 29, 2017 at 11:11 PM, Tim Nevels via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> > I miss the split pane feature too. So useful in long methods. Wish they
> > would bring it back.
> >
> I also miss it. So much.
>
​Me too - I was thinking about this just the other day.​

​Why did they take it out?​

-- 
Kirk Brooks
San Francisco, CA
===

*The only thing necessary for the triumph of evil is for good men to do
nothing.*

*- Edmund Burke*
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread Keisuke Miyako via 4D_Tech
that you can avoid by passing AUTO_CLOSE.

the advantage of not using AUTO_CLOSE is that the structure definition of the 
external database is cached,
so subsequent access becomes faster.
it's useful, for example, if you want to switch contexts several times.

2017/05/30 9:12、David Adams via 4D_Tech 
<4d_tech@lists.4d.com> のメール:

* There are some options on how to do the path. I found converting to Posix
on macOS let me use the file once but afterwards it remained open and
locked. (And only unlockable by quitting 4D.)



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread Keisuke Miyako via 4D_Tech
that's the idea.
Component.4DC would have an empty placeholder
Component.4DD,
even if Component and Product were in fact identical.

whether to put the data inside Resources
is a decision based on whether you want the data to be sent to the client.

although you can place multiple 4DB/4DC/4DD inside a 4dbase,
there is a warning displayed once
if you open a structure whose name doesn't match that of the package.

2017/05/30 8:32、David Adams via 4D_Tech 
<4d_tech@lists.4d.com> のメール:

Component.4dbase
  Component.4DC
  Products.4DB
  Products.4DD

Or

  Component.4DC
  Resources
   Products.4DB
   Products.4DD

Something like that. The code is in Component.4DC, the structure definition
is in Products.4DB and the data is in Products.4DD.

Is that the idea? If so, I can make that work.



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread David Adams via 4D_Tech
Keisuke,

I'm not worthy! Once again, you got to the heart of the problem with a
solid technical answer. Better than that you've corrected my mental map of
the underlying feature. That's even more helpful.

Since I didn't stumble across this stated succinctly in the docs, here's a
summary of my understanding. If this is right, it would be great to see
something comparable in the docs. If it's wrong, corrections will be
appreciated.

* A component (compiled or not) can switch to another data file temporarily
using code like this in a SQL block:

   USE DATABASE DATAFILE :$application_data_path;

* There are some options on how to do the path. I found converting to Posix
on macOS let me use the file once but afterwards it remained open and
locked. (And only unlockable by quitting 4D.) So I'm using a full path
based on OS syntax.

* At the base, there are three files involved in the process within a
component. I'm putting the data-related files into the /Resources folder of
the component. This makes it easy to find, easy to manage, allows 4D to
automatically copy the files for me when building the component, and seems
(?) to avoid permissions errors.

* Here are the three files:

Component.4DC This is where all of your code lives.
External.4DB  This is the structure for the external data. *No code in
this structure is accessible.*
External.4DD  This is the data mapped by External.4DB

* Oh, don't forget to close the external file when you're done:

USE DATABASE SQL_INTERNAL;

I think that's it. It seems to work smoothly now. Any corrections or
amendments?
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Get table fragmentation

2017-05-29 Thread Benedict, Tom via 4D_Tech
Cannon writes and David responds:

>I'm working on some server health reporting. I can get the percentage of table 
>fragmentation using "Get table fragmentation" for each table.
>I'm not quite sure what to do with it, though. I'd like to get a report when 
>the overall fragmentation reaches some threshold where it might
>be worth compacting the datafile. 20% is suggested by on tech note.

>But I suspect the number of records matters. For example, if a table only has 
>100 records, I probably don't care if it is even 80% fragmented.
>But if a table has 10 million records and is used a lot, I may not even want 
>20% fragmentation. And, if only one table is fragmented and the
>rest are fine, maybe it is worth compacting? But probably not in all cases?

>Has anyone worked out some logic that can be automated and which takes these 
>kinds of things into account to let you know when it
makes sense to compact the whole datafile?


>> If anyone knows the answer to Cannon's question, I'd really like to know 
>> too! I went down this road a few years ago in V13 and

>>couldn't figure out any way to get worthwhile information out of the 
>>fragmentation percentage.

>>Apart from getting the numbers for snapshots and automated health checks, I 
>>also had a little dialog you could look at in real-time.

>>My observation was that tiny tables with deletes appeared to be massively 
>>fragmented. But there were only a few records in

>>play, so it didn't really mean anything. I couldn't find a way to get 
>>anything like the results MSC seems to generate.

I am way out of date with 4D, as we are stuck on v13.x until the end of time, 
but many years ago I had the same question about Get table fragmentation. I 
found that it returned a range of values before and after 
compacting/rebuilding/recovering the data file. Usually the numbers were 
smaller after MSC processing, but not always.

I asked Josh Fletcher about it back in 2011 and he said:


Hi Tom,



So I have one possible explanation for this behavior.



First it's important to understand how 4D allocates space in the data file.  
When needs to locate free space in the data file, for example, it doesn't 
"scan" the whole data file.  Instead, for every 2 MB of data file content 4D 
creates a 2KB "bit table".  Each bit in the bit table corresponds to a 128 KB 
block of the data file.  If a bit in the bit table is 1, it means that block of 
the data file is occupied.  If the bit is 0, that block is free.



These bit tables are created "as needed", i.e. they are not located in one 
particular place.  So, for example, say a table contains only 1 Mb records. 
When you compact it you'll get something like this:



[bittable1][record1][record2][bittable2][record3][record4][bittable3][record5][record6]...



Note: In fact, it's not exactly this simple because each bittable also needs to 
be allocated like any other data file object so its space must be tracked in 
another bittable.  But because it is quite small (2 KB), we can ignore that for 
this example.



Get table fragmentation returns the percentage of records that are not stored 
contiguously.  If there are bit tables between the records, the level of 
fragmentation reported will increase.  So in the example above Get table 
fragmentation will return near 50%.



This is not a problem per se, it just reflects the reality of objects allocated 
in the data file.  The fact is, because those objects are so large, they'll be 
inefficient to access no matter what (multiple blocks of data file will need to 
be loaded) so the fact that they table is considered fragmented is a non-issue 
in this case.



I hope that makes sense.  Let me know.



-Josh

I don't know what, if anything, has changed in 4D since v13.x. Maybe nothing. 
In any event, we just compact once a month, and have no idea whether it makes a 
difference. We're pretty certain it is better than compacting once a year, but 
one a month makes us feel good for some reason.

Hope this helps.

Tom Benedict
Optum
This e-mail, including attachments, may include confidential and/or
proprietary information, and may be used only by the person or entity
to which it is addressed. If the reader of this e-mail is not the intended
recipient or his or her authorized agent, the reader is hereby notified
that any dissemination, distribution or copying of this e-mail is
prohibited. If you have received this e-mail in error, please notify the
sender by replying to this message and delete this e-mail immediately.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread David Adams via 4D_Tech
On Tue, May 30, 2017 at 8:57 AM, Keisuke Miyako via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> opening a 4DC/4DD pair as an external database does not make sense.
>

I think you mave have pushed me over the line towards understand here. I
was using a 4DD associated with the source of the component itself. Because
it was there. In fact, I can compile the component and include a .4DD from
anywhere, is that right? What's confusing is that you don't specify a data
file, you seem to specify a *structure* file. If I'm understanding
correctly, I'd have something like this:

Component.4dbase
   Component.4DC
   Products.4DB
   Products.4DD

Or

   Component.4DC
   Resources
Products.4DB
Products.4DD

Something like that. The code is in Component.4DC, the structure definition
is in Products.4DB and the data is in Products.4DD.

Is that the idea? If so, I can make that work.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Please give us a split-pane in the Method Editor

2017-05-29 Thread David Adams via 4D_Tech
On Tue, May 30, 2017 at 8:45 AM, Keisuke Miyako via 4D_Tech <
4d_tech@lists.4d.com> wrote:

Good point about tabs in V16 R3, that looks nice. But it's not the same
thing.

I know that people vary in their cognitive strengths, weaknesses, and
styles. Personally, I'm terrible at copying things by memory. For example,
if I have something in one BBEdit window and try to read it and then type
it into a second window, I make a mess of it unless I can *see* them both
at the same time. My partner? She can remember long strings of numbers and
random letters easily. I use 1Password ;-)

This is probably one reason I find using an iPad frustrating for anything
but consumption and my wife doesn't see so much difference between the
computer and the iPad.

So, yeah, for some of us being able to see two things *at the same time* is
fundamental different from being able to see two things in rapid
succession. I appreciate that this is less true (even far less true) for
some but if you're like me, it's a big deal. Think of it as being like
color blindness or one of the things labeled dyslexia. It's not like you
can 'fix' that - but the a split pane window is a big accommodation. And if
you don't find it terrible useful, you don't ever have to use it.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Help with Regex

2017-05-29 Thread Robert Livingston via 4D_Tech
JR's solution works   Some would argue that more specifically alluding to the 
six digits is more robust in case some slightly mis-titled file exists. 

Therefore
^SP_\d\d\d\d\d\d

^SP_INS_\d\d\d\d\d\d


iPhone RRL

> On May 29, 2017, at 11:45 AM, Jeremy Roussak via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Tim,
> 
> “SP_[0-9]*” will match the first lot, and “SP_INS_[0-9]*” will match the rest.
> 
> 
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread Keisuke Miyako via 4D_Tech
opening a 4DC/4DD pair as an external database does not make sense.
I mean, it kind of makes sense,
but I can't see why it has to be done using a 4DC.

there are not methods, including triggers, to call in that context,
so what is the virtue of the structure file being compiled?

you can create a 4DB with no form, menus or users using SQL,
you can create a 4DB with no code from an XML definition.

in any case, the 4DD is what you really want to open;
just go ahead with 4DB, the result is exactly the same.

2017/05/29 15:09、David Adams via 4D_Tech 
<4d_tech@lists.4d.com> のメール:

I've manually changed permissions on all of the files to be...generous.
(What's up with that? Is this normally required? It seems so in my case on
OS X.)

I've tried opening up the .4DC from inside of the component and selecting
the .4DD right next to it before moving the component over to the host. No
help.

I've tried specifying .4DC in the USE DATABASE path, but that doesn't work
at all.

Suggestions appreciated.



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Please give us a split-pane in the Method Editor

2017-05-29 Thread Keisuke Miyako via 4D_Tech
I felt splitting panes was more alike a carry over from classic Mac OS,
that the "removal" was more a case of "not (easily) portable" to newer SDKs.
(also being less critical as screen sizes got bigger)

true, many code editors have a similar feature,
but more relevant in a "diff" context.

meanwhile, check out this feature in 16R3:
http://blog.4d.com/merge-your-windows-into-tabs-on-mac-os-sierra/

2017/05/30 6:36、David Adams via 4D_Tech 
<4d_tech@lists.4d.com> のメール:

Please give us a split-pane in the Method Editor
http://forums.4d.fr/Post//19482991/1/

Please vote for this feature request. And if anyone wants to make a better
argument, please do! It's early here and I'm not at my best yet...



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Web Areas On Form Page >1

2017-05-29 Thread Ingo Wolf via 4D_Tech
This is needed and works on both Mac and Windows.

__ 
ViELMAC Ingo Wolf
Rheinhessenring 53A
D 55597 Wöllstein
Tel. +49 (0)6703 3070320
Fax +49 (0)6703 3070321
e-Mail i...@vielmac.de

> Hi Ingo,
> 
> This is basically the workaround I’m using right now. Do you know if this is 
> necessary on both Mac and Windows? I haven’t tested Windows yet, but I’m 
> curious.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread David Adams via 4D_Tech
Hey, thanks for the answers and background! I'd never heard that thing
about having to create the data file with SQL in order to use it as an
external data file. I guess that's not true now...I guess?

In it's simplest form, my question is: How do I open an external file from
a compiled component?

Is anyone doing this? How did you make it work?
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Get table fragmentation

2017-05-29 Thread David Adams via 4D_Tech
> I’m glad I’m not the only one who isn’t sure how to calculate a
meaningful fragmentation threshold value. :-)

Yeah, you're not alone. I'll add that the automated health check business
is a *great* feature to have. So reassuring, so satisfying. If you have
your remote installs phone home, you can potentially contact clients about
problems before they're aware of them. You can even automate some of this:

* Run the health checks (duplicates, orphans, MSC check, etc.)

* Phone home the results so that you can track them over time. (Store them
with the customer's registration until you need them, whatever.)

* For specific errors, send them an email describing the problem, outlining
the solution, and linking to resources.

Sure, you can put up an alert, jump to a support page, etc. And maybe you
should...but the email (or communications platform your client prefers) is
also a pretty nice feature.

Obviously I'm not talking here about either critical/emergency problems or
ones you might be able to heal immediately, like rebuilding an index.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Please give us a split-pane in the Method Editor

2017-05-29 Thread David Adams via 4D_Tech
Please give us a split-pane in the Method Editor
http://forums.4d.fr/Post//19482991/1/

Please vote for this feature request. And if anyone wants to make a better
argument, please do! It's early here and I'm not at my best yet...
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Web Areas On Form Page >1

2017-05-29 Thread Keith Goebel via 4D_Tech
Using 4D v15.2 Win we have forms with 7 or 8 web areas on different pages - all 
work fine.
I can’t get at the code at the moment but I think I just made sure each web 
area had a different variable name.
If that’s not it, I’ll send another message.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Get table fragmentation

2017-05-29 Thread Cannon Smith via 4D_Tech
Hi David,

Thanks for chiming in on this. Your examples are exactly the kinds of things 
I’m checking for.

I’m glad I’m not the only one who isn’t sure how to calculate a meaningful 
fragmentation threshold value. :-)

--
Cannon.Smith
Synergy Farm Solutions Inc.
Hill Spring, AB Canada
403-626-3236




> On May 29, 2017, at 3:22 PM, David Adams via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> For automated health checks, one thing you can do is script a MSC run and
> check what it says. It's not the same thing..but can be quite useful. While
> not that much related, I also like to run some other integrity checks, like
> for duplicate values (on one or more fields), orphan records (on a key),
> parent records without child records (where that doesn't make sense) and
> other data integrity checks.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Tips and Tricks Google Doc

2017-05-29 Thread David Adams via 4D_Tech
On Tue, May 30, 2017 at 5:49 AM, Sannyasin Siddhanathaswami via 4D_Tech

As part of that, I made a public Google Doc (editable by anyone with the
> link), summarizing all of the tips posted so I could reference and
> implement them. Feel free to add or edit any of them.
>
> https://docs.google.com/document/d/1HpEqRUotpQtO3-3C_
> Tvpq1_MCte3qh-xSyGbdgJ7DQU/edit?usp=sharing


Great idea! Thanks.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Get table fragmentation

2017-05-29 Thread David Adams via 4D_Tech
Cannon,

If anyone knows the answer to Cannon's question, I'd really like to know
too! I went down this road a few years ago in V13 and couldn't figure out
any way to get worthwhile information out of the fragmentation percentage.
Apart from getting the numbers for snapshots and automated health checks, I
also had a little dialog you could look at in real-time. My observation was
that tiny tables with deletes appeared to be massively fragmented. But
there were only a few records in play, so it didn't really mean anything. I
couldn't find a way to get anything like the results MSC seems to generate.

For automated health checks, one thing you can do is script a MSC run and
check what it says. It's not the same thing..but can be quite useful. While
not that much related, I also like to run some other integrity checks, like
for duplicate values (on one or more fields), orphan records (on a key),
parent records without child records (where that doesn't make sense) and
other data integrity checks.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Favorite tricks and keystrokes: Please take one and leave on

2017-05-29 Thread Keith Goebel via 4D_Tech
I don’t have any that haven’t already been mentioned, but I *really* miss:

from Arnaud:
- cmd+click on fold/unfold arrows (collapse/expand current level), came with 
v11 and gone with v12. 

Having this back would save me some time every day now spent manually 
closing/opening arrows so the required hierarchy shows - close all or expand 
mostly doesn’t do what I need.
No workaround.

from Koen:
- the split pane feature
Workaround = copy the code to a dummy method and have it open beside the real 
method.

I wish wish wish it was possible for 4D to restore that functionality.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Help with Regex

2017-05-29 Thread David Eddy via 4D_Tech
Tim -

> On May 29, 2017, at 3:00 PM, 4d_tech-requ...@lists.4d.com wrote:
> 
> Subject: Help with Regex


If you have flexibility to process file names on Mac & outside of 4D…

http://renamer.com 


David Eddy
Babson Park, MA

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Tips and Tricks Google Doc

2017-05-29 Thread Sannyasin Siddhanathaswami via 4D_Tech
Aloha,

Thanks for all the great favorite tips posted in the past few days! I’ve 
learned quite a bit of helpful time savers.

As part of that, I made a public Google Doc (editable by anyone with the link), 
summarizing all of the tips posted so I could reference and implement them. 
Feel free to add or edit any of them.

https://docs.google.com/document/d/1HpEqRUotpQtO3-3C_Tvpq1_MCte3qh-xSyGbdgJ7DQU/edit?usp=sharing

Thanks again!


Sannyasin Siddhanathaswami
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Web Areas On Form Page >1

2017-05-29 Thread Cannon Smith via 4D_Tech
Hi Ingo,

This is basically the workaround I’m using right now. Do you know if this is 
necessary on both Mac and Windows? I haven’t tested Windows yet, but I’m 
curious.

Thanks.

--
Cannon.Smith
Synergy Farm Solutions Inc.
Hill Spring, AB Canada
403-626-3236




> On May 29, 2017, at 1:33 PM, Ingo Wolf via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I did run into this issue, too. At the end of the "On load" form event i set 
> a flag and run Set timer. In the "on timer" event i check if the flag is 
> still set and if i'm on the page with the web area. If yes, i do WA OPEN URL 
> and clear the flag.
> My understanding of this is that the web area isn't 'instantiated' until the 
> form page containing it is shown for the first time.
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Web Areas On Form Page >1

2017-05-29 Thread Ingo Wolf via 4D_Tech
I did run into this issue, too. At the end of the "On load" form event i set a 
flag and run Set timer. In the "on timer" event i check if the flag is still 
set and if i'm on the page with the web area. If yes, i do WA OPEN URL and 
clear the flag.
My understanding of this is that the web area isn't 'instantiated' until the 
form page containing it is shown for the first time.

HTH
Ingo Wolf

__ 
ViELMAC Ingo Wolf
Rheinhessenring 53A
D 55597 Wöllstein
Tel. +49 (0)6703 3070320
Fax +49 (0)6703 3070321
e-Mail i...@vielmac.de

> Is there something different about web areas when they are on a form page > 
> 1? I’ve used lots of web areas before and never run into my current problem 
> and the only thing I can think of that is different is that it is on form 
> page 3. Here is roughly what happens:
> 
> FORM GOTO PAGE(3)
> //Set up the web area, create an html page, save it to disk, etc.
> WA OPEN URL(*;"waHealthReport";$tHTMLFilePath) 
> 
> The first time this runs, nothing happens. Subsequent runs work correctly.
> 
> Anything I’m missing?

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Web Areas On Form Page >1

2017-05-29 Thread Cannon Smith via 4D_Tech
Hi Kirk,

It’s interesting that this works correctly for Steve. I’m wondering if it’s 
because I’ve only tried on the Mac so far and he’s using Windows. Do you know 
if you’ve tried it on both platforms?

Thanks.

--
Cannon.Smith
Synergy Farm Solutions Inc.
Hill Spring, AB Canada
403-626-3236




> On May 29, 2017, at 11:23 AM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I had the same problem. I just looked to see how I resolved it. Turns out I
> just brute-forced the matter and put that second 'page' onto a separate
> form and open it into the window. Looks & behaves just like 'page 2' but
> it's not.
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Help with Regex

2017-05-29 Thread Peter Bozek via 4D_Tech
On Mon, May 29, 2017 at 8:29 PM, Tim Nevels via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> $regexPattern_t:="what do I put here"
>

with a timi little bit of playing,

$regexPattern_t:="SP_(\\D{3}|)(?>_|)(\\d{2})(\\d{2})(\\d{2})"

catches prefix (INS) without "_".

-- 

Peter Bozek
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Help with Regex

2017-05-29 Thread Peter Bozek via 4D_Tech
On Mon, May 29, 2017 at 8:29 PM, Tim Nevels via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> $regexPattern_t:="what do I put here"
>

Tim,

Try

SP_(\D{3}_|)(\d{2})(\d{2})(\d{2})
with properly escaped backslashes, it means
regexPattern_t:="SP_(\\D{3}_|)(\\d{2})(\\d{2})(\\d{2})"

This should catch for groups, first is empty or INS_ (with trailing _, was
lazy to remove it) and three groups of two digits each.
Test following code:
ARRAY TEXT($at;6)

$at{1}:="SP_050317"
$at{2}:="SP_050417"
$at{3}:="SP_050517"
$at{4}:="SP_INS_050317"
$at{5}:="SP_INS_050417"
$at{6}:="SP_INS_050517"

ARRAY LONGINT($start;0)
ARRAY LONGINT($len;0)

For ($i;1;6)
  $b:=Match
regex("SP_(\\D{3}_|)(\\d{2})(\\d{2})(\\d{2})";$at{$i};1;$start;$len)
  If ($b)
$prefix:=Substring($at{$i};$start{1};$len{1}
$day:=Substring($at{$i};$start{2};$len{2})
$month:=Substring($at{$i};$start{3};$len{3})
$year:=Substring($at{$i};$start{4};$len{4})
  End if
End for

-- 

Peter Bozek
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Help with Regex

2017-05-29 Thread Jeremy Roussak via 4D_Tech
Tim,

“SP_[0-9]*” will match the first lot, and “SP_INS_[0-9]*” will match the rest.

But it might be quicker to do the second batch first, matching the names simply 
to “SP_INS_@“ and removing them from the list when they’re done, then 
re-scanning for “SP_@“ to do the rest. Just a thought. Regular expressions are 
fantastic but can be overkill.

Jeremy


Jeremy Roussak
j...@mac.com



> On 29 May 2017, at 19:29, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> wrote:
> 
> I needs some help with 2 regex expressions. 
> 
> I have to process some files in groups from a list of files. Here is an 
> example of the file names:
> 
> SP_050317
> SP_050417
> SP_050517
> SP_INS_050317
> SP_INS_050417
> SP_INS_050517
> 
> I need to process the files that start with “SP_” and then the date as one 
> group.
> 
> I need to process the files that start with “SP_INS_” and then the date in 
> another group.
> 
> I will have a text array that contains all the file names. I could write some 
> code to brute force accomplish this, but I’d like to use regex so that I have 
> some flexibiltiy if the file naming scheme changes in the future. Then I’ll 
> only have to change the regex pattern. 
> 
> What regex pattern would I use with "Match regex" for the first group of 
> files? And then what pattern to use for the second group of files?
> 
> Example Code:
> 
> $regexPattern_t:="what do I put here"
> 
> DOCUMENT LIST($folderPath_t;$documentNames_at)
> For ($i;1;Size of array($documentNames_at))
>   $documentName_t:=$documentNames_at{$i}
>   $processFile_b:=Match 
> regex($regexPattern_t;$documentName_t;1;$foundPosition_l;$foundLength_l)
>   If ($processFile_b)  // need to process this file
>// do some things to the file
>   End if 
> End for 
> 
> 
> Tim
> 
> 
> Tim Nevels
> Innovative Solutions
> 785-749-3444
> timnev...@mac.com
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Help with Regex

2017-05-29 Thread Tim Nevels via 4D_Tech
I needs some help with 2 regex expressions. 

I have to process some files in groups from a list of files. Here is an example 
of the file names:

SP_050317
SP_050417
SP_050517
SP_INS_050317
SP_INS_050417
SP_INS_050517

I need to process the files that start with “SP_” and then the date as one 
group.

I need to process the files that start with “SP_INS_” and then the date in 
another group.

I will have a text array that contains all the file names. I could write some 
code to brute force accomplish this, but I’d like to use regex so that I have 
some flexibiltiy if the file naming scheme changes in the future. Then I’ll 
only have to change the regex pattern. 

What regex pattern would I use with "Match regex" for the first group of files? 
And then what pattern to use for the second group of files?

Example Code:

$regexPattern_t:="what do I put here"

DOCUMENT LIST($folderPath_t;$documentNames_at)
For ($i;1;Size of array($documentNames_at))
   $documentName_t:=$documentNames_at{$i}
   $processFile_b:=Match 
regex($regexPattern_t;$documentName_t;1;$foundPosition_l;$foundLength_l)
   If ($processFile_b)  // need to process this file
// do some things to the file
   End if 
End for 


Tim


Tim Nevels
Innovative Solutions
785-749-3444
timnev...@mac.com


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Web Areas On Form Page >1

2017-05-29 Thread Kirk Brooks via 4D_Tech
Cannon,
I had the same problem. I just looked to see how I resolved it. Turns out I
just brute-forced the matter and put that second 'page' onto a separate
form and open it into the window. Looks & behaves just like 'page 2' but
it's not.

I'm actually using multiple pages more conservatively - rarely more than 3
or 4 pages anymore. Either I use dialogs like this (encapsulating the form
actions on the dialog) or use object names to group things together and use
visibility to manage them.

On Mon, May 29, 2017 at 9:12 AM, Cannon Smith via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> Is there something different about web areas when they are on a form page
> > 1? I’ve used lots of web areas before and never run into my current
> problem and the only thing I can think of that is different is that it is
> on form page 3. Here is roughly what happens:
>
> FORM GOTO PAGE(3)
> //Set up the web area, create an html page, save it to disk, etc.
> WA OPEN URL(*;"waHealthReport";$tHTMLFilePath)
>
> The first time this runs, nothing happens. Subsequent runs work correctly.
>
> Anything I’m missing?
>
> --
> Cannon.Smith
> Synergy Farm Solutions Inc.
> Hill Spring, AB Canada
> 403-626-3236
> 
> 
>
>
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **




-- 
Kirk Brooks
San Francisco, CA
===

*The only thing necessary for the triumph of evil is for good men to do
nothing.*

*- Edmund Burke*
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

RE: Web Areas On Form Page >1

2017-05-29 Thread Stephen J. Orth via 4D_Tech
Cannon,

I vaguely remember running into this, but don't remember the exact details, or 
what I may have done to deal with it.

I can tell you that we use web areas on form pages 7+ and they work correctly.  
Let me see if I can jog my memory on anything special we may do.

Steve

*
  Stephen J. Orth
  The Aquila Group, Inc. Office:  (608) 834-9213
  P.O. Box 690   Mobile:  (608) 347-6447
  Sun Prairie, WI 53590

  E-Mail:  s.o...@the-aquila-group.com
*
-Original Message-
From: 4D_Tech [mailto:4d_tech-boun...@lists.4d.com] On Behalf Of Cannon Smith 
via 4D_Tech
Sent: Monday, May 29, 2017 10:12 AM
To: 4D iNug Technical <4D_Tech@lists.4D.com>
Cc: Cannon Smith 
Subject: Web Areas On Form Page >1

Is there something different about web areas when they are on a form page > 1? 
I’ve used lots of web areas before and never run into my current problem and 
the only thing I can think of that is different is that it is on form page 3. 
Here is roughly what happens:

FORM GOTO PAGE(3)
//Set up the web area, create an html page, save it to disk, etc.
WA OPEN URL(*;"waHealthReport";$tHTMLFilePath) 

The first time this runs, nothing happens. Subsequent runs work correctly.

Anything I’m missing?

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Write Pro beginner question

2017-05-29 Thread Bernd Fröhlich via 4D_Tech
(First mail was truncated, so here I go again)


I am doing lots of work with 4D Write and really like it.

Now I am trying to take my first babysteps with 4D WritePro (V16.1).
Unfortunately I am falling down at each little step so far and need a grown-up 
to help me before I start crying really loud.

What I did a lot in 4D Write is to create documents/reports/etc. in methods, 
e.g.:

$lArea:=WR_InitArea 
WR SET FONT ($lArea;"Lucida Grande")
WR SET TEXT PROPERTY ($lArea;wr font size;14)
WR INSERT TEXT ($lArea;"Title\r\r")
WR SET TEXT PROPERTY ($lArea;wr font size;12)
WR INSERT TEXT ($lArea;"Some plain text")
WR SET TEXT PROPERTY ($lArea;wr bold;1)
WR INSERT TEXT ($lArea;"Some bold text")
WR SET TEXT PROPERTY ($lArea;wr bold;0)
WR INSERT TEXT ($lArea;"Some more plain text")


First try in WritePro:

$oArea:=WP New
ST SET TEXT($oArea;"Line 1\r";ST End 
text)
ST SET PLAIN TEXT($oArea;"Line 2";ST End text)

I would expect that gets me a document with "Line 1" in bold and "Line 2" in 
plain.
What it actually does is giving me 2 bold lines.
What am I doing wrong?

text-decoration: underline is not working at all.

Next question:
How do I set up a default font size and style?
Or do I really have to tell WP all those information with every SET TEXT 
command?
That seems overly complicated.

I read through the sparse documentation for hours but that confuses me more 
than it helps.

Thanks for any hints.

Greetings from Germany,
Bernd Fröhlich
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Web Areas On Form Page >1

2017-05-29 Thread Cannon Smith via 4D_Tech
Is there something different about web areas when they are on a form page > 1? 
I’ve used lots of web areas before and never run into my current problem and 
the only thing I can think of that is different is that it is on form page 3. 
Here is roughly what happens:

FORM GOTO PAGE(3)
//Set up the web area, create an html page, save it to disk, etc.
WA OPEN URL(*;"waHealthReport";$tHTMLFilePath) 

The first time this runs, nothing happens. Subsequent runs work correctly.

Anything I’m missing?

--
Cannon.Smith
Synergy Farm Solutions Inc.
Hill Spring, AB Canada
403-626-3236




**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Get table fragmentation

2017-05-29 Thread Cannon Smith via 4D_Tech
I’m working on some server health reporting. I can get the percentage of table 
fragmentation using "Get table fragmentation” for each table. I’m not quite 
sure what to do with it, though. I’d like to get a report when the overall 
fragmentation reaches some threshold where it might be worth compacting the 
datafile. 20% is suggested by on tech note.

But I suspect the number of records matters. For example, if a table only has 
100 records, I probably don’t care if it is even 80% fragmented. But if a table 
has 10 million records and is used a lot, I may not even want 20% 
fragmentation. And, if only one table is fragmented and the rest are fine, 
maybe it is worth compacting? But probably not in all cases?

Has anyone worked out some logic that can be automated and which takes these 
kinds of things into account to let you know when it makes sense to compact the 
whole datafile?

Thanks.

--
Cannon.Smith
Synergy Farm Solutions Inc.
Hill Spring, AB Canada
403-626-3236




**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread Keisuke Miyako via 4D_Tech
are you sure that the index is "embedded"?

it's true that an external database created using SQL does not have an 
accompanying 4DIndx,
but an MSC repair would add one.

and if you open that database with USE DATABASE,
the 4DIndx is opened too,
so I would assume that the index is external to the 4DD.

2017/05/29 22:20、Tim Nevels via 4D_Tech 
<4d_tech@lists.4d.com> のメール:

I think you do have to create the external data file with SQL. It has a special 
format. Notice that if you index fields in the external data file it does not 
create a .4dindx file. The index is embedded inside the data file.

"Normal" 4D data files have the indexes stored in "segment 64" which is the 
.4dindx file. Segments didn't die, they are just hidden from us.



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread Keisuke Miyako via 4D_Tech
yes, the original (during beta) specification was that an external database 
must be created using SQL,
but that changed in the release of v12, as explained in the documentation:

An external database is a standard 4D database. It can be opened and worked 
with as the main database by a 4D or 4D Server application. Conversely, any 
standard 4D database can be used as an external database.

http://doc.4d.com/4Dv15/4D/15/CREATE-DATABASE.300-2288130.en.html

incidentally, I wrote a tool that generates SQL to replicate a 4DB
https://github.com/miyako/4d-utility-structure-to-sql-converter
but that is pretty much useless now...

2017/05/29 20:54、Wayne Stewart via 4D_Tech 
<4d_tech@lists.4d.com> のメール:
The other possibility is I may be recalling a restriction from a previous
version or beta of course.



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Write Pro beginner questions

2017-05-29 Thread Bernd Fröhlich via 4D_Tech
I am doing lots of work with 4D Write and really like it.

Now I am trying to take my first babysteps with 4D WritePro (V16.1).
Unfortunately I am falling down at each little step so far and need a grown-up 
to help me before I start crying really loud.

What I did a lot in 4D Write is to create documents/reports/etc. in methods, 
e.g.:

$lArea:=WR_InitArea 
WR SET FONT ($lArea;"Lucida Grande")
WR SET TEXT PROPERTY ($lArea;wr font size;14)
WR INSERT TEXT ($lArea;"Title\r\r")
WR SET TEXT PROPERTY ($lArea;wr font size;12)
WR INSERT TEXT ($lArea;"Some plain text")
WR SET TEXT PROPERTY ($lArea;wr bold;1)
WR INSERT TEXT ($lArea;"Some bold text")
WR SET TEXT PROPERTY ($lArea;wr bold;0)
WR INSERT TEXT ($lArea;"Some more plain text")
.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread Tim Nevels via 4D_Tech
On May 29, 2017, at 10:56 AM, David Adams wrote:

> Hey Wayne, thanks for answering. I think that external .4DD files were
> created for use from components in the first place and I've made it work
> before...but it's been years. I don't remember hearing that you had to
> create the data file from SQL, I thought that you could use any data file
> that you like. It's all working with an interpreted component, so I don't
> know what to make of it.

I think you do have to create the external data file with SQL. It has a special 
format. Notice that if you index fields in the external data file it does not 
create a .4dindx file. The index is embedded inside the data file. 

"Normal" 4D data files have the indexes stored in "segment 64" which is the 
.4dindx file. Segments didn't die, they are just hidden from us. 

Tim

Sent from my iPhone!
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Favorite tricks and keystrokes: Please take one and leave on

2017-05-29 Thread Tim Nevels via 4D_Tech
On May 29, 2017, at 10:56 AM,Koen Van Hooreweghe wrote:

> And while we're at it, the thing I miss the most is the split pane in the 
> method editor. Unfortunately 4D eliminated this feature a few years ago. IMHO 
> bookmarks are not a valid alternative.

I miss the split pane feature too. So useful in long methods. Wish they would 
bring it back. 

I never use bookmarks. Does anyone?

Tim

Sent from my iPhone!
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread Wayne Stewart via 4D_Tech
I just looked at the docs again. The problem is (from the create database
page):

However, it is imperative that you do not activate the access management
system (by assigning a password to the Designer) in an external database,
otherwise you will no longer be able to have access to it via the USE
DATABASEcommand.

The other possibility is I may be recalling a restriction from a previous
version or beta of course.

On Mon, 29 May 2017 at 21:50, Wayne Stewart 
wrote:

> David,
>
> A lot of my comments were tongue in cheek but I'm sure I heard that once
> an external data file is opened in real 4D it buggers it up from then on as
> an external database
>
> Wayne
>
> On Mon, 29 May 2017 at 18:56, David Adams via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
>
>> Hey Wayne, thanks for answering. I think that external .4DD files were
>> created for use from components in the first place and I've made it work
>> before...but it's been years. I don't remember hearing that you had to
>> create the data file from SQL, I thought that you could use any data file
>> that you like. It's all working with an interpreted component, so I don't
>> know what to make of it.
>>
>> It looks like you're a tiny bit suspicious of SQL. Don't be! And
>> definitely
>> don't confuse 4D's SQL with SQL per se. 4D's implementation is and has
>> always been a big disappointment, and there doesn't seem to be much (any?)
>> activity towards improving it. In normal SQL environments, there are a few
>> really nice features:
>>
>> * Basic SQL commands are fun and easy.
>>
>> * It's great for just poking around and exploring new data. Very nice.
>>
>> * Aggregate functions in SQL are _great_. Just awesome.
>>
>> * Views (depending on implementation) are super nice. You can create a
>> virtual table that is itself the product of a search and then search
>> against that, it's really nice.
>>
>> * In the SQL world, people tend to do decent database designs. That's a
>> Very Good Thing. > databases.
>> They have their uses. Standard business apps? Not so much.>
>>
>> Now, when it comes to complex multi-table joins? Well, that's harder. But
>> for the easy stuff, SQL is just great.
>>
>> I've always loved the idea of external data files - there are so many good
>> ways they _could_ be used. Imagine you've got a part catalog that gets
>> updated once a quarter. Let's say it has 200,000 items. Well, if it's in
>> an
>> external file, you can cache it locally on the client. Download it once
>> and
>> access it locally - no network traffic for lookups! Local caches are a
>> super useful tool in some settings. I never did understand why 4D promoted
>> the REMOTE option under 4D Server. The idea there is that there's an
>> external 4DD on the server side that one client at a time could use. Sort
>> of a file sharing database server. Struck me as a giant exercise in
>> missing
>> the point entirely.
>>
>> But back to local caches. Apart from static lookups, you could also use
>> them for logging data that you later collect/summarize and send somewhere.
>> Or perhaps you have a stand-alone app that needs to queue up changes for
>> processing when connected to a network, etc., etc. You can implement local
>> caches using custom disk files or a command-line interface onto a headless
>> database...but that's kind of a lot of work. With a local data file
>> accessed via 4D, you're getting a full database with indexes and the whole
>> nine yards. Seems like a great idea. Somehow it never caught on, the SQL
>> is
>> hard to work with, and the docs are inadequate :( Better docs might make a
>> big difference all by themselves, in this case. (I may be missing
>> something, pointers welcome.)
>>
>> Anyway, the point of this external file is to hoist data from the
>> component
>> into the host database. That's 100% the reason to have the data file in
>> the
>> component, so I'm just trying to figure out how to make that work
>> compiled.
>>
>> Thanks for any suggestions - I think others have worked through this.
>>
>> Here's a fragment of my code including the bit that sets the path:
>>
>>
>>
>> //-
>>   // Copy data from external .4DD using SQL commands
>>
>>
>> //-
>> ARRAY TEXT($names_at;0)
>> ARRAY TEXT($hosts_at;0)
>> ARRAY TEXT($advantages_at;0)
>> ARRAY TEXT($companies_at;0)
>> ARRAY TEXT($slogans_at;0)
>>
>>   // Place the .4DD you want to use in the component.
>>   // This is a manual step, but you can write code to take care of it for
>> you.
>>   // (The 4D Component Build screen does not offer this as an automatic
>> action.)
>>
>>   // Note: You may need to adjust file permissions to allow it to run
>> correctly.
>>
>>   // Note: Notice that we don't specify a file extension.
>> C_TEXT(Apps_File_Path)
>> Apps_File_Path:=Get 4D folder(Database 

Re: USE DATABASE from a component. ?

2017-05-29 Thread Wayne Stewart via 4D_Tech
David,

A lot of my comments were tongue in cheek but I'm sure I heard that once an
external data file is opened in real 4D it buggers it up from then on as an
external database

Wayne

On Mon, 29 May 2017 at 18:56, David Adams via 4D_Tech <4d_tech@lists.4d.com>
wrote:

> Hey Wayne, thanks for answering. I think that external .4DD files were
> created for use from components in the first place and I've made it work
> before...but it's been years. I don't remember hearing that you had to
> create the data file from SQL, I thought that you could use any data file
> that you like. It's all working with an interpreted component, so I don't
> know what to make of it.
>
> It looks like you're a tiny bit suspicious of SQL. Don't be! And definitely
> don't confuse 4D's SQL with SQL per se. 4D's implementation is and has
> always been a big disappointment, and there doesn't seem to be much (any?)
> activity towards improving it. In normal SQL environments, there are a few
> really nice features:
>
> * Basic SQL commands are fun and easy.
>
> * It's great for just poking around and exploring new data. Very nice.
>
> * Aggregate functions in SQL are _great_. Just awesome.
>
> * Views (depending on implementation) are super nice. You can create a
> virtual table that is itself the product of a search and then search
> against that, it's really nice.
>
> * In the SQL world, people tend to do decent database designs. That's a
> Very Good Thing.  They have their uses. Standard business apps? Not so much.>
>
> Now, when it comes to complex multi-table joins? Well, that's harder. But
> for the easy stuff, SQL is just great.
>
> I've always loved the idea of external data files - there are so many good
> ways they _could_ be used. Imagine you've got a part catalog that gets
> updated once a quarter. Let's say it has 200,000 items. Well, if it's in an
> external file, you can cache it locally on the client. Download it once and
> access it locally - no network traffic for lookups! Local caches are a
> super useful tool in some settings. I never did understand why 4D promoted
> the REMOTE option under 4D Server. The idea there is that there's an
> external 4DD on the server side that one client at a time could use. Sort
> of a file sharing database server. Struck me as a giant exercise in missing
> the point entirely.
>
> But back to local caches. Apart from static lookups, you could also use
> them for logging data that you later collect/summarize and send somewhere.
> Or perhaps you have a stand-alone app that needs to queue up changes for
> processing when connected to a network, etc., etc. You can implement local
> caches using custom disk files or a command-line interface onto a headless
> database...but that's kind of a lot of work. With a local data file
> accessed via 4D, you're getting a full database with indexes and the whole
> nine yards. Seems like a great idea. Somehow it never caught on, the SQL is
> hard to work with, and the docs are inadequate :( Better docs might make a
> big difference all by themselves, in this case. (I may be missing
> something, pointers welcome.)
>
> Anyway, the point of this external file is to hoist data from the component
> into the host database. That's 100% the reason to have the data file in the
> component, so I'm just trying to figure out how to make that work compiled.
>
> Thanks for any suggestions - I think others have worked through this.
>
> Here's a fragment of my code including the bit that sets the path:
>
>
>
> //-
>   // Copy data from external .4DD using SQL commands
>
>
> //-
> ARRAY TEXT($names_at;0)
> ARRAY TEXT($hosts_at;0)
> ARRAY TEXT($advantages_at;0)
> ARRAY TEXT($companies_at;0)
> ARRAY TEXT($slogans_at;0)
>
>   // Place the .4DD you want to use in the component.
>   // This is a manual step, but you can write code to take care of it for
> you.
>   // (The 4D Component Build screen does not offer this as an automatic
> action.)
>
>   // Note: You may need to adjust file permissions to allow it to run
> correctly.
>
>   // Note: Notice that we don't specify a file extension.
> C_TEXT(Apps_File_Path)
> Apps_File_Path:=Get 4D folder(Database folder)+"DataPatch"
> Apps_File_Path:=Convert path system to POSIX(Apps_File_Path)
>
> C_TEXT($check_path)  // We don't use this variable. It's here to show you
> how to check the name of the data file when you change it with USE DATABASE
> DATAFILE.
> $check_path:=""
>
> Begin SQL
> USE DATABASE DATAFILE :Apps_File_Path;
> SELECT DATABASE_PATH()
> FROM _USER_SCHEMAS
> LIMIT 1
> INTO :$check_path;
> SELECT  App_Name,
> App_Host,
> Advantage,
> Company,
> Slogan
> FROM   App_Definitions_to_Move
> INTO   :$names_at,
> :$hosts_at,
> :$advantages_at,
> :$companies_at,
> :$slogans_at;
> USE DATABASE SQL_INTERNAL;
> End SQL
> 

Windows frames

2017-05-29 Thread stardata.info via 4D_Tech

Hi All,

I have done a conversion for an application from V13 to V15 on windows.
Using the aplication in V15, the frames of the windows in V15 are meno 
subtile than in V13.

The command for open the windows is:
$Win:=Open form window("Check_In";Palette form window;Horizontally 
Centered;Vertically Centered;*)


Someone know because?

Thanks
Ferdinando
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread David Adams via 4D_Tech
Hey Wayne, thanks for answering. I think that external .4DD files were
created for use from components in the first place and I've made it work
before...but it's been years. I don't remember hearing that you had to
create the data file from SQL, I thought that you could use any data file
that you like. It's all working with an interpreted component, so I don't
know what to make of it.

It looks like you're a tiny bit suspicious of SQL. Don't be! And definitely
don't confuse 4D's SQL with SQL per se. 4D's implementation is and has
always been a big disappointment, and there doesn't seem to be much (any?)
activity towards improving it. In normal SQL environments, there are a few
really nice features:

* Basic SQL commands are fun and easy.

* It's great for just poking around and exploring new data. Very nice.

* Aggregate functions in SQL are _great_. Just awesome.

* Views (depending on implementation) are super nice. You can create a
virtual table that is itself the product of a search and then search
against that, it's really nice.

* In the SQL world, people tend to do decent database designs. That's a
Very Good Thing. 

Now, when it comes to complex multi-table joins? Well, that's harder. But
for the easy stuff, SQL is just great.

I've always loved the idea of external data files - there are so many good
ways they _could_ be used. Imagine you've got a part catalog that gets
updated once a quarter. Let's say it has 200,000 items. Well, if it's in an
external file, you can cache it locally on the client. Download it once and
access it locally - no network traffic for lookups! Local caches are a
super useful tool in some settings. I never did understand why 4D promoted
the REMOTE option under 4D Server. The idea there is that there's an
external 4DD on the server side that one client at a time could use. Sort
of a file sharing database server. Struck me as a giant exercise in missing
the point entirely.

But back to local caches. Apart from static lookups, you could also use
them for logging data that you later collect/summarize and send somewhere.
Or perhaps you have a stand-alone app that needs to queue up changes for
processing when connected to a network, etc., etc. You can implement local
caches using custom disk files or a command-line interface onto a headless
database...but that's kind of a lot of work. With a local data file
accessed via 4D, you're getting a full database with indexes and the whole
nine yards. Seems like a great idea. Somehow it never caught on, the SQL is
hard to work with, and the docs are inadequate :( Better docs might make a
big difference all by themselves, in this case. (I may be missing
something, pointers welcome.)

Anyway, the point of this external file is to hoist data from the component
into the host database. That's 100% the reason to have the data file in the
component, so I'm just trying to figure out how to make that work compiled.

Thanks for any suggestions - I think others have worked through this.

Here's a fragment of my code including the bit that sets the path:


//-
  // Copy data from external .4DD using SQL commands

//-
ARRAY TEXT($names_at;0)
ARRAY TEXT($hosts_at;0)
ARRAY TEXT($advantages_at;0)
ARRAY TEXT($companies_at;0)
ARRAY TEXT($slogans_at;0)

  // Place the .4DD you want to use in the component.
  // This is a manual step, but you can write code to take care of it for
you.
  // (The 4D Component Build screen does not offer this as an automatic
action.)

  // Note: You may need to adjust file permissions to allow it to run
correctly.

  // Note: Notice that we don't specify a file extension.
C_TEXT(Apps_File_Path)
Apps_File_Path:=Get 4D folder(Database folder)+"DataPatch"
Apps_File_Path:=Convert path system to POSIX(Apps_File_Path)

C_TEXT($check_path)  // We don't use this variable. It's here to show you
how to check the name of the data file when you change it with USE DATABASE
DATAFILE.
$check_path:=""

Begin SQL
USE DATABASE DATAFILE :Apps_File_Path;
SELECT DATABASE_PATH()
FROM _USER_SCHEMAS
LIMIT 1
INTO :$check_path;
SELECT  App_Name,
App_Host,
Advantage,
Company,
Slogan
FROM   App_Definitions_to_Move
INTO   :$names_at,
:$hosts_at,
:$advantages_at,
:$companies_at,
:$slogans_at;
USE DATABASE SQL_INTERNAL;
End SQL
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Picture Buttons in v16

2017-05-29 Thread Keisuke Miyako via 4D_Tech
I would recommended converting the source pictures inside the library, from 
PICT to PNG.
there is nothing wrong with using the picture library, you can consider 
resource files in new development.

so, take a 32-bit v16,
iterate all pictures in your picture library,
use GET PICTURE FORMATS to detect PICT,
CONVERT PICTURE to PNG,
(optionally) TRANSFORM PICTURE to add transparency,
then save back to the library using the same name/ID.

> 2017/05/29 17:13、Sannyasin Siddhanathaswami via 4D_Tech 
> <4d_tech@lists.4d.com> のメール:
>
> Now I’m trying to convert picture buttons. A ton of our forms use them. 
> Picture buttons with a source of “Picture Library” and an ID # are in the old 
> format and don’t show with v16.1 64bit Mac version. If I change the “Source” 
> to file and give a path to the resource folder “.png” version, it works fine.
>
> Is there a simple way to convert all my buttons to a format that works? I 
> can’t find anything in the conversion documentation.




**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Picture Buttons in v16

2017-05-29 Thread Sannyasin Siddhanathaswami via 4D_Tech
Aloha,

I’m trying to make progress preparing our database for v16.

Thanks for the help a few months back converting old PICT files. Turns out, 
Convert Picture was crashing like crazy in v15.2, but works fine in 15.3… 
Hopefully that helps someone else trying to do the same.

Now I’m trying to convert picture buttons. A ton of our forms use them. Picture 
buttons with a source of “Picture Library” and an ID # are in the old format 
and don’t show with v16.1 64bit Mac version. If I change the “Source” to file 
and give a path to the resource folder “.png” version, it works fine.

Is there a simple way to convert all my buttons to a format that works? I can’t 
find anything in the conversion documentation.

Thanks,

Sannyasin Siddhanathaswami
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Favorite tricks and keystrokes: Please take one and leave on

2017-05-29 Thread Koen Van Hooreweghe via 4D_Tech
Hi all,

My all time favorite is of course: cmd-Z.

But related to 4D, I love the alt-arrow up or down in the method editor. To 
move a line or a block of lines up/down in the code.

And while we're at it, the thing I miss the most is the split pane in the 
method editor. Unfortunately 4D eliminated this feature a few years ago. IMHO 
bookmarks are not a valid alternative.

Kind regards,
Koen

Op 27-mei-2017, om 02:33 heeft David Adams via 4D_Tech <4d_tech@lists.4d.com> 
het volgende geschreven:

> In honor of National Take-a-Penny/Leave-a-Penny Day, I thought it would be
> nice to start a thread to collect people's favorite 4D tricks and keystroke
> combos




Compass bvba
Koen Van Hooreweghe
Kloosterstraat 65
9910 Knesselare
Belgium
tel +32 495 511.653

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: USE DATABASE from a component. ?

2017-05-29 Thread Wayne Stewart via 4D_Tech
David,

The only database available from a component is the host database.

You can access it via pointers, (works for me).

Or you can create a table in the host via SQL (although I prefer to avoid
Satan's QL):

http://doc.4d.com/4Dv16/4D/16/CREATE-TABLE.300-3201315.en.html

But if you are heading off into those demonic regions…

You can also create and access an external datafile (via SQL) again:

http://doc.4d.com/4Dv16/4D/16/CREATE-DATABASE.300-3201304.en.html

May God have mercy upon your soul…

So, I'm guessing what you need to do is:
1. create the datafile via SQL (you can't use a normal .4DD) in your matrix
database with an "identical structure" to the one you wish to use
2. transfer the data into it from the matrix database into it
3. include that external .4DD in the component for access at runtime.

NB.  Once a file created that way is opened by a real 4D, then all demonic
influences are exorcised from it and it can no longer be used as an
external data file (which I think is the problem you are having).




Regards,

Wayne


[image: --]
Wayne Stewart
[image: http://]about.me/waynestewart



On 29 May 2017 at 16:09, David Adams via 4D_Tech <4d_tech@lists.4d.com>
wrote:

> I've done this before but years ago - more than five. I really like the
> idea of external .4DD files, but have not mastered the niceties of the
> paths and such.
>
> I've got a simple setup with a component that includes a .4DD file. I want
> the component to open up and use the data file. I've gotten this working
> when everything is interpreted. With a compiled component, I get a stack of
> errors, starting with error -43, file not found. The error stack that it's
> looking for a .4DB file, not a .4DC file.
>
> I've manually changed permissions on all of the files to be...generous.
> (What's up with that? Is this normally required? It seems so in my case on
> OS X.)
>
> I've tried opening up the .4DC from inside of the component and selecting
> the .4DD right next to it before moving the component over to the host. No
> help.
>
> I've tried specifying .4DC in the USE DATABASE path, but that doesn't work
> at all.
>
> Suggestions appreciated.
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Favorite tricks and keystrokes: Please take one and leave on

2017-05-29 Thread Arnaud de Montard via 4D_Tech

> Le 29 mai 2017 à 08:10, Bernd Fröhlich via 4D_Tech <4d_tech@lists.4d.com> a 
> écrit :
> 
> My favorite trick:
> moving a selection of code with alt+uparrow/downarrow

Yes, nice one. It seems it slows down in proportion of number of opened windows 
in design. 

-- 
Arnaud de Montard




**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

USE DATABASE from a component. ?

2017-05-29 Thread David Adams via 4D_Tech
I've done this before but years ago - more than five. I really like the
idea of external .4DD files, but have not mastered the niceties of the
paths and such.

I've got a simple setup with a component that includes a .4DD file. I want
the component to open up and use the data file. I've gotten this working
when everything is interpreted. With a compiled component, I get a stack of
errors, starting with error -43, file not found. The error stack that it's
looking for a .4DB file, not a .4DC file.

I've manually changed permissions on all of the files to be...generous.
(What's up with that? Is this normally required? It seems so in my case on
OS X.)

I've tried opening up the .4DC from inside of the component and selecting
the .4DD right next to it before moving the component over to the host. No
help.

I've tried specifying .4DC in the USE DATABASE path, but that doesn't work
at all.

Suggestions appreciated.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Favorite tricks and keystrokes: Please take one and leave on

2017-05-29 Thread Bernd Fröhlich via 4D_Tech
Douglas von Roeder:

> I *do* like how it works - if something's selected, Ctrl-k will go to its
> definition

Yup, works. I like that and use it quite often.

> but if nothing's selected, Ctrl-k opens the Explorer.

Nope, not in V16.1 on macOS 10.12.5


My favorite trick:
moving a selection of code with alt+uparrow/downarrow

Greetings from Germany,
Bernd Fröhlich
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**