datagrid: open real query in case of error

This commit is contained in:
SPRINX0\prochazka
2025-02-13 15:47:55 +01:00
parent 23daa7a91c
commit 6ae536d035
3 changed files with 18 additions and 4 deletions

View File

@@ -710,6 +710,13 @@ export abstract class GridDisplay {
// return sql; // return sql;
} }
getPageQueryText(offset: number, count: number) {
const select = this.getPageQuery(offset, count);
const sql = treeToSql(this.driver, select, dumpSqlSelect);
return sql;
}
getExportQuery(postprocessSelect = null) { getExportQuery(postprocessSelect = null) {
const select = this.createSelect({ isExport: true }); const select = this.createSelect({ isExport: true });
if (!select) return null; if (!select) return null;

View File

@@ -462,6 +462,7 @@
export let tabControlHiddenTab = false; export let tabControlHiddenTab = false;
export let onCustomGridRefresh = null; export let onCustomGridRefresh = null;
export let onOpenQuery = null; export let onOpenQuery = null;
export let onOpenQueryOnError = null;
export let jslid; export let jslid;
// export let generalAllowSave = false; // export let generalAllowSave = false;
export let hideGridLeftColumn = false; export let hideGridLeftColumn = false;
@@ -1838,8 +1839,8 @@
<ErrorInfo message={errorMessage} alignTop /> <ErrorInfo message={errorMessage} alignTop />
<FormStyledButton value="Reset filter" on:click={() => display.clearFilters()} /> <FormStyledButton value="Reset filter" on:click={() => display.clearFilters()} />
<FormStyledButton value="Reset view" on:click={() => display.resetConfig()} /> <FormStyledButton value="Reset view" on:click={() => display.resetConfig()} />
{#if onOpenQuery} {#if onOpenQueryOnError ?? onOpenQuery}
<FormStyledButton value="Open Query" on:click={onOpenQuery} /> <FormStyledButton value="Open Query" on:click={onOpenQueryOnError ?? onOpenQuery} />
{/if} {/if}
</div> </div>
{:else if isDynamicStructure && isLoadedAll && grider?.rowCount == 0} {:else if isDynamicStructure && isLoadedAll && grider?.rowCount == 0}

View File

@@ -82,6 +82,7 @@
import LoadingDataGridCore from './LoadingDataGridCore.svelte'; import LoadingDataGridCore from './LoadingDataGridCore.svelte';
import hasPermission from '../utility/hasPermission'; import hasPermission from '../utility/hasPermission';
import { openImportExportTab } from '../utility/importExportTools'; import { openImportExportTab } from '../utility/importExportTools';
import { getIntSettingsValue } from '../settings/settingsTools';
export let conid; export let conid;
export let display; export let display;
@@ -147,7 +148,7 @@
// showModal(ImportExportModal, { initialValues }); // showModal(ImportExportModal, { initialValues });
} }
export function openQuery() { export function openQuery(sql?) {
openNewTab( openNewTab(
{ {
title: 'Query #', title: 'Query #',
@@ -162,11 +163,15 @@
}, },
}, },
{ {
editor: display.getExportQuery(), editor: sql ?? display.getExportQuery(),
} }
); );
} }
function openQueryOnError() {
openQuery(display.getPageQueryText(0, getIntSettingsValue('dataGrid.pageSize', 100, 5, 1000)));
}
export function openActiveChart() { export function openActiveChart() {
openNewTab( openNewTab(
{ {
@@ -241,4 +246,5 @@
{grider} {grider}
{display} {display}
onOpenQuery={openQuery} onOpenQuery={openQuery}
onOpenQueryOnError={openQueryOnError}
/> />