powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / DW Retrieve Rows
25 сообщений из 25, страница 1 из 1
DW Retrieve Rows
    #33674321
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Datawindow состоящее из 3 груп, в Trailer к группе 3 есть Grand Total и BelowMinimumFlag, который печатается только если Condition is true.
Нужен репорт киторый печатает из этого DW и печатает только те records где существует BelowminimumFlag.
Пыталась Rows > Filter, с такой же condition как и BelowMinimumFlag, но это не дало никаких records.
Mожет кто-то знает как я могу это сделать.
Спасибо Огромное всем за помощь,
Если нужно больше информации, я могу provide.

Лана
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33674825
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как выглядит твой фильтр?
Ты его ставиш в окне или в скрипте?
BelowminimumFlag это колонка из базы данных или компютед филд?
Если из базы данных, может ли она быть null?
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33675001
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты его ставиш в окне или в скрипте? в скрипте
BelowminimumFlag это колонка из базы данных или компютед филд? компютед филд
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33675002
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry,
я пробовала поставить филтр в скринте, не работало, сейчас фильтр в окне и всё тот же результат.

Спасибо за помощь
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33675509
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давай-ка исходник своего ДВ
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677144
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.давай-ка исходник своего ДВ

что такое "исходник"? я не знаю русскую тепминологию, простите.
я assume это SQL query для datawindow. Скажите если я не права.
Спасибо.


SELECT Inventory_level.oid,
Inventory_level.location_oid,
Inventory_level.item_oid,
Inventory_level.curr_level,
Alternate_item.alternate_item_oid,
Inventory_level.min_level,
Inventory_level.max_level,
Inventory_level.reserved_qty,
Inventory_level.Annual_Usage,
Inventory_level.Quarterly_Usage,
Inventory_level.Monthly_Usage,
Inventory_level.On_Order_Qty,
Inventory_level.On_Request_Qty,
Inventory_level.Purch_Lead_Time_Days,
Inventory_level.Calculation_Date,
Inventory_level.Recommended_Min_Level,
Inventory_level.Recommended_Max_Level,
Item_master.id,
"item_master_oid"=[item_master].[oid],
"item_master_description"=[Item_master].[description],
Location_master.location_id,
"location_description"=[Location_master].[description],
'item_type'=Left([code].[id],1),
"alternate_curr_level"=Inventory_level_1.curr_level,
"alternate_min_level"=Inventory_level_1.min_level,
"alternate_location"=Inventory_level_1.location_oid,
"alternate_oid"=Inventory_level_1.item_oid,
"owner"=[Generic_company].[Description],
"alternate_id"=Item_master_1.id
FROM (((((((Inventory_level INNER JOIN Location_master ON Inventory_level.location_oid = Location_master.oid) INNER JOIN Item_master ON Inventory_level.item_oid = Item_master.oid) INNER JOIN Code ON Item_master.type_oid = Code.Oid) LEFT JOIN Alternate_item ON Inventory_level.item_oid = Alternate_item.item_oid) LEFT JOIN Inventory_level AS Inventory_level_1 ON Alternate_item.alternate_item_oid = Inventory_level_1.item_oid) LEFT JOIN Location_master AS Location_master_1 ON Inventory_level_1.location_oid = Location_master_1.oid) LEFT JOIN Generic_company ON Inventory_level.owner_oid = Generic_company.oid) LEFT JOIN Item_master AS Item_master_1 ON Alternate_item.alternate_item_oid = Item_master_1.oid
WHERE
Inventory_level.curr_level<=[inventory_level].[min_level] AND
isnull(Inventory_level.min_level,0) > 0
and (Inventory_level_1.location_oid=[Inventory_level].[Location_oid] Or (Inventory_level_1.location_oid) Is Null)
union

