For e.g. allowing a user to select the table(s) / column(s) he wants before generating the report based on those field(s) selected.
or is there any way to invoke Query Builder directly while running a form?
You can get the tables and columns from the sys-views user_tables and user_tab_columns. Use them to populate your LOV's, construct a sql-statement and execute it using dynamic sql. ("execute immediate" or the dbms_sql-package)