Где ошибка, подставляю значение в поле

  • Автор темы SOFTOBZOR.ru
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

SOFTOBZOR.ru

#1
Всем привет

Есть формула на кнопочке

Код:
Sub Click(Source As Button)
Dim doc As NotesDocument
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document	

Set xml = CreateObject("Microsoft.XMLHTTP")
Call xml.open("GET", "http://www.cbr.ru/scripts/XML_daily.asp",False)
Call xml.send()

st$ = xml.responseText
st$ = Strright(st$,"<CharCode>AUD")
st$ = Strright( st$, "<Value>" )
st$ = Strleft( st$, "</Value>" )

st1$ = xml.responseText
st1$ = Strright(st1$,"<CharCode>AUD")
st1$ = Strright( st1$, "<Nominal>" )
st1$ = Strleft( st1$, "</Nominal>" )

'Messagebox st1$ &" AUD = " & st$ & " руб." 'Если вызывать так то работает
Call doc.ReplaceItemValue(US, "st1$") 'А вот так не работает :(
'Call doc.Save( False, True )
End Sub
Соответственно поле US тоже есть, но внего не чего не заносится, как в прочем и ошибка не вылазиет.
Помогите отковырять проблему

Отбой воздушной тревоги

Код:
 Call doc.ReplaceItemValue(US, "st1$") 'А вот так не работает :(
Надо так
Код:
Call doc.ReplaceItemValue("US", st1$ +"Руб = " +st$)
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#2
Для: SOFTOBZOR.ru



<!--QuoteBegin-SOFTOBZOR.ru+5:10:2006, 13:48 -->
<span class="vbquote">(SOFTOBZOR.ru @ 5:10:2006, 13:48 )</span><!--QuoteEBegin-->'Call doc.Save( False, True )
[snapback]44971" rel="nofollow" target="_blank[/snapback]​
[/quote]

Может стоит раскоментировать? :)
 
S

SOFTOBZOR.ru

#3
Не не нада :) так специально...

Тут еще попутный вопрос, на удаленном сервере есть TXT файл (сервер http://)
Этот файл имеет логическую структуру:

Значение1
Значение2
Значение3
Значение4
Значение5


Есть базка в ней собственно есть поля

[ZN1] [ZN2] [ZN3] [ZN4] [ZN5]

Задача вобщем вытянуть с удаленного TXT файла значения и сопоставить их в соответствующие поля.
Вот задача, куда думать?
 
O

oshmianski

#4
Не не нада :) так специально...

Тут еще попутный вопрос, на удаленном сервере есть TXT файл (сервер http://)
Этот файл имеет логическую структуру:

Значение1
Значение2
Значение3
Значение4
Значение5
Есть базка в ней собственно есть поля

[ZN1] [ZN2] [ZN3] [ZN4] [ZN5]

Задача вобщем вытянуть с удаленного TXT файла значения и сопоставить их в соответствующие поля.
Вот задача, куда думать?
а разве метод в твоем первом посте не работает?

если нет, то попробуй вот это (от Ника Норкина с intertrust.ru).
естественно, парсер самому писать придется.

Код:
import java.net.*;
import java.io.*;
import lotus.domino.*;

public class JavaAgent extends AgentBase {

public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

// (Your code goes here) 

URL url=new URL("http://informer.gismeteo.ru/rss/26850.xml");
InputStream is=url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"windows-1251"));
try
{
String nextLine=null;
while ((nextLine=br.readLine())!=null) 
System.out.println(nextLine);
}
catch(EOFException e)
{
e.printStackTrace();
}
br.close();
is.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#6
Для: SOFTOBZOR.ru

Ты скажи что тебе не понятно конкретно??? А то очень расплывчатый ответ может получиться.
 
S

SOFTOBZOR.ru

#7
Для: SOFTOBZOR.ru

Ты скажи что тебе не понятно конкретно??? А то очень расплывчатый ответ может получиться.
Объясняю
Есть файл *.txt который находится на http:// сервере
1. к этому файлу нужно подконектится
2. этот файл нужно прочитать
3. данные из этого файла нужно вставить в Lotus

Файл:
Строка 1
Строка 2
Строка 3

Lotus
Field 1
Field 2
Field 3

Результат
Срока 1 -> вравить в Field 1
Срока 2 -> вравить в Field 2
Срока 3 -> вравить в Field 3

Все предельно понятно, но как не понятно.
Рбратие внимание это не XML по этому метот описаны выше не подходит.
 
