Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите переписать процедуру (не могу разобраться) / 8 сообщений из 8, страница 1 из 1
02.08.2010, 15:37
    #36771207
StrayXXX4U
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переписать процедуру (не могу разобраться)
Помогите пожалуйста !!!!
Есть процедура:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
/// Заказ поставщику Шрея ( Омск )
ClassMethod ExportShreyaOms(docs As %String, rec As %String, ByRef error As %Library.String) As %Library.Boolean [ Language = cache, ProcedureBlock =  0 , SoapBindingStyle = document, SoapBodyUse = literal ]
{
 i $g(rec)="" s error="Неопределен получатель почты" q  0 
 i $g(docs)="" s error="Нет ссылки на документ для экспорта" q  0 
 n query,str,code,name,addr,drugs,doc,file,kpr,comm,rem,gl,ch,rm1,rm2,npp,dt,rem,obj,NPP,err,uniq,str,kprname
 n UslOpl,list,ndoc,codeType,CodeRec,glm,short,obj,vgSort,tmp,ID
 s $zt="ztExportUni2"
 s (name,str,obj,error,code,npp,uniq)="",err= 1 
 s obj=##class(MailParticipant).GetParticipantObject(rec)
 i 'obj s error="Не определена связь получателя почты с понятием БД" q 0
 s name=obj.FullName,code=obj.ExtCode
 s uniq=obj.UniqCode s obj=""
 s UslOpl="",codeType=1
 s gl=##class(Mail).CreateExportMail(.error) i gl="" q 0
 s glm=gl,str=$g(@gl)
 s $li(str,3)="Документы для "_name
 s $li(str,4)="Docs",@gl=str
 s obj=##class(Docs).%OpenId(docs)
 i 'obj k @gl s error="В базе нет такого документа ID="_docs q  0 
 s kpr= 0 ,(short,CodeRec)="" d:obj.Titles.CodeRec
 .s kpr=obj.Titles.CodeRec.LastObj.ExtCode
 .s short=obj.Titles.CodeRec.LastObj.FullName
 .s CodeRec=obj.Titles.CodeRec.LastObj.ExtCode
 .i obj.Titles.CodeRec.LastObj.Type s codeType=obj.Titles.CodeRec.LastObj.Type.LastObj.ExtCode
 s ndoc= 0 
 d:obj.Titles
 .s ndoc=obj.Titles.NDok
 .q:'obj.Titles.UslOpl
 .s UslOpl=obj.Titles.UslOpl.FullName
 s kprname=""
 d:obj.Titles.CodeRec
 .s kprname=obj.Titles.CodeRec.LastObj.FullName
 .s addr=obj.Titles.CodeRec.LastObj.Address
 .s tel=obj.Titles.CodeRec.LastObj.Phone
 s kod=60374
 ; Определяем значение поля Subject
 i kprname[313 s kod=313,short=obj.Titles.CodeRec.LastObj.ExtCode_" "_obj.Titles.CodeRec.LastObj.ShortName
 e  s short=CodeRec_" НАД "_short
 s rem=obj.Titles.Comment
 s comm=obj.DocType.DocTypeName
 s type=obj.DocType.TableName s obj=""
 i type'= 10  k @gl q  1 
 s @gl@("Client",rec,"FileName")=$e("000", 1 , 3 -$l(code))_code_$e(ndoc,$l(ndoc)- 3 ,$l(ndoc))_".dat"
 s gl=$na(@gl@("Data")) k @gl
 ; Шапка файла
 s npp=$o(@gl@(""),- 1 )+ 1 ,dt=$zdt($h, 4 )
 s dt=$p(dt," ", 2 )_"  "_$tr($p(dt," "),"/","-")
 ; Клиент
 ;s @gl@(npp,"Text")="Код="_kod,npp=npp+ 1 
 ; Получатель (определить)
 s @gl@(npp,"Text")="Subject: "_rem,npp=npp+ 1 
 ; Сумма по документу №  3 
 s @gl@(npp,"Text")="Поставщик: "_name_" "_dt_"     Сумма: ",npp=npp+ 1 
 ; Вид оплаты (определить)
 s UslOpl=codeType
 ;s @gl@(npp,"Text")=UslOpl,npp=npp+ 1 
 ;s @gl@(npp,"Text")="Адрес: "_addr_" Телефон:"_tel_"",npp=npp+ 1 
 ; глобаль для сортировки
 l +^mtempA("Sort")
 s tmp=$o(^mtempA("Sort",""),- 1 )+ 1 ,^(tmp)="",vgSort=$zr
 l -^mtempA("Sort")
 ; выбрать строки документа
 s query=##class(%ResultSet).%New("DocDataSystem.GetByDoc")
 d query.Execute(docs) s sum=""  d   s query=""
 .f  q:'query.Next()  d  q:'err  s obj= 0 
 ..s ID=query.GetData( 1 )
 ..s obj=##class(DocData).%OpenId(ID) q:'obj
 ..s drugs=obj.Drugs.ExtCode,kol=obj.Quantity,nameDrugs=obj.Drugs.FullName
 ..s cena=obj.CenaZak i 'cena s cena=obj.CenaPrice
 ..s nomn=obj.CodeDrugS s obj=""
 ..k list i ##class(LibOrder).NomNToNomNS(drugs,code,.list)
 ..; код товара у поставщика
 ..i nomn="" s nomn=##class(LibOrder).NomNToNomNS(drugs,code)
 ..i nomn="" s err= 0 ,error="Для кода товара ("_drugs_") нет соответствия у поставщика ! " q
 ..i '$d(list(nomn)) s err=0,error="Товара (внешний код "_nomn_") нет в таблице перекодировки для внутреннего кода "_code q
 ..;  Сортировка
 ..s @vgSort@($s(nameDrugs="":" ",1:nameDrugs),ID)=$j(nomn,6)_"  "_$e(nameDrugs_$j("",40),1,40)_$j(kol,8)
 ..s sum=sum+(cena*kol)
 ;
 ; Выбор данных из отсортированной глобали
 s nomn="" f  s nomn=$o(@vgSort@(nomn)) q:nomn=""  s ID="" f  s ID=$o(@vgSort@(nomn,ID)) q:ID=""  d
 .s @gl@(npp,"Text")=$g(@vgSort@(nomn,ID)),npp=npp+1
 k @vgSort
 ;
 ; Отправка письма
 i 'err k @glm q  0 
 s @gl@( 2 ,"Text")=$g(@gl@( 2 ,"Text"))_$j(sum, 0 , 2 )_" руб."
 ; Сбросить в файл
 s err=##class(Mail).SendMail(glm,.error)
 q err
 ; Обработка ошибок
ztExportUni2
 s $zt=""
 i $zobjstate($g(obj))= 1  s obj=""
 s error=$ze,$ze=""
 q  0 
 }

не могу понять как сделать так:
1 что бы вместо пробелов разделитель был символ табуляции
2 что бы еще добавить колонки цена и сумма построчно

Heeelllppppp !!!!!
...
Рейтинг: 0 / 0
02.08.2010, 15:39
    #36771211
StrayXXX4U
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переписать процедуру (не могу разобраться)
сейчас результат работы:

;---------------------------------------------------
Subject: 13 НАД Лиана
Поставщик: Алиди 17:53:08 25-09-2002 Сумма: 873.52 руб.
Адрес: Телефон:
5000174740400 З/п Бленд-а-мед сода 50мл 1
4015400023777 Прокл Олвэйс ультра лайт №10 2
4015400025542 Прокл Олвэйс ультра найт №7 2
5000174141412 З/п Бленд-а-мед актив минер 50мл 1
5000174141443 З/п Бленд-а мед актив минер 100мл 1

такой
...
Рейтинг: 0 / 0
02.08.2010, 18:33
    #36771670
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переписать процедуру (не могу разобраться)
StrayXXX4U , многа букаф... Любой практически вопрос можно показать на маленьком примере. Зачем совать сразу какую-то процедуру?
Простенький пример и вопрос.
...
Рейтинг: 0 / 0
02.08.2010, 19:22
    #36771762
StrayXXX4U
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переписать процедуру (не могу разобраться)
Простите, просто процитировав только маленький кусочек боялся, что не будет понятно.
В принципе, вопрос закрыт, не много метода тыка и разобрался.
только начинаю осваивать язык и некоторые обороты еще кажутся непонятными.
Как будто читаешь интересную книгу на русском и вот, на самом увлекательном месте переворачиваешь страничку и оп а дальше все на японском :)
...
Рейтинг: 0 / 0
03.08.2010, 10:01
    #36772280
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переписать процедуру (не могу разобраться)
StrayXXX4UПростите, просто процитировав только маленький кусочек боялся, что не будет понятно.
Четкая формулировка вопроса и правильная цитата - залог успеха!
...
Рейтинг: 0 / 0
03.08.2010, 10:03
    #36772287
StrayXXX4U
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переписать процедуру (не могу разобраться)
Согласен с Вами !
...
Рейтинг: 0 / 0
03.08.2010, 10:56
    #36772401
Помогите переписать процедуру (не могу разобраться)
krvsa StrayXXX4U , многа букаф... Любой практически вопрос можно показать на маленьком примере. Зачем совать сразу какую-то процедуру?
Простенький пример и вопрос.

Человек не разобрался в методе, и "вопрос" заключается в том, чтобы за него это сделали форумчане.
Он правильно сделал, что процитировал весь метод, т.к. вопрос не по cache как таковому, а по методу.
Тут ваша "параноя" по поводу примеров неуместна.
...
Рейтинг: 0 / 0
03.08.2010, 11:29
    #36772469
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переписать процедуру (не могу разобраться)
уфывкпывапывпаТут ваша "параноя" по поводу примеров неуместна.
Тебе конечно видней...
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите переписать процедуру (не могу разобраться) / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]