HonradosHP
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

^IfMain con initvalue desde variable global

2 participantes

Ir abajo

^IfMain con initvalue desde variable global Empty ^IfMain con initvalue desde variable global

Mensaje  Dan_ Vie Abr 02, 2010 10:55 am

Tengo el siguiente código en SysRPL obtenido con InFormBuilder v1.81 de Steen Schmidt, que trabaja con el comando ^IfMain:

Código:
!NO CODE
!RPL
::
"Di[unid]" 0 32
"tij[min]" 0 43
"T[min]" 0 9
"R[min]" 0 20
"p[1=100%]" 0 55
"E[1=100%]" 58 9
"U[1=100%]" 58 20
'DROPFALSE 24 7 33 9 ONE 1048575 FOUR "T Bruto en el horizonte d tiempo" MINUSONE MINUSONE % 2700.
 % 2700.

'DROPFALSE 94 7 37 9 ONE { 5 } FOUR "Eficiencia para cada máquina" MINUSONE MINUSONE {
  % .9
  % .9
  % .9
  % .9
}
 {
  % .9
  % .9
  % .9
  % .9
}

'DROPFALSE 24 18 33 9 ONE 1048575 FOUR "Pérdidas de t en el horiz de t" MINUSONE MINUSONE % 300.
 % 300.

'DROPFALSE 94 18 37 9 ONE { 5 } FOUR "UtilizaciÓn para cada máquina" MINUSONE MINUSONE {
  % .85
  % .85
  % .85
  % .85
}
 {
  % .85
  % .85
  % .85
  % .85
}

'DROPFALSE 32 30 99 9 ONE { 5 } FOUR "Lista de demanda p/ c/ producto" MINUSONE MINUSONE {
  % 10000.
  % 5000.
  % 8000.
  % 12000.
}
 {
  % 10000.
  % 5000.
  % 8000.
  % 12000.
}

'DROPFALSE 32 41 99 9 ONE { 5 } FOUR "Lists T std p/ c/ prod en c/ máq" MINUSONE MINUSONE {
  {
    % 4.25
    % 3.15
    % 3.75
    % 2.5
  }
  {
    % 1.15
    %0
    % 1.5
    %0
  }
  {
    % 2.1
    % 2.1
    % 1.75
    % 1.75
  }
  {
    % 1.55
    % 2.2
    % 1.55
    % 1.55
  }
}
 {
  {
    % 4.25
    % 3.15
    % 3.75
    % 2.5
  }
  {
    % 1.15
    %0
    % 1.5
    %0
  }
  {
    % 2.1
    % 2.1
    % 1.75
    % 1.75
  }
  {
    % 1.55
    % 2.2
    % 1.55
    % 1.55
  }
}

'DROPFALSE 36 53 95 9 ONE { 5 } FOUR "Scrap para cada máquina" MINUSONE MINUSONE {
  % .005
  % .005
  % .005
  % .005
}
 {
  % .005
  % .005
  % .005
  % .005
}

7 7 'DROPFALSE
"CALCULO N° DE MAQ REQUERIDAS"
FPTR2 ^IfMain
;
@

Como ven hay un montón de números y listas, pero quisiera que en lugar de estar hardcodeados, esos números y listas los pudiera tomar de una lista guardada en una variable global donde tengo ordenada toda esta información. Esta lista guardada en la variable DATOS, para la información vista en el código de arriba, tiene la siguiente forma:

{2700 {.9 .9 .9 .9} 300 {.85 .85 .85 .85} {10000 5000 8000 12000} {{4.25 3.15 3.75 2.5} {1.15 0 1.5 0} {2.1 2.1 1.75 1.75} {1.55 2.2 1.55 1.55}} {.005 .005 .005 .005}}

La idea es que pueda cambiar esta lista cuando quiera y que el ^IfMain tome los Initvalue desde la lista, que no aparezcan siempre los mismos valores por estar escritos dentro del código SysRPL.

También estaría bueno que los datos en los Data Field aparezcan en MiniFont.

La verdad es que no tengo ni idea de SysRPL, CesarV me das una mano? Smile
Dan_
Dan_
Baby HP
Baby HP

Cantidad de envíos : 8
Localización : Argentina
Calculadora : HP 50g
ROM : 2.09

Volver arriba Ir abajo

^IfMain con initvalue desde variable global Empty Re: ^IfMain con initvalue desde variable global

Mensaje  Jose Leonardo Ortiz Jue Abr 08, 2010 5:41 pm

