Funcionalidad Adicional 2k8
Funcionalidad Adicional 2k8
Funcionalidad Adicional 2k8
Profit Plus.
Profit Plus
ediciones small business, profesional y corporativa
La información de este documento está sujeta a modificaciones sin preaviso alguno. A menos que sea
especificado de otra manera, las compañías, nombres y datos utilizados en los ejemplos son ficticios.
Ninguna parte de este documento puede ser reproducida ni transmitida bajo forma alguna, ni por
cualquier medio, ya sea electrónico o mecánico, para ningún propósito, sin el consentimiento por
escrito de Softech Consultores.
Microsoft, Windows, Windows 95, Windows 98, Windows 2000, Office, Word, Excel, NT Server,
Windows 2000 Server, NT Workstation, SQL Server, SQL Server 2000, Visual Foxpro y el logotipo
de Windows son marcas registradas de Microsoft Corporation.
Contenido
Introducción
Introducción …………………................................................... 7
Pre-requisitos .………………..................................................... 8
Objetivos del taller .……………................................................ 9
Casos prácticos
Funcionalidad Adicional ............................................................ 13
Diseño de base de datos en Profit Plus ....................................... 17
Caso práctico # 1 ………………….…..................................... 19
Caso práctico # 2 ………………….…..................................... 20
Caso práctico # 3 ………………….…..................................... 21
Caso práctico # 4 ………………….…..................................... 22
Anexos
Nomenclatura Interna de las Pantallas ......................................... 25
Solución caso práctico # 1 .......................................................... 28
Solución caso práctico # 2 .......................................................... 29
Solución caso práctico # 3 .......................................................... 30
Solución caso práctico # 4 .......................................................... 31
Diccionario de datos de Profit Plus Administrativo ................... 32
Introducción
Introducción
Nombre
Empresa
Cargo / Función
Expectativas
12 Casos prácticos
Pre-requisitos
Casos prácticos
Funcionalidad Adicional
Profit Plus le permite ejecutar validaciones, procesos y/o pantallas adicionales al sistema de
acuerdo a las necesidades que se planteen y las tareas que se deseen realizar. Esta
funcionalidad adicional es diseñada externamente sin afectar la actividad del sistema, además
puede ser ejecutado en todas las pantallas de tablas, documentos, así como también en la
ayuda y búsqueda asistida de artículos.
Para incorporar las validaciones, procesos y/o pantallas se debe tomar en consideración los
siguientes puntos:
1.- Las pantallas y procesos deben ser programados en Visual Fox Pro 9.0.
Los reportes en Visual Fox Pro 8.0.
2.- Se deberá crear una carpeta con el nombre del código de la empresa dentro de la carpeta
REPORADI, la cual se encuentra ubicada dentro de Profit. Esto solamente en el caso que la
ejecución de la funcionalidad sea para esa empresa.
3.- Las validaciones, procesos y/o pantallas pueden ser invocados automáticamente por
medio de la nomenclatura definida o manualmente a través de combinación de teclas.
4.- La nomenclatura a utilizar para definir los nombres de los procesos es la siguiente:
NombreInternoPantalla_PuntoRuptura
Donde:
Restricciones:
Para evitar transacciones “colgadas” en la base de datos no se debe incorporar en la
programación adicional de los puntos de ejecución S1 y S2, instrucciones que requieran una
interacción por parte del usuario, ejemplo:
x Messagebox x Entrada de Datos x Pantallas, etc.
Manejo de Errores:
El manejo de errores en estos puntos de ejecución, se encuentra operativo desde la revisión
de septiembre de 2015.
Procedimiento: Una vez identificada la excepción, se deberán asignar valores a las siguientes
propiedades de la pantalla
errornumreq: número de error, no se requiere un valor específico, queda a criterio del
programador el valor a asignar y debe ser mayor que cero.
errormsgreq: mensaje de error, no se requiere un valor específico, queda a criterio del
programador el valor a asignar y debe ser diferente de vacío.
retorno: establecida en falso (.F.) para detener el guardado.
Con estas propiedades asignadas, Profit es el encargado de emitir la excepción por pantalla, luego de
salir del punto de ejecución.
Casos prácticos 15
Ejemplo _s2:
16 Casos prácticos
Al pasar al siguiente renglón del detalle formas de pago en el pago o cobro _CC
Cobros y Pagos
Programación de Pagos
Antes Después
Preparar _IC3 _IC4
Cerrar _IC2 _IC1
Anular _IC5 _IC6
Movimientos de Caja:
Punto de Venta
Pedidos/Cotizaciones a Clientes
Conciliación Bancaria
5.- Adicionalmente existen pantallas adicionales que pueden ser ejecutadas en cualquier
ubicación del sistema si a las mismas se les coloca los siguientes nombres:
Variables:
Propiedades:
.retorno = indica si un proceso externo falla
.dataenvironment.initialselectedalias = Tabla o vista principal
.tablasecundaria = Tabla o vista de los renglones
.documentotipo = Identifica el tipo de documento.
.lallowedits = Indica si el documento es edítable
12.- Para referirse a las propiedades de una pantalla estando en un programa se le debe
anteceder el prefijo _SCREEN.ACTIVEFORM y estando en una pantalla el nombre de la
variable que recibe el valor en el método INIT de la misma.
20 Casos prácticos
Casos prácticos 21
Tablas Maestras
Tablas de Movimientos
Las tablas maestras son identificadas por nombres nemónicos a la información que
almacenan, y su clave principal formará parte de los campos indispensables de las tablas
de movimientos.
Ejemplo: Bancos, Clientes, Proveedores, etc.
Las tablas de movimientos, son aquellas donde se almacenan los procesos manejados por
el sistema, estando caracterizadas por encabezados y renglones.
Ejemplo: Factura, reng_fact, Ajuste, reng_aju, etc.
Las claves principales de las tablas maestras son identificadas con el prefijo de co,
seguido de una palabra identificativa de la tabla:
Ejemplo: Co_ban: para el código del banco
Las descripciones de la tabla son identificadas con el prefijo des o la palabra descrip,
seguido de una palabra identificativa de la tabla.
Ejemplo: Des_ban: para la descripción del banco
Las tablas que representan renglones de documentos, como los renglones de factura, se
caracterizan por tener como clave principal una clave compuesta formada por la clave
22 Casos prácticos
principal del encabezado junto con el número de renglón, número cuyo campo se
identifica por reng_num.
Ejemplo: Ajue_num: campo del encabezado del ajuste
Reng_num: número del renglón del encabezado
Existen ocho campos que identifican los campos adicionales de la tabla en cuestión,
identificados de la siguiente manera: campo1, campo2,..., campo8.
En cada una de las tablas es almacenada la información del usuario y la fecha en que se
incluyó, modificó o eliminó un registro en la misma. Dichos campos son identificados de
la siguiente manera:
co_us_in, fe_us_in: código del usuario y la fecha y hora en que se incluyó el
registro en la tabla.
co_us_mo, fe_us_mo: código del usuario y la fecha y hora en que se modificó
el registro en la tabla.
co_us_el, fe_us_el: código del usuario y la fecha y hora en que se eliminó el
registro en la tabla.
Casos prácticos 23
Caso práctico # 1
Caso práctico # 2
Caso práctico # 3
Caso práctico # 4
Antes de grabar el cliente se verificará que el código del Cliente no exista en la tabla
de Proveedores, sino se cumple la validación anterior se deberán emitir el siguiente
mensaje respectivamente: “El código del Cliente ya existe en la tabla de
Proveedores”.
Antes de grabar el cliente se verificará que el campo tipo de cliente exista en la tabla
tipo de Proveedores, sino se cumple la validación anterior se deberán emitir el
siguiente mensaje respectivamente: “El tipo de cliente no existe en la tabla tipo de
Proveedores”.
Se deberá pasar toda la información coincidente de la tabla de Clientes y la tabla de
Proveedores.
Casos prácticos 27
Anexos
Anexos 25
A continuación se nombran los nombres internos de cada una de las pantallas necesarias para
la programación de la Funcionalidad Adicional en Profit Plus Administrativo:
Nombre de
la Pantalla Opción del Sistema
aju1 Ajustes de Entrada y Salida
tra1 Traslados entre Almacenes
res1 Ingresar Resultados: Inventario Físico
pcf Preparar y Cerrar Inventario Físico
gki1 Generar Compuestos
art1 Artículos
kit1 Artículos Compuestos
lin1 Líneas de Artículo
cat1 Categorías de Artículos
subl1 Sub-Líneas
pro2 Procedencias
col1 Colores
uni1 Unidades
sub1 Almacenes
taj1 Tipos de Ajuste
pro1 Proveedores
bus1 Búsqueda asistida
26 Anexos
Nombre de
la Pantalla Opción del Sistema
fac1 Facturas de Venta
ped1 Pedidos
cdc1 Cotizaciones a Clientes
dvc1 Devoluciones de Clientes
nde1 Notas de Entrega
ndd1 Notas de Despacho
cc1 Documentos de Ventas
cob1 Cobros
cli1 Clientes
tip1 Tipos de Clientes
zon1 Zonas
seg1 Segmentos
ven1 Vendedores
sub1 Almacenes
alm1 Sucursales
con1 Condiciones de Pago
trn1 Transportes
tar1 Tarjetas de Crédito/Débito
cie1 Cuentas de Ingreso/Egreso
mon1 Monedas
gcl1 Registro de cliente
cor1 Cobro rápido
refac1 Recuperar factura
chdv1 Generar Cheque Devuelto
Gdg1 Generar giros
plv1 Plantillas de Ventas
la Pantalla
com1 Facturas de Compras
odc1 Órdenes de Compra
cdp1 Cotizaciones de Proveedores
dvp1 Devoluciones de Proveedores
ndr1 Notas de Recepción
cp1 Documentos de Compras
pag1 Pagos a Proveedores
pro1 Proveedores
tip2 Tipos de Proveedor
zon1 Zonas
seg1 Segmentos
con1 Condiciones de Pago
cie1 Cuentas de Ingreso/Egreso
imr1 Distribución de Costos
ipc1 Importaciones
Nombre de
la Pantalla Opción del Sistema
dpc Depósitos Bancarios
opa1 Órdenes de Pago
cue1 Cuentas Bancarias
caj1 Cajas
ban1 Bancos
ben1 Beneficiarios
cie1 Cuentas de Ingreso/Egreso
tar1 Tarjetas de Crédito/Débito
conc1 Conciliación Bancaria
28 Anexos
INIT
LPARAMETERS pPantalla
pforma = pPantalla
IF EMPTY(pforma.CO_CLI1.VALUE)
=MESSAGEBOX("Debe seleccionar un cliente para poder hacer la consulta.",64,business_loc)
RETURN .F.
ENDIF
IF T_PRIORIDAD1<100
=MESSAGEBOX(“No tiene prioridad suficiente para consultar los datos del
cliente”64,business_loc)
RETURN .F.
ENDIF
SELECT CLIENTES
LOCATE FOR CO_CLI=pforma.co_cli1.value
THISFORM.CO_CLI.VALUE=CLIENTES.CO_CLI
THISFORM.LIMITE.VALUE=CLIENTES.MONT_CRE
THISFORM.RESPONSABLE.VALUE=CLIENTES.RESPONS
THISFORM.TELEFONOS.VALUE=CLIENTES.TELEFONOS
30 Anexos
1.- Programa:
codigo=ALLTRIM(_SCREEN.ACTIVEFORM.pageframe1.page1.blgrid1.column2.text1.VALUE)
IF ALLTRIM(vreportes.campo1)==’X’
oApp.DoForm('reporadi\'+ALLTRIM(tcod_emp)+"\avi_fac",_SCREEN.ACTIVEFORM)
ELSE
RETURN .F.
ENDIF
2.- Pantalla:
INIT
PARAMETERS pforma
THISFORM.formactual=pforma
TABLA= THISFORM.FORMACTUAL.TABLASECUNDARIA
TABLA.COMENTARIO= THISFORM.DESCRIPCIÓN.VALUE + ”;” +
STR(THISFORM.CANTIDAD.VALUE)
THISFORM.RELEASE()
Anexos 31
PUBLIC TLNUEVO
TLNUEVO = .F.
TCLIE = tclientes.co_cli
tseguir = .T.
IF !EMPTY(TCLIE)
SELECT co_prov FROM prov WHERE co_prov=TCLIE INTO CURSOR vtemp_cli
TLNUEVO=(GETFLDSTATE(1,'TCLIENTES') = 3 OR
GETFLDSTATE(1,'TCLIENTES')= 4)
SELECT TCLIENTES
SET DELETED ON
SELECT tclientes
TCLIE = tclientes.co_cli
TCLIE_DES = tclientes.cli_DES
TCLIE_CONT = tclientes.contribu
tclie_com = tclientes.comentario
tclie_dir1 = tclientes.direc1
tclie_dir2 = tclientes.direc2
IF !EMPTY(TCLIE)
SELECT tclientes
SCATTER MEMVAR
SELECT PROV
IF SEEK(TCLIE,'PROV','CO_PROV')
GATHER MEMVAR
ELSE
INSERT INTO PROV FROM MEMVAR
ENDIF
TABLEUPDATE(.T.)
ENDIF
Diccionario de datos
Av. Casanova, Edif. Banco Plaza, Piso PT Ofc. Planta Terraza,
Sector Sabana Grande, Caracas
Telfs: (0212) 762 99 92 / 0105 – MIPROFIT (0105-64776348)
VAL (0241) 826 83 43 – MER (0274) 262 88 94
www.softechsistemas.com
[email protected]