powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / а теперь вопрос про XML
16 сообщений из 16, страница 1 из 1
а теперь вопрос про XML
    #32278376
BJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форме есть СписокОрганизаций1, который заполняется из xml файла:

<Organization>
<Description>
<Code>1</Code>
<NameOrg>Организация1</NameOrg>
<AddressOrg>ул 1</AddressOrg>
</Description>
<Description>
<Code>2</Code>
<NameOrg>Организация2</NameOrg>
<AddressOrg>ул 2</AddressOrg>
</Description>
</Organization>

и поле КодОрганизации, которое должно обновляться в соотвесствиис тем, какую организацию выбрал пользователь

Подскажите, плз, как это можно сделать?
можно общие мысли...
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278401
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хранить в ItemData код организации, например так:
List1.AddItem "Microsoft"
List1.ItemData(List1.NewIndex) = 42310
List1.AddItem "Sun"
List1.ItemData(List1.NewIndex) = 52855
List1.AddItem "Sony"
List1.ItemData(List1.NewIndex) = 64932
List1.AddItem "Marlboro"
List1.ItemData(List1.NewIndex) = 39227
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278430
BJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как этот код вытащить в поле КодОрганизации?

Private Sub SenderName_Click()

Me.SenderCode.Text = ????

End Sub
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278433
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понимаю, что SenderName и SenderCode это два разных элемента управления
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278440
BJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да
SenderName это названиt ComboBox со списком организаций,
а SenderCode - название поля, куда выводится код организации
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278445
BJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заполняю список так

Private Sub Form_Load()
Dim oXMLDom As New DOMDocument30
Dim oNode As IXMLDOMNode
oXMLDom.async = False
oXMLDom.validateOnParse = False
oXMLDom.resolveExternals = False
oXMLDom.preserveWhiteSpace = True

If oXMLDom.Load(App.Path + "\SenderRecipient.xml") = False Then
MsgBox "Failed to load xml data from file."
Exit Sub
End If

Set oNodes = oXMLDom.selectNodes("//Organization/Description/NameOrg")

For i = 0 To oNodes.length - 1
Set oNode = oNodes.nextNode
If Not (oNode Is Nothing) Then
sName = oNode.nodeName
sData = oNode.xml

Me.SenderName.AddItem oNode.nodeTypedValue
Me.SenderName.ItemData(Me.SenderName.NewIndex) = 42310
End If
Next
End Sub
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278449
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем два элемента управления, когда в одном можно сделать?
Ну и как результат получился после выполнения последнего кода?
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278459
BJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я на VB не так давно работаю...даже совсем недавно..
подскажи как с одним элементом можно?

код выполняется, но некорректно естественно...

Private Sub SenderName_Click()
Me.SenderCode.Text = Me.SenderName.ItemData(1)
End Sub

в поле выводится один раз 42310 и все...
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278510
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробегись в цикле по рекордсету или по Treeveiw и заполни

Me.SenderName.AddItem oNode.nodeTypedValue
Me.SenderName.ItemData(Me.SenderName.NewIndex) = i

т.е. в свойство NewIndex ты сам записываешь нужный тебе код, а в свойстве Text у тебя будет наименование организации.
И еще, я бы этот код добавил не в обработчик события _Click, а в Form_Load, например.
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278540
BJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь на Form_Load пишу
If oXMLDom.Load(App.Path + "\SenderRecipient.xml") = False Then
MsgBox "Failed to load xml data from file."
Exit Sub
End If

Set oNodes = oXMLDom.selectNodes("//Organization/Description/NameOrg")

For i = 0 To oNodes.length - 1
Set oNode = oNodes.nextNode
If Not (oNode Is Nothing) Then
sName = oNode.nodeName
sData = oNode.xml

If oXMLDom.Load(App.Path + "\SenderRecipient.xml") = False Then
MsgBox "Failed to load xml data from file."
Exit Sub
End If

Set oNodes = oXMLDom.selectNodes("//Organization/Description/NameOrg")

For i = 0 To oNodes.length - 1
Set oNode = oNodes.nextNode
If Not (oNode Is Nothing) Then
sName = oNode.nodeName
sData = oNode.xml

Me.SenderName.AddItem oNode.nodeTypedValue
Me.SenderName.ItemData(Me.SenderName.NewIndex) = i
End If
Next

Me.SenderCode.Text = Me.SenderName.ItemData(i)



Ругается на самую последнюю строчку
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278563
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Название организации ты добавляешь вот в этой строке:
Me.SenderName.AddItem oNode.nodeTypedValue
т.е. в эту строку ты должен писать само "Наименование организации"

А последнюю строку вообще убери...
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278576
BJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, так название организации и пишется...
или я чего то не пойму...
повторюсь, но поблема то в том, что при выборе из списка организаций менялся код их в другом поле...
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278598
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я примерно представляю зачем это нужно...Т.е. когда ты выбираешь в списке название организации нужно чтобы в других полях отображалась информация об этой организации, типа - адрес, телефон и т.д.
Так зачем тебе хранить код в другом поле, когда можно сделать выборку "SELECT .... WHERE КодОрганизации" = Me.SenderName.ItemData(Me.SenderName.ListIndex)
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278635
BJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а select подойдет? у меня ведь данные в xml файле?
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278755
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на счет XML я не работал, я имел ввиду запрос к базе, или рекордсет в качестве источника данных, хотя тебе же ничего не мешает заполнить рекордсет из XMl-файла. А потом работать с этим рекордсетом
...
Рейтинг: 0 / 0
а теперь вопрос про XML
    #32278764
BJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, тоже верно.
попробую...
А за помощь спасибо.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / а теперь вопрос про XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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