S

SOFTOBZOR.ru

#9
<!--QuoteBegin-Kee_Keekkenen+7:10:2006, 19:10 -->
<span class="vbquote">(Kee_Keekkenen @ 7:10:2006, 19:10 )</span><!--QuoteEBegin-->а без разницы xml или txt, считывание идет построчно, а это, как тут все поняли, тебе и нужно smile.gif
[snapback]45077" rel="nofollow" target="_blank[/snapback]​
[/quote]

Да..???. я в лотусе может и новичек, но в методологии (из др. языков программирования) могу сделать вывод: Нафига тогда XML-обявлять если нужно получить строки? Для понта что-ли??? Может еще ZLIB библиотеку подключить для пущей точности :) ?
Set xml = CreateObject("Microsoft.XMLHTTP")
Если из стоки выше вы не увидели то что смущет то вот по короче
XML нужно парсит по тегам, по этому все что касается ...
st$ = xml.responseText
st$ = Strright(st$,"<CharCode>AUD")
st$ = Strright( st$, "<Value>" )
st$ = Strleft( st$, "</Value>" )
Тут отпадает, я прошу не гадать на кофейной гуще, как многие любят делать, сосвершенно сами не владея вопросом, а помочь - тем кто знает.

По этому вопрос открыт, тем кто хочет посмется пожалуйста на http://www.anekdotos.ru/
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#10
мое замечание относилось к проблеме считывания информации (вторая задача) из текстового файла, при чем тут xml ?!
а что касается первой задачи - в поле значение не заносится, то как ты определяешь, что значение в поле не заносится ?
 
O

oshmianski

#11
Для: SOFTOBZOR.ru
млин, е-мае, я конечно дико извиняюсь, но что мешает доработать скрипт, который я уже давал, вот так (код можно не менять 2 дня, потом уберу тестовый файл со своего сервака):
Код:
import java.net.*;
import java.io.*;
import lotus.domino.*;

public class JavaAgent extends AgentBase {

public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

// (Your code goes here) 

URL url=new URL("http://lotus.galaktika.by/Develop/Oshmianski.nsf/A0D978E1ACDC3E2BC2257202002607F8/$File/test.txt");
InputStream is=url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"windows-1251"));
try
{
String nextLine=null;
while ((nextLine=br.readLine())!=null) {
//System.out.println(nextLine);

Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.appendItemValue("Form", "твоя_форма");
doc.replaceItemValue("твое_поле", nextLine);
if (doc.save())
System.out.println("Document has been saved");
else
System.out.println("Unable to save document");
}
}
catch(EOFException e)
{
e.printStackTrace();
}
br.close();
is.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
или на ЖАБУ рука не поднимается?
и вообще, имхо, пофигу какой формат файла, ведь считывание идет построчно, а это, на сколько я понял, тебе и нужно.
 
O

oshmianski

#13
Спасибо большое, что то правда выдает ошибку на

В чем может быть трабл?
хм, трудно сказать. у меня был трабл: не могу в дизайнере сохранить жабовского агента, пока в Notes не запущу уже какого-нить существующего жаба-агента. после этого все гут.
 
O

oshmianski

#14
Для: SOFTOBZOR.ru
кроме того, ты вообще в какой тип агента пытаешься java-script засунуть? надеюсь JAVA, а не Lotus Script :(
и про импорт всех классов (что я указал) не забудь!
 
S

SOFTOBZOR.ru

#15
Естественно в Java
А вот про импорт если не сложно по подробней можно рассказать?

import java.net.*;
import java.io.*;
import lotus.domino.*;
 
O

oshmianski

#16
Естественно в Java
А вот про импорт если не сложно по подробней можно рассказать?

import java.net.*;
import java.io.*;
import lotus.domino.*;
если честно, то я не силен в JAVA, но предполагаю, что это обычное подключение классов или библиотек на подобие си #include <stdinit.h>.
я просто спрашивал, добавил ли ты эти строки.
решил проблему или нет?
 
S

SOFTOBZOR.ru

#19
Выдет на строке:
public class JavaAgent extends AgentBase {

А пишит что public is reserved indentifier, типа puplic зарезервировнное слово :ph34r:
 
O

oshmianski

#20
Для: SOFTOBZOR.ru
Выкладываю бд.
Открываешь, жмякаешь на кнопку "GetTxtFromHTTP" в представлении All.
Результат сообщи.
 

Вложения

Статус
Закрыто для дальнейших ответов.