Topic: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

Как можно из двух независимых БД Таблиц вывести данные в 1 TableGrid?

Post's attachments

Attachment icon einaus.rar 293.69 kb, 456 downloads since 2017-05-05 

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

Можно, поместите на форму кнопку с действием "SQL запрос"

SELECT
strftime('%d.%m.%Y', einnahmen.datum),  
einnahmen.summe
FROM einnahmen

UNION ALL

SELECT   
strftime('%d.%m.%Y', ausgaben.datum), 
ausgaben.summe   
FROM ausgaben  
Dmitry.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

DriveSoft wrote:

Можно, поместите на форму кнопку с действием "SQL запрос"

SELECT
strftime('%d.%m.%Y', einnahmen.datum),  
einnahmen.summe
FROM einnahmen

UNION ALL

SELECT   
strftime('%d.%m.%Y', ausgaben.datum), 
ausgaben.summe   
FROM ausgaben  

Спасибо! )

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

SELECT
strftime('%d.%m.%Y', workorder.adatum),  
'+'||workorder.azahlungen

FROM
workorder
   
UNION ALL 
        
SELECT                                 
strftime('%d.%m.%Y', ausgaben.ausdatum), 
'-'||ausgaben.aussumme                          

FROM
ausgaben

ORDER BY strftime('%d.%m.%Y', workorder.adatum) DESC 

А как можно вот это внедрить?

WHERE
workorder.adatum >= {dtFrom} AND workorder.adatum <= {dtTo}; 

Я надеялся что так будет работать, но меня послали. )

SELECT
strftime('%d.%m.%Y', workorder.adatum),  
'+'||workorder.azahlungen

FROM
workorder
   
UNION ALL 
        
SELECT                                 
strftime('%d.%m.%Y', ausgaben.ausdatum), 
'-'||ausgaben.aussumme                          

FROM
ausgaben

WHERE
workorder.adatum >= {dtFrom} AND workorder.adatum <= {dtTo}; 

ORDER BY strftime('%d.%m.%Y', workorder.adatum) DESC 

Что я делаю не так?

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

попробуйте так

SELECT
strftime('%d.%m.%Y', workorder.adatum),  
'+'||workorder.azahlungen

FROM
workorder

WHERE
workorder.adatum >= {dtFrom} AND workorder.adatum <= {dtTo}
   
UNION ALL 
        
SELECT                                 
strftime('%d.%m.%Y', ausgaben.ausdatum), 
'-'||ausgaben.aussumme                          

FROM
ausgaben

ORDER BY strftime('%d.%m.%Y', workorder.adatum) DESC 
Dmitry.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

DriveSoft wrote:

попробуйте так

SELECT
strftime('%d.%m.%Y', workorder.adatum),  
'+'||workorder.azahlungen

FROM
workorder

WHERE
workorder.adatum >= {dtFrom} AND workorder.adatum <= {dtTo}
   
UNION ALL 
        
SELECT                                 
strftime('%d.%m.%Y', ausgaben.ausdatum), 
'-'||ausgaben.aussumme                          

FROM
ausgaben

ORDER BY strftime('%d.%m.%Y', workorder.adatum) DESC 

Ура! Заработало! Спасибо огромное!!! )

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

Я как всегда делаю что то не так? )

procedure frmReport_tgBericht_OnChange (Sender: string);
begin
    frmReport.tgBericht.Columns[1].Footer.FormulaKind := fkSum;
    frmReport.tgBericht.CalculateFooter;
    frmReport.tgBericht.Columns[1].Footer.Caption := FormatFloat('0.#0', frmReport.tgBericht.Columns[1].Footer.FormulaValue);
end;


begin
     frmReport.tgBericht.Options := frmReport.tgBericht.Options + goFooter;
end.

Попытка ссумировть в Footer таблици провалилась. Видны только нули. (

Но потом я понял что мне мешают

 '+'|| 

плюсы. Есть ли какая то возможность суммировать выведенные данные в таблице но что бы и

 '+'|| 

остались на месте?

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

easyterm
Приложите пожалуйста ваш проект.

Dmitry.

9 (edited by easyterm 2017-05-12 11:15:11)

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

DriveSoft wrote:

easyterm
Приложите пожалуйста ваш проект.

Выслал на мыло. Pass:12345
Там в Form1 Кнопка "Bericht" и далее frmReport и кнопка "Zeigen" всё находится. )


Но я пока убрал 

'+'||

Было так

SELECT
strftime('%d.%m.%Y', workorder.adatum),  
'+'||workorder.azahlungen||' €'

FROM
workorder

WHERE
workorder.adatum >= {dtFrom} AND workorder.adatum <= {dtTo}
   
UNION ALL 
        
SELECT                                 
strftime('%d.%m.%Y', ausgaben.ausdatum), 
'-'||ausgaben.aussumme||' €'

FROM
ausgaben

ORDER BY strftime('%d.%m.%Y', workorder.adatum) DESC 
Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