Aquí te dejo el programa con el cual podrás abrir el formulario de entrada con los datos guardados en una variable global y que guarda los últimos datos ingresados para la próxima ejecución del programa. También usa campos con minifuente.

Captura en HP 50g
DESCARGA
AQUÍ EL
PROGRAMA
^IfMain con initvalue desde variable global Dibujodani

DESCRIPCIÓN:
* Llama a los valores desde la lista situada en la variable global
* N_MAQ_REQ del directorio oculto. Si no existe aún esta variable,
* pone una lista por defecto.
* Los elementos de esta lista serán los valores iniciales del
* formulario de entrada.
* Si sales con ENTER u OK, la lista se guarda en la variable N_MAQ_REQ
* y el programa retorna en la pila la lista modificada y el número real 1.
* Si sales con CANCL u ON, no se guarda nada y el programa
* sólo retorna en la pila el número real 0.


Este es el código para Debug4x.
Puedes copiar y pegarlo en el editor de Debug4x.
Código:
* Llama a los valores desde la lista situada en la variable
* global N_MAQ_REQ del directorio oculto. Si no existe aún
* esta variable, pone una lista por defecto.
* Los elementos de esta lista serán los valores iniciales del
* formulario de entrada.
* Si sales con ENTER u OK, la lista se guarda en la
* variable N_MAQ_REQ y el programa retorna en la pila la
* lista y el número real 1.
* Si sales con CANCL u ON, no se guarda nada y el programa
* sólo retorna en la pila el número real 0.
* ( -> {} %1 )
* ( -> %0 )
::          ( -> {} %1 // %0 )
CK0NOLASTWD    ( ) ( No pide argumentos )
' ID N_MAQ_REQ ( id )
RclHiddenVar  ( {} T // F ) ( llama desde el directorio oculto )
NOT_IT
{ 2700. { .9 .9 .9 .9 } 300. { .85 .85 .85 .85 } { 10000. 5000. 8000. 12000. }
  { { 4.25 3.15 3.75 2.5 } { 1.15 0. 1.5 0. } { 2.1 2.1 1.75 1.75 } { 1.55 2.2 1.55 1.55 } }
  { .005 .005 .005 .005 }
}
          ( {} )
>R        ( ) ( Poner la lista en la pila de retornos )
      
"Di[unid]"  BINT0  BINT37
"tij[min]"  BINT0  BINT46
"T[min]"    BINT0  BINT9
"R[min]"    BINT66 BINT9
"p[1=100%]" BINT0  BINT55
"E[1=100%]" BINT0  BINT19
"U[1=100%]" BINT0  BINT28

'DROPFALSE
BINT26 BINT9 BINT33 BINT6    BINT1 { BINT0 } BINT5
"T Bruto en el horizonte d tiempo"
MINUSONE MINUSONE
'R DUP

'DROPFALSE
BINT38 BINT19 BINT92 BINT6    BINT1 { BINT5 } BINT5
"Eficiencia para cada máquina"
MINUSONE MINUSONE
'R DUP

'DROPFALSE
BINT94 BINT9 BINT36 BINT6    BINT1 { BINT0 } BINT5
"Pérdidas de t en el horiz de t"
MINUSONE MINUSONE
'R DUP

'DROPFALSE
BINT38 BINT28 BINT92 BINT6    BINT1 { BINT5 } BINT5
"UtilizaciÓn para cada máquina"
MINUSONE MINUSONE
'R DUP

'DROPFALSE
BINT34 BINT37 BINT96 BINT6    BINT1 { BINT5 } BINT5
"Lista de demanda p/ c/ producto"
MINUSONE MINUSONE
'R DUP

'DROPFALSE
BINT34 BINT46 BINT96 BINT6    BINT1 { BINT5 } BINT5
"Lists T std p/ c/ prod en c/ máq"
MINUSONE MINUSONE
'R DUP

'DROPFALSE
BINT38 BINT55 BINT92 BINT6    BINT1 { BINT5 } BINT5
"Scrap para cada máquina"
MINUSONE MINUSONE
'R DUP

BINT7 BINT7
'DROPFALSE
"CALCULO N° DE MAQ REQUERIDAS"
FLASHPTR IfMain ( ob1,...,ob7 T // F )

NOTcase
%0          ( 0. ) ( SALE CON 0. EN LA PILA SI TE RETIRAS )
              ( ob1,...,ob7 )
BINT7          ( ob1,...,ob7 #7 )
{}N            ( {ob1,...,ob7} )
DUP            ( {ob1,...,ob7} {ob1,...,ob7} )
' ID N_MAQ_REQ  ( {ob1,...,ob7} {ob1,...,ob7} id )
StoHiddenVar  ( {ob1,...,ob7} #7 ) ( Guarda en directorio oculto )
%1            ( {ob1,...,ob7} %1 ) ( SALE CON LA LISTA EN LA PILA Y 1 )
;
Jose Leonardo Ortiz
Jose Leonardo Ortiz
Junior HP+
Junior HP+

Masculino Cantidad de envíos : 50
Localización : Lima/Perú
Calculadora : HP 50g
ROM : 2.09

Volver arriba Ir abajo

^IfMain con initvalue desde variable global Empty Re: ^IfMain con initvalue desde variable global

Mensaje  Dan_ Jue Abr 08, 2010 9:37 pm

Que emoción Maestro!! Gracias infinitas.

Lo voy a probar.

Inestimable tu ayuda, tan generoso como grande es tu conocimiento.

En caso de que publique el programa que utiliza este ^IfMain, con su correspondiente manual, te daré el crédito correspondiente. Eso, por supuesto, si no te molesta que use tu código para incorporarlo al programa en cuestión.

Saludos cordiales.
Dan_
Dan_
Baby HP
Baby HP

Cantidad de envíos : 8
Localización : Argentina
Calculadora : HP 50g
ROM : 2.09

Volver arriba Ir abajo

^IfMain con initvalue desde variable global Empty Re: ^IfMain con initvalue desde variable global

Mensaje  Dan_ Vie Abr 09, 2010 6:10 pm

CesarV, lo estuve probando y funciona muy bien, gracias!

Hay un detalle que no se por qué aparece así, ya que en tu captura de pantalla no aparece de la misma manera.
En algunos lugares junto a los datos aparecen cuadraditos que implican un salto de línea, ejemplo:

^IfMain con initvalue desde variable global Numaqimg002

No influye para nada en los cálculos, pero me pregunto por qué aparecen ahí.

Saludos Smile
Dan_
Dan_
Baby HP
Baby HP

Cantidad de envíos : 8
Localización : Argentina
Calculadora : HP 50g
ROM : 2.09

Volver arriba Ir abajo

^IfMain con initvalue desde variable global Empty Re: ^IfMain con initvalue desde variable global

Mensaje  Jose Leonardo Ortiz Miér Abr 14, 2010 6:43 pm

Dan_ escribió:En caso de que publique el programa que utiliza este ^IfMain, con su correspondiente manual, te daré el crédito correspondiente. Eso, por supuesto, si no te molesta que use tu código para incorporarlo al programa en cuestión.

Saludos cordiales.

Publica tu programa, no hay problema. Y puedes anunciarlo aquí en este foro en la sección correspondiente.
Jose Leonardo Ortiz
Jose Leonardo Ortiz
Junior HP+
Junior HP+

Masculino Cantidad de envíos : 50
Localización : Lima/Perú
Calculadora : HP 50g
ROM : 2.09

Volver arriba Ir abajo

^IfMain con initvalue desde variable global Empty Re: ^IfMain con initvalue desde variable global

Mensaje  Jose Leonardo Ortiz Miér Abr 14, 2010 6:45 pm

Dan_ escribió:CesarV, lo estuve probando y funciona muy bien, gracias!

Hay un detalle que no se por qué aparece así, ya que en tu captura de pantalla no aparece de la misma manera.
En algunos lugares junto a los datos aparecen cuadraditos que implican un salto de línea, ejemplo:

^IfMain con initvalue desde variable global Numaqimg002

No influye para nada en los cálculos, pero me pregunto por qué aparecen ahí.

Saludos Smile

Puedes hacer que no aparezcan esos cuadraditos, cambiando el flag de sistema n° 73.
Jose Leonardo Ortiz
Jose Leonardo Ortiz
Junior HP+
Junior HP+

Masculino Cantidad de envíos : 50
Localización : Lima/Perú
Calculadora : HP 50g
ROM : 2.09

Volver arriba Ir abajo

^IfMain con initvalue desde variable global Empty Re: ^IfMain con initvalue desde variable global

Mensaje  Dan_ Jue Abr 15, 2010 12:07 am

Perfecto, gracias CesarV!
Dan_
Dan_
Baby HP
Baby HP

Cantidad de envíos : 8
Localización : Argentina
Calculadora : HP 50g
ROM : 2.09

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.