RE: Any issues with %password font on MacOS and 13.6?

2016-10-14 Thread Timothy Penner
Hi Kirk,

I wouldn’t say it is discouraged - it is still documented in example 3 of 
OBJECT SET FONT:
http://livedoc.4d.com/4Dv15-R5/help/Command/en/page164.html#197877
Quote: "Note: You can use the %password option with field, variable and combo 
box type objects."

I had to search my sent items for 14045 to see what I said; it looks like I 
mentioned this tip in reference to the %password font not working with ALP...
http://kb.4d.com/resources/inug?msgid=GmailId1467388e3e922028 

-Tim PENNER



-Original Message-
From: 4D_Tech [mailto:4d_tech-boun...@lists.4d.com] On Behalf Of Kirk Brooks
Sent: Friday, October 14, 2016 12:25 PM
To: 4D iNug Technical
Subject: Re: Any issues with %password font on MacOS and 13.6?

Hi Chuck,
It turns out using the password font is discouraged in favor of capturing the 
characters from the screen, building the password in a hidden variable, and 
displaying a field with just asterisks or something else.

Tim Penner posted a reply a while ago about this with a link here:
http://kb.4d.com/assetid=14045


**
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: Listbox cell - On Data Change - how to tell old and new values?

2016-10-14 Thread Keith Goebel
Kirk, thanks for your reply.
I would have thought so too, but it doesn’t (for me anyway).
The Old value, when tested by the On Data Change event, matches the entered 
value not the value before the cell edit.

Seems weird that nobody else on this list has a need to do this.
I wish i could say “I’m first!” for things other than 4D “unexpected features". 
   :-)

> … I'm not sure how long you can count on modified changes NOT
> being saved but I am certain OLD will work while you are editing that
> specific field...
**
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: Diminute font size using Windows 8

2016-10-14 Thread Tim Nevels
On Oct 14, 2016, at 2:00 PM, Rafael Escoté Climent wrote:

> one of our old customers just migrated their 4d client OS systems (they were 
> using Windows 98 or Windows 7, i’m not sure)
> to Windows 8.x
> 
> They discovered that our old client/server app (developed in 4D v11 years 
> ago…) 
> is now presenting the reports on a very, very tiny, small  font!! 
> (unreadeable!)
> 
> Any ideas? 
> Any known uncompatiblity of 4D v11 reports on Windows 8?

it is a known issue with v11 and v12. 4D v13 fixes the problem.

So you have 2 choices:

1. Upgrade to v13 or higher and it will fix the problem

2. Make changes to your forms to make the fonts bigger so they are readable on 
Windows 8 and Windows 10. Of course your Windows 7 users will now complain 
because for them the font size will be too big. I have seen a few posts where 
some developers worked around this by adding program code to change the font 
sizes of items on the form to a bigger size when running on Windows 8. 

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
**

Converting from C

2016-10-14 Thread Peter Mew
Hi
Please tell me to go away if this request is inappropriate
Im trying to convert a C function into 4D
I know very very little C, so after 2 days I'm looking for some help
The C function looks like

struct toc {
int min;

int sec;
int frame;

};
struct toc cdtoc[100];

int
read_cdtoc_from_drive(void)

