Hi Brian,
Thanks for an ever full explanation of your solution. Multi-users are
not involved in this case so Tim's solution will work.
I had considered something along the lines of your Invoice Number panel
but was worried about circular links between the Payments panels and the
new Receipts panel.
The database was set up to replace someone else's scribbled figures &
notes in various notebooks. Not only did it replace that but we took
over the system from that other person so were not aware of all of the
demands. It has been running successfully for just over a year now
although it has been tweaked and had bits added to it as extra demands
were put on it. (I wonder how many other databases are re-thought after
April tax/audits summaries. :-) ).
I think under these circumstances, it is reasonable to reassess things
so will use Tim's solution for now but will redesign the payments panels
over the next few weeks.
Regards,
Michael
Brian Hancock wrote:
Hi Michael,
Although Tim's solution will work be aware that it is not multi-user
as described... If multple users run this report concurrently you
will have problems, as two set of record might simultaneously be
copied, or used in the report or deleted.
One way to make Tim's solution multi-user would be to create a unique
identifier for the report (eg use Ralph Alvy's Moment "function" or
similar, and then attach the identifier to each copied record, and use
that identifier for filtering and deleting records (delete your
temporary data after the report has finished).
As an alternative you might permanently create a record in a new panel
as a pointer to the sources for each Payment.
I had a similar problem which, due to initial poor design, I created
for myself. I had 4 very different Products, whose records were
created either before or after a Customer order was created. The
Products were so different that they each had their own panel and
subpanels to describe them. I also had an Orders panel, or I should
have had AN Order panel, but instead I had 4 different Order panels as
data links from the Product panel... It worked well, until the client
wanted to produce invoices directly from the system and to automate
the generation of an invoice number. Also the accounts dept wanted to
reconcile invoicing from this system to their accounting system every
day or two or three. Since the Invoice Number had initially been
generated in another system, all I need initially to do was to have it
as a field in each Order panel, but when it not only became the source
of the invoice number, and needed to be reconciled, my original design
was very flawed. Nonetheless despite this flaw it was working very
efficiently and reliably for the myriad of other functions it was
doing, and changing the basic nature of how it worked was potentially
going to be very disruptive.
By creating a new panel which kept the Invoice Number, Order ID, and
Source of the invoice (eg Product 1,2 3 or 4) and using 4 Panel links
to each of those separate Order panels, and using calculated fields to
pull data from the appropriate source Order Panel, I had a simple
means of collating all the invoicing information into one panel. The
trick however was to get it to create a unique invoice number and
populate it back to the correct source panel. To do this, I had
various panel and data links with Auto Creates on the Data Link, and
Keep-A-Totals, which forced a new record to be created in the Invoice
Panel, and its Invoice Number to be pulled back in the source Order
panel. In other words, when I created an order in one of the various
Order Panels, it automatically created an invoice record in the
Invoicing Panel, with a unique Invoice Number which appeared back in
the source Order Panel. It was then possible for the accounts
department to work solely with the Invoice Panel (which thru a menu
option stopped records being created through Panel Links if they
accidentally traversed the wrong link to view the source record) an
Exception List index allowed them to see new (or unreconciled) invoices.
The overhead of creating the separate record was not too great because
it happened without user involvement, and only had the bare real field
data to tie it back to its source record or for indexes for reports or
other processes. Multiple users to report on, or view that data. The
Order Panels in terms of the operators using those panels were
unchanged, except now they did not need to enter an invoice number.
So although using a temporary table to collect the data for a report
is one way, if you are ever likely to need multi-user reporting, then
instead of the complexity of that perhaps it could be more efficiently
implemented as permantently stored data, and be able for use in other
ways.
Regards
Brian
----- Original Message ----- From: "Tim Rude" <[EMAIL PROTECTED]>
To: "Dataperfect Users Discussion Group" <[email protected]>
Sent: Wednesday, May 02, 2007 12:59 AM
Subject: Re: [Dataperf] Totalling across Panels
Michael,
In order to be able to sort the report by the Receipt Number
(regardless of
which panel the payment record comes from), you're going to have to
first
combine the records into one panel. However, this doesn't mean that
you have
to permanently do this or abandon your database structure as you have it
now.
Create a new panel to hold temporary records. No user need ever see this
panel so it doesn't have to be pretty. Include on this panel all of the
fields you need to produce your report (i.e. Receipt Number, Name, Payer
Type [Advertiser or Subscriber], Amount, etc.). Create an index to
sort by
Receipt Number.
Then create a report based on this Temporary Panel that does the
following:
1) First delete all records (if any) in Temp Panel
2) Using virtual subreports, go through each of your two separate
Advertiser
and Subscriber panels and copy relevant fields from the records you
wish to
include in the report to records created in the Temp Panel
3) Generate the actual printed report from the records now in the
Temp Panel
4) Clean up Temp Panel by deleting all records from it (to conserve
database
size)
It will take a little fiddling to set it up, but once it's done the
user can
just run the report to complete the entire process seamlessly.
Tim Rude
----- Original Message ----- From: "Michael Iannantuoni"
<[EMAIL PROTECTED]>
To: "DataPerfect Users Discussion Group" <[email protected]>
Sent: Tuesday, May 01, 2007 6:41 AM
Subject: [Dataperf] Totalling across Panels
I have a database in which I have a Contacts panel which has Panel
Links
to two payment panels, one for Advertisers and one for Subscribers
(these are kept as separate panels because Advertiser & Subscriber
payments follow a different structure). Each payment in both sub panels
has a Receipt Number and I have indexes based on these Receipt Numbers
so that I can sort by Receipt Number and total payment from a given
Receipt Number up to the latest. This works fine within each sub panel
but what I would now like to do is set up a report to list in Receipt
Order & total payments across BOTH panels. ie to produce a list like
this:
*Receipt Name & Amount*
0221 Smith (Advertiser) £20
0222 Jones (Advertiser) £30
0223 Brown (Subscriber) £6
0224 Walker (Advertiser) £20
0225 Dexter (Subscriber) £6
Total: £82
Anyone any ideas on the best way to do this please?
TIA
Michael
----------------------------------------------------------------------------
----
_______________________________________________
Dataperf mailing list
[email protected]
http://lists.dataperfect.nl/mailman/listinfo/dataperf
_______________________________________________
Dataperf mailing list
[email protected]
http://lists.dataperfect.nl/mailman/listinfo/dataperf
_______________________________________________
Dataperf mailing list
[email protected]
http://lists.dataperfect.nl/mailman/listinfo/dataperf
_______________________________________________
Dataperf mailing list
[email protected]
http://lists.dataperfect.nl/mailman/listinfo/dataperf