//------------------------------------------------- // Menú. Versión standard. //------------------------------------------------- /// <summary> /// Menú general de opciones - Formato fijo. /// </summary> /// <param name="parametros">Array con los parámetros</param> /// <seealso cref="DisplayPantallaPro(object[])"/> /// <seealso cref="_tmain"/> private void menu(params object[] parametros) { int ret, ret1; ret = -1; object oPrg; COMPRADIO.PRORAD Iptr = (COMPRADIO.PRORAD)parametros[0]; do { switch (ret) { // Entradas case 1: ret1 = display_pantalla_entradas(Iptr, ret); switch (ret1) { case 0: ret = -1; break; case 1: oPrg = new ENTRADAS.RECUENTO(); // oPrg = Convert.ChangeType(oPrg, typeof(ENTRADAS.RECUENTO)); ((ENTRADAS.RECUENTO)oPrg).RecuentoMaterial(Iptr); oPrg = null; break; case 2: oPrg = new SALIDAS.SALIDAP(); //RecuentoPalet(Iptr); break; case 3: //UbicarPalet(Iptr); break; default: ret1 = display_pantalla_entradas(Iptr, ret); break; } break; // NOP default: ret = display_pantalla(Iptr, 1); break; } } while (ret != 0); return; }
//------------------------------------------------- // Menú de opciones (GENERAL). //------------------------------------------------- int display_pantalla(COMPRADIO.PRORAD Iptr, int pantalla) { int tecla; pantalla = 1; clrscr(); DisplayUserScr(Iptr, _PROGRAMA, _SECCION_0); do { gotoxy(_COLUMNA_INPUTS, _LINEA_INPUTS); tecla = getkey(); } while (!(tecla == '1' || tecla == '2' || tecla == '3' || tecla == '4' || tecla == '5' || tecla == 13 || tecla == -12)); switch (tecla) { case '1': case -1: tecla = 1; break; case '2': case -2: tecla = 2; break; case '3': case -3: tecla = 3; break; case '4': case -4: tecla = 4; break; case '5': case -5: tecla = 5; break; case -12: tecla = 0; break; default: tecla = pantalla; break; } return(tecla); }
// Displays en pantalla. public void Pantalla_SalidaPalet(params object[] parametrosS) { COMPRADIO.PRORAD Iptr = (COMPRADIO.PRORAD)parametrosS[0]; string cstSeccion = (string)parametrosS[1]; clrscr(); // Visualizar campos parametrizados. DisplayUserScr(Iptr, _PROGRAMA, cstSeccion); clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); return; }
//------------------------------------------------- // Visualizar datos en la pantalla. //------------------------------------------------- public void DisplayUserScr(COMPRADIO.PRORAD Iptr, string cstPrograma, string cstSeccion, string cstFichero = "PANTALLAS") { char RetVal; int x, y; object cstValor, cstMask; for (;;) { RetVal = Iptr.ScrGenerarNextLinea(cstPrograma, cstSeccion, cstFichero); switch (RetVal) { // ErrorBBDD. case 'C': UserError(Iptr.UsrErrorC, Iptr.UsrError); return; // OK: Visualizar. case 'S': // Obtener el valor a visualizar. cstValor = Iptr.ScrValor; // Obtener la máscara del valor a visualizar. cstMask = Iptr.ScrMascara; // Obtener la coordenada X x = Iptr.XCoord; // Obtener la coordenada Y y = Iptr.YCoord; gotoxy(x, y); printf(cstMask, cstValor); //printf(cstValor); break; // NOK case 'N': UserError(Iptr); return; // No hay mas datos. case 'O': return; // Resto de casos: Ignorar. default: continue; } } }
// Proceso de consulta del detalle de UN albarán. public void ConsultaAlbaran(params object[] parametrosC) { COMPRADIO.PRORAD Iptr = (COMPRADIO.PRORAD)parametrosC[0]; string cstAlbaran = ""; string cstEAN; string cstLinea; string cstDescri; string cstCantidad; string cstSkipR = ""; string cstLectura = ""; int ret, opc; char RetVal; opc = _CME_INIT_ALBARAN; try { do { switch (opc) { // Entrar nº de albarán. case _CME_LECT_ALBARAN: cstAlbaran = ""; cstEAN = ""; cstDescri = ""; cstCantidad = ""; cstAlbaran = ""; cstLinea = ""; nLinea = 0; cstLectura = ""; Pantalla_ConsultaAlbaran(cstAlbaran, cstEAN, cstDescri, cstCantidad, cstLinea); clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); printf("Introduzca albaran"); clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); printf("<F2:Consulta ESC:Salir>"); clreol(0, _LINEA_INPUTS + 2); gotoxy(0, _LINEA_INPUTS + 2); ret = leer_char(ref cstLectura, 10); cstAlbaran = cstLectura; switch (ret) { case _TECLA_ESC: opc = _NO_OPERACION; break; // Validar y cargar detalle albarán case _TECLA_0: cstSkipR = "V"; opc = _CME_VALIDAR; break; //// Consulta y selección de albaranes. //case _TECLA_F2: // ConsultaAlbaranes(Iptr); // // Recuperar albarán actual, si hay. // Iptr->get_cnsnumalb(vLectAlbaran); // vLectAlbaran->ChangeType(VT_BSTR); // cstSkipR = "V"; // vSkipR->SetString((const char*)cstSkipR); // opc = _CME_VALIDAR; // break; // Resto de teclas: Ignorar default: opc = _CME_LECT_ALBARAN; break; } break; // Mostrar la siguiente línea de albarán. case _CME_MOSTRAR_ALBARAN: cstSkipR = "M"; RetVal = System.Convert.ToChar(Iptr.ConsultaAlbaran(cstAlbaran, cstSkipR)); switch (RetVal) { // EOF case 'O': // No hay más líneas UserError(Iptr); opc = _CME_LECT_ALBARAN; break; // OK case 'S': // Recuperar código de barras. cstEAN = Iptr.CnsCodEAN; // Recuperar descripción del artículo. cstDescri = Iptr.CnsDesArt.ToString(); // Recuperar cantidad recontada cstCantidad = Iptr.CnsCanRec.ToString(); // Recuperar línea relativa. cstLinea = Iptr.CnsOrden.ToString(); // Visualizar línea actual Pantalla_ConsultaAlbaran(cstAlbaran, cstEAN, cstDescri, cstCantidad, cstLinea); if (nLinea >= _LIN_PAG) { // Siguiente pantalla clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); printf("Pulse una tecla ..."); getkey(); // Control visualización nLinea = 0; } // Cargar más líneas opc = _CME_MOSTRAR_ALBARAN; break; // Error case 'E': // Error de programa UserError(Iptr); opc = _NO_OPERACION; break; // Resto de casos: Error. default: // Error clreol(0, 14); gotoxy(0, 14); printf("Resultado indefinido. Pulse tecla."); getkey(); opc = _NO_OPERACION; break; } break; // Tomar datos del albarán activo. case _CME_CARGAR_ALBARAN: // Recuperar albarán actual, si hay. cstAlbaran = (string)Iptr.NumAlb; cstSkipR = "V"; opc = _CME_VALIDAR; break; // Validar el albarán. // Se viene desde _CME_CARGAR_ALBARAN y _CME_LECT_ALBARAN(TECLA_0) case _CME_VALIDAR: RetVal = System.Convert.ToChar(Iptr.ConsultaAlbaran(cstAlbaran, cstSkipR)); switch (RetVal) { // Error case 'E': // Error. Albarán no existe UserError(Iptr); opc = _CME_LECT_ALBARAN; break; // OK case 'S': // Albarán OK nLinea = 0; opc = _CME_MOSTRAR_ALBARAN; break; // NOK case 'N': // Albarán en blanco opc = _CME_LECT_ALBARAN; break; // Resto de casos: Tomar como OK default: // Albarán OK nLinea = 0; opc = _CME_MOSTRAR_ALBARAN; break; } break; // Inicializar valores. case _CME_INIT_ALBARAN: cstAlbaran = ""; cstEAN = ""; cstCantidad = ""; cstAlbaran = ""; nLinea = 0; opc = _CME_CARGAR_ALBARAN; break; default: opc = _NO_OPERACION; break; } } while (opc != _NO_OPERACION); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.ReadKey(); } finally { // Cerrar proceso de consulta. RetVal = Convert.ToChar(Iptr.ConsultaAlbaran(cstLectura, "Z")); } return; }
// Proceso de preparación por Palet. public void SalidaPalet(params object[] parametrosS) { COMPRADIO.PRORAD Iptr = (COMPRADIO.PRORAD)parametrosS[0]; CString cstUbiOri = new CString(); CString cstDCOri = new CString(); CString cstPalet = new CString(); string cstLectura = null; int ret = 0, opc; char RetVal; opc = _INICIALIZAR; try { do { switch (opc) { case _INICIALIZAR: cstUbiOri = ""; cstDCOri = ""; cstPalet = ""; // Inicializar estado Salida Palet. RetVal = Iptr.SalInicializar(); switch (RetVal) { // OK case 'S': opc = _CARGAR_DATOS; break; // No OK case 'N': UserError(Iptr); opc = _FINALIZAR; break; // Resto de casos: Tomar como error. default: // NOK opc = _FINALIZAR; break; } break; case _CARGAR_DATOS: // Cargar datos palet a preparar. RetVal = Iptr.SalPeticionUbicacion(); switch (RetVal) { // OK case 'S': opc = _LECT_UBIORI; break; // No OK case 'N': UserError(Iptr); opc = _FINALIZAR; break; // Resto de casos: Tomar como error. default: // NOK UserError("SAP-????", "Opción no controlada"); opc = _FINALIZAR; break; } break; // Pedir ubicación origen. case _LECT_UBIORI: cstUbiOri = ""; cstDCOri = ""; cstLectura = ""; Pantalla_SalidaPalet(Iptr, _SECCION_1); clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); printf(Iptr.GetMessage(_LECT_UBIORI_1, "Introduzca origen")); clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); printf(Iptr.GetMessage(_LECT_UBIORI_2, "<F1: Salta>")); clreol(0, _LINEA_INPUTS + 2); gotoxy(0, _LINEA_INPUTS + 2); ret = leer_char(ref cstLectura, 16); switch (ret) { // Abandonar programa case _TECLA_ESC: opc = _FINALIZAR; break; // Saltar ubicación. case _TECLA_F1: opc = _SALTAR_UBICACION; break; // Validar ubicación sin DC. case _TECLA_0: cstUbiOri = cstLectura; opc = _VALIDAR_UBIORI; break; // Resto de teclas: ignorar. default: UserError("SAP-????", "Opción no controlada"); opc = _LECT_UBIORI; break; } break; // Pedir DC ubicación origen. case _LECT_DCORI: cstDCOri = ""; cstLectura = ""; Pantalla_SalidaPalet(Iptr, _SECCION_1); clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); printf(Iptr.GetMessage(_LECT_DCORI_1, "Introduzca DC")); clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); clreol(0, _LINEA_INPUTS + 2); gotoxy(0, _LINEA_INPUTS + 2); ret = leer_char(ref cstLectura, 2); switch (ret) { // Pedir origen. case _TECLA_ESC: opc = _LECT_UBIORI; break; // Validar ubicación origen con DC. case _TECLA_0: cstDCOri = cstLectura; opc = _VALIDAR_UBIORI; break; // Saltar ubicación. case _TECLA_F1: break; // Resto de teclas: Ignorar. default: UserError("SAP-????", "Opción no controlada"); opc = _LECT_DCORI; break; } break; // Validar la ubicación origen. case _VALIDAR_UBIORI: RetVal = System.Convert.ToChar(Iptr.SalValidarOrigen(cstUbiOri, cstDCOri)); switch (RetVal) { // OK case 'S': opc = _LECT_UBIORI; break; // NOK case 'N': UserError(Iptr); opc = _LECT_UBIORI; break; // OK: Leer el DC case 'D': opc = _LECT_DCORI; break; // Error en BBDD. case 'C': UserError(Iptr); opc = _FINALIZAR; break; // Resto de casos: Ignorar. default: UserError("SAP-????", "Opción no controlada"); opc = _LECT_UBIORI; break; } break; // Pedir nº de palet / SSCC. case _LECT_BULTO: cstPalet = ""; cstLectura = ""; Pantalla_SalidaPalet(Iptr, _SECCION_1); clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); printf(Iptr.GetMessage(_LECT_BULTO_1, "Introduzca bulto")); clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); printf(Iptr.GetMessage(_LECT_BULTO_2, "<F1:Salta F3:Vacia>")); clreol(0, _LINEA_INPUTS + 2); gotoxy(0, _LINEA_INPUTS + 2); ret = leer_char(ref cstLectura, 20); switch (ret) { // Ir a pedir ubicación origen case _TECLA_ESC: opc = _LECT_UBIORI; break; // Saltar la ubicación. case _TECLA_F1: opc = _SALTAR_UBICACION; break; // Validar el bulto case _TECLA_0: cstPalet = cstLectura; opc = _VALIDAR_BULTO; break; // La ocupación está vacía. case _TECLA_F3: opc = _VACIAR_OCUPACION; break; // Resto de teclas: ignorar default: UserError("SAP-????", "Opción no controlada"); opc = _LECT_BULTO; break; } break; // Validar el nº de palet case _VALIDAR_BULTO: RetVal = Iptr.SalValidarPalet(cstPalet); switch (RetVal) { // OK: Confirmar. case 'S': opc = _DATOS_OK; break; // NOK case 'N': UserError(Iptr); opc = _LECT_BULTO; break; // Error en BBDD. case 'C': UserError(Iptr); opc = _FINALIZAR; break; // Resto de casos: Ignorar. default: UserError("SAP-????", "Opción no controlada"); opc = _LECT_BULTO; break; } break; // Confirmar preparación del palet. case _DATOS_OK: Pantalla_SalidaPalet(Iptr, _SECCION_1); clreol(0, _LINEA_INPUTS + 1); clreol(0, _LINEA_INPUTS + 2); clreol(0, _LINEA_INPUTS + 3); ret = preguntar(Iptr.GetMessage(_DATOS_OK_1, "Datos OK (S/N)"), _LINEA_INPUTS + 1); switch (ret) { // Grabar datos. case _TECLA_SI: opc = _ACTUALIZAR; break; // Resto teclas: Ignorar default: opc = _LECT_BULTO; break; } break; // Actualizar palet preparado. case _ACTUALIZAR: RetVal = System.Convert.ToChar(Iptr.SalActualizar()); switch (RetVal) { // OK case 'S': // Palet preparado. opc = _CARGAR_DATOS; break; // NOK case 'N': UserError(Iptr); opc = _LECT_BULTO; break; // Error en BBDD case 'C': UserError(Iptr); opc = _FINALIZAR; break; // Resto de casos: Tomar como OK. default: UserError("SAP-????", "Opción no controlada"); opc = _CARGAR_DATOS; break; } break; // Cerrar estado Salidas Palet. case _FINALIZAR: opc = _NO_OPERACION; break; default: opc = _NO_OPERACION; break; } }while (opc != _NO_OPERACION); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.ReadKey(); } finally { RetVal = System.Convert.ToChar(Iptr.SalFinalizar()); } return; }
public void IProradEntry(COMPRADIO.PRORAD Iptr, params System.Object [] parametros) { SalidaPalet(Iptr, parametros); return; }
//------------------------------------------------- // Función principal. //------------------------------------------------- /// <summary> /// Punto de entrada al programa de RF. /// </summary> /// <seealso cref="menu(object[])"/> /// <seealso cref="DisplayPantallaPro(object[])"/> /// <returns></returns> public int _tmain() { int opc, ret, siguiente_operacion = 0; int nRetCode = 0; char RetVal = ' '; string lectura_operario = null; string lectura_terminal = null; // compradio.proradClass comInstance = new compradio.proradClass(); COMPRADIO.PRORAD comInstanceCS = new COMPRADIO.PRORAD(); try { opc = _INICIALIZAR; do { switch (opc) { case _INICIALIZAR: // Conectar la BBDD clrscr(); gotoxy(0, 14); Console.WriteLine("Conectando ..."); // RetVal = System.Convert.ToChar(comInstance.inicioconexion()); RetVal = comInstanceCS.InicioConexion(); switch (RetVal) { // OK case 'S': opc = _LECTURA_OPERARIO; break; // Error inicializar. case 'N': UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); nRetCode = 2; opc = _FINALIZAR; break; // Error general. case 'C': UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); nRetCode = 2; opc = _FINALIZAR; break; // Resto de casos: OK default: opc = _LECTURA_OPERARIO; break; } break; // Entrar código de operario. case _LECTURA_OPERARIO: clrscr(); gotoxy(0, 1); printf(comInstanceCS.GetMessage("INI-0005", "PRORAD.2").TrimEnd()); gotoxy(0, 4); printf(comInstanceCS.GetMessage("INI-0006", "Operario: ").TrimEnd()); lectura_operario = ""; gotoxy(10, 4); ret = leer_char(ref lectura_operario, 4); switch (ret) { // Salir del programa case _TECLA_ESC: opc = _FINALIZAR; break; // Pedir terminal case _TECLA_0: opc = _VALIDAR_OPERARIO; break; // Resto de casos: ignorar default: opc = _LECTURA_OPERARIO; break; } break; // Entrar tipo terminal case _LECTURA_TERMINAL: clrscr(); gotoxy(0, 1); printf(comInstanceCS.GetMessage("INI-0005", "PRORAD.2").TrimEnd()); gotoxy(0, 4); printf(comInstanceCS.GetMessage("INI-9006", "Operario: {0}").TrimEnd(), lectura_operario); gotoxy(0, 5); printf(comInstanceCS.GetMessage("INI-0007", "Terminal: ").TrimEnd()); lectura_terminal = ""; gotoxy(10, 5); ret = leer_char(ref lectura_terminal, 2); switch (ret) { // Ir a pedir operario. case _TECLA_ESC: siguiente_operacion = _LECTURA_OPERARIO; opc = _DESCONECTAR_OPERARIO; break; // Realizar las validaciones case _TECLA_0: opc = _VALIDAR_TERMINAL; break; // Resto de casos: ignorar default: opc = _LECTURA_TERMINAL; break; } break; // Validar operario case _VALIDAR_OPERARIO: // RetVal = System.Convert.ToChar(comInstance.conectarusuario(lectura_operario)); RetVal = comInstanceCS.ConectarUsuario(lectura_operario); switch (RetVal) { // OK: Mostar menú de opciones. case 'S': opc = _LECTURA_TERMINAL; break; // Valores incorrectos. case 'N': UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); opc = _LECTURA_OPERARIO; break; // Error case 'C': UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); nRetCode = 3; opc = _FINALIZAR; break; // Resto de casos: ignorar default: opc = _LECTURA_OPERARIO; break; } break; // Validar terminal. case _VALIDAR_TERMINAL: // RetVal = System.Convert.ToChar(comInstance.scrvalidarterminal(lectura_terminal)); RetVal = comInstanceCS.ValidarTerminal(lectura_terminal); switch (RetVal) { // OK: Mostar menú de opciones case 'S': opc = _DATOS_OK; break; // Valores incorrectos case 'N': UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); opc = _LECTURA_TERMINAL; break; // Error case 'C': UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); nRetCode = 4; opc = _FINALIZAR; break; // Resto de casos: ignorar default: opc = _LECTURA_TERMINAL; break; } break; // Desconectar operario activo case _DESCONECTAR_OPERARIO: // RetVal = System.Convert.ToChar(comInstance.desconectarusuario()); RetVal = comInstanceCS.DesconectarUsuario(); switch (RetVal) { // Siguiente operación a realizar: // - Pedir operario // - Cerrar BBDD case 'S': opc = siguiente_operacion; break; // Error case 'C': UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); nRetCode = 5; opc = _FINALIZAR; break; // Resto valores: Error default: UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); nRetCode = 6; opc = _FINALIZAR; break; } break; // Display del menú general case _DATOS_OK: // Cargar la línea inicial de inputs. _LINEA_INPUTS = comInstanceCS.LineaInputs; // Cargar la columna de inputs. // _COLUMNA_INPUTS = System.Convert.ToInt32(comInstanceCS.ColumnaInputs); _COLUMNA_INPUTS = comInstanceCS.ColumnaInputs; // Llamada al menú principal. menu(comInstanceCS); //DisplayPantallaPro(comInstanceCS); nRetCode = 0; opc = _LECTURA_TERMINAL; break; // Finalizar programa case _FINALIZAR: opc = _DESCONECTAR_BBDD; break; // Cerrar BBDD case _DESCONECTAR_BBDD: // RetVal = System.Convert.ToChar(comInstance.finconexion()); RetVal = comInstanceCS.FinConexion(); switch (RetVal) { // Valores incorrectos case 'N': UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); break; // Error case 'C': UserError(comInstanceCS.UsrErrorC, comInstanceCS.UsrError); break; } opc = _FINALIZAR; break; default: opc = _FINALIZAR; break; } } while (opc != _FINALIZAR); } catch (Exception ex) { string cadena = DateTime.Now.ToString() + "|" + ex.Message + "|" + ex.StackTrace + System.Environment.NewLine; System.IO.FileStream fs = new System.IO.FileStream("PRORAD.LOG", System.IO.FileMode.Append); fs.Write(ASCIIEncoding.ASCII.GetBytes(cadena), 0, cadena.Length); fs.Close(); nRetCode = ex.HResult; Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.ReadKey(); } finally { RetVal = comInstanceCS.DesconectarUsuario(); RetVal = comInstanceCS.FinConexion(); } return(nRetCode); }
//------------------------------------------------- // Menú. Versión configurable. //------------------------------------------------- /// <summary> /// Menú general de opciones - Formato configurable. /// </summary> /// /// <param name="parametros"> Array de parámetros</param> /// /// <remarks> /// parametros[0] - Objeto COMPRADIO. /// </remarks> /// /// <seealso cref="menu(object[])"/> /// <seealso cref="_tmain"/> /// /// <returns></returns> public int DisplayPantallaPro(params object[] parametros) { COMPRADIO.PRORAD Iptr = (COMPRADIO.PRORAD)parametros[0]; int opc; int tecla; char cRetVal; CString cstSeccion = ""; Char cstMenu = ' '; CString cstComando = ""; CString cstEntry = ""; opc = _INICIALIZAR_MENU; do { switch (opc) { case _INICIALIZAR_MENU: cstSeccion = _SECCION_0; opc = _LECTURA_MENU; break; // Mostrar el menú activo. case _LECTURA_MENU: clrscr(); DisplayUserScr(Iptr, _PROGRAMA, cstSeccion, "MENUS"); cstMenu = ' '; gotoxy(0, _LINEA_INPUTS); do { gotoxy(_COLUMNA_INPUTS, _LINEA_INPUTS); tecla = getkey(); } while (tecla == -1); switch (tecla) { // Ir al nivel anterior, ó exit. case _TECLA_ESC: opc = _PREVIOUS_MENU; break; // Validar la opción de menú. default: cstMenu = System.Convert.ToChar(tecla); opc = _VALIDAR_MENU; break; } break; // Validar el menú case _VALIDAR_MENU: cRetVal = System.Convert.ToChar(Iptr.ValidarMenu(_PROGRAMA, cstSeccion, cstMenu)); switch (cRetVal) { // OK: Ejecutar la función seleccionada. case 'F': cstComando = Iptr.MnuNamespace + "." + Iptr.MnuClase + ", " + Iptr.MnuEnsamblado; cstEntry = Iptr.MnuEntryPoint; System.Object[] pmo = { Iptr, new System.Object[] { } }; Type t = System.Type.GetType(cstComando); if (t == null) { UserError("_SYS-0010", Iptr.GetMessage("_SYS-0010", "Llamada es NULL", Iptr.MensajesRF)); opc = _LECTURA_MENU; break; } object ot = System.Activator.CreateInstance(t); ot.GetType().GetMethod(cstEntry).Invoke(ot, pmo); opc = _LECTURA_MENU; break; // OK: Displayar el menú seleccionado. case 'M': cstSeccion = Iptr.MnuSeccion; opc = _LECTURA_MENU; break; // Salir. case 'Q': opc = _FINALIZAR_MENU; break; // Opción incorrecta. case 'N': UserError(Iptr); opc = _LECTURA_MENU; break; // Error. case 'C': UserError(Iptr); opc = _FINALIZAR_MENU; break; // Resto de casos: ignorar. default: opc = _LECTURA_MENU; break; } break; // Ir al nivel anterior de menú. case _PREVIOUS_MENU: cstSeccion = System.Convert.ToString(Iptr.MnuSeccion); cRetVal = System.Convert.ToChar(Iptr.PreviousMenu(_PROGRAMA, cstSeccion, 'Q')); switch (cRetVal) { // OK: Display menú. case 'S': cstSeccion = (string)Iptr.MnuSeccion; opc = _LECTURA_MENU; break; // Salir. case 'Q': opc = _FINALIZAR_MENU; break; // Opción incorrecta case 'N': UserError(Iptr); opc = _LECTURA_MENU; break; // Error case 'C': UserError(Iptr); opc = _FINALIZAR_MENU; break; // Resto de casos: ignorar default: opc = _LECTURA_MENU; break; } break; // Finalizar tratamiento de menú case _FINALIZAR_MENU: opc = _NOOPERACION_MENU; break; } } while (opc != _NOOPERACION_MENU); return(0); }
// Proceso de recuento de material. public void RecuentoMaterial(params object[] parametrosE) { COMPRADIO.PRORAD Iptr = (COMPRADIO.PRORAD)parametrosE[0]; CString cstCodEAN = new CString(); CString cstCantid = new CString(); CString cstAlbaran = new CString(); string cstLectura = null; int ret = 0, opc; char RetVal; CONSULTAALBARANES oCns = null; opc = _INICIALIZAR; try { do { switch (opc) { case _INICIALIZAR: cstCodEAN = ""; cstCantid = ""; cstAlbaran = ""; cstLectura = ""; // Inicializar estado recuento de material por albarán. RetVal = System.Convert.ToChar(Iptr.RecInicializar()); switch (RetVal) { // OK case 'S': opc = _LECT_ALBARAN; break; // Resto de casos: Tomar como error. default: // NOK opc = _FINALIZAR; break; } break; // Pedir nº de albarán a recontar case _LECT_ALBARAN: cstAlbaran = ""; Pantalla_RecuentoMaterial(Iptr, _SECCION_1); clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); printf(Iptr.GetMessage(_LECT_ALBARAN_1, "Introduzca albaran")); clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); printf(Iptr.GetMessage(_LECT_ALBARAN_2, "<F2:Consulta>")); clreol(0, _LINEA_INPUTS + 2); gotoxy(0, _LINEA_INPUTS + 2); ret = leer_char(ref cstLectura, 10); cstAlbaran = cstLectura; switch (ret) { // Abandonar programa case _TECLA_ESC: opc = _FINALIZAR; break; // Consulta de albaranes case _TECLA_F2: opc = _CONS_ALBARANES; break; case _TECLA_0: opc = _VALIDAR_ALBARAN; break; // Resto de teclas: ignorar. default: opc = _LECT_ALBARAN; break; } break; // Validar el nº de albarán // Se viene desde _LECT_ALBARAN (TECLA_0) y _CONS_ALBARAN case _VALIDAR_ALBARAN: RetVal = Iptr.RecValidarAlbaran(cstAlbaran); switch (RetVal) { // OK case 'S': opc = _LECT_CODEAN; break; // NOK case 'N': UserError(Iptr); opc = _LECT_ALBARAN; break; // Error en BBDD. case 'C': UserError(Iptr); opc = _FINALIZAR; break; // Resto de casos: Tomar como OK default: // Albarán OK opc = _LECT_CODEAN; break; } break; // Solicitamos código de barras del artículo. case _LECT_CODEAN: cstCodEAN = ""; cstCantid = ""; Pantalla_RecuentoMaterial(Iptr, _SECCION_1); clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); printf(Iptr.GetMessage(_LECT_CODEAN_1, "Introduzca EAN")); clreol(0, _LINEA_INPUTS + 1); clreol(0, _LINEA_INPUTS + 2); gotoxy(0, _LINEA_INPUTS + 2); ret = leer_char(ref cstLectura, 20); cstCodEAN = cstLectura; switch (ret) { // Ir a pedir albarán. case _TECLA_ESC: opc = _LECT_ALBARAN; break; case _TECLA_0: RetVal = System.Convert.ToChar(Iptr.RecValidarEAN(cstCodEAN)); switch (RetVal) { // OK case 'S': opc = _LECT_CANTID; break; // NOK case 'N': UserError(Iptr); opc = _LECT_CODEAN; break; // Error en BBDD. case 'C': UserError(Iptr); opc = _FINALIZAR; break; // Resto de casos: Tomar como OK default: // Albarán OK opc = _LECT_CANTID; break; } break; // Resto de teclas: ignorar. default: opc = _LECT_CODEAN; break; } break; // Entrar la cantidad recontada. case _LECT_CANTID: cstCantid = ""; Pantalla_RecuentoMaterial(Iptr, _SECCION_1); clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); printf(Iptr.GetMessage(_LECT_CANTID_1, "Introduzca cantidad")); clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); printf(Iptr.GetMessage(_LECT_CANTID_2, "<F2:Poner a cero>")); clreol(0, _LINEA_INPUTS + 2); gotoxy(0, _LINEA_INPUTS + 2); ret = leer_char(ref cstLectura, 10); cstCantid = cstLectura; // Tratamiento lectura switch (ret) { // Ir a pedir EAN case _TECLA_ESC: opc = _LECT_CODEAN; break; // Poner a cero cantidad recontada de la línea case _TECLA_F2: opc = _PONER_CERO; break; case _TECLA_0: RetVal = Iptr.RecValidarCnt((string)cstCantid); switch (RetVal) { // OK case 'S': // Albarán OK opc = _DATOS_OK; break; // NOK case 'N': UserError(Iptr); opc = _LECT_CANTID; break; // Cantidad > cantidad pedida case 'P': UserError(Iptr); clreol(0, _LINEA_INPUTS + 1); ret = preguntar(Iptr.GetMessage(_LECT_CANTID_3, "Aceptar cantidad (S/N)"), _LINEA_INPUTS + 1); switch (ret) { // Aceptar cantidad recontada > cantidad pedida case _TECLA_SI: opc = _DATOS_OK; break; // Por defecto NO acepta la cantidad default: opc = _LECT_CANTID; break; } break; // Error en BBDD case 'C': UserError(Iptr); opc = _FINALIZAR; break; // Resto de casos: Tomar como OK default: // Albarán OK opc = _DATOS_OK; break; } break; // Resto de teclas: Ignorar. default: opc = _LECT_CANTID; break; } break; // Actualizar cantidad recontada en la línea del albarán case _DATOS_OK: Pantalla_RecuentoMaterial(Iptr, _SECCION_1); clreol(0, _LINEA_INPUTS + 1); ret = preguntar(Iptr.GetMessage(_DATOS_OK_1, "Datos OK (S/N)"), _LINEA_INPUTS + 1); switch (ret) { // Grabar datos case _TECLA_SI: opc = _ACTUALIZAR; break; // Resto teclas: Ignorar default: opc = _LECT_CANTID; break; } break; // Actualizar cantidad y estado albarán de entrada. case _ACTUALIZAR: RetVal = System.Convert.ToChar(Iptr.RecActualizar()); switch (RetVal) { // OK case 'S': // Recuento actualizado opc = _LECT_CODEAN; break; // NOK case 'N': UserError(Iptr); opc = _LECT_CANTID; break; // Error en BBDD case 'C': UserError(Iptr); opc = _FINALIZAR; break; // Resto de casos: Tomar como OK default: // Recuento actualizado opc = _LECT_CODEAN; break; } break; // Consulta de albaranes. case _CONS_ALBARANES: oCns = new CONSULTAALBARANES(); oCns.ConsultaAlbaranes(Iptr); oCns = null; // Recuperar albarán actual, si hay. cstAlbaran = (string)Iptr.CnsNumAlb; opc = _VALIDAR_ALBARAN; break; // Cerrar estado recuento de material. case _FINALIZAR: opc = _NO_OPERACION; break; default: opc = _NO_OPERACION; break; } }while (opc != _NO_OPERACION); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.ReadKey(); } finally { RetVal = System.Convert.ToChar(Iptr.RecFinalizar()); } return; }
public void IProradEntry(COMPRADIO.PRORAD Iptr, params System.Object [] parametros) { RecuentoMaterial(Iptr, parametros); return; }
// Proceso de consulta de albaranes. public void ConsultaAlbaranes(params object [] parametrosA) { COMPRADIO.PRORAD Iptr = (COMPRADIO.PRORAD)parametrosA[0]; string cstAlbaran = ""; string cstFecEnt; string cstEstado; string cstLinea; string cstSkipR = ""; string cstLectura = ""; int ret, opc; char RetVal; opc = _CMC_INIT_ALBARAN; try { do { switch (opc) { // Entrar nº de albarán inicial. case _CMC_LECT_ALBARAN: cstAlbaran = ""; cstFecEnt = ""; cstEstado = ""; cstLinea = ""; nLineaDet = 0; cstLectura = ""; Pantalla_ConsultaAlbaranes(cstAlbaran, cstFecEnt, cstEstado, cstLinea); clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); printf("Albaran inicial"); clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); printf("<ESC:Salir>"); clreol(0, _LINEA_INPUTS + 2); gotoxy(0, _LINEA_INPUTS + 2); ret = leer_char(ref cstLectura, 10); cstAlbaran = cstLectura; switch (ret) { // Abandonar el programa case _TECLA_ESC: opc = _NO_OPERACION; break; // Validar el albarán inicial. case _TECLA_0: cstSkipR = "V"; opc = _CMC_VALIDAR; break; // Selección de albaranes. case _TECLA_F2: RetVal = System.Convert.ToChar(Iptr.ConsultaAlbaranes(cstSkipR, cstAlbaran)); switch (RetVal) { // OK case 'S': // Consulta OK nLineaDet = 0; opc = _CMC_MOSTRAR_ALBARAN; break; // NOK case 'N': // No puede cargar albaranes UserError(Iptr); opc = _CMC_LECT_ALBARAN; break; // Resto de casos: Tomar como OK default: // Albarán OK nLineaDet = 0; opc = _CMC_MOSTRAR_ALBARAN; break; } break; // Resto de teclas: Ignorar default: opc = _CMC_LECT_ALBARAN; break; } break; // Mostrar la siguiente línea de albarán. case _CMC_MOSTRAR_ALBARAN: cstSkipR = "M"; RetVal = System.Convert.ToChar(Iptr.ConsultaAlbaranes(cstSkipR, cstAlbaran)); switch (RetVal) { // EOF case 'O': // No hay más líneas. UserError(Iptr); opc = _CMC_LECT_ALBARAN; break; // OK case 'S': // Recuperar código de barras cstAlbaran = Iptr.CnsNumAlb; // Recuperar la fecha de albarán. cstFecEnt = String.Format("{0:d}", Iptr.CnsFecEnt); // Recuperar el estado del albarán. cstEstado = Iptr.CnsEstAlb; // Recuperar línea relativa. cstLinea = Iptr.CnsOrden.ToString(); // Visualizar albarán actual. Pantalla_ConsultaAlbaranes(cstAlbaran, cstFecEnt, cstEstado, cstLinea); if (nLineaDet >= _LIN_PAG) { // Pantalla llena: Seleccionar albarán ó avanzar pantalla opc = _CMC_SELECCION; break; } // Cargar más albaranes. opc = _CMC_MOSTRAR_ALBARAN; break; // Error case 'E': // Error de programa UserError(Iptr); opc = _NO_OPERACION; break; // Resto de casos: Error. default: // Error clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); printf("Resultado indefinido. Pulse tecla."); getkey(); opc = _NO_OPERACION; break; } break; // Tomar datos del albarán activo. case _CMC_CARGAR_ALBARAN: // Recuperar albarán actual, si hay. cstAlbaran = Iptr.NumAlb; cstSkipR = "V"; opc = _CMC_VALIDAR; break; // Validar el albarán. // Se viene desde _CMC_CARGAR_ALBARAN y _CMC_LECT_ALBARAN(TECLA_0) case _CMC_VALIDAR: RetVal = System.Convert.ToChar(Iptr.ConsultaAlbaranes(cstSkipR, cstAlbaran)); switch (RetVal) { // OK case 'S': // Albarán OK nLineaDet = 0; opc = _CMC_MOSTRAR_ALBARAN; break; // NOK case 'N': // No hay albaranes. opc = _CMC_LECT_ALBARAN; break; // Error case 'E': // Error de programa UserError(Iptr); opc = _CMC_LECT_ALBARAN; break; // Resto de casos: Tomar como OK default: // Albarán OK nLineaDet = 0; opc = _CMC_MOSTRAR_ALBARAN; break; } break; // Seleccionar albarán a procesar. case _CMC_SELECCION: clreol(0, _LINEA_INPUTS + 0); gotoxy(0, _LINEA_INPUTS + 0); printf("Seleccionar albaran"); clreol(0, _LINEA_INPUTS + 1); gotoxy(0, _LINEA_INPUTS + 1); printf("<F2:Inicio F3:Sigue ESC:Salir>"); clreol(0, _LINEA_INPUTS + 2); gotoxy(0, _LINEA_INPUTS + 2); ret = leer_char(ref cstLectura, 10); cstAlbaran = cstLectura; switch (ret) { // Abandonar programa case _TECLA_ESC: opc = _NO_OPERACION; break; // Devolver albarán seleccionado case _TECLA_0: cstSkipR = "S"; RetVal = System.Convert.ToChar(Iptr.ConsultaAlbaranes(cstSkipR, cstAlbaran)); switch (RetVal) { // OK case 'S': // Devolver albarán ya asignado a propiedad y salir opc = _NO_OPERACION; break; // NOK case 'N': // La selección no es correcta UserError(Iptr); opc = _CMC_SELECCION; break; // Error case 'E': // Error UserError(Iptr); opc = _NO_OPERACION; break; // Resto de casos: Pedir selección default: // Opción no controlada opc = _CMC_LECT_ALBARAN; break; } break; // Pedir albarán inicial case _TECLA_F2: opc = _CMC_LECT_ALBARAN; break; // Mostrar más albaranes case _TECLA_F3: nLineaDet = 0; opc = _CMC_MOSTRAR_ALBARAN; break; // Resto de teclas: Ignorar default: opc = _CMC_SELECCION; break; } break; // Inicializar valores. case _CMC_INIT_ALBARAN: cstAlbaran = ""; cstFecEnt = ""; cstEstado = ""; cstLinea = ""; nLineaDet = 0; opc = _CMC_CARGAR_ALBARAN; break; default: opc = _NO_OPERACION; break; } } while (opc != _NO_OPERACION); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.ReadKey(); } finally { // Cerrar proceso de consulta. RetVal = Convert.ToChar(Iptr.ConsultaAlbaranes("Z", cstLectura)); } return; }
public void UserError(COMPRADIO.PRORAD Iptr) { UserError(Iptr.UsrErrorC, Iptr.UsrError); return; }