fyryhyod
|
|
1 | |
Проблема с LotusScript27.07.2004, 16:49. Показов 32135. Ответов 14
Метки нет (Все метки)
Такая вот проблема!
Как в LotusScript зделать экспорт в файл MS Word содержимого письма? ICQ 24295867 fhserv@mail.ru |
27.07.2004, 16:49 | |
Ответы с готовыми решениями:
14
Проблема с вызовом java из lotusscript Проблема с запуском агента на Lotusscript Проблема с созданным Lotusscript-ом документом Проблема при создании Calendar Entry с помощью Lotusscript |
0 / 0 / 0
Регистрация: 09.11.2003
Сообщений: 283
|
|
27.07.2004, 17:06 | 2 |
Ну вообще то простейший экспорт есть в меню File - Export или то же самое на "собаках" @Command([FileExport]; fileType ; fileName ))
0
|
fyryhyod
|
|
27.07.2004, 17:14 | 3 |
@-Command не запускается из LotusScript? а мне надо в сложном агенте одну из функций такую зделать!
|
0 / 0 / 0
Регистрация: 09.11.2003
Сообщений: 283
|
|
27.07.2004, 17:25 | 4 |
А документ при этом открыт на UI или нет ?
Если открыт, то имхо может прокатить агент с собакой, а вызывать его можно из скрипта. Еще из того что приходит в голову. Где то валялась у меня dll, сбрасывающая содержимое поля в rtf файл. Но dll малость специфичная и подойдет ли - не знаю. Попробуй поиграться с двумя агентами, если не получится кинь сообщение, попробую поискать dll.
0
|
0 / 0 / 0
Регистрация: 09.11.2003
Сообщений: 283
|
|
27.07.2004, 17:27 | 5 |
Кстати, не уверен что в данном случае можно, но вообще то "собаки" можно выполнять из скрипта. Посмотри Evaluate
0
|
fyryhyod
|
|
27.07.2004, 17:31 | 6 |
Я тут совсем новичок - подскажите по подробней плиз!
Вот эта хрень не работает: If doc.HasEmbedded Then Set body = doc.GetFirstItem("Body") Forall att In body.EmbeddedObjects If att.Type = EMBED_ATTACHMENT Then filepath$ = "C:\MAIL\IN\" & att.Source Call att.ExtractFile(filepath$) End If End Forall Else Set agent = db.GetAgent("import") agent.Run(doc.NoteID) End If End Sub Говорит Notes error: @-функция не может использоваться в этом контексте |
0 / 0 / 0
Регистрация: 09.11.2003
Сообщений: 283
|
|
27.07.2004, 17:44 | 7 |
А в дебагере ругается на месте вызова агента ?
0
|
fyryhyod
|
|
27.07.2004, 17:52 | 8 |
Как вызвать @-команду из LotusScript - ГЛАВНЫЙ вопрос
????????????????????????????????????????????????? |
0 / 0 / 0
Регистрация: 09.11.2003
Сообщений: 283
|
|
27.07.2004, 18:01 | 9 |
я ж раньше писал функция Evaluate. посмотри в хелпе.
Из приведенного тобой кода ничего определенного сказать не могу. имхо там все грамотно и никаких заморочек вознивать не должно. Возможны проблемы в агенте Import. Но его кода я не знаю Если что стучи в асю 128084858
0
|
fyryhyod
|
|
28.07.2004, 08:57 | 10 |
ПОЛНЫЙ текст агента
Sub Initialize Dim session As New NotesSession Dim doc As NotesDocument Dim fileNum As Integer Dim collection As NotesDocumentCollection Dim body As NotesRichTextItem Dim pathName As String, fileName As String Dim agent As NotesAgent Set db = session.CurrentDatabase Set collection = db.UnprocessedDocuments Set doc = collection.GetFirstDocument() fileNum%=Freefile Open "c:\MailMaster.add" For Output As fileNum% Print #fileNum%, doc.GetItemValue("Subject")0) Close fileNum% REM Удаление pathName$ = "C:\MAIL\IN\" fileName$ = Dir$(pathName$+"*.*", 0) Do While fileName$ <> "" Kill pathName$+fileName$ fileName$ = Dir$() Loop REM Извлечение If doc.HasEmbedded Then Set body = doc.GetFirstItem("Body") Forall att In body.EmbeddedObjects If att.Type = EMBED_ATTACHMENT Then filepath$ = "C:\MAIL\IN\" & att.Source Call att.ExtractFile(filepath$) End If End Forall Else Set agent = db.GetAgent("import") agent.Run(doc.NoteID) End If End Sub ТЕКСТ АГЕНТА import @Command( [FileExport] ; "Microsoft Word 6.0" ; "C:\\MAIL\\IN\\0.doc") |
|
|
09.08.2004, 17:10 | 11 |
Приветствую
я в лотусе новичок поскажите пожалуйста как всавити данные в поля, connect и выборка данных с SQL успешна, не получается обратиться к полю для вставки значения, что-то не понимаю. один из вариантов кода(их было много, возможно есть лишнее) Option Public uselsx"*LSXODBC" Sub Initialize Dim city As String Dim con_sql As New ODBCConnection Dim query As New ODBCQuery Dim result As New ODBCResultSet Dim db As NotesDatabase Dim workspace As New NotesUIWorkspace Dim source As NotesUIDocument Set workspace = New NotesUIWorkspace Set source = workspace.currentdocument Print "LS:DO LSX Version: " & con_sql.GetLsdoMasterRevision If con_sql.ConnectTo ("test_sql") Then Print "ODBC Connection to " & con_sql.DataSourceName & " opened" Else Messagebox "FAILED" Messagebox "Error number: " & con.GetError & Chr( 13 ) & "error message: "& con.GetExtendedErrorMessage Exit Sub End If ----------------------------- запрос к SQL и возврат в Lotus Set query.Connection = Con_sql Set result.Query =Query query.SQL = "select Country, Region, City from Address where City=Москва " result.Execute result.FirstRow Do While Not result.IsEndOfData city=result.GetValue ("City") region=result.GetValue ("Region") country=result.GetValue ("Country") Call source.fieldsettext("city",result.getvalue("city")) result.NextRow Loop con_sql.Disconnect Print "ODBC Connection to " & con_sql.DataSourceName & " clouse" End Sub |
mor
|
|
17.08.2004, 16:14 | 12 |
... & con_sql.DataSourceName & " clouse"
"там close" надо писать |
|
|
19.08.2004, 10:03 | 13 |
["там close" надо писать]
Так дело в том что этот код не рабочий данные он то получает но не "вставляет" Я эту проблему решил открывая два connectа один с SQLбазай другой с Lotusовской базой, но это не дело - два коннекта. Ты разве больше ошибок не заметил? |
mor
|
|
19.08.2004, 12:31 | 14 |
Дмитрий
Я пошутить неудачно пытался, обращая внимание на неправильное написание слова "закрыть" на английском языке. Если бы я мог найти ошибку, я бы конечно тебе о ней сказал, а так мне нечего было сказать, потому что мне нужно "потрогать руками" твой код, сидеть за твоим компом и т.д., надеюсь, ты меня понимаешь, что удаленно трудно найти ошибку, если она не очевидна. Сейчас я приведу тебе примеры кода из рабочей базы данных (R6.5), которая работает напрямую с MS SQL Server 2000, возможно это тебе поможет. Если что непонятно, то спрашивай. Я просто код писал года два назад и с тех пор не работал с sql, уже тоже немного подзабыл все тонкости... Код
(Declaration) декларация в библиотеке программ Объявление переменных для работы с SQL- сервером Public usrtype As Integer Public keyret As Variant Public mysource As String Public myuser As String Public mypass As String Public con As ODBCConnection Public qry As ODBCQuery Public result As ODBCResultSet Public sqlstring As String Public CurMonth As String Public CurYear As String Public CurDay As String Sub Initialize инициация в библиотеке программ Set ws = New NotesUIWorkspace Set session = New NotesSession Set db = session.CurrentDatabase Установка текущих дня, месяца и года CurDay = Cstr( Day(Now()) ) CurMonth = Cstr( Month(Now()) ) CurYear = Cstr( Year(Now()) ) Установка переменных для соединения с SQL- сервером mysource = "server" myuser = "Webuser" mypass = "webuser" Set con = New ODBCConnection Set qry = New ODBCQuery Set result = New ODBCResultSet Set qry.Connection = con Set result.Query = qry End Sub Sub Click(Source As Button) действие (action) на форме, обновляет информация о пользователе, его счете с sql сервера Dim CurDollarRate As Double Dim Message As String If doc.RegNum(0) = 0 Or doc.RegNum(0) = 20000 Then Message = "Неверный регистрационный номер - " + Cstr(doc.RegNum(0) ) Messagebox Message, MB_OK + MB_ICONSTOP, "ПРЕДУПРЕЖДЕНИЕ!" Exit Sub End If Установка соединения с SQL- сервером (остальные переменные инициируются при подкл. библ. по Initialize) keyret = con.ConnectTo( mysource, myuser, mypass) If Not con.IsConnected Then Messagebox "Could not connect to " + mysource + " for " + myuser ,, "No connection" Exit Sub End If Call UserRefresh(doc) Обновление текушей карточки пользователя (абонента сети) Разрыв соединения с SQL- сервером result.Close(DB_CLOSE) con.Disconnect End Sub Sub UserRefresh( doc As notesdocument) функция библиотеки программ Обновление карточки абонента Dim Message As String Запрос общих данных пользоавтеля qry.SQL = "EXEC UserCommonInfo "+ Cstr(doc.RegNum(0)) If Not result.Execute Then Messagebox result.GetExtendedErrorMessage,, result.GetErrorMessage Message = "Сбой при запуске процедуры UserCommonInfo для абонента " + Cstr(doc.RegNum(0)) Messagebox Message, MB_OK + MB_ICONSTOP, "ПРЕДУПРЕЖДЕНИЕ!" Exit Sub End If result.nextrow doc.RegName=result.getvalue("Name") If doc.RegName(0) = "" Then Message = "Нет имени абонента или неверный регистрационный номер - " + Cstr(doc.RegNum(0) ) Messagebox Message, MB_OK + MB_ICONSTOP, "ПРЕДУПРЕЖДЕНИЕ !" Exit Sub End If doc.vv = result.getvalue("Money") Принимается текстовая строка с разделителем "." doc.vv = Evaluate({ @ReplaceSubstring( vv; "."; "," ) }, doc ) Заменяем "." на "," If doc.vv(0) = "" Then doc.Counter = 0.0 Else doc.Counter = Cdbl( doc.vv(0) ) End If doc.vv = result.getvalue("Credit") doc.vv = Evaluate({ @ReplaceSubstring( vv; "."; "," ) }, doc ) If doc.vv(0) = "" Then doc.Credit = 0.0 Else doc.Credit = Cdbl( doc.vv(0) ) End If doc.UserPassword = result.getvalue("Password") doc.UserIP = result.getvalue("UserIP") doc.UserIPCount = Cstr( result.getvalue("UserIPCount") ) doc.PlanID = Cstr( result.getvalue("PlanID") ) doc.UserIPInt = result.getvalue("UserIPInt") If doc.AccountSort(0) <> "1" Then doc.vv = result.getvalue("Cost") doc.vv = Evaluate({ @ReplaceSubstring( vv; "."; "," ) }, doc ) If doc.vv(0) = "" Then doc.Cost = 0.0 Else doc.Cost = Cdbl( doc.vv(0) ) End If End If doc.vv = result.getvalue("Bond") doc.vv = Evaluate({ @ReplaceSubstring( vv; "."; "," ) }, doc ) If doc.vv(0) = "" Then doc.Bond = 0.0 Else doc.Bond = Cdbl( doc.vv(0) ) End If doc.UserIPPlanDate = Mid$( result.getvalue("StartDate"), 9, 2 ) + "." + Mid$( result.getvalue("StartDate"), 6, 2 ) + "." +_ Mid$( result.getvalue("StartDate"), 1, 4 ) + " " + Mid$( result.getvalue("StartDate"), 12, 2 ) + ":" + Mid$( result.getvalue("StartDate"), 15, 2 ) usrtype=result.getvalue("Type") If usrtype=0 Or usrtype=1 Or usrtype=2 Or usrtype=3 Then doc.UserDisable = "0" Работа разрешена Else doc.UserDisable = "1" End If If usrtype=0 Or usrtype=1 Or usrtype=4 Or usrtype=5 Then doc.RegTraf = "0" Учет трафика Else doc.RegTraf = "1" End If If usrtype=0 Or usrtype=2 Or usrtype=4 Or usrtype=6 Then doc.Disconnect = "0" Отключение при исчерпании счета и кредита Else doc.Disconnect = "1" End If doc.UserType = result.getvalue("UserType") doc.AccountType = result.getvalue("AccountType") doc.MACAddress = result.getvalue("MACAddress") doc.RegDate = result.getvalue("RegDate") doc.Phones = result.getvalue("Phones") doc.EMail=result.getvalue("EMail") doc.Fax = result.getvalue("Fax") doc.FullUserName = result.getvalue("FullUserName") doc.Post = result.getvalue("Post") doc.UserNote = result.getvalue("UserNote") doc.ZIP=result.getvalue("ZIP") doc.City=result.getvalue("City") doc.Street=result.getvalue("Street") doc.Building=result.getvalue("Building") doc.Room=result.getvalue("Room") Запрос трафика за ноябрь: ( Форма строки - EXEC GetUserTrafficM 20103, 2002.11.1 00:00:00, 2002.11.23 00:00:00, mm ) qry.SQL = "EXEC GetUserTrafficM " + Cstr(doc.RegNum(0) ) + ", " + CurYear + "." + CurMonth + "." + "1" + " 00:00:00, " + CurYear + "." + CurMonth + "." + CurDay + " 00:00:00, mm" If Not result.Execute Then выдача запроса о трафике Messagebox result.GetExtendedErrorMessage,, result.GetErrorMessage Message = "Сбой при запуске проц. GetUserTrafficM для абонента " + Cstr(doc.RegNum(0) ) Messagebox Message, MB_OK + MB_ICONSTOP, "ПРЕДУПРЕЖДЕНИЕ !" Exit Sub End If result.nextrow If result.getvalue("Cost") = False Then Полная стоимость в у.е. doc.CostAll = 0.0 Else doc.CostAll = result.getvalue("Cost")/10000000 End If If result.getvalue("CostInternet") = False Then Стоимость интернет в у.е. doc.CostI = 0.0 Else doc.CostI = result.getvalue("CostInternet")/10000000 End If Просчет трафика If result.getvalue("InTrafficInternet") = False Then Вхд трафик Интернет в Мб doc.InTrafI = 0.0 Else doc.InTrafI = result.getvalue("InTrafficInternet")/100 End If If result.getvalue("OutTrafficInternet") = False Then Исхд трафик Интернет в Мб doc.OutTrafI = 0.0 Else doc.OutTrafI = result.getvalue("OutTrafficInternet")/100 End If Запрос 2-х последних Платежей: qry.SQL = "exec UserPaymentsInfo " + Cstr(doc.RegNum(0) ) If Not result.Execute Then выдача запроса Messagebox result.GetExtendedErrorMessage,, result.GetErrorMessage Message = "Сбой при запуске проц. Exec UserPaymentsInfo для абонента " + Cstr(doc.RegNum(0) ) Messagebox Message, MB_OK + MB_ICONSTOP, "ПРЕДУПРЕЖДЕНИЕ !" Exit Sub End If doc.PName = "" doc.PDate = "" doc.PMoney = "" doc.PNameP = "" doc.PDateP = "" doc.PMoneyP = "" Последний платеж If Not result.IsResultSetAvailable Then Exit Sub result.LastRow If result.getvalue("PName") = False Then doc.PName = "" Else doc.PName = result.getvalue("PName") Тип платежа End If If result.getvalue("PDate") = False Then Дата платежа doc.PDate = "" Else doc.PDate = Mid$( result.getvalue("PDate"), 9, 2 ) + "." + Mid$( result.getvalue("PDate"), 6, 2 ) + "." +_ Mid$( result.getvalue("PDate"), 1, 4 ) + " " + Mid$( result.getvalue("PDate"), 12, 2 ) + ":" + Mid$( result.getvalue("PDate"), 15, 2 ) End If Сумма платежа doc.vv = result.getvalue("PMoney") Принимается текстовая строка с разделителем "." doc.vv = Evaluate({ @ReplaceSubstring( vv; "."; "," ) }, doc ) Заменяем "." на "," If doc.vv(0) = "" Then doc.PMoney = "" Else doc.PMoney = Cdbl( doc.vv(0) ) End If Предыдущий платеж If result.PrevRow Then If result.getvalue("PName") = False Then doc.PNameP = "" Else doc.PNameP = result.getvalue("PName") Тип платежа End If If result.getvalue("PDate") = False Then Дата платежа doc.PDateP = "" Else doc.PDateP = Mid$( result.getvalue("PDate"), 9, 2 ) + "." + Mid$( result.getvalue("PDate"), 6, 2 ) + "." +_ Mid$( result.getvalue("PDate"), 1, 4 ) + " " + Mid$( result.getvalue("PDate"), 12, 2 ) + ":" + Mid$( result.getvalue("PDate"), 15, 2 ) End If Сумма платежа doc.vv = result.getvalue("PMoney") Принимается текстовая строка с разделителем "." doc.vv = Evaluate({ @ReplaceSubstring( vv; "."; "," ) }, doc ) Заменяем "." на "," If doc.vv(0) = "" Then doc.PMoneyP = "" Else doc.PMoneyP = Cdbl( doc.vv(0) ) End If End If End Sub |
0 / 0 / 0
Регистрация: 09.11.2003
Сообщений: 283
|
|
21.09.2004, 19:14 | 15 |
БОЖЕ!!!!!!!!!!, вы что все с ума сошли!
это простейшее. ПРосто создаёшь OLE объект скриптом. В MSDN полное описание объектной модели ворда. Есть даже примеры на бейсике. Если уже совсем не получиться, то звони, скину пример ISQ 231813219
0
|
21.09.2004, 19:14 | |
21.09.2004, 19:14 | |
Помогаю со студенческими работами здесь
15
Lotusscript Lotusscript -> @-формулы Lotusscript -> Javascript Enumeration В Lotusscript Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |