Определение цеха-изготовителя для ТМЦ из таблицы Транспортных отношений - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день, уважаемые! Имеется таблица с транспортными отношениями (ТО). Например, TRPROD. В этой таблице есть поля: Материал, Исходное местоположение (ИсхМПЛ), Целевое местоположение (ЦельМПЛ). Материалов может быть много и соответственно количество маршрутов так же очень много. В качестве местоположений служат склады и цеха в рамках предприятия\предприятий. Транспортное отношение – это некий маршрут, по которому может двигаться материал. Например, для материала «Кронштейн» указаны следующие строки в таблице TRPROD: Материал ИсхМПЛ ЦельМПЛ Кронштейн 45550102 45551953 Кронштейн 45551953 45550102 Кронштейн 45550102 45559999 Кронштейн 45559999 33332053 Кронштейн 33332053 33338765 Кронштейн 33338765 22227666 Кронштейн 22227666 23002902 Местоположение 45550102 является цехом-изготовителем материала «Кронштейн». А местоположение 23002902 является покупателем данного кронштейна. Все остальные местоположения являются складами внутри организаций (первые 4 символа обозначают номер организации). То есть, из таблицы TRPROD видно, по какому маршруту двигается деталь, пока она от момента зарождения дойдет до заказчика. При этом может быть так, что Кронштейн изготавливается в цехе 45550102 и передается на склад, а потом со склада обратно в этот же цех (45550102) и с этого цеха (без внесения конструкторских изменений в геометрию детали) передается на тот же или на другой склад. Ребята, помогите придумать алгоритм, как определить цех-изготовитель для этого материала (будем считать, что он не известен)? То есть, указав материал мне в Label1 нужно показать цех изготовитель. При этом, не известно, какой цех-изготовитель для данной детали. Но по таблице транспортных отношений можно найти путь, откуда начинает свое движение «Кронштейн». По какому алгоритму его вычислять. Мозг сломал, придумать не могу.
Можно использовать циклы и запросы.

Решение задачи: «Определение цеха-изготовителя для ТМЦ из таблицы Транспортных отношений»

textual
Листинг программы
Option Explicit
 
Private Type typeTO
    Material As String 'какой нафиг материал, кронштейн - это изделие (или фамилия)
    IshMPL As String
    ZelMPL As String
End Type
 
Const m  As Integer = 100       ' количество материалов(изделий)
Const countTO As Integer = 1000 ' количество движений(перемещений) каждого материала
Dim Mat(1 To m, 1 To countTO) As typeTO
 
Private Sub Form_Load()
     Dim S, i As Integer, j As Integer
     i = 1 'поскольку материал пока один
     S = Split(Trim(CStr(Text2.Text)), vbCrLf) 'получаем данные из текстбокса(Вы не указали откуда)
     For j = 1 To UBound(S)
         Mat(i, j).Material = Trim(CStr(Text1.Text))
         Mat(i, j).IshMPL = Split(S(j - 1))(0)
         Mat(i, j).ZelMPL = Split(S(j - 1))(1)
     Next j
End Sub
 
Private Sub Command1_Click()
     Dim S As String, i As Integer
     For i = 1 To m
         If Mat(i, 1).Material = Trim(CStr(Text3.Text)) Then
           S = Mat(i, 1).IshMPL
           Exit For
         End If
     Next i
     If S = "" Then S = " не найден."
     MsgBox "Изготовитель материала """ & Text3.Text & """ - " & S
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы