LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

menu de impresion y leectura de un archivo al cargar un panel

Hola que tal, estoy haciendo un programa en el cual se requiere manda una impresion, he visto algunos ejemplos de pop-up donde hace eso pero no encuntro la parte donde manda a llamar a la ventana de impresion (donde se puede seleccionar el tipo de hoja, la impresora a utilizar, etc).

 

este mismo programa debe leer el ultimo dato que fue escrito por el mismo, tengo este codigo para hacer la lectura y mostrarlo en un box number:

 

 FILE *archivo;
    char caracteres[100];
 int cara;
 switch (event)
 {
  case EVENT_COMMIT:
   archivo = fopen("\\master3.txt","r");
 
          if (archivo == NULL)
                  exit(1);
 
           while (feof(archivo) == 0)
          {
     fgets (caracteres, 100, archivo);
          }
       
  cara= atoi(caracteres);
  SetCtrlVal (panel, PANEL_NUMERIC,cara);
   break;
 }
 return 0;
}

 

asi como esta funciona con un click event de un boton, el problema es como hacer que cuando se cargue de nuevo el Panel esta funcion se haga sin necesidad del boton

0 Kudos
Message 1 of 6
(3,418 Views)

Por lo que se refiere a la impresión, mucho depende de cómo la haces: por ejemplo, el comando PrintPanel tiene como último valor la opción para emitir una ventana de opciones de impresión. Conociendo el método que usas para imprimir el reporte podremos darte alguna indicación más precisa.

 

El tema de cargar un valor al cargar un panel ¿no puede solucionarse simplemente insertando el código que lee el archivo después del correspondiente LoadPanel?



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 2 of 6
(3,416 Views)

lo he intentado pero me tira este error,

 

untitled.JPG

0 Kudos
Message 3 of 6
(3,411 Views)

¡Claro¡ Tu cargas el panel DKG250 y almacenas su handle el la variable 'dkg_250' pero pasas la variable 'panel' al SetCtrlVal: la variable 'panel' contiene el handle del panel en el que está el botón que estás pulsando, que es diferente del que cargas en esta callback: ¡estás escribiendo un control cualquiera del panel equivocado!

Con SetCtrlVal (dkg_250, DKG250_NUMERIC, cara) ya no tendrás errores.

 



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 4 of 6
(3,407 Views)

muchas gracias por la correcion con la forma de lectura, el otro punto es el de impresion, ya hice pruebas con la funcion PrintPanel, efectivamente sale el menu de impresion que necesito, solo que como la funcion lo dice "imprime el panel" lo que requiero es imprimir la informacion contenida del panel mas no todo el panel, como puedo hecer esto. Talvez exista alguna otra funcion.

 

Muchas gracias por el tiempo tomado para ayudar

0 Kudos
Message 5 of 6
(3,394 Views)

Cesar, la generación de reportes en CVI es una tarea que tiene muchas soluciones y que originó muchas discusiones. Aquí te dejo un elenco de posibles soluciones que he estudiado y experimentado en los años, con sus pros y contras: a tu gusto eligir la que más te agrade.

 

  • Crear un panel especial y imprimirlo: mira a esta discusión para más detalles. En mi opinión esta es la manera más simple de hacer un reporte y no necesita algun recurso externo; puedes hacer un preview simplemente mostrando el panel antes de imprimirlo. Por el otro lado, no puedes almacenar el reporte en el disco duro sino como imagen,  una imagen para cada página, que es un método bastante bruto
  • Crear un reporte con el NI Reports: el CVI viene con algunos ejemplos de este instrumento que puedes buscar y estudiar. Es un instrumento bastante poderoso pero no tiene posibilidad de anteprima en el video, lo que en mi opinión es un límite muy serio
  • Crear un reporte en PDF con una librería añadida: yo he experimentado la Haru PDF library que es gratis y puede usarse sin muchos problemas: aquí tienes un ejemplo de lo que puede hacerse
  • Crear un reporte con Excel u Word: el CVI puede interactuar con estos productos por medio de ActiveX; no es tarea simple, sobre todo porque no hay mucha documentación sobre los comandos por usar (de todas maneras hay muchas discusiones sobre este tema en el foro que pueden darte elementos para profundizar), Para usar esto necesitas que Excel u Word sean instalados en la máquina, lo que no siempre es posible, por lo menos en mi experiencia

Como ves hay muchas opciones, y puede que haya olvidado alguna...



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 6 of 6
(3,384 Views)