pasos para el uso de webutil y machotes en web

7
Guía para incluir las modificaciones necesarias a las formas para el uso de WEBUTIL. 1. Atachar la librería WEBUTIL.pll, abrir el objeto WEBUTIL.olb y arrastrar el object group WEBUTIL que se encuentran en la carpeta WEBUTIL del proyecto, por ejemplo: \\asi-32\ab9iwin\stanpweb\webutil 2. Si la forma se utiliza para cliente servidor y para web realice lo siguiente: Crear un campo denominado WEB (data type = char , Maximun Length = 1) en un bloque de control de la forma donde se está incluyendo el cambio. Copiar la siguiente programación en el trigger WHEN-NEW-FORM-INSTANCE: if get_application_property(USER_INTERFACE) = 'WEB' then :B_BASE.WEB := 'S'; else :B_BASE.WEB := 'N'; end if; Nota: Se debe tener en cuenta de que al hacer clear_form éstas variables perderán la información que almacenan. 3. Si se debe desplegar una ventana para abrir o salvar un archivo utilice el siguiente ejemplo de programación, en donde: Ejemplo para Guardar Archivo Declare Lv_NombreArchivo varchar2(100); --(Nombre del archivo a generar, el tamaño de la variable puede variar dependiendo del nombre del archivo) Lv_Tipo_dato varchar2(100); --(Tipo de archivo, aparecerá en la ventana indicando los tipos de archivos permitidos, el tamaño de la variable puede variar dependiendo de los diferentes tipos de archivos que se agreguen para desplegar) Ln_tipo_ventana number; --(Para indicar si se va abrir o guardar)

Upload: isma

Post on 07-Mar-2015

1.048 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: Pasos Para El Uso de Webutil y Machotes en Web

Guía para incluir las modificaciones necesarias a las formas para el uso de WEBUTIL.

1. Atachar la librería WEBUTIL.pll, abrir el objeto WEBUTIL.olb y arrastrar el object group WEBUTIL

que se encuentran en la carpeta WEBUTIL del proyecto, por ejemplo: \\asi-32\ab9iwin\stanpweb\webutil

2. Si la forma se utiliza para cliente servidor y para web realice lo siguiente:

● Crear un campo denominado WEB (data type = char , Maximun Length = 1) en un bloque de control de la forma donde se está incluyendo el cambio.

● Copiar la siguiente programación en el trigger WHEN-NEW-FORM-INSTANCE:

if get_application_property(USER_INTERFACE) = 'WEB' then :B_BASE.WEB := 'S';

else :B_BASE.WEB := 'N'; end if;

Nota: Se debe tener en cuenta de que al hacer clear_form éstas variables perderán la información que almacenan.

3. Si se debe desplegar una ventana para abrir o salvar un archivo utilice el siguiente ejemplo de programación, en donde:Ejemplo para Guardar ArchivoDeclareLv_NombreArchivo varchar2(100); --(Nombre del archivo a generar, el tamaño de la variable puede

variar dependiendo del nombre del archivo)Lv_Tipo_dato varchar2(100); --(Tipo de archivo, aparecerá en la ventana indicando los tipos de

archivos permitidos, el tamaño de la variable puede variar dependiendo de los diferentes tipos de archivos que se agreguen para desplegar)

Ln_tipo_ventana number; --(Para indicar si se va abrir o guardar)Lv_ruta varchar2(200); --(Almacenará la ruta indicada por el usuario, el tamaño de la

variable puede variar dependiendo de la ruta y el nombre del archivo que indique el usuario)

BEGINIF :B_BASE.WEB = 'S' THEN

Lv_tipo_dato := 'Archivos de texto (*.TXT)|*.TXT|'||'Todos los archivos (*.*)|*.*|'; Ln_tipo_ventana := SAVE_FILE;

Lv_ruta := client_get_file_name(directory_name => 'C:\' ,file_name => Lv_NombreArchivo

Page 2: Pasos Para El Uso de Webutil y Machotes en Web

,file_filter => Lv_tipo_dato ,message => null ,dialog_type => Ln_tipo_ventana ,select_file => null);

ELSEbegin

