Пример #1
0
        private void WriteFile(string pstrFilePathAndName, string pstrString)
        {
            Scripting.FileSystemObject fs = new Scripting.FileSystemObject();
            Scripting.TextStream       ts = null;

            if (fs.FileExists(pstrFilePathAndName))
            {
                ts = fs.OpenTextFile(pstrFilePathAndName, Scripting.IOMode.ForWriting);
            }
            else
            {
                ts = fs.CreateTextFile(pstrFilePathAndName);
            }

            ts.Write(pstrString);
            ts.Close();
        }
Пример #2
0
        private Shell32.Folder dir; /// フォルダオブジェクト

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="path">出力先パス</param>
        public Zip(string path)
        {
            this.path = path;
            if (String.Compare(Path.GetExtension(path), ".zip", true) != 0)
            {
                zip = Path.ChangeExtension(path, ".zip");
            }
            else
            {
                zip = path;
            }

            Scripting.FileSystemObject fso = new Scripting.FileSystemObject();
            Scripting.TextStream       ts  = fso.CreateTextFile(zip, true, false);
            ts.Write("PK\x05\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");
            ts.Close();

            sh  = new Shell32.Shell();
            dir = sh.NameSpace(this.zip);
        }
Пример #3
0
        private void cmdScale_Click(System.Object eventSender, System.EventArgs eventArgs)
        {
            string mySQL = null;

            ADODB.Recordset rsScale        = default(ADODB.Recordset);
            ADODB.Recordset rsData         = default(ADODB.Recordset);
            string          lString        = "";
            string          lFormat        = null;
            string          HeadingString1 = null;
            string          HeadingString2 = null;
            string          lWeighted      = null;

            Scripting.FileSystemObject FSO          = new Scripting.FileSystemObject();
            Scripting.TextStream       lTextstreamC = default(Scripting.TextStream);
            // ERROR: Not supported in C#: OnErrorStatement

            rsScale = modRecordSet.getRS(ref "SELECT Scale.* FROM Scale;");
            while (!(rsScale.EOF))
            {
                if (My.MyProject.Forms.frmUpdatePOScriteria.frmType[0].Visible == true)
                {
                    mySQL = "SELECT Right('0000'+[Catalogue_Barcode],4) AS code, Format([CatalogueChannelLnk_Price],'Fixed') AS price, StockItem.StockItem_Name, StockGroup.StockGroup_Name, StockItem.StockItem_NonWeighted FROM POSUpdate_PriceChangeSummary INNER JOIN ((StockItem INNER JOIN (CatalogueChannelLnk INNER JOIN Catalogue ON (CatalogueChannelLnk.CatalogueChannelLnk_StockItemID = Catalogue.Catalogue_StockItemID) AND (CatalogueChannelLnk.CatalogueChannelLnk_Quantity = Catalogue.Catalogue_Quantity)) ON StockItem.StockItemID = Catalogue.Catalogue_StockItemID) INNER JOIN StockGroup ON StockItem.StockItem_StockGroupID = StockGroup.StockGroupID) ON POSUpdate_PriceChangeSummary.CatalogueChannelLnk_StockItemID = StockItem.StockItemID WHERE (((CatalogueChannelLnk.CatalogueChannelLnk_ChannelID)=1) AND ((Catalogue.Catalogue_Quantity)=1) AND ((StockItem.StockItem_Disabled)=False) AND ((StockItem.StockItem_VariablePrice)=True));";
                }
                else
                {
                    mySQL = "SELECT Right('0000'+[Catalogue_Barcode],4) AS code, Format([CatalogueChannelLnk_Price],'Fixed') AS price, StockItem.StockItem_Name, StockGroup.StockGroup_Name, StockItem.StockItem_NonWeighted FROM (StockItem INNER JOIN (CatalogueChannelLnk INNER JOIN Catalogue ON (CatalogueChannelLnk.CatalogueChannelLnk_Quantity = Catalogue.Catalogue_Quantity) AND (CatalogueChannelLnk.CatalogueChannelLnk_StockItemID = Catalogue.Catalogue_StockItemID)) ON StockItem.StockItemID = Catalogue.Catalogue_StockItemID) INNER JOIN StockGroup ON StockItem.StockItem_StockGroupID = StockGroup.StockGroupID WHERE (((CatalogueChannelLnk.CatalogueChannelLnk_ChannelID)=1) AND ((Catalogue.Catalogue_Quantity)=1) AND ((StockItem.StockItem_Disabled)=False) AND ((StockItem.StockItem_VariablePrice)=True));";
                }
                rsData = modRecordSet.getRS(ref mySQL);

                //        Select Case rsScale("Scale_format")
                //            Case 0
                //                rsData.MoveFirst
                //                Do Until rsData.EOF

                //                    HeadingString1 = Left(rsData("Stockitem_Name"), 16)
                //                    HeadingString2 = ""
                //                    If Len(rsData("Stockitem_Name")) > 16 Then
                //                        Do Until Right(HeadingString1, 1) = " "
                //                            HeadingString1 = Left(HeadingString1, Len(HeadingString1) - 1)
                //                        Loop
                //                        HeadingString2 = Mid(rsData("Stockitem_Name"), Len(HeadingString1) + 1)
                //                    End If
                //                    HeadingString1 = Left(HeadingString1 & String(16, " "), 16)
                //                    HeadingString2 = Left(HeadingString2 & String(16, " "), 16)
                //                    If rsData("StockItem_NonWeighted") Then lWeighted = "01" Else lWeighted = "00"
                //                    lstring = lstring & vbCrLf & "#" & rsData("code") & "$" & rsData("price") & "%#000%$" & lWeighted & "%(A" & HeadingString1 & "%)A" & HeadingString2 & "%[" & Left(rsData("StockGroup_Name") & String(15, " "), 15)
                //                    rsData.moveNext
                //                Loop
                //            Case 1

                rsData.MoveFirst();
                while (!(rsData.EOF))
                {
                    HeadingString1 = Strings.Left(rsData.Fields("Stockitem_Name").Value, 16);
                    //16 was 22
                    HeadingString2 = "";
                    //16 was 22
                    if (Strings.Len(rsData.Fields("Stockitem_Name").Value) > 16)
                    {
                        while (!(Strings.Right(HeadingString1, 1) == " " | string.IsNullOrEmpty(HeadingString1)))
                        {
                            HeadingString1 = Strings.Left(HeadingString1, Strings.Len(HeadingString1) - 1);
                        }
                        HeadingString2 = Strings.Mid(rsData.Fields("Stockitem_Name").Value, Strings.Len(HeadingString1) + 1);
                    }
                    HeadingString1 = Strings.Left(HeadingString1 + new string(" ", 16), 16);
                    //16 was 22
                    HeadingString2 = Strings.Left(HeadingString2 + new string(" ", 22), 22);
                    //16 was 22
                    if (rsData.Fields("StockItem_NonWeighted").Value)
                    {
                        lWeighted = "01";
                    }
                    else
                    {
                        lWeighted = "00";
                    }
                    //                    lstring = lstring & vbCrLf & "%*0 #" & rsData("code") & " $" & Right("00000" & Replace(rsData("price"), ".", ""), 5) & " %#000 %$" & lWeighted & "%&" & rsScale("ScaleID") & rsData("code") & " %(A" & HeadingString1 & " %)A" & HeadingString2 & " %[" & Left(rsData("StockGroup_Name") & String(15, " "), 15) & " %]" & String(15, " ") & " %~"
                    //If lString = "" Then
                    //    lString = "%*0 #" & rsData("code") & " $" & Right("00000" & FormatNumber(rsData("price"), 2), 6) & " %#000 %&       %(A" & HeadingString1 & " %)A" & HeadingString2 & " %$" & lWeighted
                    //Else
                    lString = lString + Constants.vbCrLf + "%*0 #" + rsData.Fields("code").Value + " $" + Strings.Right("00000" + Strings.FormatNumber(rsData.Fields("price").Value, 2), 6) + " %#000 %&       %(A" + HeadingString1 + " %)A" + HeadingString2 + " %$" + lWeighted;
                    //End If
                    rsData.moveNext();
                }
                //        End Select
                //FOR NEW SCALE ITEMS
                if (My.MyProject.Forms.frmUpdatePOScriteria.frmType[0].Visible == true)
                {
                    //UPGRADE_WARNING: Couldn't resolve default property of object mySQL. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
                    mySQL  = "SELECT Right('0000'+[Catalogue_Barcode],4) AS code, Format([CatalogueChannelLnk_Price],'Fixed') AS price, StockItem.StockItem_Name, StockGroup.StockGroup_Name, StockItem.StockItem_NonWeighted FROM POSUpdate_PriceNewSummary INNER JOIN ((StockItem INNER JOIN (CatalogueChannelLnk INNER JOIN Catalogue ON (CatalogueChannelLnk.CatalogueChannelLnk_StockItemID = Catalogue.Catalogue_StockItemID) AND (CatalogueChannelLnk.CatalogueChannelLnk_Quantity = Catalogue.Catalogue_Quantity)) ON StockItem.StockItemID = Catalogue.Catalogue_StockItemID) INNER JOIN StockGroup ON StockItem.StockItem_StockGroupID = StockGroup.StockGroupID) ON POSUpdate_PriceNewSummary.CatalogueChannelLnk_StockItemID = StockItem.StockItemID WHERE (((CatalogueChannelLnk.CatalogueChannelLnk_ChannelID)=1) AND ((Catalogue.Catalogue_Quantity)=1) AND ((StockItem.StockItem_Disabled)=False) AND ((StockItem.StockItem_VariablePrice)=True));";
                    rsData = modRecordSet.getRS(ref mySQL);
                    rsData.MoveFirst();
                    while (!(rsData.EOF))
                    {
                        HeadingString1 = Strings.Left(rsData.Fields("Stockitem_Name").Value, 16);
                        //16 was 22
                        HeadingString2 = "";
                        //16 was 22
                        if (Strings.Len(rsData.Fields("Stockitem_Name").Value) > 16)
                        {
                            while (!(Strings.Right(HeadingString1, 1) == " " | string.IsNullOrEmpty(HeadingString1)))
                            {
                                HeadingString1 = Strings.Left(HeadingString1, Strings.Len(HeadingString1) - 1);
                            }
                            HeadingString2 = Strings.Mid(rsData.Fields("Stockitem_Name").Value, Strings.Len(HeadingString1) + 1);
                        }
                        HeadingString1 = Strings.Left(HeadingString1 + new string(" ", 16), 16);
                        //16 was 22
                        HeadingString2 = Strings.Left(HeadingString2 + new string(" ", 22), 22);
                        //16 was 22
                        if (rsData.Fields("StockItem_NonWeighted").Value)
                        {
                            lWeighted = "01";
                        }
                        else
                        {
                            lWeighted = "00";
                        }
                        lString = lString + Constants.vbCrLf + "%*0 #" + rsData.Fields("code").Value + " $" + Strings.Right("00000" + Strings.FormatNumber(rsData.Fields("price").Value, 2), 6) + " %#000 %&       %(A" + HeadingString1 + " %)A" + HeadingString2 + " %$" + lWeighted;
                        rsData.moveNext();
                    }
                }

                if (FSO.FileExists(rsScale.Fields("Scale_Path").Value))
                {
                    FSO.DeleteFile(rsScale.Fields("Scale_Path").Value);
                }
                if (Strings.Len(lString))
                {
                    lTextstreamC = FSO.CreateTextFile(rsScale.Fields("Scale_Path").Value, true);
                    Debug.Print(Strings.Trim(Strings.Left(lString, Strings.Len(lString) - 1)));
                    lTextstreamC.Write(Strings.Mid(lString, 3));
                    lTextstreamC.Close();

                    //Open rsScale("Scale_Path") For Output As #7
                    //Print #7, mID(lString, 3, Len(lString) - 5)
                    //Close #7

                    if (FSO.FileExists(modRecordSet.serverPath + "teraoka.bat"))
                    {
                        Interaction.Shell(modRecordSet.serverPath + "teraoka.bat", AppWinStyle.MinimizedNoFocus);
                    }
                }
                rsScale.moveNext();
            }
            modRecordSet.cnnDB.Execute("UPDATE Scale SET Scale.Scale_Update = False;");
        }
