powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / поможите с репортами, кто могёт - разъезжаются колонки!
32 сообщений из 32, показаны все 2 страниц
поможите с репортами, кто могёт - разъезжаются колонки!
    #32907872
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему у меня такой эффект как на приложенных пиктуресах? (в репортдизайнере все причесано по столбикам под линеечку, а в предпросмотре все разъезжается)
И еще - Как дать сумму в конце отчета, а не в конце каждой страницы? - дал по ЕОФу так вообще не стало итог печатать. Как чепятать наряду полей текущей базы, поля из другой базы через макроподстановку но рилейшн им можно задать.

сенкс...

ЗЫ чего-то у меня подозрение есть что файл не приложится, хотя я его указал и размер его 60 кил в зипе.
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32907926
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>- Как дать сумму в конце отчета, а не в конце каждой страницы?
Включи Sumary Band и внем и распологай свой итог
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908007
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOпочему у меня такой эффект как на приложенных пиктуресах? (в репортдизайнере все причесано по столбикам под линеечку, а в предпросмотре все разъезжается)

1) Кривой драйвер принтера
2) Для объектов печати использованы шрифты, не существующие у клиента. В этом случае будут подставлены ближайшие похожие шрифты.

CTAC-KOИ еще - Как дать сумму в конце отчета, а не в конце каждой страницы? - дал по ЕОФу так вообще не стало итог печатать.
Так нужно группировку сделать по EOF(). Хотя можно сделать и группировку просто по константе (число 1). Или же использовать Summary Band

CTAC-KOКак чепятать наряду полей текущей базы, поля из другой базы через макроподстановку но рилейшн им можно задать.
Не понял. Прямо так и пишите в выражении объекта печати

Table2.Field2

Правда, если эта таблица связана по Relation с главной таблицей. В противном случае просто не будет перемещение по записям в подчиненной таблице.

Самый универсальный вариант - это создавать временную таблицу для печати и притягивать в нее все нужные поля.
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908057
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да не в шрифтах и принтере дело.
Я его только у себя и создал - все ж вроде красиво. Дай думаю превью !без печати! гляну - а там такой беспредел!
шрифты в репортдизайнере везде задал курьернью в 8 размер. Так оно на превью и видно. Мне чего не понятно особенно, так это чего в самом заголовке уже такие проезды? Там где названия колонок.
Или надо попробывать напечатать и тогда посмотреть чего будет, тогда на фига, спрашиваецца, существует превью?
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908090
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по ходу, SummaryBand помог для итогов - спасибо!!!

за макроподстановку: у меня там таблица такая, в ней столбцы называются типа Pay1, Pay2...Pay12. Ну и из соответветствующей колонки по месяцу данные и берутся. А это ж иначе чем ч/з макроподстановку я не умею...
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908224
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOда не в шрифтах и принтере дело.
Я его только у себя и создал - все ж вроде красиво. Дай думаю превью !без печати! гляну - а там такой беспредел!
Именно в драйвере принтера дело!

Попробуй установить драйвер HP LaserJet. Т.е. простейший драйвер безо всяких цифирек и буковок. Есть в списке стандартных драйверов Windows.

Еще можешь поковырять текущие настройки принтера на предмет печати текста как графики без использования прошитых шрифтов принтера.

В качестве макроподстановки используй

EVALUATE("MyTab.Pay"+"2")
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908284
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну говорю же, не печатаю я!
Ну поставил я тот дарайвер лазарета, выбрал печать на него, - тот же икс, вид сбоку. Я уже и фоксу перезагружал, и лазарет стоит по умолчанию. У меня еще струйник в системе есть, выбрал его - та же хрень.
А Вы, извиняюсь, картинки видали?
Я чего не пойму - как дрйвер принтера на превью влияет? Драйвер имхо может так повлиять, что отпечатанное с превью не сойдется - это да.
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908323
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять же, ежели б на превью влиял бы драйвер принтера, то по логике, перед превью меня должно спросить бы, а с каким принтером вам превью замутить, но нет, спрашиает только уже непосредственно перед печатью.
Я мож уже совсем дуб и чего не понимаю, так Вы объясните...
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908356
Судя по рисунку report.JPG все заголовки сделаны одним лэйблом?
тогда, точно, проблема со шрифтами, для печати используются другие шрифты, не те, которыми рисуется макет
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908363
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а может быть проблема в том что я все надписи колонок сделал какбы в одну строку, одним объектом?
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908385
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, я догался и получил ответ, получается почти одновременно...