{

/* Do whatever is appropriate to read the TOC of the CD
 * into the cdtoc[] structure array.

}

 */
return (tot_trks);

int
cddb_sum(int n)

{

int ret;
/* For backward compatibility this algorithm must not change */
ret = 0;

while (n > 0) {
ret = ret + (n % 10);

n = n / 10;
return (ret);

}

}

unsigned long
cddb_discid(int tot_trks)

{

int i,
t = 0,

n = 0;
/* For backward compatibility this algorithm must not change */
i = 0;

while (i < tot_trks) {
n = n + cddb_sum((cdtoc[i].min * 60) + cdtoc[i].sec);

i++; }

t = ((cdtoc[tot_trks].min * 60) + cdtoc[tot_trks].sec) -
((cdtoc[0].min * 60) + cdtoc[0].sec);

return ((n % 0xff) << 24 | t << 8 | tot_trks);
main()

} {

}

int tot_trks;

tot_trks = read_cdtoc_from_drive();
printf("The discid is %08x", cddb_discid(tot_trks));



My version Looks Like

n:=0
t:=0
For ($i;1;$NoTracks)
n:=n+cddb_Sum(StartSeconds{$i})
End for
t:=$LastTrack-StartSeconds{1}
$DisckIDNo:=(n%255) << 24 | t << 8 | $NoTracks  // (n%255)<<24 results in a
huge negative number
$temp:=string($discIDNo;"")
DiscID:=substring($temp;3)//This should result in an 8 character string
in hex


and the subroutine cddb_sum Like This

c_Longint($position;$addDigits)
$Position:=$1
$addDigits:=0;
While ($Position>0)
$addDigits:=$addDigits+($Position%10)
$Position:=int($Position/10)
End while
$0:=$adddigits

I think Im misunderstanding the functioning of cddb_sum

But I dont get anything sensible at the end

This is supposed to calculate a discID used in the lookup for CD titles
from FreeDB
The TOC (Table of contents) is derived from the information retreived from
"drutil TOC"
There is some code that creates an array of start times (in Seconds). an
end time and the number of tracks
This is the code that does that is



C_TEXT($in;$out;$err)
ARRAY LONGINT(StartSeconds;0)
Array Longint(StartFrames;0)
LAUNCH EXTERNAL PROCESS("Drutil toc";$in;$out;$err)
$pos:=Position("Last Track:";$out)
$NoTracksString:=Substring($out;$pos+27;2)
$NoTracks:=num($NoTracksString)

$pos:=Position("Lead-Out:";$out)

$LastTrackString:=substring($out;$pos+27;8)
ConvertTOCToSeconds ($LastTrackString)
$LastTrack:=<>Seconds
$posStart:=$pos
$count:=1

for($i;1;$NoTracks)
$pos:=position("Track";$out;$posStart)
$trackStartstring:=substring($out;$pos+15;8)
ConvertTOCToSeconds ($TrackStartString)
APPEND TO ARRAY(StartSeconds;<>Seconds)
$posStart:=$pos+2
End for


Thanks
-pn
**
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: v13+ type ahead variables

2016-10-14 Thread Chip Scheide
4D capitalizes everything in Compiler methods.
the type ahead pulls from these...

I tested - changed an IP var in compiler_variables_Inter from <>X_CR to 
<>x_Cr
used type ahead and it came in as <>x_Cr


On Fri, 14 Oct 2016 14:27:34 -0500, Keith Culotta wrote:
> I think it uses the Cap Style of the first instance of the variable.  
> Is it declared in all caps at the top of the method?
> 
> Keith - CDI
> 
>> On Oct 14, 2016, at 2:20 PM, Chip Scheide 
>> <4d_o...@pghrepository.org> wrote:
>> 
>> it is nice that 4D now provides type ahead for variables.
>> 
>> Does anyone else wish 4D would preserve our (user) preference as to 
>> variable name capitalization.
>> rather then CAPITALIZE every thing
>> 
>> Chi[
>> **
>> 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
> **
**
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: Any issues with %password font on MacOS and 13.6?

2016-10-14 Thread Keith Culotta
I seem to recall that it had been fixed at some point.  Still, I place it over 
an object using Wingdings (or similar) to mitigate any exposure.

Keith - CDI

> On Oct 14, 2016, at 2:25 PM, Kirk Brooks  wrote:
> 
> Hi Chuck,
> It turns out using the password font is discouraged in favor of capturing
> the characters from the screen, building the password in a hidden variable,
> and displaying a field with just asterisks or something else.
> 
> Tim Penner posted a reply a while ago about this with a link here:
> http://kb.4d.com/assetid=14045
> 
> On Fri, Oct 14, 2016 at 11:54 AM, Charles Miller 
> wrote:
> 
>> Version of 4D would help. I seem to remember problem with v11 or 13
>> 
>> Regards
>> 
>> Chuck
>> 
>> 
>> Chuck Miller Voice: (617) 739-0306
>> Informed Solutions, Inc. Fax: (617) 232-1064
>> mailto:miller.cjaygmail.com 
>> Brookline, MA 02446 USA Registered 4D Developer
>>   Providers of 4D and Sybase connectivity
>>  http://www.informed-solutions.com
>> 
>> 
>> 
>> 
>>> On Oct 14, 2016, at 2:44 PM, Kirk Brooks  wrote:
>>> 
>>> Hey guys.
>>> 
>>> I'm not seeing this on my MacBook running 10.10.5 but some users report
>> the
>>> password font working. Anyone have any experience with this?
>> 
>> **
>> 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
> ===
> **
> 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: v13+ type ahead variables

2016-10-14 Thread Keith Culotta
I think it uses the Cap Style of the first instance of the variable.  Is it 
declared in all caps at the top of the method?

Keith - CDI

> On Oct 14, 2016, at 2:20 PM, Chip Scheide <4d_o...@pghrepository.org> wrote:
> 
> it is nice that 4D now provides type ahead for variables.
> 
> Does anyone else wish 4D would preserve our (user) preference as to 
> variable name capitalization.
> rather then CAPITALIZE every thing
> 
> Chi[
> **
> 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: Any issues with %password font on MacOS and 13.6?

2016-10-14 Thread Kirk Brooks
Hi Chuck,
It turns out using the password font is discouraged in favor of capturing
the characters from the screen, building the password in a hidden variable,
and displaying a field with just asterisks or something else.

Tim Penner posted a reply a while ago about this with a link here:
http://kb.4d.com/assetid=14045

On Fri, Oct 14, 2016 at 11:54 AM, Charles Miller 
wrote:

> Version of 4D would help. I seem to remember problem with v11 or 13
>
> Regards
>
> Chuck
> 
> 
>  Chuck Miller Voice: (617) 739-0306
>  Informed Solutions, Inc. Fax: (617) 232-1064
> mailto:miller.cjaygmail.com 
>  Brookline, MA 02446 USA Registered 4D Developer
>Providers of 4D and Sybase connectivity
>   http://www.informed-solutions.com
> 
> 
>
>
> > On Oct 14, 2016, at 2:44 PM, Kirk Brooks  wrote:
> >
> > Hey guys.
> >
> > I'm not seeing this on my MacBook running 10.10.5 but some users report
> the
> > password font working. Anyone have any experience with this?
>
> **
> 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
===
**
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
**

v13+ type ahead variables

2016-10-14 Thread Chip Scheide
it is nice that 4D now provides type ahead for variables.

Does anyone else wish 4D would preserve our (user) preference as to 
variable name capitalization.
rather then CAPITALIZE every thing

Chi[
**
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: Diminute font size using Windows 8

2016-10-14 Thread Jim Hays
Yes, look for this on the NUG:  Printing on Windows 8.1 & 4Dv12

This is the answer:
http://4d.1045681.n5.nabble.com/Win-4D-12-x-and-Win-8-1-
td5730168.html#a5730390


On Fri, Oct 14, 2016 at 1:11 PM, Rafael Escoté Climent 
wrote:

> Hi all,
>
> one of our old customers just migrated their 4d client OS systems (they
> were using Windows 98 or Windows 7, i’m not sure)
> to Windows 8.x
>
> They discovered that our old client/server app (developed in 4D v11 years
> ago…)
> is now presenting the reports on a very, very tiny, small  font!!
> (unreadeable!)
>
> Any ideas?
> Any known uncompatiblity of 4D v11 reports on Windows 8?
>
> TIA,
> Rafa Escoté (former senior prog. at Blausoft s.l.)
> **
> 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: Managing invoices - write the total or look it up?

2016-10-14 Thread Douglas von Roeder
How about a data model?

http://www.databaseanswers.org/data_models/invoices_and_payments/index.htm



--
Douglas von Roeder
949-336-2902

On Fri, Oct 14, 2016 at 11:58 AM, Wayne Stewart 
wrote:

> Hi,
>
> I'm not an accountant so this probably is totally wrong but what I do is
> this.
>
> I have 4 tables involved
> Client (fairly obvious)
> Consultations (a consult is an invoice effectively)
> Payments
> Transactions.
>
> The transaction table links to the other three.  It's fields:
> ID
> Client_ID
> Consult_ID
> Payment_ID
> Type
> Date
> Amount
>
> If the transaction is for a consult then type = 1, payment_id is blank and
> the amount is the same as the consult amount.
>
> If the transaction is for a payment then type = 2, client_id is blank and
> the amount is the negative of the payment amount.
>
> Client balance is the sum of transactions
> Payments are applied against the total rather than individual invoices.
> - no need to unlock invoice
> - clients can pre-pay
>
> Does that make sense?
>
> Wayne
>
> On Saturday, 15 October 2016, Chip Scheide <4d_o...@pghrepository.org>
> wrote:
>
> > Theory says:
> > do not store something that can be calculated.
> > Practicality often says otherwise
> >
> > line art structure:
> >
> > [invoice] <- [line items] <- [payment_lineitem_link] --
> >   <- [payments] <-|
> >   <- [addresses]
> >   -> [Purchaser]
> > Entry/listing form shows Sum([Line items]) - sum([payments])
> >
> > for reporting
> > Selection to array (various data)
> > process report by pulling data from arrays
> >
> > You never have to worry about :
> > - adding a payment - create a new record with the right invoice ID
> > - adding a line item - create a new record with the right Invoice ID
> > - current outstanding balance (read only) Sum([Line items]) -
> > sum([payments])
> > - current total (read only) Sum([Line items])
> >
> > you will rarely have to worry about :
> > - applying a payment (tracking against which line item(s) a payment
> > covers)
> > - deleting a line item (only an issue if done outside of an entry form)
> > - modifying a line item (only an issue if done outside of an entry form)
> > These are situations where 1 user may have locked a line item or
> > payment while another user is trying to change something. If the
> > changes are only allowed to be done while in an entry form then even
> > these go away, as if the parent record is locked the related should be
> > too (read only).
> >
> >
> >
> >
> > On Fri, 14 Oct 2016 09:20:05 -0700, Kirk Brooks wrote:
> > > I'm going to fork this thread into a separate discussion because I
> think
> > > it's a good topic and way far afield of the OP.
> > >
> > > I have never been at a point in my development career when I haven't
> had
> > at
> > > least one project that had invoices involved. Most of my databases had
> > the
> > > 'classic' structure of an invoice table and a line items table. You add
> > > line items, sum up them up and write the totals into the invoice
> record.
> > > Fine until you start trying to track payments also. Hmm. So now I add
> > > another couple of fields for 'payments' and 'balance due'. But now
> it's a
> > > de-normalized situation: the sum of line items and sum of payments may
> > not
> > > be so static. What if a payment is being applied but the invoice record
> > is
> > > locked? I can't update the invoice so does that mean the payment can't
> be
> > > entered? What do we do with the payment? And so on.
> > >
> > > Lot's of high end accounting databases started dealing with invoices by
> > > looking up the values when needed. ie.
> > >
> > > Invoice_get_total(invoice id) = sum Invoice Lines
> > > Invoice_get_balDue(invoice id) = sum Invoice Lines minus sum Payments
> > >
> > >
> > > ​I tried that approach in 4D years ago and it was just too slow to be
> > > feasible when building reports. Or maybe I wasn't as good at setting up
> > > structures back then. It is undeniably faster to write reports from
> > static
> > > data. But in a dynamic environment (where someone is literally watching
> > an
> > > invoice for the balance due field to change) it gets more complicated.
> > >
> > > Another problem with the lookup approach is historical data. You spend
> a
> > > lot of computer resources looking up static data that hasn't changed
> in a
> > > long time and really won't ever change again. That's not what you want.
> > >
> > > My approach to invoices currently is this:
> > >
> > >- ​There are 'active' and 'inactive' invoices. Inactive ones have
> the
> > >totals written to the record. Active ones don't.
> > >- ​Invoice records are never opened in a user window. I make a
> dialog
> > of
> > >the invoice data but not the actual record.
> > >
> > >- Changes are submitted as variables, submitted to a single method
> for
> > >validation and updating the record.
> > >
> > > ​I think this gives me the best of 

Re: Managing invoices - write the total or look it up?

2016-10-14 Thread Wayne Stewart
Hi,

I'm not an accountant so this probably is totally wrong but what I do is
this.

I have 4 tables involved
Client (fairly obvious)
Consultations (a consult is an invoice effectively)
Payments
Transactions.

The transaction table links to the other three.  It's fields:
ID
Client_ID
Consult_ID
Payment_ID
Type
Date
Amount

If the transaction is for a consult then type = 1, payment_id is blank and
the amount is the same as the consult amount.

If the transaction is for a payment then type = 2, client_id is blank and
the amount is the negative of the payment amount.

Client balance is the sum of transactions
Payments are applied against the total rather than individual invoices.
- no need to unlock invoice
- clients can pre-pay

Does that make sense?

Wayne

On Saturday, 15 October 2016, Chip Scheide <4d_o...@pghrepository.org>
wrote:

> Theory says:
> do not store something that can be calculated.
> Practicality often says otherwise
>
> line art structure:
>
> [invoice] <- [line items] <- [payment_lineitem_link] --
>   <- [payments] <-|
>   <- [addresses]
>   -> [Purchaser]
> Entry/listing form shows Sum([Line items]) - sum([payments])
>
> for reporting
> Selection to array (various data)
> process report by pulling data from arrays
>
> You never have to worry about :
> - adding a payment - create a new record with the right invoice ID
> - adding a line item - create a new record with the right Invoice ID
> - current outstanding balance (read only) Sum([Line items]) -
> sum([payments])
> - current total (read only) Sum([Line items])
>
> you will rarely have to worry about :
> - applying a payment (tracking against which line item(s) a payment
> covers)
> - deleting a line item (only an issue if done outside of an entry form)
> - modifying a line item (only an issue if done outside of an entry form)
> These are situations where 1 user may have locked a line item or
> payment while another user is trying to change something. If the
> changes are only allowed to be done while in an entry form then even
> these go away, as if the parent record is locked the related should be
> too (read only).
>
>
>
>
> On Fri, 14 Oct 2016 09:20:05 -0700, Kirk Brooks wrote:
> > I'm going to fork this thread into a separate discussion because I think
> > it's a good topic and way far afield of the OP.
> >
> > I have never been at a point in my development career when I haven't had
> at
> > least one project that had invoices involved. Most of my databases had
> the
> > 'classic' structure of an invoice table and a line items table. You add
> > line items, sum up them up and write the totals into the invoice record.
> > Fine until you start trying to track payments also. Hmm. So now I add
> > another couple of fields for 'payments' and 'balance due'. But now it's a
> > de-normalized situation: the sum of line items and sum of payments may
> not
> > be so static. What if a payment is being applied but the invoice record
> is
> > locked? I can't update the invoice so does that mean the payment can't be
> > entered? What do we do with the payment? And so on.
> >
> > Lot's of high end accounting databases started dealing with invoices by
> > looking up the values when needed. ie.
> >
> > Invoice_get_total(invoice id) = sum Invoice Lines
> > Invoice_get_balDue(invoice id) = sum Invoice Lines minus sum Payments
> >
> >
> > ​I tried that approach in 4D years ago and it was just too slow to be
> > feasible when building reports. Or maybe I wasn't as good at setting up
> > structures back then. It is undeniably faster to write reports from
> static
> > data. But in a dynamic environment (where someone is literally watching
> an
> > invoice for the balance due field to change) it gets more complicated.
> >
> > Another problem with the lookup approach is historical data. You spend a
> > lot of computer resources looking up static data that hasn't changed in a
> > long time and really won't ever change again. That's not what you want.
> >
> > My approach to invoices currently is this:
> >
> >- ​There are 'active' and 'inactive' invoices. Inactive ones have the
> >totals written to the record. Active ones don't.
> >- ​Invoice records are never opened in a user window. I make a dialog
> of
> >the invoice data but not the actual record.
> >
> >- Changes are submitted as variables, submitted to a single method for
> >validation and updating the record.
> >
> > ​I think this gives me the best of both worlds. A pref lets the user
> define
> > how long to leave an invoice in the 'active' state after it's paid. A
> month
> > or two is a usually enough. Plus, it's not like this is a one-time only
> > designation. An invoice can be changed from active to inactive and back
> as
> > needed, for some reason.
> >
> > ​Getter methods look at the invoice record to know where to get the data.
> > Like so:
> >
> > // Invoice_get_total(invoice id)​
> > ​if(invoice_active)
> >
> > $0:= 

Re: Managing invoices - write the total or look it up?

2016-10-14 Thread Bill Weale
I usually maintain a Payments (or Credits, not not including goods and services 
for sale) table. It can include many “types” of payments and charges. It’s 
needed to maintain an audit trail for A/R. I know it’s not, er, normal, but I 
also maintain Total and Amt Due fields in the Invoice table. Along with these I 
also keep functions which can scan these fields, identify mis-matches and 
reconcile them to the Lines and Payments records for Invoices.

Some reports often hundreds of thousands of invoices and millions of invoice 
lines. I can’t imagine I’d live long enough for 4D to build them without an 
[Invoice] Total field.

Bill


William W. Weale

Business Owners Support, LLC.

Operations Analysis
MIS Advising
Decision Support Systems

> On Oct 14, 2016, at 12:20 PM, Kirk Brooks  wrote:
> 
> I'm going to fork this thread into a separate discussion because I think
> it's a good topic and way far afield of the OP.
> 
> I have never been at a point in my development career when I haven't had at
> least one project that had invoices involved. Most of my databases had the
> 'classic' structure of an invoice table and a line items table. You add
> line items, sum up them up and write the totals into the invoice record.
> Fine until you start trying to track payments also. Hmm. So now I add
> another couple of fields for 'payments' and 'balance due'. But now it's a
> de-normalized situation: the sum of line items and sum of payments may not
> be so static. What if a payment is being applied but the invoice record is
> locked? I can't update the invoice so does that mean the payment can't be
> entered? What do we do with the payment? And so on.
> 
> Lot's of high end accounting databases started dealing with invoices by
> looking up the values when needed. ie.
> 
> Invoice_get_total(invoice id) = sum Invoice Lines
> Invoice_get_balDue(invoice id) = sum Invoice Lines minus sum Payments
> 
> 
> ​I tried that approach in 4D years ago and it was just too slow to be
> feasible when building reports. Or maybe I wasn't as good at setting up
> structures back then. It is undeniably faster to write reports from static
> data. But in a dynamic environment (where someone is literally watching an
> invoice for the balance due field to change) it gets more complicated.
> 
> Another problem with the lookup approach is historical data. You spend a
> lot of computer resources looking up static data that hasn't changed in a
> long time and really won't ever change again. That's not what you want.
> 
> My approach to invoices currently is this:
> 
>   - ​There are 'active' and 'inactive' invoices. Inactive ones have the
>   totals written to the record. Active ones don't.
>   - ​Invoice records are never opened in a user window. I make a dialog of
>   the invoice data but not the actual record.
> 
>   - Changes are submitted as variables, submitted to a single method for
>   validation and updating the record.
> 
> ​I think this gives me the best of both worlds. A pref lets the user define
> how long to leave an invoice in the 'active' state after it's paid. A month
> or two is a usually enough. Plus, it's not like this is a one-time only
> designation. An invoice can be changed from active to inactive and back as
> needed, for some reason.
> 
> ​Getter methods look at the invoice record to know where to get the data.
> Like so:
> 
> // Invoice_get_total(invoice id)​
> ​if(invoice_active)
> 
> $0:=  lookup the line items
> 
> else
> 
> $0:=[invoices]total
> 
> end if​
> 
> 
> ​Editing invoices is restricted in various ways but the basics are pretty
> much anyone can view the record, you can submit changes if you have
> permission and those changes are managed by a central method.
> 
> The final part is a background method that loads on startup, runs once a
> day and looks for paid invoices that can be made inactive. ​
> 
> This is all probably overkill for single user applications. In busy
> multi-user dbs, where people creating invoices aren't necessarily the
> people entering payments or where payments arrive from external systems,
> this is a pretty good approach.
> 
> On Fri, Oct 14, 2016 at 7:57 AM, Chip Scheide <4d_o...@pghrepository.org>
> wrote:
> 
>> Invoice, and invoice item
>> - Invoice item is changed, which changes a total on the invoice
>> both are locked to other users, until the transaction is completed.
>> 
>> On Fri, 14 Oct 2016 16:49:10 +0200, Arnaud de Montard wrote:
>>> 
 Le 14 oct. 2016 à 16:11, Chip Scheide <4d_o...@pghrepository.org> a
 écrit :
 
 yes.
 But then :
 - if the 1 user changed a value, everyone probably needs to know that
 the record is being modified and whatever value(s) are displayed may
 not be correct.
>> 
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  

Re: Any issues with %password font on MacOS and 13.6?

2016-10-14 Thread Charles Miller
Version of 4D would help. I seem to remember problem with v11 or 13

Regards

Chuck

 Chuck Miller Voice: (617) 739-0306
 Informed Solutions, Inc. Fax: (617) 232-1064   
mailto:miller.cjaygmail.com 
 Brookline, MA 02446 USA Registered 4D Developer
   Providers of 4D and Sybase connectivity
  http://www.informed-solutions.com  



> On Oct 14, 2016, at 2:44 PM, Kirk Brooks  wrote:
> 
> Hey guys.
> 
> I'm not seeing this on my MacBook running 10.10.5 but some users report the
> password font working. Anyone have any experience with this?

**
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
**

Any issues with %password font on MacOS and 13.6?

2016-10-14 Thread Kirk Brooks
Hey guys.

I'm not seeing this on my MacBook running 10.10.5 but some users report the
password font working. Anyone have any experience with this?

-- 
Kirk Brooks
San Francisco, CA
===
**
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: Managing invoices - write the total or look it up?

2016-10-14 Thread Chip Scheide
Theory says:
do not store something that can be calculated.
Practicality often says otherwise

line art structure:

[invoice] <- [line items] <- [payment_lineitem_link] --
  <- [payments] <-|
  <- [addresses]
  -> [Purchaser]
Entry/listing form shows Sum([Line items]) - sum([payments])

for reporting 
Selection to array (various data)
process report by pulling data from arrays

You never have to worry about :
- adding a payment - create a new record with the right invoice ID
- adding a line item - create a new record with the right Invoice ID
- current outstanding balance (read only) Sum([Line items]) - 
sum([payments]) 
- current total (read only) Sum([Line items])

you will rarely have to worry about :
- applying a payment (tracking against which line item(s) a payment 
covers)
- deleting a line item (only an issue if done outside of an entry form)
- modifying a line item (only an issue if done outside of an entry form)
These are situations where 1 user may have locked a line item or 
payment while another user is trying to change something. If the 
changes are only allowed to be done while in an entry form then even 
these go away, as if the parent record is locked the related should be 
too (read only).




On Fri, 14 Oct 2016 09:20:05 -0700, Kirk Brooks wrote:
> I'm going to fork this thread into a separate discussion because I think
> it's a good topic and way far afield of the OP.
> 
> I have never been at a point in my development career when I haven't had at
> least one project that had invoices involved. Most of my databases had the
> 'classic' structure of an invoice table and a line items table. You add
> line items, sum up them up and write the totals into the invoice record.
> Fine until you start trying to track payments also. Hmm. So now I add
> another couple of fields for 'payments' and 'balance due'. But now it's a
> de-normalized situation: the sum of line items and sum of payments may not
> be so static. What if a payment is being applied but the invoice record is
> locked? I can't update the invoice so does that mean the payment can't be
> entered? What do we do with the payment? And so on.
> 
> Lot's of high end accounting databases started dealing with invoices by
> looking up the values when needed. ie.
> 
> Invoice_get_total(invoice id) = sum Invoice Lines
> Invoice_get_balDue(invoice id) = sum Invoice Lines minus sum Payments
> 
> 
> ​I tried that approach in 4D years ago and it was just too slow to be
> feasible when building reports. Or maybe I wasn't as good at setting up
> structures back then. It is undeniably faster to write reports from static
> data. But in a dynamic environment (where someone is literally watching an
> invoice for the balance due field to change) it gets more complicated.
> 
> Another problem with the lookup approach is historical data. You spend a
> lot of computer resources looking up static data that hasn't changed in a
> long time and really won't ever change again. That's not what you want.
> 
> My approach to invoices currently is this:
> 
>- ​There are 'active' and 'inactive' invoices. Inactive ones have the
>totals written to the record. Active ones don't.
>- ​Invoice records are never opened in a user window. I make a dialog of
>the invoice data but not the actual record.
> 
>- Changes are submitted as variables, submitted to a single method for
>validation and updating the record.
> 
> ​I think this gives me the best of both worlds. A pref lets the user define
> how long to leave an invoice in the 'active' state after it's paid. A month
> or two is a usually enough. Plus, it's not like this is a one-time only
> designation. An invoice can be changed from active to inactive and back as
> needed, for some reason.
> 
> ​Getter methods look at the invoice record to know where to get the data.
> Like so:
> 
> // Invoice_get_total(invoice id)​
> ​if(invoice_active)
> 
> $0:=  lookup the line items
> 
> else
> 
> $0:=[invoices]total
> 
> end if​
> 
> 
> ​Editing invoices is restricted in various ways but the basics are pretty
> much anyone can view the record, you can submit changes if you have
> permission and those changes are managed by a central method.
> 
> The final part is a background method that loads on startup, runs once a
> day and looks for paid invoices that can be made inactive. ​
> 
> This is all probably overkill for single user applications. In busy
> multi-user dbs, where people creating invoices aren't necessarily the
> people entering payments or where payments arrive from external systems,
> this is a pretty good approach.
> 
> On Fri, Oct 14, 2016 at 7:57 AM, Chip Scheide <4d_o...@pghrepository.org>
> wrote:
> 
>> Invoice, and invoice item
>> - Invoice item is changed, which changes a total on the invoice
>> both are locked to other users, until the transaction is completed.
>> 
>> On Fri, 14 Oct 2016 16:49:10 +0200, Arnaud de Montard wrote:
>>> 
 

Diminute font size using Windows 8

2016-10-14 Thread Rafael Escoté Climent
Hi all,

one of our old customers just migrated their 4d client OS systems (they were 
using Windows 98 or Windows 7, i’m not sure)
to Windows 8.x

They discovered that our old client/server app (developed in 4D v11 years ago…) 
is now presenting the reports on a very, very tiny, small  font!! (unreadeable!)

Any ideas? 
Any known uncompatiblity of 4D v11 reports on Windows 8?

TIA,
Rafa Escoté (former senior prog. at Blausoft s.l.)
**
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
**

Managing invoices - write the total or look it up?

2016-10-14 Thread Kirk Brooks
I'm going to fork this thread into a separate discussion because I think
it's a good topic and way far afield of the OP.

I have never been at a point in my development career when I haven't had at
least one project that had invoices involved. Most of my databases had the
'classic' structure of an invoice table and a line items table. You add
line items, sum up them up and write the totals into the invoice record.
Fine until you start trying to track payments also. Hmm. So now I add
another couple of fields for 'payments' and 'balance due'. But now it's a
de-normalized situation: the sum of line items and sum of payments may not
be so static. What if a payment is being applied but the invoice record is
locked? I can't update the invoice so does that mean the payment can't be
entered? What do we do with the payment? And so on.

Lot's of high end accounting databases started dealing with invoices by
looking up the values when needed. ie.

Invoice_get_total(invoice id) = sum Invoice Lines
Invoice_get_balDue(invoice id) = sum Invoice Lines minus sum Payments


​I tried that approach in 4D years ago and it was just too slow to be
feasible when building reports. Or maybe I wasn't as good at setting up
structures back then. It is undeniably faster to write reports from static
data. But in a dynamic environment (where someone is literally watching an
invoice for the balance due field to change) it gets more complicated.

Another problem with the lookup approach is historical data. You spend a
lot of computer resources looking up static data that hasn't changed in a
long time and really won't ever change again. That's not what you want.

My approach to invoices currently is this:

   - ​There are 'active' and 'inactive' invoices. Inactive ones have the
   totals written to the record. Active ones don't.
   - ​Invoice records are never opened in a user window. I make a dialog of
   the invoice data but not the actual record.

   - Changes are submitted as variables, submitted to a single method for
   validation and updating the record.

​I think this gives me the best of both worlds. A pref lets the user define
how long to leave an invoice in the 'active' state after it's paid. A month
or two is a usually enough. Plus, it's not like this is a one-time only
designation. An invoice can be changed from active to inactive and back as
needed, for some reason.

​Getter methods look at the invoice record to know where to get the data.
Like so:

// Invoice_get_total(invoice id)​
​if(invoice_active)

$0:=  lookup the line items

else

$0:=[invoices]total

end if​


​Editing invoices is restricted in various ways but the basics are pretty
much anyone can view the record, you can submit changes if you have
permission and those changes are managed by a central method.

The final part is a background method that loads on startup, runs once a
day and looks for paid invoices that can be made inactive. ​

This is all probably overkill for single user applications. In busy
multi-user dbs, where people creating invoices aren't necessarily the
people entering payments or where payments arrive from external systems,
this is a pretty good approach.

On Fri, Oct 14, 2016 at 7:57 AM, Chip Scheide <4d_o...@pghrepository.org>
wrote:

> Invoice, and invoice item
> - Invoice item is changed, which changes a total on the invoice
> both are locked to other users, until the transaction is completed.
>
> On Fri, 14 Oct 2016 16:49:10 +0200, Arnaud de Montard wrote:
> >
> >> Le 14 oct. 2016 à 16:11, Chip Scheide <4d_o...@pghrepository.org> a
> >> écrit :
> >>
> >> yes.
> >> But then :
> >> - if the 1 user changed a value, everyone probably needs to know that
> >> the record is being modified and whatever value(s) are displayed may
> >> not be correct.
>

-- 
Kirk Brooks
San Francisco, CA
===
**
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: HTML Tag Mismatch Finder!

2016-10-14 Thread Timothy Penner
Hi,


Have you tried ATOM ?
https://atom.io/ 

With the 4D Tags package from Miyako:
https://atom.io/packages/language-4dtag 

4D TAGS language support in Atom
Based on language-html, with added support for 4D tags, dollar syntax, 
French/English controls, :C and :K notation.



-Tim




-Original Message-
From: 4D_Tech [mailto:4d_tech-boun...@lists.4d.com] On Behalf Of Sujit Shah
Sent: Friday, October 14, 2016 2:15 AM
To: 4D iNug Technical
Subject: Re: HTML Tag Mismatch Finder!

On Fri, Oct 14, 2016 at 6:42 PM, Epperlein, Lutz (agendo) < 
lutz.epperl...@agendo.de> wrote:

> We use a full-fledged development environment: WebStorm by Jetbrains.
> There are many inspector services among others for html too.
> Embedded 4D Tags are html comments simply.
>
> Regards
> Lutz
>

I have seen some validators get confused by the 4D Tags thats why I ask.

I want to be able to collapse and expand the tree..
**
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: Listbox cell - On Data Change - how to tell old and new values?

2016-10-14 Thread Arnaud de Montard

> Le 14 oct. 2016 à 16:57, Chip Scheide <4d_o...@pghrepository.org> a écrit :
> 
> start transaction
> modify record
> cancel/validate transaction

user driven transaction…


-- 
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
**

Re: Listbox cell - On Data Change - how to tell old and new values?

2016-10-14 Thread Arnaud de Montard

> Le 14 oct. 2016 à 16:11, Chip Scheide <4d_o...@pghrepository.org> a écrit :
> 
> yes.
> But then :
> - if the 1 user changed a value, everyone probably needs to know that 
> the record is being modified and whatever value(s) are displayed may 
> not be correct.

I've tried earlier, it seems the trigger is fired _before_ the on data change 
event. It was v12.6, but if it's the same in recent versions, good luck to undo 
anything… 

-- 

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
**

Re: Listbox cell - On Data Change - how to tell old and new values?

2016-10-14 Thread Chip Scheide
LOL

On Fri, 14 Oct 2016 07:35:22 -0700, Kirk Brooks wrote:
> Chip,
> That's one of the places where management comes into play with programming.
> My experiences have been there's no joy in attempting to program in
> management's assumptions of user behavior. Happens to me frequently:
> 
> boss: "set it up so this and that are required for saving this sort of
> record. No exceptions!"
> 
> me: "OK."
> 
>   -- the day these changes go live --
> 
> boss: "Why can't I save this record?"
> 
> me: "Because this and that isn't fully entered."
> 
> boss: "But we need to override that sometimes."
> 
> me: "Ok, but you said 'no exceptions.'"
> 
> boss: "this isn't an exception it's an override."
> 
> me: "I didn't think of that."
> 
> ​Apologies to Scott Adams.
> ​
> 
> I don't want to have to care about what management thinks it's doing. So I
> tend to let such conditions be controlled by a preference management can
> set and write the code to work regardless of which is chosen.
> 
> In the case you describe management can rail about completing data entry
> quickly all they want and that won't prevent someone from starting a
> transaction and getting distracted. In a case where those data are really
> critical I'd not let any user lock the record but collect proposed changes
> in variables, submit the variables for saving and do the validation and
> error checking. If it's all good then load the record and write the
> changes.
> 
> On Fri, Oct 14, 2016 at 7:11 AM, Chip Scheide <4d_o...@pghrepository.org>
> wrote:
> 
>> yes.
>> But then :
>> - if the 1 user changed a value, everyone probably needs to know that
>> the record is being modified and whatever value(s) are displayed may
>> not be correct.
>> - if the 'touch' (in code) is only a lookup - Read Only is your friend
>> :)
>> - users learn to finish, after being  yelled at 
>> told a few times to complete what they were doing  :)
>> 
>> On Fri, 14 Oct 2016 04:20:58 -0700, Kirk Brooks wrote:
>>> The problem with starting transactions
>>> from an input form in such a way that they are finished by user action
>>> (enter or cancel) is everything you 'touch' within the transaction gets
>>> locked until the user is done.
>> **
>> 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
> ===
> **
> 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: Listbox cell - On Data Change - how to tell old and new values?

2016-10-14 Thread Kirk Brooks
Chip,
That's one of the places where management comes into play with programming.
My experiences have been there's no joy in attempting to program in
management's assumptions of user behavior. Happens to me frequently:

boss: "set it up so this and that are required for saving this sort of
record. No exceptions!"

me: "OK."

  -- the day these changes go live --

boss: "Why can't I save this record?"

me: "Because this and that isn't fully entered."

boss: "But we need to override that sometimes."

me: "Ok, but you said 'no exceptions.'"

boss: "this isn't an exception it's an override."

me: "I didn't think of that."

​Apologies to Scott Adams.
​

I don't want to have to care about what management thinks it's doing. So I
tend to let such conditions be controlled by a preference management can
set and write the code to work regardless of which is chosen.

In the case you describe management can rail about completing data entry
quickly all they want and that won't prevent someone from starting a
transaction and getting distracted. In a case where those data are really
critical I'd not let any user lock the record but collect proposed changes
in variables, submit the variables for saving and do the validation and
error checking. If it's all good then load the record and write the
changes.

On Fri, Oct 14, 2016 at 7:11 AM, Chip Scheide <4d_o...@pghrepository.org>
wrote:

> yes.
> But then :
> - if the 1 user changed a value, everyone probably needs to know that
> the record is being modified and whatever value(s) are displayed may
> not be correct.
> - if the 'touch' (in code) is only a lookup - Read Only is your friend
> :)
> - users learn to finish, after being  yelled at 
> told a few times to complete what they were doing  :)
>
> On Fri, 14 Oct 2016 04:20:58 -0700, Kirk Brooks wrote:
> > The problem with starting transactions
> > from an input form in such a way that they are finished by user action
> > (enter or cancel) is everything you 'touch' within the transaction gets
> > locked until the user is done.
> **
> 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
===
**
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: How to resize PNG images for button icons