SELECT Inventory_level.oid,
Inventory_level.location_oid,
Inventory_level.item_oid,
Inventory_level.curr_level,
Alternate_item.alternate_item_oid,
Inventory_level.min_level,
Inventory_level.max_level,
Inventory_level.reserved_qty,
Inventory_level.Annual_Usage,
Inventory_level.Quarterly_Usage,
Inventory_level.Monthly_Usage,
Inventory_level.On_Order_Qty,
Inventory_level.On_Request_Qty,
Inventory_level.Purch_Lead_Time_Days,
Inventory_level.Calculation_Date,
Inventory_level.Recommended_Min_Level,
Inventory_level.Recommended_Max_Level,
Item_master.id,
"item_master_oid"=[item_master].[oid],
"item_master_description"=[Item_master].[description],
Location_master.location_id,
"location_description"=[Location_master].[description],
'item_type'=Left([code].[id],1),
"alternate_curr_level"=0,
"alternate_min_level"=0,
"alternate_location"="",
"alternate_oid"=0,
"owner"=[Generic_company].[Description],
"alternate_id"=""
FROM (((((((Inventory_level INNER JOIN Location_master ON Inventory_level.location_oid = Location_master.oid) INNER JOIN Item_master ON Inventory_level.item_oid = Item_master.oid) INNER JOIN Code ON Item_master.type_oid = Code.Oid) LEFT JOIN Alternate_item ON Inventory_level.item_oid = Alternate_item.item_oid) LEFT JOIN Inventory_level AS Inventory_level_1 ON Alternate_item.alternate_item_oid = Inventory_level_1.item_oid) LEFT JOIN Location_master AS Location_master_1 ON Inventory_level_1.location_oid = Location_master_1.oid) LEFT JOIN Generic_company ON Inventory_level.owner_oid = Generic_company.oid) LEFT JOIN Item_master AS Item_master_1 ON Alternate_item.alternate_item_oid = Item_master_1.oid
WHERE
Inventory_level.curr_level<=[inventory_level].[min_level] AND
isnull(Inventory_level.min_level,0) > 0

and Inventory_level.item_oid not in
(SELECT Inventory_level.item_oid
FROM (((((((Inventory_level INNER JOIN Location_master ON Inventory_level.location_oid = Location_master.oid) INNER JOIN Item_master ON Inventory_level.item_oid = Item_master.oid) INNER JOIN Code ON Item_master.type_oid = Code.Oid) LEFT JOIN Alternate_item ON Inventory_level.item_oid = Alternate_item.item_oid) LEFT JOIN Inventory_level AS Inventory_level_1 ON Alternate_item.alternate_item_oid = Inventory_level_1.item_oid) LEFT JOIN Location_master AS Location_master_1 ON Inventory_level_1.location_oid = Location_master_1.oid) LEFT JOIN Generic_company ON Inventory_level.owner_oid = Generic_company.oid) LEFT JOIN Item_master AS Item_master_1 ON Alternate_item.alternate_item_oid = Item_master_1.oid
WHERE
Inventory_level.curr_level<=[inventory_level].[min_level] AND
isnull(Inventory_level.min_level,0) > 0
AND (Inventory_level_1.location_oid=[Inventory_level].[Location_oid] Or (Inventory_level_1.location_oid) Is Null )
)
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677370
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, имелось в виду, сделать экспорт DW и приложить полученный файл к сообщению в форум (см. поле "Приложить файл (максимальный размер 70Kb)" снизу кнопки "Опубликовать")
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677526
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за пояснение...
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677527
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677742
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй, только сделай импорт в библиотеку выше (в library list) чем та в которой находитса твой репорт, или сохрани свой репорт где нибудь в сторонке.

Если то, что надо, дай знать, нет, будем думать.
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677794
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тот же результат, не даёт никаких рекордс.
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677809
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю что я пропустила что-то.
я rename the file, then import.
Что то ещё я донжна делать, я не могу наити этот репорт.
пожалуйста disregard прошлый ответ.

Спасибо большое за помощь,
Лана
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677815
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ренэйм не надо надо:
сделай импорт в библиотеку выше (в library list) чем та в которой находитса твой репорт

если не то, потом просто делит его из "верхней" библиотеки
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677817
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Do I have to recompile, then I will be able to see it in the library?
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677819
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voronkренэйм не надо надо:
сделай импорт в библиотеку выше (в library list) чем та в которой находитса твой репорт

