ED501

Автор:tvs54
Дата:19.02.2015
Просмотров:4462
Скачиваний:2226
Оценка: - , Оценок - 0
Сохранить в файле

Обсудить в форуме

Описание

Формирование и прием посылок 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;