easyterm
Попробуйте так

procedure frmReport_tgBericht_OnChange (Sender: string);
begin
    frmReport.tgBericht.Options := frmReport.tgBericht.Options + goFooter;
    TNxNumberColumn(frmReport.tgBericht.Columns[1]).TextAfter := ' €';
    frmReport.tgBericht.Columns[1].Footer.FormulaKind := fkSum;
    frmReport.tgBericht.CalculateFooter;
    frmReport.tgBericht.Columns[1].Footer.Caption := FormatFloat('0.#0', frmReport.tgBericht.Columns[1].Footer.FormulaValue);
end;
Dmitry.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

DriveSoft wrote:

easyterm
Попробуйте так

procedure frmReport_tgBericht_OnChange (Sender: string);
begin
    frmReport.tgBericht.Options := frmReport.tgBericht.Options + goFooter;
    TNxNumberColumn(frmReport.tgBericht.Columns[1]).TextAfter := ' €';
    frmReport.tgBericht.Columns[1].Footer.FormulaKind := fkSum;
    frmReport.tgBericht.CalculateFooter;
    frmReport.tgBericht.Columns[1].Footer.Caption := FormatFloat('0.#0', frmReport.tgBericht.Columns[1].Footer.FormulaValue);
end;

Заработало! Спасибо огромное!

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

Уважаемый easyterm!
Можете выложить свой проект для примера?

13 (edited by easyterm 2017-05-16 09:20:25)

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

jonibek wrote:

Уважаемый easyterm!
Можете выложить свой проект для примера?

Что то вроде этого.

Post's attachments

Attachment icon einaus.rar 294.77 kb, 408 downloads since 2017-05-16 

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

Но тут странная штука получается. )
На гифке видно.

Post's attachments

Attachment icon einaus.gif 1.1 mb, 303 downloads since 2017-05-16 

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

easyterm wrote:

Но тут странная штука получается. )
На гифке видно.

Уберите из скрипта строку

Form1.tgEinAus.Options := Form1.tgEinAus.Options + goFooter;

Чтобы появился футер, установите галочку в свойствах tgEinAus

Additional > Options > goFooter

Dmitry.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

DriveSoft wrote:
easyterm wrote:

Но тут странная штука получается. )
На гифке видно.

Уберите из скрипта строку

Form1.tgEinAus.Options := Form1.tgEinAus.Options + goFooter;

Чтобы появился футер, установите галочку в свойствах tgEinAus

Additional > Options > goFooter

Спасибо!


Я обновил прикрепленный файл...

Post's attachments

Attachment icon einaus.rar 294.77 kb, 404 downloads since 2017-05-16 

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

Что то то пошло не так, то ли это в новой версии так, толи я в прошлый раз пропустил. Программа перестала выдавать выборку по дате. Вот,  на гифке все проблемы. (((

Post's attachments

Attachment icon ScreenCapture_2017-11-16-20.30.21.gif 523.62 kb, 251 downloads since 2017-11-16 

Извиняюсь, я не программист но сильно стараюсь.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

У вас SQL запрос состоит из двух запросов, которые объединяются с помощью UNION ALL, но оператор WHERE присутствует только у первого запроса, в итоге получаете не фильтрованные данные от второго запроса, попробуйте так

SELECT
strftime('%d.%m.%Y', einnahmen.datum),  
'+'||einnahmen.summe

FROM
einnahmen

WHERE                          
einnahmen.datum >= {dtFrom} AND einnahmen.datum <= {dtTo}   

UNION ALL   
        
SELECT                                 
strftime('%d.%m.%Y', ausgaben.datum), 
'-'||ausgaben.summe                         

FROM
ausgaben
             
WHERE                          
ausgaben.datum >= {dtFrom} AND ausgaben.datum <= {dtTo}              
             
ORDER BY strftime('%d.%m.%Y', einnahmen.datum) DESC     
   
Dmitry.

Re: Можно ли из двух независимых БД Таблиц вывести данные в 1 TableGrid?

DriveSoft wrote:

У вас SQL запрос состоит из двух запросов, которые объединяются с помощью UNION ALL, но оператор WHERE присутствует только у первого запроса, в итоге получаете не фильтрованные данные от второго запроса, попробуйте так

SELECT
strftime('%d.%m.%Y', einnahmen.datum),  
'+'||einnahmen.summe

FROM
einnahmen

WHERE                          
einnahmen.datum >= {dtFrom} AND einnahmen.datum <= {dtTo}   

UNION ALL   
        
SELECT                                 
strftime('%d.%m.%Y', ausgaben.datum), 
'-'||ausgaben.summe                         

FROM
ausgaben
             
WHERE                          
ausgaben.datum >= {dtFrom} AND ausgaben.datum <= {dtTo}              
             
ORDER BY strftime('%d.%m.%Y', einnahmen.datum) DESC     
   

Спасибо! Это как раз то что нужно! )

Извиняюсь, я не программист но сильно стараюсь.