Como trabajar con estructuras para paso de Parámetros
1. Primeramente Creamos la estructura con los datos y tipo de los mismos que vamos a almacenar en ellos
Ejemplo.
es_impresion_cheque
- orden decimal
- banco integer
2. En la ventana desde la cual vamos a pasar los parámetros declaramos una variable tipo estructura (la que creamos)
Ejemplo:
es_impresion_cheque v_impresion_cheque
Dependiento desde donde enviaremos los parámetros (en que evento), asignamos los valores a los mismos
v_impresion_cheque.banco = cdw_det1.object.banco[fila]
v_impresion_cheque.op = cdw_det1.object.op[fila]
Aquí podemos decir que la estructura esta cargada con los datos que queremos...
A continuación..... se envia la estructura como parámetro para la ventana en la cual queremos recibir éstos parámetros
openwithparm(w_imprimir_cheques, v_impresion_cheque, parent)
3. En la ventana que recibe el parámetro... en nuestro ejemplo w_imprimir_cheques... en el evento open() recibimos éstos
parámetros
if isvalid(message.PowerObjectParm)then
v_impresion_cheque = message.PowerObjectParm
cdw_argumento.object.banco[1] = v_impresion_cheque.cuenta_banco
end if
Al leer los datos
ld_cant_filas = cdw_datos.retrieve(v_impresion_cheque.op, ld_cuenta_banco)
Sabias que si comentas un blog estas incentivando a que cada dia haya mas información que podria ser importante para tí o los demas?... :) Espero les pueda ser de utilidad el mio.
martes, 22 de octubre de 2019
jueves, 30 de mayo de 2019
Hallar el digito verificador a partir del número de Cédula - Sybase
CREATE FUNCTION "f_digito_verificador_fv"( IN p_cedula varchar (7) )
RETURNS VARCHAR(1)
BEGIN /*FUNCION QUE HALLA EL DIGITO VERIFICADOR A PARTIR DEL NUMERO DE CEDULA - BY .:fativilla:. 2019.05.30*/
/*SET - PARAGUAY*/
DECLARE i numeric (1);
DECLARE mult numeric (1);
DECLARE valor varchar(1);
DECLARE valor_num NUMERIC (4);
DECLARE v_Digit NUMERIC (4);
DECLARE DV varchar(1);
SET i = 1 ;
SET mult=LENGTH(p_cedula)+1;
SET valor_num=0;
WHILE i <= 8 LOOP
SET valor = substring(p_cedula, i, 1);
SET valor_num= valor_num + ( cast ( valor as numeric) * mult ) ;
SET mult=mult-1;
SET i=i+1;
END LOOP ;
IF MOD (valor_num, 11)>1 THEN
SET v_digit = 11 - MOD (valor_num, 11);
ELSE
SET v_Digit = 0;
END IF;
SET DV=CAST(v_Digit AS VARCHAR(1));
RETURN "DV";
END
RETURNS VARCHAR(1)
BEGIN /*FUNCION QUE HALLA EL DIGITO VERIFICADOR A PARTIR DEL NUMERO DE CEDULA - BY .:fativilla:. 2019.05.30*/
/*SET - PARAGUAY*/
DECLARE i numeric (1);
DECLARE mult numeric (1);
DECLARE valor varchar(1);
DECLARE valor_num NUMERIC (4);
DECLARE v_Digit NUMERIC (4);
DECLARE DV varchar(1);
SET i = 1 ;
SET mult=LENGTH(p_cedula)+1;
SET valor_num=0;
WHILE i <= 8 LOOP
SET valor = substring(p_cedula, i, 1);
SET valor_num= valor_num + ( cast ( valor as numeric) * mult ) ;
SET mult=mult-1;
SET i=i+1;
END LOOP ;
IF MOD (valor_num, 11)>1 THEN
SET v_digit = 11 - MOD (valor_num, 11);
ELSE
SET v_Digit = 0;
END IF;
SET DV=CAST(v_Digit AS VARCHAR(1));
RETURN "DV";
END
viernes, 26 de abril de 2019
Abrir Archivos con Api de Windows
1. Como primer paso declaramos la API en el Global Functions
/**********************API'S DE WINDOWS*********************///--API PARA ABRIR CARPETAS DE WINDOWS--fativilla 2019.04.25
FUNCTION long ShellExecute(ulong ihwnd,string lpszOp,string lpszFile,string lpszParams,&
string lpszDir,int wShowCmd ) LIBRARY "shell32.dll" ALIAS FOR "ShellExecuteW"
/*************************************************************/
2. Crear una Funcion, que recibirá como parametro la ruta de tipo String (funcion en mi caso de window)
//-------------------------------------------------------------------------
// Función : long gf_Ejecutar(String spRuta)
// Propósito : Ejecuta un fichero, sea lo que sea (doc, pdf, xls, mp3...)
// Parámetros : spRuta.- Ruta del fichero a ejecutar.
// Devuelve : 1.- Todo bien
// -1.- Hay error.
//-------------------------------------------------------------------------
Long lRetorno
String sError, sNulo
SetNull(sNulo)
// Se ejecuta la ruta pasada.
lRetorno = ShellExecute(Handle(this), sNulo, spRuta, sNulo, sNulo, 3)
//El último argumento es el estilo de la ventana:
//SW_HIDE 0
//SW_SHOWNORMAL 1
//SW_NORMAL 1
//SW_SHOWMINIMIZED 2
//SW_SHOWMAXIMIZED 3
//SW_MAXIMIZE 3
//SW_SHOWNOACTIVATE 4
//SW_SHOW 5
//SW_MINIMIZE 6
//SW_SHOWMINNOACTIVATE 7
//SW_SHOWNA 8
//SW_RESTORE 9
//SW_SHOWDEFAULT 10
//SW_MAX 10
IF lRetorno <= 32 THEN
// Hay error
CHOOSE CASE lRetorno
CASE 2
sError = "Fichero no encontrado"
CASE 3
sError = "Ruta no encontrada"
CASE 5
sError = "Acceso denegado"
CASE 8
sError = "Fuera de memoria"
CASE 32
sError = "DLL no encontrada"
CASE 26
sError = "A sharing violation occurred"
CASE 27
sError = "Asociación a fichero no válida o incompleta"
CASE 28
sError = "DDE Time out"
CASE 29
sError = "DDE transaction failed"
CASE 30
sError = "DDE busy"
CASE 31
sError = "No existe ninguna asociación a la extensión del fichero"
CASE 11
sError = "Invalid EXE file or error in EXE image"
CASE ELSE
sError = "Error desconocido"
END CHOOSE
Messagebox("Error..." + String(lRetorno),sError)
Return -1
END IF
// Todo bien.
Return 1
3. Finalmente podemos llamar a nuestra funcion desde donde necesitemos
gf_executar("path" )Fuente: http://picarpiezas.blogspot.com/2011/04/como-ejecutar-cualquier-fichero-en.html
Suscribirse a:
Entradas (Atom)