а как же теперь? А для проевью можно задать тот же фонт, что и в макете? А особенно волнует печать все тем же шрифтом что и в макете!!!
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908701
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот, разделил лйбл на лейболят 8.) и все тепер гуд.

2ВладимирМ
Вы преложили все л0жить в одну талбицу и оттедова все грамотно чепятать. Можно например делать селект в темп, а как сделать этот селект чтоб и поля текущей базы, и вот те, согласно нУмеру месяца, да еще и в конце последнее поле, в нем сокращение фамилии посредством фуКции. Функция делает из Иванов Иван Иваныч - Иванов И. И., а берет фамилию из третьей базы. Все релейшены по полю "код".
Как будет выглядеть select

база abonpay - какбы основная
поля abonent, talk_time, abonpay, intercalls, addpay, total_suma

база abondk, тут смотря по месяцу
поля Payed2, Rest1

база ab_codes
поле name

юзер-функция ShortNаme() in main

relation to ab_code

????
sele 0
use abonpay
sele 0
use ab_codes
set rela to abonpay.ab_code
sele 0
sele abondk
set rela to abonpay.ab_code
sele abonpay
select fields abonent, talk_time, abonpay, intercalls, addpay, total_suma ...???
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908780
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини, я мало что понял. Как-то лень пытаться понять специально исковерканный текст (оно мне надо?).

-) Обычно никто не делает функцию выделения фрагмента имени или отчества. В общем случае - это очень не тривиалдьная задача. Создают специальное поле, куда пользователь и должен ввести инициалы при создании нового клиента.

-) Из отчета можно вызывать напрямую пользовательсую функцию. Т.е. в выраженни для печати так прямо и написать ShortNаme()

-) Пользовательскую функцию можно вставить и в Select-SQL, хотя это и не приветствуется. Обычно создается временная таблица с пустым полем, а потом сканируется и заполняется это пустое поле.

-) Вовсе не обязательно для создания временной таблицы использовать Select-SQL, можно через CREATE CURSOR + SCAN

-) Создание временной таблицы для печати - это универсальное решение большинства проблем формирования отчета. Но в простых случаях можно и без нее. Зависти от конкретной задачи.

Если я ответил не на то, о чем ты спрашивал, то уточни, что же тебе надо.
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32908806
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну Вы все правильно поняли, ничего в тексте нету непонятного и изковерканого.
Вопрос был в просьбе привести текст программы, вернее строки с Select, ну а поскольку Вы говорите что лучше Create cursor, то тогда с ним. Имена таблиц я дал, имена необходимых полей тоже. Желательно привести пример как сделать сразу за один проход используя ShortNаme() и как за два прохода со Scan.
Мне нужно хоть бы раз увидеть, разобраться и понять,
чтобы в дальнейшем этот способ применять...8)
Я сейчас как раз на стадии создания всех отчетов, вернее все они у меня есть уже давно под ДОС, а надо ж теперь под вижуал со всеми приятностями.
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32909118
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз.

В Вашем, конкретном случае, никаких особых проблем нет. Создание временной таблицы для печати вроде бы не нужно. Вполне сойдет Relation.

Попробуйте еще такой вариант:

-) Открываете отчет на модификацию
-) Устанавливаете Private DataSession (пункт меню Report, подпункт Private DataSession, появиться "птичка" рядом с этим пунктом меню)
-) Открываете DataEnvironment отчета (пункт меню View, подпункт DataEnvironment)
-) Добавляете в него все 3 свои таблицы, начиная с главной (правой клавишей мыши на пустом месте DataEnvironent, пункт Add)
-) Если начали добавление не с главной таблицы, то убедитесь что в свойстве DataEnvironment.InitialSelectedAlias установлен алиас главного курсора
-) Настройте там же, в DataEnvironment, связи между таблицами (нажать левой клавишей мыши на поле в главной таблице и не отпуская протянуть к индексному тэгу подчиненной)

