filling a grid with from two different record (table) sources - peoplesoft

I was wondering if there is any way to populate a table using two different records. My records have the same primary keys, but when I am adding the specific fields to my grid I have this error:
More than one data (key) in one scroll.
I tried to make a Control view field in my primary record, and then refer the new record fields as relative fields but in this case the data is not populating in my grid. Any help or hint will be much appreciated.

I've only done this where the 2nd record is a Derived/Work record.
Can you create a view that combines both records, and put the view in the grid? FYI, peoplesoft let's you update the data in a view, which is not typical in an oracle db system.

Ok guys finally after all discussion, and much try rounds I figured out how to do this.
You need to add a draw a grid beside your old grid and populate it with a new record, which has dynamic view (dynamic sql). The only important case there, is you need to make sure the order of your fields in your records, are in the same order of your fields in the SELECT statement of your sql. Otherwise you will see
an SQL error
.

Try to make a field as display control field which is acting as primary key for its native table and as Foreign key for some other record.. A field needs to be made related if is being fetched from some other record... that is from the record which is not under current consideration. I think this way one can fetch data into grid or scroll respectively from multiple records.

Related

How to sort a table for which its datasource is a relation

I have a Page with a Table for which its datasource is a relation and needs to be sorted based on fields from another model:
Page
Datasource = Indicators
Table
Datasource = Indicators [one] : MetadataText [many] (relation)
The Table needs to be sorted based on a field from another Model called MetadataField, which has a one to many relation with MetadataText.
I have the datasource of MetadataField sorted. But the content in the Table appears in random order. When I first access the application, the Table is sorted by the order that the records were loaded. After view some records, the sorting of the records changes and keeps changing.
I am using Google Drive tables.
You can easily sort related records by one of the fields that belong to the related record itself, but only once (you'll received those records sorted from server).
But it seems, that you want to sort related records by their related record. App Maker will not be your friend in this case... but javascript will be! Since App Maker loads all related records you can safely sort them on client using javascript:
indicatorsDatasource.load(function() {
indicatorsDatasource.items.forEach(function(indicator) {
indicator.MetadataTexts.sort(function(a, b) {
return /* here goes your sorting logic */;
});
});
});
It will work in O(n * m * log(m)) in case you have n Indicators on the page and every indicator has m associated MetadataTexts. If you want to let users to sort related records by clicking table's header, you'll need to implement that logic on your own. So... all this hassle leads us to alternative solution! What if we decouple related records and introduce separated datasource for them? Having that you'll be able to use full power of App Maker's tables (sorting/paging) with almost no effort. You can take a look at implementation sample in Project Tracker template ViewProject page.

Does Axapta 4.0 have a functionality to map data between different tables

I have two tables Cashdisc and Convertterm, Does axapta have a functionality where Convertterm.code can be related to CashDisc.Code so that whenever converterm.code changes it can be updated in CashDisc.Code.
Yes. I think you're referring to a table relation.
If you want a table to update another table, you can do that through code, but I think you're talking about how the table naturally functions with table relations.
See here https://msdn.microsoft.com/en-us/library/bb190076(v=ax.10).aspx
You need to write custom code on Convertterm update method after super to update the Cashdisc table.
If you create table relation in child table and if you set validate property to yes, then you can restrict child data creation without a parent record.

How to 'bind' query to a grid, in Axapta?

How can i bind a 'complex' query with, for example, 3 joined table to a grid in Axapta ? For 'bind' i intend: show in a grid a list of field in the resulted query ?
If complex then make a query, then drag the query and drop on the Data Sources node.
The joined tables (maybe exclusive exists joined tables) are automatically created for you.
You may then change the nodes.
Any grid should address the first datasource. You drag the grid fields from the created datasources Fields list.
You can do the same without the query using multiple datasources provided proper relations are defined and you use LinkType InnerJoin and JoinSource the first datasource.
See Creating a Form Based on a Composite Query.

Deleting a Table Row with a Table View

I'm trying to image how can I delete a table row (core data or sqlite) using a Table View.
Well, I can do it with PHP using a hidden Id and then, looking for the matching Id in the data table to delete it.
In C# with the Entity Framework I can delete a table row with a simple DeleteObject instruction that will automatically remove it from the data table.
How can I do the same thing with iOS SDK? How can I tell the SDK to get the selected item id, find it in the data table and delete it?
Thank you,
Regards.
Use objectAtIndex:indexPath.row from within the didCommitEditingStyle method. This is assuming you have some sort of array that is being used to populate your TableView. This will return the object in your array that corresponds to the row that the user wishes to delete.

Edit a read-only view

I have a column and I would like to edit some of its rows. The problem is that the table is a view so I cannot edit the rows. How would I proceed to solve this problem?
SQLite doesn't let you update views. But it does allow triggers on views. So you can write an INSTEAD OF UPDATE trigger that makes the appropriate modifications to the underlying table.
As dan04 pointed out, you can use triggers to update views (like in most other databases). For sqlite, see http://www.sqlite.org/lang_createtrigger.html#instead_of_trigger
Example with a view called "myview", containing a table "my_t2"
CREATE TRIGGER myview_update INSTEAD OF UPDATE ON myview
BEGIN
UPDATE my_t2 SET field1 = new.field1, field2 = new.field2 WHERE my_t2.key = old.key;
END
If it's a view, it's not a table. The data for the view is drawn from one or more other tables. Edit the underlying table and when you examine the data in the view it will reflect the changes you made.
A SQL View is a virtual table, which is based on SQL SELECT query. Essentially a view is very close to a real database table (it has columns and rows just like a regular table), except for the fact that the real tables store data, while the views don’t. The view’s data is generated dynamically when the view is referenced. A view references one or more existing database tables or other views. In effect every view is a filter of the table data referenced in it and this filter can restrict both the columns and the rows of the referenced tables.
If you wish to modify the data in your table, you cannot do so with a view. SQL Views are always read-only. If you want to modify your table outside of the View, then use something like an UPDATE or ALTER TABLE statement.

Resources