コード例 #1
0
        public override string GetEndCode()
        {
            var agregarHacerLogin = false;

            //creo los archivos de datos
            foreach (var df in DataFiles.Values)
            {
                //creo la variable para el archivo

                var fileVar     = new Variable(df.Name, "CHARACTER*128", VariablesScopes.File);
                var fileTempVar = new Variable("v_" + df.Name, "CHARACTER*2024", VariablesScopes.Local);
                AddVariable(fileVar);
                AddVariable(fileTempVar);

                //creo las variables para las columnas
                var columnVariables = new List <Variable>();
                foreach (var dfc in df.Columns.Values)
                {
                    var varDFC = new Variable(dfc.Name, "CHARACTER*128", VariablesScopes.Local);
                    columnVariables.Add(varDFC);
                    AddVariable(varDFC);
                }

                string accesData;
                if (df.Columns.Count == 1)
                {
                    accesData = string.Format("\nACQUIRE LOCAL MUTEX \"{0}\"\n" +
                                              "\tNEXT {1}\n" +
                                              "\tSET {2} = {1}\n" +
                                              "RELEASE MUTEX \"{0}\"\n", Name, fileVar.Name, fileTempVar.Name);
                }
                else
                {
                    accesData = string.Format("\nACQUIRE LOCAL MUTEX \"{0}\"\n" +
                                              "\tNEXT {1}\n" +
                                              "\tSET {2} = {1}\n" +
                                              "RELEASE MUTEX \"{0}\"\n\n", Name, fileVar.Name, fileTempVar.Name);
                    accesData += "Set F_Separador	= \""+ DataFile.Separator + "\"\n";
                    accesData += "Set F_Entrada	= " + fileTempVar.Name + "\n";
                    accesData += "call ParseString \n";

                    var index = 0;
                    foreach (var varCol in columnVariables)
                    {
                        accesData += "Set " + varCol.Name + " = Resultado[" + index + "]\n";
                        index++;
                    }

                    accesData += "\n";
                    //!set F_Separador	= ";"
                    //!set F_Entrada	= idCentro
                    //!call ParseString
                    //!set idCentro = Resultado[0]
                    //!set idSEjec = Resultado[1]
                    //!set idAlmacen = Resultado[2]
                    //!set idMaterial = Resultado[3]
                }

                if (fileVar.Name.Contains("Login"))
                {
                    var loginDataIf = string.Format("next hacerlogin\n" +
                                                    "if (hacerlogin = 1) then\n");
                    var loginDataEndIf = string.Format("\nendif\n");
                    Code.AppendText(loginDataIf);
                    Code.AppendText(accesData);
                    Code.AppendText(loginDataEndIf);
                    agregarHacerLogin = true;
                }
                else
                {
                    Code.AppendText(accesData);
                }

                df.Write(OpenSTARep.DataPath);
            }

            Sections.Add(new EndTimer(Name.Replace(".htp", "")));
            if (agregarHacerLogin)
            {
                return
                    (string.Format("Exit \n\n" +
                                   "ERR_LABEL: \n" +
                                   "\t reset hacerlogin \n" +
                                   "\t If (MESSAGE <> \"\") Then \n" +
                                   "\t\t Report MESSAGE \n" +
                                   "\t Endif \n\n" +
                                   "Exit \n" +
                                   "Include \"{0}\"", Repository.FUNCTIONS));
            }
            return
                (string.Format("Exit \n\n" +
                               "ERR_LABEL: \n" +
                               "\t If (MESSAGE <> \"\") Then \n" +
                               "\t\t Report MESSAGE \n" +
                               "\t Endif \n\n" +
                               "Exit \n" +
                               "Include \"{0}\"", Repository.FUNCTIONS));
        }