Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
26.11.2010, 14:24
|
|||
---|---|---|---|
|
|||
создание отчёта в Foxpro 6.0 |
|||
#18+
вот пытаюсь создать отчёт, который бы из определённой БД вытаскивал некие данные: таблицы из базы: umenurbs - меню-раскладки umenursp - блюда меню-раскладки umenurfd - Список продуктов блюда в меню-раскладке ufood - продукты питания всё делала по инструкции ( http://pascal.dnovo.ru/foxpro/glava8/index6.htm) схема связей таблиц (если важно) http://foto.nnov.ru/psh640/0/e3/14/b659e844cb80943c6bda884b.jpg создала отчёт с 2мя колонками (выражения для колонок m.y и m.x) застряла на коде, вот что написала: Procedure rp_calori5 Parameters nCallCode, oCaller, nProgram, X, Y If Type("nCallCode") # 'N' nCallCode = 0 Endif If m.nCallCode = 2 Return Endif do m .Y="" .X=0 Select Umenurbs_1.name as stol, round(sum(UFOOD_1.CALORI*UMENURFD.NETTO*10*(100-UMENURSP_1.CLOST)/100),3) as calori1 ; from UMENURFD ; left join UMENURSP as UMENURSP_1 on (UMENURFD.MASTER_RN = UMENURSP_1.RN) ; left join UMENURBS as UMENURBS_1 on (UMENURSP_1.MASTER_RN = UMENURBS_1.RN) ; left join UFOOD as UFOOD_1 on (UMENURFD.RN_FOOD = UFOOD_1.RN_FOOD) ; where (Umenurbs_1.date_doc = oSystem.date) ; GROUP BY UMENURBS_1.rn ; into cursor crCalori Report form e:\progi\rp_calori51.frx * [scope all] * [preview nowait] for i=1 to 15 do m .Y = crCalori.stol .X = crCalori.calori1 ENDPROC *___________________________________________________ точно знаю, что вот эта часть: Select Umenurbs_1.name as stol, round(sum(UFOOD_1.CALORI*UMENURFD.NETTO*10*(100-UMENURSP_1.CLOST)/100),3) as calori1 ; from UMENURFD ; left join UMENURSP as UMENURSP_1 on (UMENURFD.MASTER_RN = UMENURSP_1.RN) ; left join UMENURBS as UMENURBS_1 on (UMENURSP_1.MASTER_RN = UMENURBS_1.RN) ; left join UFOOD as UFOOD_1 on (UMENURFD.RN_FOOD = UFOOD_1.RN_FOOD) ; where (Umenurbs_1.date_doc = oSystem.date) ; GROUP BY UMENURBS_1.rn ; into cursor crCalori верна, т.к. в другом месте это работало и компилятор не ругается на эти строки. Проблема вот в чём: как вывести всё это на печать так и не поняла. наверно надо бы построчно писать "новая строка" в цикле, это ясно, но как не нашла... некоторые строки пришлось коментить потому что компилятор ругался на них. а при попытке запустить, меня выбрасывало из программы. Код не только недописан, в нём очевидно есть ошибки. Подскажите пожалуйста, что делать. P.S. nCallCode, oCaller, nProgram - параметры глобальные, чтоб не выбрасывало из программы, из которой я пытаюсь вызвать rp_calori5.app ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.11.2010, 12:52
|
|||
---|---|---|---|
создание отчёта в Foxpro 6.0 |
|||
#18+
alyssa, во-первых, сдается мне, не закончен цикл for-endfor. Во-вторых, нужно привести текст подпрограммы m, может, там что не так. Наконец, для полного счастья нужно бы переслать сюда кусок проекта (полностью автономный) с таблицами, формами, программами и пр., чтобы местные знатоки смогли разобраться, в чем дело, и виртуально вкусить, наконец, то, что подают нынче в уральских ресторанах. Таблицы можно уменьшить до нескольких записей в каждой. Кстати, первая ссылка упала. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.11.2010, 16:07
|
|||
---|---|---|---|
|
|||
создание отчёта в Foxpro 6.0 |
|||
#18+
alyssa Select Umenurbs_1.name as stol, round(sum(UFOOD_1.CALORI*UMENURFD.NETTO*10*(100-UMENURSP_1.CLOST)/100),3) as calori1 ; from UMENURFD ; left join UMENURSP as UMENURSP_1 on (UMENURFD.MASTER_RN = UMENURSP_1.RN) ; left join UMENURBS as UMENURBS_1 on (UMENURSP_1.MASTER_RN = UMENURBS_1.RN) ; left join UFOOD as UFOOD_1 on (UMENURFD.RN_FOOD = UFOOD_1.RN_FOOD) ; where (Umenurbs_1.date_doc = oSystem.date) ; GROUP BY UMENURBS_1.rn ; into cursor crCalori Report form e:\progi\rp_calori51.frx ... Проблема вот в чём: как вывести всё это на печать так и не поняла.И что непонятно? Что "это"? В процитированном первая команда создает курсор для отчета, вторая отчет формирует. Все остальное, особенно после процитированного, у отчету уже никакого отношения не имеет. Какие строки, какие циклы? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2010, 13:40
|
|||
---|---|---|---|
|
|||
создание отчёта в Foxpro 6.0 |
|||
#18+
igorbikalyssa, во-первых, сдается мне, не закончен цикл for-endfor. Во-вторых, нужно привести текст подпрограммы m, может, там что не так. Наконец, для полного счастья нужно бы переслать сюда кусок проекта (полностью автономный) с таблицами, формами, программами и пр., чтобы местные знатоки смогли разобраться, в чем дело, и виртуально вкусить, наконец, то, что подают нынче в уральских ресторанах. Таблицы можно уменьшить до нескольких записей в каждой. Кстати, первая ссылка упала. цикл понятно. закончу. rn - не подпрограмма, а ключевое поле в каждой таблице (на схеме связей таблиц оно в каждой таблице видно). ссылка1 это на онлайн учебник по фоксу, таблицы обрезать не могу. я беру полную базу и как обрезать таблицы если я даже их открыть не могу? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2010, 13:43
|
|||
---|---|---|---|
|
|||
создание отчёта в Foxpro 6.0 |
|||
#18+
проходящий., не могу вывести таблицу на экран. я думала надо как-то задать в цикле передачу переменных из курсора в печатную форму ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2010, 13:57
|
|||
---|---|---|---|
|
|||
создание отчёта в Foxpro 6.0 |
|||
#18+
igorbik, извиняюсь не разглядела. вы не про rn писали , а про m (из-за шрифта не разобрать что за буква) всё-равно m - не подпрограмма. это переменная, которая встречается в любой программе и как мне объяснили авторобъект "m" могу очень по-дилетантски объяснить. Это такой стандартный объект. В процедуре объявляются переменные, например, A1. обратиться к этой переменной можно по A1, а можно по m.A1 вот как объяснили мне))) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2010, 15:25
|
|||
---|---|---|---|
создание отчёта в Foxpro 6.0 |
|||
#18+
alyssa igorbik, извиняюсь не разглядела. вы не про rn писали , а про m (из-за шрифта не разобрать что за буква) всё-равно m - не подпрограмма. это переменная, которая встречается в любой программе и как мне объяснили авторобъект "m" могу очень по-дилетантски объяснить. Это такой стандартный объект. В процедуре объявляются переменные, например, A1. обратиться к этой переменной можно по A1, а можно по m.A1 вот как объяснили мне))) В тексте есть строки Do m Что это за "m" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2010, 15:46
|
|||
---|---|---|---|
|
|||
создание отчёта в Foxpro 6.0 |
|||
#18+
igorbik, уже написала что это за m ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2010, 15:50
|
|||
---|---|---|---|
|
|||
создание отчёта в Foxpro 6.0 |
|||
#18+
igorbik, m можно не писать ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2010, 16:23
|
|||
---|---|---|---|
создание отчёта в Foxpro 6.0 |
|||
#18+
alyssa, в твоей программе есть строки "do m" В таком виде это означает "выполнить программу m" Если убрать "m", то что останется? Я понимаю, что есть, например, переменная m.asd, и asd, и что это ЧАЩЕ ВСЕГО одно и то же, но не всегда, особенно если речь идет об именах полей таблицы и одноименных переменных. Но сейчас речь не об этом. Посмотри внимательно на код и расскажи, как понимать команду "Do m" (???) Например, эта команда есть в незакрытом цикле for-endfor, да и раньше тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2010, 16:31
|
|||
---|---|---|---|
|
|||
создание отчёта в Foxpro 6.0 |
|||
#18+
alyssaпроходящий., не могу вывести таблицу на экран. я думала надо как-то задать в цикле передачу переменных из курсора в печатную формуЭтим занимается команда report form. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2010, 16:32
|
|||
---|---|---|---|
создание отчёта в Foxpro 6.0 |
|||
#18+
Вот я специально выделил &&***** те строки, где мне непонятно назначение буквы m Procedure rp_calori5 Parameters nCallCode, oCaller, nProgram, X, Y If Type("nCallCode") # 'N' nCallCode = 0 Endif If m.nCallCode = 2 Return Endif do m && ************************************* .Y="" .X=0 Select Umenurbs_1.name as stol, round(sum(UFOOD_1.CALORI*UMENURFD.NETTO*10*(100-UMENURSP_1.CLOST)/100),3) as calori1 ; from UMENURFD ; left join UMENURSP as UMENURSP_1 on (UMENURFD.MASTER_RN = UMENURSP_1.RN) ; left join UMENURBS as UMENURBS_1 on (UMENURSP_1.MASTER_RN = UMENURBS_1.RN) ; left join UFOOD as UFOOD_1 on (UMENURFD.RN_FOOD = UFOOD_1.RN_FOOD) ; where (Umenurbs_1.date_doc = oSystem.date) ; GROUP BY UMENURBS_1.rn ; into cursor crCalori Report form e:\progi\rp_calori51.frx * [scope all] * [preview nowait] for i=1 to 15 do m &&*********************************** .Y = crCalori.stol .X = crCalori.calori1 ENDPROC ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&tablet=1&tid=1584770]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 291ms |
total: | 427ms |
0 / 0 |