2016-10-14 Thread Chip Scheide
Thanks John

On Thu, 13 Oct 2016 19:19:27 -0500, John DeSoi wrote:
> I posted this method a while back which does not use SVG commands.
> 
> http://kb.4d.com/resources/inug?msgid=GmailId145b02d07486aa50
> 
> 
> John DeSoi, Ph.D.
> 
>> On Oct 13, 2016, at 4:14 PM, Chip Scheide 
>> <4d_o...@pghrepository.org> wrote:
>> 
>> I have one problem with this code
>> SVG_SET_BRIGHTNESS
>> 
>> This command does not seem to be part of the 4DSVG component (v13)
>> anyone have a replacement command(s)
> 
> **
> 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: Sharepoint vs 4D...

2016-10-14 Thread bob . miller
Robert,

Sharepoint is a Microsoft product that provides document storage and 
collaboration using a web-bsed "template".  It integrates closely with MS 
Office, so its strength is document management and storage.  One can 
choose one of many templates, such as a simple library or a sophisticated 
workflow to collect signatures in an approval cycle.  It is almost 
impossible for me to compare with 4D, as there is little commonality; 
while it is possible to create some "logic" in Sharepoint, it is really 
only for workflow.  Also, there is not really a concept of a data element 
in Sharepoint, as the basic unit is a document.  Having said that, you can 
collect document metadata, such as approval levels, revision level, etc., 
but it is not a development environment in the sense of 4D.  You can add 
on to Sharepoint using javascript and you can make a SOAP call, but I've 
never done this.

