|
![]() |
#1 |
Moderator
|
Глянул в проект. По-моему всё-таки попахивает UNION, так как:
X++: qbdCustTransDebit.addRange(fieldnum(CustTrans, AmountCur)).value('>0'); qbdCustTransCredit.addRange(fieldnum(CustTrans, AmountCur)).value('<0'); |
|
![]() |
#2 |
Участник
|
имеется ввиду то что должны МЫ и НАМ, да и неважно как называется на самом деле...
|
|
![]() |
#3 |
Участник
|
Если как Gustav предложил не получиться, можно
1) Добавить на форму третий датасорс. 2) Снять результат с первого и воторого датасорса закинуть во временную таблицу. В качестве временной таблицы использовать табл переменную CustTrans только перед этим поставить setTmp() 3) Поставить кодом CustTrans.setTmp(); CustTrans.setTmpData(локал перем); Только редактировать в этой форме ничего не сможем и если кнопки будете на этой форме делать не расчитывайте на recId или см здесь Временная таблица.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#4 |
Administrator
|
Цитата:
Вы ж во временную табличку пихаете все записи (а значит их выбираете и вставляете) - а их сколько там? 500 тыс, 1 млн? А для вывода на экран выбираются только визуально видимые записи+15 вверх+15 вниз записей (точные цифры не помню - может не 15, а 30 - но порядок тот же). Причем - это кол-во не зависит от общего кол-ва записей в таблице. Так что - лучше в этой задаче не связываться со временными таблицами, а добить выборку из постоянных. Ну или отказаться от реализации задачи в том виде - в котором изначально хотелось.
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 10.10.2008 в 08:39. |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от sukhanchik
![]() Вы ж во временную табличку пихаете все записи (а значит их выбираете и вставляете) - а их сколько там? 500 тыс, 1 млн?
А для вывода на экран выбираются только визуально видимые записи+15 вверх+15 вниз записей (точные цифры не помню - может не 15, а 30 - но порядок тот же). Причем - это кол-во не зависит от общего кол-ва записей в таблице. X++: void clicked() { QueryRun queryRun; Table1 TableLoc; ; super(); queryRun = Table1_ds.queryRun(); TableLoc = queryRun.getNo(1); info(TableLoc.Field1); while (queryRun.next()) { TableLoc = queryRun.getNo(1); info(TableLoc.Field1); } }
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#6 |
Administrator
|
Да, но насколько я понимаю - данные хотя и будут отфильтрованы - но все равно (конечно в зависимости от фильтра) - их будет на порядок больше - чем визуально видно на экране - так?
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#7 |
Участник
|
Не уловил. Почему их будет на экране меньше, чем после снятия QueryRun?
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#8 |
Участник
|
Красивое решение нашлось при помощи Views и двух строк кода
![]() Всем спасибо! |
|