Superset charts customization (and column names) - apache-superset

Would like to know if I understand the following correctly:
In order to customize charts we can use CSS templates
with JSON I can only work with data and connection (so if I want to customize something it's only with CSS)
If I want custom charts I should dive in echarts/preset/custom viz via npm yo etc.
Can I do a dynamic column name based on parameter (like in tableau for example) (so if I choose "%" column name be like "%_of_money" and "number" => "number_of_money")?

For dynamic columns i think you could create the columns as metrics. Refer to tutorial on this blog.
https://preset.io/blog/understanding-superset-semantic-layer/

Related

How to change a database name in a query via a URL in power bi

i am trying to change my database name in my advanced editor query in power bi. I know i can create parameters with in the power bi desktop app and pass the different database with in it. I have done this and it works fine.
But what i am trying to do is when i give a user a link for example
https://app.powerbi.com/groups/me/reports/DataSource="PowerBi_1"
how do i get the datasource name which is "PowerBi_1" and pass it into my advanced editor query which looks as follows
let
Source = Sql.Database(".", "PowerBi_2", [Query="select *#(lf)from Customer"])
in
Source
so i want to replace the Powerbi_2 with PowerBi_1
is this possible?
I tried searching and the only things i could find was to add parameters from "manage parameters" which i can already do. But i need it to be passed from the URL and automatically change the data source instead of manually changing it via "edit parameters"
i know you can use filter in your URL as https://app.powerbi.com/groups/me/reports/12345678-6418-4b47-ac7c-f8ac7791a0a7?filter=Customer/PostalCode eq '15012'
but this would only work on datasets. im not sure how to do this for a database change in a query
The only thing you could try is if you have a direct query and use the new feature of binding query parameters.
https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-dynamic-m-query-parameters
Then you can set a filter with url to point to the database you need. Not sure how it would work - haven't tried it myself.
To expand on the idea a bit - you would need a table with database names in it. Then you would bind database column of that table to your query parameter and finally, use your url to set appropriate filter on this new table.
EDIT:
Scratch that, in the article I linked to, it says that direct query T-SQL is not supported. But if they were ;)...

How to create multiple numbers of fields based on the value in one number field in Oracle Apex form?

I am working on a form in which I need to take numeric value from one field and based on that number(n) I need to create n fields for another column. How can I do so?
Probably you can use APEX_ITEM API if I understand your task right:
https://docs.oracle.com/en/database/oracle/application-express/19.2/aeapi/APEX_ITEM.html
Something like this:
SELECT APEX_ITEM.TEXT(rownum)
FROM DUAL
CONNECT BY rownum < :YOUR_ITEM;
You will not be able to create n page items in a declarative way. APEX simply wasn't made for this.
I can think of two workarounds:
Use a plsql dynamic content region to generate html with the apex_item package just like Ivan Dubashinskii suggested. You will need to submit the page in order to have the region re-generate your page items when the amount n is changed. There are some downsides to this approach, as for example it won't be that simple to use your page items in a page process.
Just limit your page items to some number, like 10. Then, create 10 page items in a declarative way and use dynamic actions to show/hide them when n changes. This way, it will also be much easier to use your items in a page procress.

Oracle APEX - Reusable Pages?

We have some tables in our database that all have the same attributes but the table is named differently for each. I'm not sure of the Architect's original intent in creating them in this way, but this is what I have to work with.
My question for all the expert Oracle APEX developers: is there away to create a reusable page that I can pass the table name to and that table name would be used in the reporting region and DML processing of that page?
I've read up on templates and plugins and don't see a path forward with those options. Of course, I'm new to webdevelopment, so forgive my ignorance.
We are using version 18.2.
Thanks,
Brian
For reporting purposes, you could use a source which is a function that returns a query (i.e. a SELECT statement). Doing so, you'd dynamically decide which table to select from.
However, DML isn't that simple. Instead of default row processing, you should write your own process(es) so that you'd insert/update/delete rows in the right table. I've never done that, but I'd say that it is possible. Basically, you'd keep all logic in the database (for example, a package) and call those procedures from your Apex application.
You could have multiple regions on one page; one region per table. Then use dynamic actions to show/hide the regions and run the select query based on a table name selected by the user.
Select table name from a dropdown or list
Show the region that matches the table name (dynamic action)
Hide the any other regions that are visible (dynamic action)
Refresh the selected region so the data loads (dynamic action)
If that idea works let me know and I can provide a bit more guidance.
I never tried it with reports, but would it work to put all three reports in a single page, and set them via an Item to have Server-Side Conditions that decide what gets shown in the page? You'd likely need separate items with a determined value for the page to recognize and display.
I know I did that to set buttons such as Delete, Save and Create dynamically, rather than creating two or more separate pages for handling editing of certain information. In this case it regarded which buttons to shown based on a reports' primary key being sent to said "Edit" page. If the value was empty, it meant you wanted to create a new record (also because the create button/link sent no PK). If said PK was sent (via a edit button/link), then you'd have the page recognize it and hide the create button and rather show the edit button.

APEX 5: Make a report cell clickable and pass values

Just got started on APEX 5 and can't seem to figure out how to make cells in an Interactive Report clickable. What I'm trying to achieve is something like this:
Let's say I have a report on Page 1:
I want to be able to click on any cell in Column 2 and 3, and it should open a new page and show a list of items that made up that number, something like this:
I understand how dynamic actions work and how I can pass values but I just can't figure out how I can hyperlink or make the cells clickable, to set up any dynamic actions.
You can make the Column Type a Link and under Link Attributes, define the target page and set the items or filter report accordingly. You can have the Link Text as #COLUMN_NAME#.
I think you will find this post useful
http://www.grassroots-oracle.com/2015/12/tutorial-include-action-button-in-report.html
but most of the time you should start with a very declarative looking link builder, once you change the column Type to "Link"

Coloring Line in Table in Superset

Is it possible to color a line in a table view in the Dashboard based on the content of the table?
For example: In a list of Salesmen highlight in red all salesman with more than $200,000 of sales in the last month.
I don't believe this is something you can currently do off-the-shelf - but this is something you could probably hack together by adding some custom js and css:
Create your own override.js and override.css to implement something similar to what's described in Changing background cell of table depending on value
Add your css and js files to /superset/templates/superset/basic.html
Rebuild / restart your superset server (see https://superset.incubator.apache.org/installation.html#making-your-own-build)