В результате, полученный отчет будет относительно независим от остального приложения. Т.е. при запуске отчета не будет никакого дела до того в каком состоянии находятся таблицы, использованные в качестве источника данных. Для выполнения отчета будут открыты как бы "копии" таблиц.

По поводу пользовательской функции.

В данном случае, лучше всего передавать значение фамилии как параметр. Т.е. чтобы внутри функции по возможности не было обращений к полям таблиц.

В этом случае запрос будет выгляедть примерно так (если я правильно угадал поле с фамилией):

Код: plaintext
SELECT ShortNаme(ab_codes.name) as Inicial FROM ...

Соответсвенно сама функция будет иметь вид:

Код: plaintext
1.
2.
3.
4.
5.
FUNCTION ShortNаme
LPARAMETERS tcFamiliya
LOCAL lcInicial  && возвращаемое значение
...

RETURN PADR(m.lcInicial, 10 )

Здесь принципиально важно, чтобы количество символов в возвращаемом значении всегда было одинаковым. Если по каким-то причинам это невозможно, тогда надо озаботится этим в самом запросе:

Код: plaintext
SELECT PADR(ShortNаme(ab_codes.name), 10 ) as Inicial FROM ...

Ну, а в 2 прохода - это вместо вызова функции создаешь пустое поле, например так:

Код: plaintext
SELECT ab_codes.name, SPACE( 10 ) as Inicial FROM ...

А потом сканируешь результат выборки и используя функцию формируешь значение поля Inicial, опираясь на значение поля Name из той же выборки.
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32909772
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы показали мне как только одно поле выбрать селектом, это в принципе не сложно, а как вся команда выглядеть будет?
Например такое у меня не проходит:
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT AbonPay.abonent as Abonent, AbonPay.abonent as talk_time,;
       AbonPay.abonpay as abonpay, AbonPay.intercalls as intercalls,;
       AbonPay.addpay as addpay, AbonPay.totalsuma as totalsuma;
       EVALUATE(f_restprv) as RestPrv, EVALUATE(f_payed) as Payed,;
       EVALUATE(f_rest) as rest, PADR(shortname(abonents.ab_name), 30 ) as ABname;
       from abonpay INTO CURSOR AbonPayPrn
из-за EVALUATE не проходит - ошибка синтаксиса
EVALUATE(f_rest) я по Вашему совету поставил вместо &f_rest,
но и с &f_rest тоже не проходит, останавливается в этом месте,
а как тогда сделать?

ЗЫ f_restprv=abondk.rest1, f_rest=abondk.rest2, f_payed=abondk.payed2
и здесь 1 или 2 зависит от месяца, на февраль так оно и будет,
на март это будет уже f_restprv=abondk.rest2, f_rest=abondk.rest3, f_payed=abondk.payed3

Как я понял тут у меня не получится все выбрать одной командой во временный курсор?
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32909803
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так, с ошибкой разобрался - там одной запятой не хватало (в конце третьей строкие), но с EVALUATE не пробывал, пока с макроподстановкой.
Теперь другая кака вылезла - в последние 4 поля поля он вставил одни и те же значения по всему полученному курсору. Почему?
Код: plaintext
1.
2.
3.
4.
5.
6.
use (AbonPayFile) ALIAS abonpay
SET FILTER TO paycateg= 1 
sele  1 
use abonents
SET RELATION TO ab_code INTO abonpay
SELECT abondk
SET RELATION TO ab_code INTO abonpay
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32909812
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
структуру обеих таблиц с назначением полей
четко и ясно
можешь изложить??
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32910005
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
могу.
всего используется 3 таблицы
1. Abonents
из нее испульзуются поля
ab_code - код абонента,
ab_name - имя абонента, полное (Иванофф Иван Иваныч), из которого посредсвом функции shortname() делается короткое (Иванофф И. И.)

2. AbonPay - база с текущими расчетами за тел.переговоры
из нее испульзуются поля
ab_code - код абонента,
abonent - телефон абонента
talk_time, abonpay, intercalls, addpay, totalsuma - насчитаные время, абонплата, междугородка, дополнительно, всего;

3.AbonDK
из нее испульзуются поля
ab_code - код абонента,
и в зависимости от месяца поля
Rest, Payed (их всего 12, т.е. Rest1, Rest2...Rest12, Payed1, Payed2...Payed12)