I think of Sharepoint as a sophisticated file cabinet, while 4D is more 
like a set of legos with a database back end.  Hard to compare things that 
are so completely different.  Unless the 4D database the client is talking 
about is document-centric, there's little you could do in Sharepoint to 
mimic 4D functionality.  But of course that depends on the application.

There's tons of stuff on the web about Sharepoint, start with Wikipedia.

Good luck - sounds like the customer is a little daft and needs some 
guidance --


Bob Miller
Chomerics, a division of Parker Hannifin Corporation



**
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: ​HTML Tag Mismatch Finder!

2016-10-14 Thread steve simpson
On Thu, Oct 13, 2016 at 11:00 PM,
​
​
Sujit Shah  wrote:
>
>
> Is there a magic tool that can find a mismatched tag in several hundred
> lines of HTML Code?
>
> One which can work with embedded 4D Tags??
>

​https://www.htmlvalidator.com/​


Steve Simpson
​Cimarron Software
**
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: Sharepoint vs 4D

2016-10-14 Thread David Samson
Hello Robert,

I found this which appears to be fair comparison.

https://msdn.microsoft.com/en-us/library/ff647105.aspx

David


> I have client that wants to rewrite an old 4D database from scratch. At
> least one member on the board is pushing for us to consider Sharepoint or
> another non-4D approach. I know very little about SP. I'm told it's like a
> glorified excel spreadsheet Any particular points I should keep in mind
> as I defend 4D?
>
> Thanks,
>
> Robert
>
>
-- 
D Samson
**
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: Listbox cell - On Data Change - how to tell old and new values?

