|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
столкнулся с таким траблом записываю накладную, и после того как она записалась получаю её номер, делаю выборку по номеру этой накладной и печатаю... и тишина.... Код: plaintext 1. 2.
а если сделаю так, то печатает Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2008, 20:03 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Ну, а самому проверить, что же попало в курсор? Код: plaintext 1. 2.
Надеюсь, в курcе, что на команду Select-SQL влияет настройка SET DELETED? Также желательно при использовании INTO CURSOR всегда добавлять опцию NOFILTER Код: plaintext 1.
Также надо проверить, какие именно алиасы стоят в выражениях полей отчета. Есть ли что-то в DataEnvironment отчета. В общем, направлений два: 1) У отчета явным образом указана таблица-источник и это не курсор 2) В курсор не попадает ни одной записи ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2008, 20:28 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2.
Попробуй вот так: Код: plaintext 1. 2. 3.
а ещё в REPORT, может быть, явно указан принтер, который в данный момент не включён. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2008, 21:29 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
А может снова GRID виноват? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2008, 22:27 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
> > записываю накладную, и после того как она записалась получаю её > номер, делаю выборку по номеру этой накладной и печатаю... и тишина.... > > SELECT * FROM table INTO CURSOR cur_rep > REPORT FORM накладная TO PRINTER NOCONSOLE > > а если сделаю так, то печатает > > SELECT table > browse > SELECT * FROM table INTO CURSOR cur_rep > REPORT FORM накладная TO PRINTER NOCONSOLE > только вот этот browse мне совсем не катит... причем интересно, что когда > делаю browse, то этой новой записанной накладной не видно, т.е. буд-то она > не записалась, но на печать выводится... > Тема Ответить Сообщение Каким образом происходит запись в таблицу table? Есть ли на этой таблице какая-нибудь буферизация? PS очень похоже, что brows "передергивает" указатель записи, после чего сами данные физически попадают в таблицу. Попробуй вместо brows сделать goto recno('table') in table, что будет? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 08:16 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
to ВладимирМ ну тут очевидно второе направление... вот так вот в курсор действительно не попадает ни одной записи.. Код: plaintext 1. 2. 3. 4.
а вот так вот (т.е. с browse перред запросом) записи в курсор попадают Код: plaintext 1. 2. 3. 4. 5.
никакой буферизации нет, в датаинвиронмент отчета тоже ничего нет, накладная записывается посредством вызова метода ком-сервера.... нихера не понимаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 10:34 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Небось файлики с именем "table" расплодились по диску, как кролики! ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 11:07 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
вместо table можно подставить любой набор из буков... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 12:21 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Так NOFILTER пробовал добавить? Таблица Table заполняется непосредственно перед запросом? Что возвращает такая конструкция Код: plaintext 1. 2.
Какая текущая настройка Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 15:17 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
ВладимирМТак NOFILTER пробовал добавить? Таблица Table заполняется непосредственно перед запросом? Что возвращает такая конструкция Код: plaintext 1. 2.
Какая текущая настройка Код: plaintext
эта конструкция без browse перед селектом возвращает 0, а с browse как и надо... (тут в примере я селект упростил, в реальности у меня селект из двух таблиц по джойн-условию...)... и ещё раз акцентрирую внимание на то, что с броуз перед запросом всё выбирается как надо, а без броуз ничего не выбирается... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 15:53 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
КонецЦиклаэта конструкция без browse перед селектом возвращает 0, а с browse как и надо... (тут в примере я селект упростил, в реальности у меня селект из двух таблиц по джойн-условию...)... и ещё раз акцентрирую внимание на то, что с броуз перед запросом всё выбирается как надо, а без броуз ничего не выбирается... BROW может только сместить указатель текущей записи в таблице, для эксперимента замени BROW на SKIP -1 Показывай реальный код. И BROW туда заремленный вставь. Только убедись еще раз что с ним работает, а без него нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 16:39 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
да я уже делал с go recno()... думаю skip тут тоже не поможет... делал browse timeout 0.1 - не работает, а browse без таймаута работает... причём ещё раз отмечу, что када я делаю browse перед селектом я этой записанной накладной не вижу, но когда я делаю browse после селекта, то она уже отбирается... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 17:03 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Что возвращает Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 17:12 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
ВладимирМЧто возвращает Код: plaintext 1. 2. 3. 4.
и до browse и после возвращает имя курсора, в который происходит выборка селектом... курсор пустой... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 17:24 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
вот так вот Код: plaintext 1. 2. 3. 4. 5. 6. 7.
а вот так вот Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 17:32 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Что такое MyTable и как она заполняется? Select выполняется сразу после каких-либо модификаций в этой таблице? Что возвращает Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 17:41 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
ВладимирМЧто такое MyTable и как она заполняется? Select выполняется сразу после каких-либо модификаций в этой таблице? Что возвращает Код: plaintext 1. 2.
есть "маршрутные задания": заголовок маршрутного задания Marsh_zad.dbf и содержимое (строки) маршрутного задания Marsh_zad_str.dbf заводится новое маршрутное задание посредством вызова метода com-сервера НомерНовогоМЗ = ox.new_marsh_zad() этот метод чётко возвращает номер нового только, что записанного маршрутного задания теперь мне его надо распечатать SELECT Marsh_zad.pole1, Marsh_zad_str.pole2 FROM marsh_zad; INNER JOIN marsh_zad_str ON Marsh_zad.nomer = Marsh_zad_str.nomer; WHERE Marsh_zad.nomer = НомерНовогоМЗ INTO CURSOR cur_rep NOFILTER IF _TALLY > 0 SELECT cur_rep REPORT FORM marsh_zad TO PRINTER NOCONSOLE ENDIF и вот если я перед селектом просто тупо поставлю browse, то _TALLY>0, а не поставлю - _TALLY=0 а ?DBF("Marsh_zad") и ?DBF("cur_rep ") возвращают как и надо путь к dbf-файлу и пусть к tmp-файлу... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 18:10 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Другими словами, данные в таблицу заносятся одним клиентом (процессом), а увидеть их надо другим клиентом (процессом)? Сразу после их занесения? Между вводом данных в файл и появлением этих данных у клиента (в буфере клиента) есть некоторый интервал. Этот интервал определяется вторым параметром настройки SET REFRESH TO По умолчанию, этот интервал равен 5 секундам. При этом, первый параметр этой же настройки определяет время обновления данных при отображении их в BROWSE-окне. По умолчанию, это 0. Т.е. BROWSE-окно считывает данные с диска. С другой стороны, когда в команде Select-SQL в опции FROM Вы указываете имя, то сначала, анализатор запроса ищет алиас с указанным именем. И, если находит, то использует в качестве источникак данных рабочую область с указанным алиасом. Другими словами, считывает буфер таблицы. Значит, у Вас есть две стартегии решения задачи: 1. Уменьшить интервал обновления буфера на сколько возможно. 2. Заставить читать данные не из буфера, а напрямую с диска. Решить эту задачу также можно двумя способами: 1. Установить второй параметр настройки SET REFRESH на минимально допустимое значение (0.01) или установить значение -1, что означает читать данные с диска Код: plaintext 1. 2. 3.
2. Если в опции FROM команды Select-SQL указать расширение таблицы, то данные будут браться не из буфера, а напрямую из таблицы-источника Код: plaintext
Или же просто предварительно закрыть таблицу в указанной рабочей области Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 19:32 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
нда.... тяжелый случай... ничего не помогает.... SET REFRESH TO 0,-1 ругается на illegal value видимо потому, что 6 версия фокса... если выдержать сравнительно большую паузу перед тем, как нажать ignor, то все на печать выходит, а если нажать на ignor сразу, то ничего не печатается... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 11:49 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Вообще-то, предупреждать надо о версии FoxPro. Поскольку в VFP6 минимальное значение может быть равно 1 секунде, то и ставь принудительно секундную задержку Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
В принципе, для организации задержки можно использовать и Inkey(), но это менее надежно, поскольку она "сбрасывается" при нажатии на клавиши. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 13:01 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Это не оно? Purges memory cached by programs and data, and clears and refreshes buffers for open tables. SYS(1104 [, cAlias | nWorkArea]) Parameters cAlias Specifies the alias of a specific table or cursor for which cached memory is purged. nWorkArea Specifies the work area of a specific table or cursor for which cached memory is purged. Return Value Character. SYS(1104) returns the number of bytes that could not be purged. SYS(1104) returns "0" if all memory is purged. Remarks You can improve performance by calling SYS(1104) after executing commands that make extensive use of memory buffers. This function also clears internal buffers for open tables, forcing the tables to be refreshed, which is useful with large tables and in multiuser environments. Note The use of SYS(1104) will slow performance in applications that have a large number of buffered tables open. begin 666 collapse_all.gif M1TE&.#EA"P`+`,0``)2HX_3U]0```/'R\O[^_O?W]_GY^>[N[^KKZ_O[^^7F MY_S\_9NMY>#AXO___]O<W=77U\_0T0`````````````````````````````` M`````````````````````````"'Y! ``````+ `````+``L```4Z( .,)"DZ M#D$LB5$$8[JV[S"JK!L,QYW7!\1H(2@:!8H1;1=4-$8Z'L+Y& &GC0=DQ,1J )(P!1J<0(`0`[ ` end begin 666 note.gif M1TE&.#EA"@`*`+/_`(V,C?__S/_,`/\%!?]=7<# P-/3T\# P(6%A0("`@`` M`````````````````````"'Y! $```4`+ `````*``H`0 0H$,AI#AD@Z)U* AR1HB)(8'<N,7&EJG;JV P4GZ&@D2(";<>HF@,.B)```[ ` end Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 13:04 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Ура! Заработало! Спасибо, Владимир!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 15:42 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
Официально SYS(1104) была введена только в VFP7. Не знаю, будет ли она работать в VFP6. Хотя, наверное, можно попробовать. Только в VFP7 еще не было второго параметра. Шло обновление всех данных во всех рабочих областях. Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 17:15 |
|
Не выходит на печать отчет
|
|||
---|---|---|---|
#18+
ВладимирМОфициально SYS(1104) была введена только в VFP7. Не знаю, будет ли она работать в VFP6. Хотя, наверное, можно попробовать. Если мне память не изменяет, то появилась она "неофициально" в каком-то из последних сервис-паков 6-ки. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 18:25 |
|
|
start [/forum/topic.php?fid=41&msg=35483385&tid=1587397]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 357ms |
total: | 517ms |
0 / 0 |