Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
Есть таблица около 4000 записей. Каждому чертежу в ней соответствует семизначный номенклатурный номер. И на каком-то чертеже прога выводит сообщение об ошибке. Как мне узнать, на каком номенклатурном произошел затык?? Можно ли что-то типа Код: plaintext NNOM - переменная символьная, в которой хранится номенклатурный номер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 09:24 |
|
||
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
И на каком-то чертеже прога выводит сообщение об ошибке Зависит от того, какие именно действия привели к возникновению ошибки. В общем случае - это либо ввод новой записи, либо модификация существующей. В любом случае, в этот момент ты физически находишся на нужной записи в справочнике номенклатуры, поэтому можно просто прочитать нужные реквизиты напрямую из таблицы: MessageBox('Ошибка при вводе номенклатуры ' + MyTab.nNom) Лично мне представляется неправильным делать универсальный обработчик ошибки. Ты же выполняешь действия в какой-то форме. Вот в этой форме и ставь контроль на нужный объект (TextBox.Valid(), Click на кнопке "Сохранить" и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 09:49 |
|
||
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
if prte1#'*' * Топливо считается как процент от зарплаты TP=ROUND(ZO*TOPL1,3) else .... endif Вот эту переменую он у меня и теряет. Но не всегда, а только 1 раз. И MessageBox() сюда не воткнуть. Эта прога вызывается при нажатии кнопки "Обновить". Т.е. можно обрабатывать Click на кнопке и туда MessageBox() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 10:17 |
|
||
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
Т.е. ты "потерял" переменную и хочешь посмотреть где? Так для этого существует отладчик (Debugger). А потеря переменной связана, как правило, с областью видимости. Если область видимости не объявлена явно, то любая созданная в программе переменная имеет область видимости PRIVATE. Типичная ошибка выглядит примерно так: Procedure Prog1 MyVar = 1 ?MyVar do Prog2 ?MyVar return Procedure Prog2 MyVar=2 return Здесь произошло следующее: -) На команде MyVar = 1 FoxPro определил, что переменной с таким именем раньше не существовало. Создал новую переменную с областью видимости PRIVATE и присвоил ей значение 1 -) Внутри процедуры Prog2 на команде MyVar=2 FoxPro определил, что переменная MyVar уже существует и имеет область видимости Private, т.е. в данном случае "видна" из процедуры Prog2. Поэтому, вместо создания новой переменной была использована ранее существовавшая переменная MyVar и ей изменили значение -) После возврата в процедуру Prog1 оказалось, что значение переменной MyVar уже изменено. Поэтому, чтобы избежать подобных недоразумений обязательно явно указывай область видимости переменных. В приведенном примере проблему можно решить если написать: Procedure Prog2 LOCAL MyVar MyVar=2 return ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 12:41 |
|
||
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
Эта переменная больше нигде не участвует, хотя подпрограммы есть. Просто скорее всего кто-то из пользователей попортил базу и стер какую-то номенклатуру из справочника. Мне надо узнать какую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 14:24 |
|
||
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
Ой, что-то ты не договариваешь. Откуда вообще берется эта переменная? Каким образом факт наличия (отстуствия) записи может повлиять на наличие переменной? Заметь, не на содержание, а на ее существование! Т.е. где-то у тебя ошибка в логике программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 17:45 |
|
||
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
А еще иногда может помочь try...catch...finally - естественно, если эта конструкция есть в используемой версии VFP. Но только в случае, когда программных логических ошибок точно уже нет, и может возникнуть только незапланированная ошибка по аппаратным причинам или по причинам нарушения целостности данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 17:50 |
|
||
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
Попробую объяснить точнее: Есть справочник сырья, справочник номенклатуры. Из справочника номенклатуры по определенному условию выбирается нное количество записей и заносится в TABLE1, из которой запоминаем ном.номер и ищем в справочнике сырья. Так вот, этот ном.номер должен быть в справочнике сырья, а кокого-то нет. Мне надо узнать какого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 08:14 |
|
||
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
Поскольку TABLE1 - часть справочника номенклатуры, то, по большому счету, TABLE1 нас не интересует. Т.е. так: есть два справочника и потерялось соответствие между ними. А поле для связи называется "номенклатурный номер"... Тогда возьми справочник номенклатур, установи SET RELATION по полю "номенклатурный номер" со справочником сырья и дай для начала BROWSE FOR EOF("<сырье>") - вот оно и покажет записи, которые есть в номенклатурах, но нет в сырье... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 09:36 |
|
||
|
Вывод номенклатурного номера
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Получишь ВСЕ записи из справочника номенклатуры на которые нет ссылки в справочнике сырья. Правда, при большом количестве записей такой запрос будет выполняться достаточно долго. Если есть индекс по ном_номеру в таблице справочник_сырья, то поиск можно ускорить примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 10:44 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32465023&tid=1596879]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 383ms |

| 0 / 0 |