Lv_ruta := Win_Api_Dialog.Save_File(Lv_NombreArchivo,'Seleccione el archivo destino','C:\', 'Archivos de texto (*.TXT)|*.TXT|'||'Todos los archivos (*.*)|*.*|');

Exception When others then

MensajeError RAISE Form_Trigger_Failure;end;

END IF;Luego se procede a asignar al campo en pantalla la variable Lv_rutaEND;Ejemplo para Abrir ArchivoIF :BL_BASE.WEB = 'S' THEN

Lv_NombreArchivo := null; Lv_tipo_dato := 'DAT FILES (*.DAT)|*.DAT|'||'ALL FILES (*.*)|*.*|'||'Todos los archivos (*.*)|*.*|';

Ln_tipo_ventana := OPEN_FILE; Lv_NombreArchivo := client_get_file_name(directory_name => 'C:\'

,file_name => null ,file_filter => Lv_tipo_dato ,message => null ,dialog_type => Ln_tipo_ventana ,select_file => null);

ELSE BEGIN

Lv_NombreArchivo := null;Lv_NombreArchivo := WIN_API_DIALOG.OPEN_FILEEX('Seleccione el

Archivo',NULL,'DAT FILES (*.DAT)|*.DAT|'||'ALL FILES (*.*)|*.*|',TRUE); EXCEPTION WHEN OTHERS THEN

MensajeError RAISE Form_Trigger_Failure; END;

END IF;Luego se procede a asignar al campo en pantalla la variable Lv_NombreArchivo.

4. Para escribir en un archivo de texto realice lo siguiente:Declare las siguientes variables en el procedimiento que crea el archivo.out_file TEXT_IO.FILE_TYPE;out_file_w CLIENT_TEXT_IO.FILE_TYPE;

IF :B_BASE.WEB = 'S' THENout_file_w := Client_TEXT_IO.FOPEN(Lv_ruta,'w'); --Para abririf client_text_io.is_open(out_file_w) then

Obtenga la información a ingresar en el archivo

2

Page 3: Pasos Para El Uso de Webutil y Machotes en Web

CLIENT_TEXT_IO.PUT_LINE(out_file_w,Lv_registro); --Para escribirCLIENT_TEXT_IO.FCLOSE(out_file_w); --Para cerrar

end if;client_host('cmd /C notepad '||Lv_ruta); --Si se desea mostrar en pantalla el archivo

generadoELSE

out_file := TEXT_IO.FOPEN(Lv_ruta,'w'); --Para abririf text_io.is_open(out_file) then

Obtenga la información a ingresar en el archivoTEXT_IO.PUT_LINE(out_file,Lv_registro); --Para escribirTEXT_IO.FCLOSE(out_file); --Para cerrar

end if;host('start notepad '||Lv_ruta); --Si se desea mostrar en pantalla el archivo generado

END IF;

CONSIDERACIONES PARA CUANDO SE TRABAJA CON DOCUMENTOS EN EXCEL:

1. Se deben seguir los pasos 1 y 2 mencionados sobre WEBUTIL.

2. Atachar la librería LIB_EXCEL1.pll que se encuentra en la carpeta del proyecto, por ejemplo \\asi-32\ab9iwin\stanpweb\pll\1, \\asi-10\Prue_A8r1\obo\LIB.

3. Colocar el archivo excell (Machote) en el servidor, en la ruta destinada para los machotes.

4. Crear dos campos denominados GUI (data type = char , Maximun Length = 30), SOUNIX (data type = number , Maximun Length = 1) en un bloque de control de la forma donde se está incluyendo el cambio.

5. Adicionar el siguiente program unit a la forma. Este procedimiento transfiere el archivo excell o machote, a la máquina del usuario; utilizando variables configuradas en el Aplication server.

PROCEDURE DOWNLOAD_AS(Pv_NombreMachote IN VARCHAR2, --Se envía el nombre del Template

Pv_plantilla OUT VARCHAR2, --Retorna la ubicación de la plantilla Gv_CodError OUT VARCHAR2) IS

l_success boolean; l_bare_filename varchar2(50); Lv_plantilla varchar2(2000); --Interfase Excel Lv_plantillaOrig varchar2(2000); --Interfase Excel Lv_mensaje varchar2(200);BEGIN

-- Obtener la Ruta del Aplication serverMG_K_PARAMETROS_DINAMICOS.MG_P_DEVUELVE_VALOR('BMG','APPLICATION_SERVER',Lv_plantillaOrig,Lv_mensaje);

If Lv_mensaje is not null thenGv_CodError := Lv_mensaje;Return;

End If; -- if Lv_Mensaje is not null

3

Page 4: Pasos Para El Uso de Webutil y Machotes en Web

-- Obtener la Ruta de donde se colocara el machote en la maquina del clienteMG_K_PARAMETROS_DINAMICOS.MG_P_DEVUELVE_VALOR('BMG','RUTA_TRANSFIERE_MACHOTE',Lv_plantilla,Lv_mensaje);

Pv_Plantilla := Lv_plantilla;If Lv_mensaje is not null then

Gv_CodError := Lv_mensaje;Return;

End If; -- if Lv_Mensaje is not null

l_success := webutil_file_transfer.AS_to_Client_with_progress (clientFile => lv_plantilla||Pv_NombreMachote ,serverFile => Lv_plantillaOrig||Pv_NombreMachote ,progressTitle => 'Descarga del Application Server en progreso' ,progressSubTitle => 'Por Favor Espere...'); if l_success then

Li_boton := pu_f_mostrar_alerta('Archivo Descargado Satisfactoriamente del Application Server', 'NOTA', 1); else

Li_boton := pu_f_mostrar_alerta('Fallo en Descarga de Archivo del Application Server', 'PARAR');

raise form_trigger_failure; end if;

EXCEPTION when others then Gv_CodError := MG_K_CTRL_ERROR.MG_F_ARMAR_CODIGO_ERROR(0000, 'Fallo en Descarga '|| sqlerrm, null);

return;END;

7. Si se está modificando una forma tener en cuenta lo siguiente:Todas las instrucciones que originalmente utilizaban LIB_Excel.CREATE_EXCEL_OBJECT; --Para crear el objeto tipo excel LIB_Excel.CREATE_FILE --Para crear el archivo LIB_Excel.SET_VALUE, --Para asignar el valor a una columna de excel etc; para el uso de los machotes de excell en cliente servidor, deben ser reemplasadas por :

LIB_Excel1.CREATE_EXCEL_OBJECT; LIB_Excel1.CREATE_FILE LIB_Excel1.SET_VALUE

8. En el botón que busca la ruta del archivo a generar colocar la siguiente programación, tomando en cuenta que se debe incluir la programación que contenga este botón para el funcionamiento normal en cliente servidor.

DECLARE Lv_NombreDefaultvarchar2(100); Lv_Extencion varchar2(3) := 'XLS'; lv_ruta varchar2(220):=null;

4

Page 5: Pasos Para El Uso de Webutil y Machotes en Web

lv_archivo varchar2(25);lv_nombre_archivo varchar2(25);l_filename varchar2(200);

begin lv_nombre_archivo:=AQUÍ VA EN NOMBRE DEL ARCHIVO A GENERAR||'.'||Lv_Extencion;

if get_application_property(USER_INTERFACE) = 'WEB' then :B_BASE.gui := 'WEB';

else :B_BASE.gui := 'CLTSRV'; end if;

if upper(Get_Application_Property(OPERATING_SYSTEM )) in ('UNIX','MOTIF','SUNOS','HP-UX') then :B_BASE.SOUNIX := 1; select ruta_clte_unix into lv_ruta from mg_webutil; elsif Get_Application_Property(OPERATING_SYSTEM ) in

('MSWINDOWS32','MSWINDOWS','WIN32COMMON') then :B_BASE.SOUNIX := 0; select ruta_clte_windows into lv_ruta from mg_webutil; end if;

IF :B_BASE.WEB = 'N' THENAQUI VA LA PROGRAMACION QUE TIENE LA FORMA PARA EL FUNCIONAMIENTO EN CLIENTE SERVIDOR. ELSE l_filename := client_get_file_name(directory_name => lv_ruta ,file_name => lv_nombre_archivo ,file_filter => null ,message => null ,dialog_type => null ,select_file => null ); :B_GENERAL.w_nombre_archivo := l_filename ; END IF;--end;

5