Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / а теперь вопрос про XML / 16 сообщений из 16, страница 1 из 1
29.09.2003, 14:47
    #32278376
BJ
BJ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а теперь вопрос про XML
На форме есть СписокОрганизаций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
29.09.2003, 15:04
    #32278401
Alex_2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а теперь вопрос про XML
Хранить в 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
29.09.2003, 15:27
    #32278430
BJ
BJ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а теперь вопрос про XML
а как этот код вытащить в поле КодОрганизации?

Private Sub SenderName_Click()

Me.SenderCode.Text = ????

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

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
29.09.2003, 15:39
    #32278449
Alex_2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а теперь вопрос про XML
А зачем два элемента управления, когда в одном можно сделать?
Ну и как результат получился после выполнения последнего кода?
...
Рейтинг: 0 / 0
29.09.2003, 15:47
    #32278459
BJ
BJ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а теперь вопрос про XML
я на VB не так давно работаю...даже совсем недавно..
подскажи как с одним элементом можно?

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

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

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

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

т.е. в свойство NewIndex ты сам записываешь нужный тебе код, а в свойстве Text у тебя будет наименование организации.
И еще, я бы этот код добавил не в обработчик события _Click, а в Form_Load, например.
...
Рейтинг: 0 / 0
29.09.2003, 16:38
    #32278540
BJ
BJ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а теперь вопрос про XML
теперь на 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
29.09.2003, 16:46
    #32278563
Alex_2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а теперь вопрос про XML
Название организации ты добавляешь вот в этой строке:
Me.SenderName.AddItem oNode.nodeTypedValue
т.е. в эту строку ты должен писать само "Наименование организации"

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


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