Генерация полных SKU в Classic ASP

Привет, у меня есть продукты, которые состоят из нескольких вариантов. Каждый вариант имеет код SKU. Вы можете выбрать только одну опцию из каждой группы SKU, и эти опции должны быть объединены в порядке расположения SKUGroup.

Так, например, у меня был бы список опций в таблице в БД, которая выглядела как

OptID   PID     SKU Price   SKUGroup

156727  93941   C   171.00  1
156728  93941   BN  171.00  1
156729  93941   PN  171.00  1
156718  93940   W   115.20  2
156719  93940   CA  115.20  2
156720  93940   BA  115.20  2
156721  93940   BNA 115.20  2
156722  93940   BN  115.20  2
156723  93940   BS  115.20  2
156716  93939   CHR 121.50  3
156717  93939   NK  138.00  3

И несколько SKU готовой продукции будут выглядеть примерно так:

C-W-CHR 407.70
C-W-NK  424.20
C-CA-CHR    407.20
C-CA-NK 424.20

Я пытаюсь сделать сценарий, который создаст список всех возможных комбинаций SKU и цену комбинированных опций.

Мне нужно сделать это в Classic ASP (vbscript), и я не очень знаком с этим. Поэтому я ищу любую помощь, которую могу получить.

Спасибо!

4.11.2009 23:50:12
1 ОТВЕТ

Я бы начал с подключения к базе данных и создания трех наборов записей.

Set connection = CreateObject("ADODB.Connection")
connection.Open ConnectionString 
Set rsOption1 = CreateObject("ADODB.recordset")
Set rsOption2 = CreateObject("ADODB.recordset")
Set rsOption3 = CreateObject("ADODB.recordset")
rsOption1.Open "SELECT * FROM TableName WHERE SKUGroup = 1", connection, 3,3
rsOption2.Open "SELECT * FROM TableName WHERE SKUGroup = 2", connection, 3,3
rsOption3.Open "SELECT * FROM TableName WHERE SKUGroup = 3", connection, 3,3

Затем вы можете использовать вложенные циклы, чтобы получить комбинации. Примерно так ( непроверенный, это, вероятно, не будет работать как есть, но дает представление о том, как это сделать ) ( также предполагается, что вам нужно выбрать хотя бы один вариант из каждой группы )

for i = 0 to rsOption1.RecordCount
    rsOption1.Move i, 1
    for j = 0 to rsOption2.RecordCount
        rsOption2.Move j, 1
        for k = 0 to rsOption3.RecordCount
            rsOption3.Move k, 1
            'Write rsOption1.Fields(2).Value & "-" & rsOption2.Fields(2).Value & _
            '"-" & rsOption3.Fields(2).Value & "     " & _
            'FormatCurrency((rsOption1.Fields(3).Value + rsOption2.Fields(3).Value + rsOption3.Fields(3).Value))
        Next
    Next
Next
1
5.11.2009 14:37:10