таблицы между собой можно связать по ab_code.

Но тут меня еще одна проблема постигла - я каждый месяц ложу в архив результаты начислений и они там лежат без индексного файла, неиндексированные, а отчет может заказываться и из архива.

В отчете надо получить таблицу, в которой будут в основном поля из AbonPay,
т.е. abonent, talk_time, abonpay, intercalls, addpay, totalsuma потом идут 3 поля из базы AbonDK, и в конце сокращенное имя абонента из Abonents.
3 поля из базы AbonDK: это остаток с прошлого месяца, оплата в текущем и текущий остаток, названия полей зависят от месяца исполнения отчета, на февраль используются поля Rest1 как RestPrv, Payed2 и Rest2.
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32910255
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
* Номер месяца как символьная строка
LOCAL lcMonth, lcMonthPrv
lcMonthPrv = "1"
lcMonth = "2"

SELECT ;
	AbonPay.ab_code, ;
	AbonPay.abonent, ;
	AbonPay.talk_time, ;
	AbonPay.abonpay, ;
	AbonPay.intercalls, ;
	AbonPay.addpay, ;
	AbonPay.totalsuma, ;
	Abonents.name, ;
	PADR(ShortName(Abonents.name), 10 ) as ShortName, ;
	AbonDK.Rest&lcMonthPrv as RestPrv, ;
	AbonDK.Payed&lcMonth as PayedCur, ;
	AbonDK.Rest&lcMonth as RestCur ;
FROM AbonPay ;
INNER JOIN Abonents ON AbonPay.ab_code = Abonents.ab_code ;
INNER JOIN AbonDK ON AbonDK.ab_code = AbonPay.ab_code ;
INTO CURSOR curReport NOFILTER ;
ORDER BY ;
	Abonents.name, ;
	AbonPay.ab_code 

SELECT curReport
BROWSE

Если возможен платеж от не существующего абонента, то INNER JOIN к справочнику надо заменить на LEFT JOIN
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32910366
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо огромное Владимир!!!

Все работает, круто!!! С моими восьмибитными понятими такого не осилить...

А еще в догоночку вопросец есть: я думал, что без проблем сам разберусь как, поэтому сразу этого не описал. В таблице AbonPay есть еще такое поле, PayCateg называется, числовое. Мне нужно получить только те записи, где
PayCateg=1, понятно что я могу и из полученного курсора лишние записи удалить или фильтрануть, а может как-то можно без участия лишних записей вообще?

Я пока ждал ответа, создал просто таблицу под отчет этот и туда аппендом все что надо из AbonPay заливал, а потом заполнял последние 4 поля, в базе я их назвал RestPrv, Payed, Rest и SName. С точки зрения программирования Ваш способ получается изящнее, короче и не требует создания под отчет таблиц - клево! :)

Спасибо еще раз!!!
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32910417
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно еще вопрос?

Вот таким образом из базы AbonPay я подготовлю отчет по категории_плательщика=1 (PayCateg=1), те физлиц

остается теперь сделать то же самое, только для категории_плательщика>1 (организации).
Но здесь вопрос именно по организации репорта. В случае с =1 я печатаю все записи подряд и в конце итог. В случае же с >1 мне нужно немножечко иначе печать организовать. Ориентируясь по коду абонента надо сделать так, чтобы сначала шло название организации, затем шапочка (названия колонок), затем потелефонно вывод начислений и итог по организации (на рубеже смены кода абонента, при этом понятное дело надо сортировать по коду абонента). Ну и в самом конце общий итог по организациям.
Но и это еще не всё: как мне сделать так, чтобы если телефонов у организации не много, не рвать их на разные страницы, если до конца страницы оно не поместится.
(опять же, в досовой версии у меня все это организовано и работает, но я там репортами не пользовался вообще и здесь уже мои 8-битные:) приемы не пройдут)
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32910627
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOВ таблице AbonPay есть еще такое поле, PayCateg называется, числовое. Мне нужно получить только те записи, где
PayCateg=1, понятно что я могу и из полученного курсора лишние записи удалить или фильтрануть, а может как-то можно без участия лишних записей вообще?
Тот же самый запрос, только добавляешь еще одну строчку

Код: plaintext
1.
2.
...
WHERE AbonPay.PayCateg= 1  ;
ORDER BY ...

