Скрипт

0 голосов
спросил 25 Май, 11 от Dargin (2,080 баллов) в категории Программные продукты Esri
Написал небольшой скрипт который проходится по таблице и заменяет пустые поля в столбце на no_date, скрипт прикрепил на кнопку на панели инструментов, но при запуске выдает след. ошибку "A(n) Nil object does not recognize request theVTab" ... возник ряд вопросов:
1. что за ошибка и как избавиться от нее
2. кнопка должна быть на панели инструментов таблицы или можно оставь на Вьеве
3. надо ли во время работы скрипта заходить с start editing таблицы

вот код скрипта
theTable = av.GetProject.FindDoc("c:\arcview\astrakhan\homes.dbf")
theVTab = theTable.GetVTab
nameField = theVTab.FindField("Tip_zdania")
for each rec in theVTab
if (theVTab.ReturnValue(nameField,rec) = " ") then
    thevTab.SetValue(nameField.rec, "no_date")
end
end
theVTab.Refresh

8 Ответы

0 голосов
ответил 25 Май, 11 от peter1 (7,760 баллов)
Написал небольшой скрипт который проходится по таблице и заменяет пустые поля в столбце на no_date, скрипт прикрепил на кнопку на панели инструментов, но при запуске выдает след. ошибку "A(n) Nil object does not recognize request theVTab" ... возник ряд вопросов:
1. что за ошибка и как избавиться от нее
2. кнопка должна быть на панели инструментов таблицы или можно оставь на Вьеве
3. надо ли во время работы скрипта заходить с start editing таблицы

вот код скрипта
theTable = av.GetProject.FindDoc("c:\arcview\astrakhan\homes.dbf")
theVTab = theTable.GetVTab
nameField = theVTab.FindField("Tip_zdania")
for each rec in theVTab
if (theVTab.ReturnValue(nameField,rec) = " ") then
    thevTab.SetValue(nameField.rec, "no_date")
end
end
theVTab.Refresh


************************
начитать таблицу в проект, скрипт работает с активной таблицей, дополнительно можно сделать и с активным столбцом, кнопку повесить на меню работы с таблицами

theTable = av.GetActiveDoc.GetVTab
nameField = theTable.FindField("Tip_zdania")
theTable.StartEditingWithRecovery
for each rec in theTable
if (theTable.ReturnValue(nameField,rec)="") then
    theTable.SetValue(nameField,rec, "no_date")
end
end
theTable.StopEditingWithRecovery(true)

0 голосов
ответил 25 Май, 11 от Dargin (2,080 баллов)
Благодарю Вас peter
0 голосов
ответил 16 Июнь, 11 от Dargin (2,080 баллов)
Подскажите скрипт который при нажатии на кнопку на панели инструментов запускал exe-файлик.

    
    
    
0 голосов
ответил 16 Июнь, 11 от peter1 (7,760 баллов)
0 голосов
ответил 16 Июнь, 11 от Dargin (2,080 баллов)

Не нашел решения... мне просто надо типо горячей связи запустить exe файлик и все
0 голосов
ответил 16 Июнь, 11 от TDenis (42,620 баллов)
Shell ("Notepad.exe")
0 голосов
ответил 19 Июнь, 11 от Dargin (2,080 баллов)
Shell ("Notepad.exe")

Если не затруднит можно полный скрипт написать для экзешника полный путь которого
C:\Users\Boss\Desktop\Ping\PingProgram\bin\Debug\PingProgram.exe

заранее спс
0 голосов
ответил 19 Июнь, 11 от TDenis (42,620 баллов)
Сорри, упустил из вида то, что речь про ArcView 3.

System.Execute("C:\Users\Boss\Desktop\Ping\PingProgram\bin\Debug\PingProgram.exe")

или

System.ExecuteSynchronous("C:\Users\Boss\Desktop\Ping\PingProgram\bin\Debug\PingProgram.exe")
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...