powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите переписать процедуру (не могу разобраться)
8 сообщений из 8, страница 1 из 1
Помогите переписать процедуру (не могу разобраться)
    #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
Помогите переписать процедуру (не могу разобраться)
    #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
Помогите переписать процедуру (не могу разобраться)
    #36771670
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrayXXX4U , многа букаф... Любой практически вопрос можно показать на маленьком примере. Зачем совать сразу какую-то процедуру?
Простенький пример и вопрос.
...
Рейтинг: 0 / 0
Помогите переписать процедуру (не могу разобраться)
    #36771762
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, просто процитировав только маленький кусочек боялся, что не будет понятно.
В принципе, вопрос закрыт, не много метода тыка и разобрался.
только начинаю осваивать язык и некоторые обороты еще кажутся непонятными.
Как будто читаешь интересную книгу на русском и вот, на самом увлекательном месте переворачиваешь страничку и оп а дальше все на японском :)
...
Рейтинг: 0 / 0
Помогите переписать процедуру (не могу разобраться)
    #36772280
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrayXXX4UПростите, просто процитировав только маленький кусочек боялся, что не будет понятно.
Четкая формулировка вопроса и правильная цитата - залог успеха!
...
Рейтинг: 0 / 0
Помогите переписать процедуру (не могу разобраться)
    #36772287
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен с Вами !
...
Рейтинг: 0 / 0
Помогите переписать процедуру (не могу разобраться)
    #36772401
krvsa StrayXXX4U , многа букаф... Любой практически вопрос можно показать на маленьком примере. Зачем совать сразу какую-то процедуру?
Простенький пример и вопрос.

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


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