Пример #4
0
        private void cmdScale_Click(System.Object eventSender, System.EventArgs eventArgs)
        {
            string mySQL = null;
            ADODB.Recordset rsScale = default(ADODB.Recordset);
            ADODB.Recordset rsData = default(ADODB.Recordset);
            string lString = "";
            string lFormat = null;
            string HeadingString1 = null;
            string HeadingString2 = null;
            string lWeighted = null;
            Scripting.FileSystemObject FSO = new Scripting.FileSystemObject();
            Scripting.TextStream lTextstreamC = default(Scripting.TextStream);
             // ERROR: Not supported in C#: OnErrorStatement

            rsScale = modRecordSet.getRS(ref "SELECT Scale.* FROM Scale;");
            while (!(rsScale.EOF)) {
                if (My.MyProject.Forms.frmUpdatePOScriteria.frmType[0].Visible == true) {
                    mySQL = "SELECT Right('0000'+[Catalogue_Barcode],4) AS code, Format([CatalogueChannelLnk_Price],'Fixed') AS price, StockItem.StockItem_Name, StockGroup.StockGroup_Name, StockItem.StockItem_NonWeighted FROM POSUpdate_PriceChangeSummary INNER JOIN ((StockItem INNER JOIN (CatalogueChannelLnk INNER JOIN Catalogue ON (CatalogueChannelLnk.CatalogueChannelLnk_StockItemID = Catalogue.Catalogue_StockItemID) AND (CatalogueChannelLnk.CatalogueChannelLnk_Quantity = Catalogue.Catalogue_Quantity)) ON StockItem.StockItemID = Catalogue.Catalogue_StockItemID) INNER JOIN StockGroup ON StockItem.StockItem_StockGroupID = StockGroup.StockGroupID) ON POSUpdate_PriceChangeSummary.CatalogueChannelLnk_StockItemID = StockItem.StockItemID WHERE (((CatalogueChannelLnk.CatalogueChannelLnk_ChannelID)=1) AND ((Catalogue.Catalogue_Quantity)=1) AND ((StockItem.StockItem_Disabled)=False) AND ((StockItem.StockItem_VariablePrice)=True));";
                } else {
                    mySQL = "SELECT Right('0000'+[Catalogue_Barcode],4) AS code, Format([CatalogueChannelLnk_Price],'Fixed') AS price, StockItem.StockItem_Name, StockGroup.StockGroup_Name, StockItem.StockItem_NonWeighted FROM (StockItem INNER JOIN (CatalogueChannelLnk INNER JOIN Catalogue ON (CatalogueChannelLnk.CatalogueChannelLnk_Quantity = Catalogue.Catalogue_Quantity) AND (CatalogueChannelLnk.CatalogueChannelLnk_StockItemID = Catalogue.Catalogue_StockItemID)) ON StockItem.StockItemID = Catalogue.Catalogue_StockItemID) INNER JOIN StockGroup ON StockItem.StockItem_StockGroupID = StockGroup.StockGroupID WHERE (((CatalogueChannelLnk.CatalogueChannelLnk_ChannelID)=1) AND ((Catalogue.Catalogue_Quantity)=1) AND ((StockItem.StockItem_Disabled)=False) AND ((StockItem.StockItem_VariablePrice)=True));";
                }
                rsData = modRecordSet.getRS(ref mySQL);

                //        Select Case rsScale("Scale_format")
                //            Case 0
                //                rsData.MoveFirst
                //                Do Until rsData.EOF

                //                    HeadingString1 = Left(rsData("Stockitem_Name"), 16)
                //                    HeadingString2 = ""
                //                    If Len(rsData("Stockitem_Name")) > 16 Then
                //                        Do Until Right(HeadingString1, 1) = " "
                //                            HeadingString1 = Left(HeadingString1, Len(HeadingString1) - 1)
                //                        Loop
                //                        HeadingString2 = Mid(rsData("Stockitem_Name"), Len(HeadingString1) + 1)
                //                    End If
                //                    HeadingString1 = Left(HeadingString1 & String(16, " "), 16)
                //                    HeadingString2 = Left(HeadingString2 & String(16, " "), 16)
                //                    If rsData("StockItem_NonWeighted") Then lWeighted = "01" Else lWeighted = "00"
                //                    lstring = lstring & vbCrLf & "#" & rsData("code") & "$" & rsData("price") & "%#000%$" & lWeighted & "%(A" & HeadingString1 & "%)A" & HeadingString2 & "%[" & Left(rsData("StockGroup_Name") & String(15, " "), 15)
                //                    rsData.moveNext
                //                Loop
                //            Case 1

                rsData.MoveFirst();
                while (!(rsData.EOF)) {

                    HeadingString1 = Strings.Left(rsData.Fields("Stockitem_Name").Value, 16);
                    //16 was 22
                    HeadingString2 = "";
                    //16 was 22
                    if (Strings.Len(rsData.Fields("Stockitem_Name").Value) > 16) {
                        while (!(Strings.Right(HeadingString1, 1) == " " | string.IsNullOrEmpty(HeadingString1))) {
                            HeadingString1 = Strings.Left(HeadingString1, Strings.Len(HeadingString1) - 1);
                        }
                        HeadingString2 = Strings.Mid(rsData.Fields("Stockitem_Name").Value, Strings.Len(HeadingString1) + 1);
                    }
                    HeadingString1 = Strings.Left(HeadingString1 + new string(" ", 16), 16);
                    //16 was 22
                    HeadingString2 = Strings.Left(HeadingString2 + new string(" ", 22), 22);
                    //16 was 22
                    if (rsData.Fields("StockItem_NonWeighted").Value)
                        lWeighted = "01";
                    else
                        lWeighted = "00";
                    //                    lstring = lstring & vbCrLf & "%*0 #" & rsData("code") & " $" & Right("00000" & Replace(rsData("price"), ".", ""), 5) & " %#000 %$" & lWeighted & "%&" & rsScale("ScaleID") & rsData("code") & " %(A" & HeadingString1 & " %)A" & HeadingString2 & " %[" & Left(rsData("StockGroup_Name") & String(15, " "), 15) & " %]" & String(15, " ") & " %~"
                    //If lString = "" Then
                    //    lString = "%*0 #" & rsData("code") & " $" & Right("00000" & FormatNumber(rsData("price"), 2), 6) & " %#000 %&       %(A" & HeadingString1 & " %)A" & HeadingString2 & " %$" & lWeighted
                    //Else
                    lString = lString + Constants.vbCrLf + "%*0 #" + rsData.Fields("code").Value + " $" + Strings.Right("00000" + Strings.FormatNumber(rsData.Fields("price").Value, 2), 6) + " %#000 %&       %(A" + HeadingString1 + " %)A" + HeadingString2 + " %$" + lWeighted;
                    //End If
                    rsData.moveNext();
                }
                //        End Select
                //FOR NEW SCALE ITEMS
                if (My.MyProject.Forms.frmUpdatePOScriteria.frmType[0].Visible == true) {
                    //UPGRADE_WARNING: Couldn't resolve default property of object mySQL. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
                    mySQL = "SELECT Right('0000'+[Catalogue_Barcode],4) AS code, Format([CatalogueChannelLnk_Price],'Fixed') AS price, StockItem.StockItem_Name, StockGroup.StockGroup_Name, StockItem.StockItem_NonWeighted FROM POSUpdate_PriceNewSummary INNER JOIN ((StockItem INNER JOIN (CatalogueChannelLnk INNER JOIN Catalogue ON (CatalogueChannelLnk.CatalogueChannelLnk_StockItemID = Catalogue.Catalogue_StockItemID) AND (CatalogueChannelLnk.CatalogueChannelLnk_Quantity = Catalogue.Catalogue_Quantity)) ON StockItem.StockItemID = Catalogue.Catalogue_StockItemID) INNER JOIN StockGroup ON StockItem.StockItem_StockGroupID = StockGroup.StockGroupID) ON POSUpdate_PriceNewSummary.CatalogueChannelLnk_StockItemID = StockItem.StockItemID WHERE (((CatalogueChannelLnk.CatalogueChannelLnk_ChannelID)=1) AND ((Catalogue.Catalogue_Quantity)=1) AND ((StockItem.StockItem_Disabled)=False) AND ((StockItem.StockItem_VariablePrice)=True));";
                    rsData = modRecordSet.getRS(ref mySQL);
                    rsData.MoveFirst();
                    while (!(rsData.EOF)) {

                        HeadingString1 = Strings.Left(rsData.Fields("Stockitem_Name").Value, 16);
                        //16 was 22
                        HeadingString2 = "";
                        //16 was 22
                        if (Strings.Len(rsData.Fields("Stockitem_Name").Value) > 16) {
                            while (!(Strings.Right(HeadingString1, 1) == " " | string.IsNullOrEmpty(HeadingString1))) {
                                HeadingString1 = Strings.Left(HeadingString1, Strings.Len(HeadingString1) - 1);
                            }
                            HeadingString2 = Strings.Mid(rsData.Fields("Stockitem_Name").Value, Strings.Len(HeadingString1) + 1);
                        }
                        HeadingString1 = Strings.Left(HeadingString1 + new string(" ", 16), 16);
                        //16 was 22
                        HeadingString2 = Strings.Left(HeadingString2 + new string(" ", 22), 22);
                        //16 was 22
                        if (rsData.Fields("StockItem_NonWeighted").Value)
                            lWeighted = "01";
                        else
                            lWeighted = "00";
                        lString = lString + Constants.vbCrLf + "%*0 #" + rsData.Fields("code").Value + " $" + Strings.Right("00000" + Strings.FormatNumber(rsData.Fields("price").Value, 2), 6) + " %#000 %&       %(A" + HeadingString1 + " %)A" + HeadingString2 + " %$" + lWeighted;
                        rsData.moveNext();
                    }
                }

                if (FSO.FileExists(rsScale.Fields("Scale_Path").Value))
                    FSO.DeleteFile(rsScale.Fields("Scale_Path").Value);
                if (Strings.Len(lString)) {

                    lTextstreamC = FSO.CreateTextFile(rsScale.Fields("Scale_Path").Value, true);
                    Debug.Print(Strings.Trim(Strings.Left(lString, Strings.Len(lString) - 1)));
                    lTextstreamC.Write(Strings.Mid(lString, 3));
                    lTextstreamC.Close();

                    //Open rsScale("Scale_Path") For Output As #7
                    //Print #7, mID(lString, 3, Len(lString) - 5)
                    //Close #7

                    if (FSO.FileExists(modRecordSet.serverPath + "teraoka.bat"))
                        Interaction.Shell(modRecordSet.serverPath + "teraoka.bat", AppWinStyle.MinimizedNoFocus);
                }
                rsScale.moveNext();
            }
            modRecordSet.cnnDB.Execute("UPDATE Scale SET Scale.Scale_Update = False;");
        }