CTAC-KOЯ пока ждал ответа, создал просто таблицу под отчет этот и туда аппендом все что надо из AbonPay заливал, а потом заполнял последние 4 поля, в базе я их назвал RestPrv, Payed, Rest и SName. С точки зрения программирования Ваш способ получается изящнее, короче и не требует создания под отчет таблиц - клево! :)
На самом деле в моем варианте тоже создается временная таблица для печати. Просто она называется курсор.

По поводу второго отчета организуй в отчете группировку по AbonPay.ab_code и выводи нужные заголовки и итоги в GroupHeader и GroupFooter.
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32910733
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага! Спасибо! А я этот Where не туда вставлял. Уже и Having пытался втулить...
Так я понимаю, что создается временная таблица, но как-бы она и не создается, только в памяти, ну временный файл на винте. А я специально сделал таблицу. Ну времменая таблица понятно что удобнее, она в процессе выполнения программы создается, ее и сохранить можно, если надо. Я свою таблицу вручную создал, чтоб ее очищать и заполнять по ходу. Может так и лучше, но Ваш способ короче.

А как в Select зделать такой запрос, где по условию, в моем случае ab-code, вставлять сумму значений поля нескольких записей из другой таблицы.

вот у меня в AbonDK записи с одним и тем же ab_code не повторяются, а в AbonPay повторяются - по нескольку телефонов на один код. Как запросить в курсор чтобы получились полe ab_code и
поле TotalSuma, где будет сумма значений поля TotalSuma из abonpay по условию одинакового ab-code?
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32910836
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. заменить следующее SQL-запросом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
sele  3 
use rezult    && fields ab_code, totalSuma
dele all
pack
sele  2 
use abonpay
sele  1 
use abondk
do while not eof()
     sele  2 
     sum all totalSuma to z for ab_code=abondk.ab_code
     sele  3 
     appe blan
     repl ab_code with abondk.ab_code, totalsuma with z
     sele  1 
     skip
enddo
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32910866
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у тебя версия ниже VFP9, то в один запрос не получится.

Надо делать 2 последовательных запроса. Первый считает сумму по каждому клиенту, а второй уже использует результат первого запроса.
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32911832
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня 8 версия, а что в ней нельзя вложенные запросы делать? или это не поможет, или я чего-то недопонимаю. Я этот вложенный запрос вкурить не могу пока, ну не умещается он у меня в башке и все.
если вложенный запрос то примерно так?:
Код: plaintext
1.
select abondk.ab_code, (select sum(ab_code)) into cursor summa
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32911902
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нельзя. Вложенные запросы можно делать только в VFP9. Так что придется по очереди:

Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT ab_code, SUM(...) as sum1 FROM ... ;
INTO CURSOR curSum NOFILTER ;
GROUP BY ab_code

SELECT ..., curSum.Sum1 ;
FROM ... ;
INNER JOIN curSum ON curSum.ab_code = ...
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32912350
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПАСИБО!!!!
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32913430
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi CTAC-KO!

ТАКИЕ вложенные нельзя (где подзапрос в списке полей или во FROM), ДРУГИЕ
(где подзапрос в WHERE части) - можно.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32918616
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если через Where можно, то как оно должно выглядеть?

Код: plaintext
1.
2.
select abondk.ab_code, abonpay.suma as TotalSum into cursor summa where abonpay.suma=sum(abonpay.suma) for abonpay.ab_code=abondk.ab_code
?
такое точно неграмотно:
abonpay.suma=sum(abonpay.suma)
а вместно него чего, так что ли:
TotalSum=sum(abonpay.suma) ?
или вообще вот так:

Код: plaintext
1.
2.
select abondk.ab_code, TotalSum into cursor summa where TotalSum=sum(abonpay.suma) for abonpay.ab_code=abondk.ab_code
?
...
Рейтинг: 0 / 0
поможите с репортами, кто могёт - разъезжаются колонки!
    #32919805
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi CTAC-KO!

Откуда я знаю как оно тебе нужно?
Примеры подзапросов которые позволяет делать фокс есть в хелпе, и
повторяться я тут не буду - читай и смотри - подходит оно тебе или нет.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / поможите с репортами, кто могёт - разъезжаются колонки!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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