2016-10-14 Thread Kirk Brooks
Keith,
You said this is for a selection based listbox so the command would be
Old([table]field).

I don't use a selection based listboxes if I need heavy validation pre or
post saving so I'm not sure how long you can count on modified changes NOT
being saved but I am certain OLD will work while you are editing that
specific field.

I prefer array based listboxes if I need to do a lot of validating or need
to be able to cancel extended entry. The problem with starting transactions
from an input form in such a way that they are finished by user action
(enter or cancel) is everything you 'touch' within the transaction gets
locked until the user is done. Which could be a long time.

On Thu, Oct 13, 2016 at 8:06 PM, Keith Goebel  wrote:

> Sorry everybody - I was thinking of the wrong thing when I replied (can
> you say alzheimer’s? :-)
> I still don’t know how to trap for the Old value and will try Douglas’s
> idea.
> Cheers, Keith
>

-- 
Kirk Brooks
San Francisco, CA
===
**
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: HTML Tag Mismatch Finder!

2016-10-14 Thread Epperlein, Lutz (agendo)
> I have seen some validators get confused by the 4D Tags thats why I ask.

I wouldn't call them validators if they get problems with html comments ... ;-)

> I want to be able to collapse and expand the tree..
Yes you can do that too.
But I'm fairly sure every html aware IDE or editor is able to do that.