Пример #5
0
        private void WriteFile(string pstrFilePathAndName, string pstrString)
        {
            Scripting.FileSystemObject fs = new Scripting.FileSystemObject();
            Scripting.TextStream ts = null;

            if (fs.FileExists(pstrFilePathAndName))
            {
                ts = fs.OpenTextFile(pstrFilePathAndName, Scripting.IOMode.ForWriting);
            }
            else
            {
                ts = fs.CreateTextFile(pstrFilePathAndName);
            }

            ts.Write(pstrString);
            ts.Close();
        }
Пример #6
0
        private static void buildScaleFile()
        {
            ADODB.Recordset rsScale = default(ADODB.Recordset);
            ADODB.Recordset rsData = default(ADODB.Recordset);
            string lString = null;
            string lFormat = null;
            string HeadingString1 = null;
            string HeadingString2 = null;
            string lWeighted = null;
            Scripting.FileSystemObject fso = new Scripting.FileSystemObject();
            Scripting.TextStream lTextstream = default(Scripting.TextStream);
             // ERROR: Not supported in C#: OnErrorStatement

            rsScale = modRecordSet.getRS(ref "SELECT Scale.* FROM Scale;");
            while (!(rsScale.EOF)) {
                rsData = modRecordSet.getRS(ref "SELECT Right('0000'+[Catalogue_Barcode],4) AS code, Format([CatalogueChannelLnk_Price],'Fixed') AS price, StockItem.StockItem_Name, StockGroup.StockGroup_Name, StockItem.StockItem_NonWeighted FROM (StockItem INNER JOIN (CatalogueChannelLnk INNER JOIN Catalogue ON (CatalogueChannelLnk.CatalogueChannelLnk_Quantity = Catalogue.Catalogue_Quantity) AND (CatalogueChannelLnk.CatalogueChannelLnk_StockItemID = Catalogue.Catalogue_StockItemID)) ON StockItem.StockItemID = Catalogue.Catalogue_StockItemID) INNER JOIN StockGroup ON StockItem.StockItem_StockGroupID = StockGroup.StockGroupID WHERE (((CatalogueChannelLnk.CatalogueChannelLnk_ChannelID)=1) AND ((Catalogue.Catalogue_Quantity)=1) AND ((StockItem.StockItem_Disabled)=False) AND ((StockItem.StockItem_VariablePrice)=True));");
                switch (rsScale.Fields("Scale_format").Value) {
                    case 0:
                        rsData.MoveFirst();
                        while (!(rsData.EOF)) {

                            HeadingString1 = Strings.Left(rsData.Fields("Stockitem_Name").Value, 16);
                            HeadingString2 = "";
                            if (Strings.Len(rsData.Fields("Stockitem_Name").Value) > 16) {
                                while (!(Strings.Right(HeadingString1, 1) == " ")) {
                                    HeadingString1 = Strings.Left(HeadingString1, Strings.Len(HeadingString1) - 1);
                                }
                                HeadingString2 = Strings.Mid(rsData.Fields("Stockitem_Name").Value, Strings.Len(HeadingString1) + 1);
                            }
                            HeadingString1 = Strings.Left(HeadingString1 + new string(" ", 16), 16);
                            HeadingString2 = Strings.Left(HeadingString2 + new string(" ", 16), 16);
                            if (rsData.Fields("StockItem_NonWeighted").Value)
                                lWeighted = "01";
                            else
                                lWeighted = "00";
                            lString = lString + Constants.vbCrLf + "#" + rsData.Fields("code").Value + "$" + rsData.Fields("price").Value + "%#000%$" + lWeighted + "%(A" + HeadingString1 + "%)A" + HeadingString2 + "%[" + Strings.Left(rsData.Fields("StockGroup_Name").Value + new string(" ", 15), 15);
                            rsData.moveNext();
                        }
                        break;
                    case 1:
                        rsData.MoveFirst();
                        while (!(rsData.EOF)) {

                            HeadingString1 = Strings.Left(rsData.Fields("Stockitem_Name").Value, 22);
                            HeadingString2 = "";
                            if (Strings.Len(rsData.Fields("Stockitem_Name").Value) > 22) {
                                while (!(Strings.Right(HeadingString1, 1) == " " | string.IsNullOrEmpty(HeadingString1))) {
                                    HeadingString1 = Strings.Left(HeadingString1, Strings.Len(HeadingString1) - 1);
                                }
                                HeadingString2 = Strings.Mid(rsData.Fields("Stockitem_Name").Value, Strings.Len(HeadingString1) + 1);
                            }
                            HeadingString1 = Strings.Left(HeadingString1 + new string(" ", 22), 22);
                            HeadingString2 = Strings.Left(HeadingString2 + new string(" ", 21), 21);
                            if (rsData.Fields("StockItem_NonWeighted").Value)
                                lWeighted = "01";
                            else
                                lWeighted = "00";
                            lString = lString + Constants.vbCrLf + " %*0 #" + rsData.Fields("code").Value + " $" + Strings.Right("00000" + Strings.Replace(rsData.Fields("price").Value, ".", ""), 5) + " %#000 %$" + lWeighted + "%&" + rsScale.Fields("ScaleID").Value + rsData.Fields("code").Value + " %(A" + HeadingString1 + " %)A" + HeadingString2 + " %[" + Strings.Left(rsData.Fields("StockGroup_Name").Value + new string(" ", 15), 15) + " %]" + new string(" ", 15) + " %~";
                            rsData.moveNext();
                        }
                        break;
                }
                if (fso.FileExists(rsScale.Fields("Scale_Path").Value))
                    fso.DeleteFile(rsScale.Fields("Scale_Path").Value);
                if (Strings.Len(lString)) {
                    lTextstream = fso.CreateTextFile(rsScale.Fields("Scale_Path").Value, true);
                    lTextstream.Write(Strings.Mid(lString, 3));
                    lTextstream.Close();
                }
                rsScale.moveNext();
            }
        }