Перейти к содержимому

Фотография

[TC] работа с xml из TCна JS


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 0ver387

0ver387

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Лейзер Олег Евгеньевич

Отправлено 25 марта 2011 - 05:22

Привет Коллеги.

Опишу чуть-чуть задачу поставленную мне.
Есть WebService в который отправляют xml файл вероятно пока просто в папку кладут, потом вероятно запускается запрос на его обработку
Сам xml файл:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:inputRegistry xmlns:ns1="http://xmlns.cits/acc/01/01" xmlns="http://xmlns.cits/acc/01/01">
	<ns1:payment>
		<ns1:SEGMENT2></ns1:SEGMENT2>
		<ns1:SEGMENT3></ns1:SEGMENT3>
		<ns1:SEGMENT4></ns1:SEGMENT4>
		<ns1:ATTRIBUTE1> 2011-03-14T11:55:42</ns1:ATTRIBUTE1>
		<ns1:ATTRIBUTE2> 2011-03-14T11:55:42</ns1:ATTRIBUTE2>
		<ns1:ATTRIBUTE31/>
		<ns1:ATTRIBUTE3></ns1:ATTRIBUTE3>
		<ns1:ATTRIBUTE4></ns1:ATTRIBUTE4>
		<ns1:ATTRIBUTE5></ns1:ATTRIBUTE5>
		<ns1:ATTRIBUTE6></ns1:ATTRIBUTE6>
		<ns1:ATTRIBUTE8></ns1:ATTRIBUTE8>
		<ns1:ATTRIBUTE11></ns1:ATTRIBUTE11>
		<ns1:ENTERED_DR>10000</ns1:ENTERED_DR>
		<ns1:KEYCODE/>
		<ns1:VO>7</ns1:VO>
	</ns1:payment>
	<ns1:date>2011-03-14T11:55:42</ns1:date>
</ns1:inputRegistry>

Листинг скрипта
function Main()
{
UserForms.RegGen.ShowModal();
}

function RegGen_cxButtonGen_OnClick(Sender)
{
var kno = [101, 301, 3001, 3010, 3020];
var kbk = [104102, 104301, 104302, 104402];
var r2 = Math.floor(Math.random()*((kno.length)-1));
var r4 = Math.floor(Math.random()*((kbk.length)-1));
var seg2 = kno[r2];
var seg4 = kbk[r4];
  if (UserForms.RegGen.Segment2Random.Checked)
      UserForms.RegGen.Segment2.Text(seg2) 
  if (UserForms.RegGen.Segment4Random.Checked)
      UserForms.RegGen.Segment4.Text(seg4) 
}

                 
function RegGen_cxButtonSave_OnClick(Sender)
{
var seg2tx = UserForms.RegGen.Segment2.Text;
var seg3tx = UserForms.RegGen.CodRadioGroup.Caption;
var seg4tx = UserForms.RegGen.Segment4.Text;
//var att1tx = UserForms.RegGen.ATTRIBUTE1.Date;
var objXML = new ActiveXObject("Microsoft.XMLDOM");
objXML.async = false;
objXML.load(XML.XmlRegistry.Document);
var segment2 = objXML.selectSingleNode("//ns1:SEGMENT2");
var segment3 = objXML.selectSingleNode("//ns1:SEGMENT3");
var segment4 = objXML.selectSingleNode("//ns1:SEGMENT4");
//var attribute1 = objXML.selectSingleNode("//ns1:ATTRIBUTE1");
segment2.text=seg2tx;
segment3.text=seg3tx;
segment4.text=seg4tx;
//attribute1.text=att1tx;
//Log.Message(att1tx)  
var count = UserForms.RegGen.SpinEditCount.Value;
var i = 1;
var flname = UserForms.RegGen.FileNameEdit.Text;
if (UserForms.RegGen.FileNameEdit.Text != ""){
while (i <= count) {
objXML.save("C:\\"+flname+i+".xml")
i++;
} 
ShowMessage("Файлы " + flname + i +".xml " + "успешно сохранент")
}
else
ShowMessage("Не введено имя файла");
}


function RegGen_cxRadioGroup2_OnChange(Sender)
{
  if (UserForms.RegGen.CodRadioGroup.ItemIndex == 0)
      UserForms.RegGen.CodRadioGroup.Caption = "000000000"
  else 
    if (UserForms.RegGen.CodRadioGroup.ItemIndex == 1)  
      UserForms.RegGen.CodRadioGroup.Caption = "019999999"
    else 
    if (UserForms.RegGen.CodRadioGroup.ItemIndex == 2)  
      UserForms.RegGen.CodRadioGroup.Caption = "021999999"
    else 
      UserForms.RegGen.CodRadioGroup.Caption = "022999999"
}

function RegGen_cxButton1_OnClick(Sender)
{ 
  cDefaultHelloWorldResult = 'Hello World';
  //Log.Message("Test of the HelloWorld method.");
  // Call the HelloWorld method of the tested web service
  var Str = WebServices.WebService2.HelloWorld();
  // Post the results of the call to the log
  Log.Message("HelloWorld result: " + Str);
  // Check the results
  if (Str == cDefaultHelloWorldResult)
    Log.Message("HelloWorld returned the expected result.")
  else
    Log.Error("HelloWorld returned incorrect result.");
}

function RegGen_cxButton2_OnClick(Sender)
{
//var res = WebServices.Registry.execute()
////var resultValue = WebServices.Registry.execute(XML.XmlCheckpoint1);
//ShowMessage(resultValue);
//ShowMessage(res);
/*
var Str = WebServices.Registry.execute();
Log.Message(Str)
if (Str == execute)
Log.Message("Ok")
else
Log.Message("Not");
*/

}

function RegGen_OnShow(Sender)
{
//UserForms.RegGen.cxDateEdit1.Date(aqDateTime.Today());  
}


function RegGen_cxButtonEdit2_OnButtonClick(Sender, AButtonIndex)
{
UserForms.RegGen.SaveDialog1.Execute();
}

function RegGen_FileNameEdit_OnButtonClick(Sender, AButtonIndex)
{
UserForms.RegGen.SaveDialog1.Execute();  
}

Вот сейчас основная проблема это реализовать: если указываем количество n "реестров" напримет: то выходной xml будет имень структуру
<?xml version="1.0" encoding="UTF-8"?>
<ns1:inputRegistry xmlns:ns1="http://xmlns.cits/acc/01/01" xmlns="http://xmlns.cits/acc/01/01">
	<ns1:payment>
		<ns1:SEGMENT2></ns1:SEGMENT2>
........................................
		<ns1:VO>7</ns1:VO>
	</ns1:payment>
	<ns1:date>2011-03-14T11:55:42</ns1:date>
</ns1:inputRegistry>
Извените за бредовое описание задачи, но я в отчаиние deadline подступает!!
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных