ED501
Сохранить в файлеОбсудить в форуме
Описание
Формирование и прием посылок ED501, бесплатный вариант
Текст примера
import "txml.mac", rslx, globals, cnt_dlm; fdname = "\\\\a993\\app2\\import\\ED501\\"; var xmlD :object = txml(true, "WINDOWS-1251"); var dddd,mmmm,yyyy, name; var NodeB; var EDNo = "7000"; var ActualReceiver = "0173604000"; var PDN = "test.txt"; file fPDN() txt; var t_a = TArray(); var t_i; macro MakeXML() var str="", str64=""; xmlD.add("ED501"); xmlD.setattr("//ED501", "EDNo", EDNo); DateSplit({curdate},dddd,mmmm,yyyy); xmlD.setattr("//ED501", "EDDate", String(SubStr("0000"+yyyy, Strlen("0000"+yyyy)-3, 4) + "-" + SubStr("00"+mmmm, Strlen("00"+mmmm)-1, 2) + "-" + SubStr("00"+dddd, Strlen("00"+dddd)-1, 2))); xmlD.setattr("//ED501", "EDAuthor", "0173771000"); xmlD.setattr("//ED501", "ActualReceiver", ActualReceiver); xmlD.setattr("//ED501", "xmlns", "urn:cbr-ru:ed:v2.0"); Open(fPDN, fdname+PDN); while(Next(fPDN)) str = str + fPDN.str + "\n"; end; EncodeToBase64(str, str64); xmlD.add("//ED501", "ProprietoryDocument"); xmlD.setval("//ED501/ProprietoryDocument", str64); xmlD.add("//ED501", "ProprietoryAttachment"); xmlD.setval("//ED501/ProprietoryAttachment", ""); DateSplit({curdate},dddd,mmmm,yyyy); name = fdname + EDNo+String(SubStr("0000"+yyyy, Strlen("0000"+yyyy)-3, 4) + SubStr("00"+mmmm, Strlen("00"+mmmm)-1, 2) + SubStr("00"+dddd, Strlen("00"+dddd)-1, 2)) + ".xml"; xmlD.save(name); end; macro GetXML() Array flist; var szImportDir = fdname; /* Выберем файл */ var dl = TDirList(fdname + "*.*", "F"); if (dl.Count == 0) MsgBox("НЕТ ФАЙЛОВ ДЛЯ ЗАГРУЗКИ"); exit(1); end; var i = 0; while (i<dl.Count) flist(i) = dl.Name(i); i = i + 1; end; i = Menu(flist, "Выберите файл для загрузки", "Список файлов"); if (i<0) return false; end; var fName = fdname + flist(i); var str="", str64=""; xmlD.load(fName); var eNode, xNode; eNode = xmlD.m_doc.documentElement; str64 = eNode.getElementsByTagName("ProprietoryDocument").item(0).Text; DecodeFromBase64(str64,str); println(str); println("-------------------ProprietoryAttachment--------------------------------"); str64 = eNode.getElementsByTagName("ProprietoryAttachment").item(0).Text; DecodeFromBase64(str64,str); println(str); end; t_a(0) = "Отправляем"; t_a(1) = "Принимаем"; t_i = Menu(t_a); if (t_i == 0) if (GetString(EDNo, "Введите номер сообщения") and GetString(ActualReceiver, "Получатель") and GetString(PDN, "Введите имя файла с сообщением")) MsgBox("Проверьте отсылаемый документ"); Open(fPDN, fdname+PDN); ViewFile(fPDN); Close(fPDN); if (GetTrue(FALSE, "Отправлять этот документ в посылке номер "+EDNo+" на получателя "+ActualReceiver + "?")) MakeXML(); println("Файл сформирован"); else println("Отказались отправлять"); end; end; elif (t_i == 1) GetXML(); else println("Отказались"); end;