10-19-2011 11:50 AM
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
10-19-2011 04:44 PM
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?
10-19-2011 05:05 PM
lo he intentado pero me tira este error,
10-19-2011 11:39 PM - edited 10-19-2011 11:40 PM
¡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.
10-20-2011 12:38 PM
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
10-20-2011 02:30 PM - edited 10-20-2011 02:32 PM
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.
Como ves hay muchas opciones, y puede que haya olvidado alguna...