Regards
Lutz
**
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: HTML Tag Mismatch Finder!

2016-10-14 Thread Sujit Shah
On Fri, Oct 14, 2016 at 6:42 PM, Epperlein, Lutz (agendo) <
lutz.epperl...@agendo.de> wrote:

> We use a full-fledged development environment: WebStorm by Jetbrains.
> There are many inspector services among others for html too.
> Embedded 4D Tags are html comments simply.
>
> Regards
> Lutz
>

I have seen some validators get confused by the 4D Tags thats why I ask.

I want to be able to collapse and expand the tree..
**
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: How to resize PNG images for button icons

2016-10-14 Thread Arnaud de Montard

> Le 14 oct. 2016 à 01:02, Wayne Stewart  a écrit :
> 
> Hi,
> 
> For those that went to the world tour last year there was a php
> example written by Angelo Caroprese.

Posted on 4DBB a few days ago:


-- 
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
**

Re: Sharepoint vs 4D...

2016-10-14 Thread Balinder Walia
Robert,

SharePoint is Document Management System which can be linked with MS Office
Apps. It has it's own storage and I think it using SQL. It high
configurable but still SharePoint is not a tool for writing Business
Database Applications on it's own.

Be upfront and tell them that many have tried this kind of approach before
and end up spending a lot companies money and get no where or half way
through. Also it depends on what DB does if it can be redone it SP or not.
First question is find out why they want move to SP? What do they not like
about 4D? Perhaps if you can purpose to solve that problem itself they
might consider it.

If they still want to let them try and waste money and come back to you in
few years time.

Balinder

On 14 October 2016 at 02:19, Robert ListMail  wrote:

> I have client that wants to rewrite an old 4D database from scratch. At
> least one member on the board is pushing for us to consider Sharepoint or
> another non-4D approach. I know very little about SP. I'm told it's like a
> glorified excel spreadsheet Any particular points I should keep in mind
> as I defend 4D?
>
> Thanks,
>
> Robert
> **
> 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
**