U menia net nichego vishe чем та в которой находитса репорт,
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677851
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открой файл dw_inventory_level_below_min_rpt.srd в Notepad.
Первая строка выглядит так:
Код: plaintext
$PBExportHeader$dw_inventory_level_below_min_rpt.srd
Замени в ней текст dw_inventory_level_below_min_rpt на dw_test . Сохрани измененый srd. Импортируй измененный srd. Получишь dw_test .
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677863
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не изменилось (кроме хидден details).
Мне нужны только рекордс где Belowminimum Flag is True
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33677892
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Твой флаг "belowminimumflag" имеет експрешн:
if ( (min_level > grand_total and on_order_qty =0 and on_request_qty =0), "BELOW MINIMUM", "")

на базе этой експрешн, я сделал кондицию для всех колонок в детэйл бэнд:
if ( (min_level > grand_total and on_order_qty =0 and on_request_qty =0), 1, 0)

т.е.
если кондиция выполняетса, они должны быть видны, если нет, то нет.

так же в пропэрти -> позишн этих же колонок SlideUp = DirectlyAbove и AutosizeHeight = Yes

Детайл бэнд AutosizeHeight = Yes и Height = 2

Должно работать.

Is Expression Ok?
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33679982
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я должна добавить такие же кондишн ко всем филдс в хеадер груп, мне нужно чтобы показались только те группы где Белоуминимум флаг кондишн тру.

спасибо за помощь
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33680131
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда есть ешё вариант, пусть твои клиенты видят, в dw_1 - то что они видят.
Когда захотят распечатать, сделай другой ретрив только тех рекордов которые они хотят распечатать в dw_2 и распечатай им оттуда.

Хотя я думаю твои отпринтованные totals будут не те которые они видят на экране.
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33680189
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю что это оптимальный вариант, с dw_2, потому что мне нужны 2 варианта, или распечатать все или только те где Belowminimum flag is true.
Теперь проблема как это написать.
я очень извиняюсь, но я совсем начинающий PowerBuilder programmer ( я не профессор, я только учусь :))
я буду очень благодарна если вы мне поможете.

Спасибо большое,
Лана
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33680425
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в каком смысле "как это написать"?
у тебя уже всё есть.
делаеш ещё один репорт, а точнее сохраняеш твой "dw_inventory_level_below_min_rpt" под другим именем, "dw_inventory_level_below_min_print_rpt" например.
меняеш его селект на тот, что тебе нужен (модифицыруеш where clause), ну и там потчисти его на своё усмотрение, тебе уже кондиции не нужны.

добавляеш новое datawindow к себе в window из которого смотриш, а потом будеш печатать репорт, называеш его dw_print например.

аргументы ретрива для dw_1 делаеш инстанс а не локал, они тебе понадобятса в ue_print или print ивенте я уже не знаю где там и как у тебя.

ну и дальше, в этом самом ивенте:
сначала оверрайт ансестор скрипт, если он там есть, а потом, что-то типа:

// Over ...
long l_row

IF dw_1.RowCount() < 1 THEN
RETURN
END IF

dw_print.dataobject = ''

IF dw_1.dataobject = 'dw_inventory_level_below_min_rpt' THEN
dw_print.dataobject = 'dw_inventory_level_below_min_print_rpt'
dw_print.SetTransObject (sqlca)//или что там у тебя ...
l_row = dw_print.Retrieve(i_arg_1, i_arg_2 ну и т.д.)
END IF

IF l_row > 0 THEN
dw_print.Print(false)
END IF
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33680474
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я извиняюсь, я может что-то не понимаю....
я уже пыталась это тоже делать, но поскольку все Calculations сделаны в датавиндоу, а не в SQL script, как я могу помненять SQL?

sorry и спасибо за помощь ещё раз.
Лана
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33680525
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй для первого юниона
select ...,
"alternate_id"=Item_master_1.id,
"flag" = case when min_level > grand_total and on_order_qty =0 and on_request_qty =0 then 1 else 0 end
FROM бла-бла-бла
WHERE "flag" = 1 and
бла-бла-бла ....

или
select ...,
"alternate_id"=Item_master_1.idFROM бла-бла-бла
WHERE (min_level > grand_total and on_order_qty =0 and on_request_qty =0) and
бла-бла-бла ...

ну и если получитса, поправь второй юнион тоже
...
Рейтинг: 0 / 0
DW Retrieve Rows
    #33680916
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наконец-то, заработало.

Всё что требовалось, поставить филтер статемент после ретрив.
Может это лишний степ, но работает, finally,
спасибо огромное за помощь,

Лана
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / DW Retrieve Rows
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]