Está en la página 1de 30

Taller: Incorporando Funcionalidad Adicional a

Profit Plus.

Profit Plus
ediciones small business, profesional y corporativa

La informacin de este documento est sujeta a modificaciones sin preaviso alguno. A menos que sea

especificado de otra manera, las compaas, 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 electrnico o mecnico, para ningn propsito, sin el consentimiento por
escrito de Softech Consultores.
2000 2001 Softech Consultores. Todos los derechos reservados.
Profit Plus es una marca registrada de Softech Consultores C.A.
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.
Pentium es una marca registrada de Intel Corporation.
IBM es una marca registrada de International Business Machines Corporation.

Nmero de parte: PP-TALLER-FUN&ADI


Actualizado: 04/2006

Contenido

iii

Contenido
Introduccin
Introduccin ...................................................
Pre-requisitos ......................................................
Objetivos del taller .................................................

7
8
9

Casos prcticos
Funcionalidad Adicional ............................................................
Diseo de base de datos en Profit Plus .......................................
Caso prctico # 1 ......................................
Caso prctico # 2 ......................................
Caso prctico # 3 ......................................
Caso prctico # 4 ......................................

13
17
19
20
21
22

Anexos
Nomenclatura Interna de las Pantallas .........................................
Solucin caso prctico # 1 ..........................................................
Solucin caso prctico # 2 ..........................................................
Solucin caso prctico # 3 ..........................................................
Solucin caso prctico # 4 ..........................................................
Diccionario de datos de Profit Plus Administrativo ...................

25
28
29
30
31
32

Introduccin

Introduccin

Introduccin
Nombre
Empresa
Cargo / Funcin
Experiencia en Profit Plus
Experiencia en Visual FoxPro y SQL
Expectativas

Introduccin

Pre-requisitos
Conocimientos funcionales de Profit Plus
Diseo de la base de datos en Profit Plus
Conocimientos medios de Programacin
Conocimientos medios de Visual FoxPro
Conocimientos bsicos del lenguaje S.Q.L.

Introduccin

Objetivos del taller


Identificar que casos pueden ser manejados
mediante la funcionalidad adicional.
Aprender a incorporar funcionalidad adicional
a Profit Plus (como).

Casos prcticos

Casos prcticos

13

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 diseada externamente sin afectar la actividad del sistema, adems
puede ser ejecutado en todas las pantallas de tablas, documentos, as como tambin en la
ayuda y bsqueda asistida de artculos.
Para incorporar las validaciones, procesos y/o pantallas se debe tomar en consideracin los
siguientes puntos:
1.- Las pantallas y procesos deben ser programados en Visual Fox Pro 6.0.
2.- Se deber crear una carpeta con el nombre del cdigo de la empresa dentro de la carpeta
REPORADI, la cual se encuentra ubicada dentro de Profit. Esto solamente en el caso que la
ejecucin de la funcionalidad sea para esa empresa.
3.- Las validaciones, procesos y/o pantallas pueden ser invocados automticamente por
medio de la nomenclatura definida o manualmente a travs de combinacin de teclas.
4.- La nomenclatura a utilizar para definir los nombres de los procesos es la siguiente:
NombreInternoPantalla_PuntoRuptura
Donde:
NombreInternoPantalla: es el nombre que identifica la pantalla donde se ejecutar el proceso.
Los nombres de cada una de las pantallas se encontrarn establecidos en el archivo
PANTALLAS.TXT en la carpeta REPORADI.
PuntoRuptura: determinar el momento de ejecucin del proceso. En el caso del proceso de
grabado y eliminacin se puede establecer tres puntos de ruptura, los cuales se encuentran
definidos de la siguiente manera:

14

Casos prcticos

A continuacin los procesos que se ejecutan en las pantallas del sistema:


Todas las Pantallas del Sistema:
Grabar
Antes de:
_SI
Durante:
_S1
Salvando:
_S2
Despus de
_SF

Eliminar
_DI
_D1

Agregar Registro
_AI

_DF

Iniciar pantalla
Activar pantalla
Desactivar pantalla
Cerrar la pantalla
Cambio de datos
Solicitud de grabado
Presionando la combinacin de teclas ctrl. + H o alt. + F7
Presionando la combinacin de teclas alt. + F8
Presionando la combinacin de teclas alt. + F9
Al momento de evaluar si debe ser grabado el registro
Presionando la tecla F8
Botn Aceptar, en todas las pantallas importacin de documentos

_IT
_AE
_DE
_DY
_DC
_AS
_P1
_P2
_P3
_WB
_K1
_I

Facturas \ Pedidos \ Cotizaciones \ Devoluciones \ Cotizaciones \ Notas de Entrega \ Notas


de Despacho Plantillas de Ventas \ rdenes de Compras \ Notas de Recepcin \ Plantillas:
Al salir del campo nombre del cliente
Al salir del campo cdigo del cliente
Al salir del campo artculo
Al salir del campo cantidad y unidad
Al salir del campo precio
Presionando la tecla F5, en la columna de Artculos
Presionando la tecla F6, en la columna de Artculos
Presionando la tecla F7, en la columna de Artculos

_VCL
_CODCLV
_VART
_LF1
_LFP1
_K4
_K3
_K2

Cobros a clientes \ Documentos \ Traslados entre almacenes \ Movimientos de Banco \


Movimientos de Caja Facturas \ Pedidos \ Cotizaciones \ Devoluciones \ Cotizaciones \
Notas de Entrega \ Notas de Despacho Plantillas de Ventas \ rdenes de Compras \ Notas
de Recepcin \ Plantillas \ Punto de Venta:
Al presionar el botn Anular y antes de anular el documento
Al presionar el botn Anular y despus de anular el documento
Al moverse con el cursor por cualquier lugar del grid
Al agregar un nuevo rengln
Al eliminar un rengln
Al realizar las validaciones

_ BA
_BAF
_CG
_AR
_DR
_UR

Facturas \ Pedidos \ Cotizaciones \ Devoluciones \ Cotizaciones \ Notas de Entrega \ Notas


de Despach Plantillas de Ventas \ rdenes de Compras \ Notas de Recepcin \
Plantillas \ Cobros a Clientes \ Ajustes de Entrada y Salida \ Traslados entre
almacenes \ Ingresar Resultados Inventario Fsico:
Presionando cualquier tecla en la columna de Artculos

_KP1

Casos prcticos

Al pasar al siguiente rengln del detalle del documento


Al presionar el botn de limpiar el documento
Al validar antes de limpiar el documento

15

_GP1
_PDI
_PDF

Facturas \ Pedidos \ Cotizaciones \ Devoluciones \ Cotizaciones \ Notas de Entrega \ Notas


de Despacho antillas de Ventas \ rdenes de Compras \ Notas de Recepcin \ Plantillas \
Cobros a Clientes \ Documentos:
Antes de realizar las validaciones necesarias para grabar el documento

_SV

Cobros a Clientes \ Movimientos Bancarios \ rdenes de Pago:


Al pasar al siguiente rengln del detalle formas de pago en el pago o cobro

_CC

Cobros y Pagos
Presionando cualquier tecla en la columna de Forma de Pago
Presionando una tecla en la columna de Monto Abon.

_FP
_GP1

Ajustes de Entrada y Salida:


Al salir del campo cantidad y unidad
Al presionar el botn Anular y antes de anular el documento
Al presionar el botn Anular y despus de anular el documento
Al estar en el ltimo campo del grid

_LF1
_SA
_SAF
_KP2

Movimientos de Caja:
Al salir del campo Cdigo de caja
Al salir del campo Forma de Pago

_CAJ
_CAJ1

Ordenes de Pago
Al presionar el botn Reverso
Al presionar el botn Cancelar

_RI
_CI

Punto de Venta
Proceso del botn Cerrar antes de Cerrar punto de venta
Proceso del botn Cerrar despus de Cerrar punto de venta

_BCA
_BCD

Pedidos/Cotizaciones a Clientes
Al presionar el botn Facturar y antes de generar el documento
Al presionar el botn Facturar y despus de generar el documento
Al presionar el botn imprimir en la barra de herramientas

_BI1
_BF1
_IMP

5.- Adicionalmente existen pantallas adicionales que pueden ser ejecutadas en cualquier
ubicacin del sistema si a las mismas se les coloca los siguientes nombres:
Con la combinacin de teclas CTRL+F9
Con la combinacin de teclas CTRL+F9
Con la combinacin de teclas CTRL+F11

Gen_4
Gen_3
Gen_2

16

Casos prcticos

Con la combinacin de teclas CTRL+F12

Gen_1

6.- Existen ciertas variables y propiedades que se encuentran disponibles en el momento de


ejecucin de los procesos adicionales, entre ellas se encuentran:
Variables:
sucursal_act
= Sucursal actual
sucursal_nom = Nombre sucursal Actual
usuario_actual = Usuario Actual
usuario_nombre = Nombre del Usuario
acceso_actual = Mapa asignado al usuario
t_prioridad1
= Prioridad del Usuario
tcod_emp
= Cdigo de la Empresa Actual
serversql
= Indica si esta en sql o no
Propiedades:
.retorno
.dataenvironment.initialselectedalias
.tablasecundaria
.documentotipo
.lallowedits

= indica si un proceso externo falla


= Tabla o vista principal
= Tabla o vista de los renglones
= Identifica el tipo de documento.
= Indica si el documento es edtable

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 mtodo INIT de la misma.

Casos prcticos

17

Diseo de base de datos en Profit Plus

Tablas Maestras

Tablas de Movimientos

La base de datos de Profit Plus se encuentra diseada de la siguiente manera:

Los datos del sistema se almacenan en tablas maestras y tablas de movimientos.

Las tablas maestras son identificadas por nombres nemnicos a la informacin 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 cdigo 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 descripcin del banco

Las tablas que representan encabezados de documentos, como las de facturas, se


caracterizan por tener como clave principal un nmero cuyo campo se identifica por el
siguiente sufijo _num, que adicionalmente servir de enlace entre el encabezado y los
renglones.
Ejemplo: Ajue_num: para los encabezados de ajuste

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

18

Casos prcticos

principal del encabezado junto con el nmero de rengln, nmero cuyo campo se
identifica por reng_num.
Ejemplo: Ajue_num: campo del encabezado del ajuste
Reng_num: nmero del rengln del encabezado

Existen ocho campos que identifican los campos adicionales de la tabla en cuestin,
identificados de la siguiente manera: campo1, campo2,..., campo8.

En cada una de las tablas es almacenada la informacin 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: cdigo del usuario y la fecha y hora en que se incluy el
registro en la tabla.
co_us_mo, fe_us_mo: cdigo del usuario y la fecha y hora en que se modific
el registro en la tabla.
co_us_el, fe_us_el: cdigo del usuario y la fecha y hora en que se elimin el
registro en la tabla.

Casos prcticos

19

Caso prctico # 1

Validar que las facturas no se graben con


ms de cinco renglones.

Programar una validacin adicional en facturas tomando en cuenta que:

La validacin se realizar antes de grabar la factura.


Si la factura posee ms de cinco renglones se emitir el siguiente mensaje: La Factura
no puede tener ms de cinco renglones y no continuar el proceso de grabado de la
factura.
El cursor del ratn se ubicar en la descripcin de la factura cuando no se cumpla la
validacin.

20

Casos prcticos

Caso prctico # 2

Consulta especial de Clientes en la


pantalla de Pedidos

Elaborar una pantalla adicional tomando en cuenta que:

La pantalla se activar a travs de la combinacin de teclas CTRL.+H.


La pantalla deber mostrar la siguiente informacin: lmite y das de crdito, responsable
y telfonos del cliente.
Esta pantalla ser mostrada solo si el usuario tiene prioridad 100, de lo contrario emitir
el siguiente mensaje: No tiene prioridad suficiente para consultar los datos del cliente
Se deber validar que en la pantalla de pedidos se halla seleccionado un cliente.

Casos prcticos

21

Caso prctico # 3

Asignar informacin adicional al momento


de ingresar los renglones de facturas.

Elaborar una pantalla adicional tomando en cuenta que:

La pantalla se activar cuando se llegue al ltimo campo del rengln de la factura.


La pantalla deber mostrar la siguiente informacin: descripcin y cantidad adicional.
Al salir de la pantalla la informacin cargada en la misma se colocar en el comentario
del rengln separado cada una por punto y coma.
Esta pantalla se activar si y solo si en el campo adicional 1 del artculo que se est
ingresando en el rengln tiene una X.

22

Casos prcticos

Caso prctico # 4

Proceso que al ingresar un cliente cree un


Proveedor con las mismas caractersticas.

Elaborar un proceso adicional para la pantalla de clientes, tomando en cuenta que:

Antes de grabar el cliente se verificar que el cdigo del Cliente no exista en la tabla
de Proveedores, sino se cumple la validacin anterior se debern emitir el siguiente
mensaje respectivamente: El cdigo 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 validacin anterior se debern emitir el
siguiente mensaje respectivamente: El tipo de cliente no existe en la tabla tipo de
Proveedores.
Se deber pasar toda la informacin coincidente de la tabla de Clientes y la tabla de
Proveedores.

Casos prcticos

23

Anexos

Anexos

25

Nomenclatura Interna de las Pantallas

A continuacin se nombran los nombres internos de cada una de las pantallas necesarias para
la programacin de la Funcionalidad Adicional en Profit Plus Administrativo:
1.- Mdulo de Inventario
Nombre de
la Pantalla
aju1
tra1
res1
gki1
art1
kit1
lin1
cat1
subl1
pro2
col1
uni1
sub1
taj1
pro1

Opcin del Sistema


Ajustes de Entrada y Salida
Traslados entre Almacenes
Ingresar Resultados: Inventario Fsico
Generar Compuestos
Artculos
Artculos Compuestos
Lneas de Artculo
Categoras de Artculos
Sub-Lneas
Procedencias
Colores
Unidades
Almacenes
Tipos de Ajuste
Proveedores

2.- Mdulo de Ventas y Cuentas x Cobrar

26

Anexos

Nombre de
la Pantalla
fac1
ped1
cdc1
dvc1
nde1
ndd1
cc1
cob1
cli1
tip1
zon1
seg1
ven1
sub1
alm1
con1
trn1
tar1
cie1
mon1

Opcin del Sistema


Facturas de Venta
Pedidos
Cotizaciones a Clientes
Devoluciones de Clientes
Notas de Entrega
Notas de Despacho
Documentos de Ventas
Cobros
Clientes
Tipos de Clientes
Zonas
Segmentos
Vendedores
Almacenes
Sucursales
Condiciones de Pago
Transportes
Tarjetas de Crdito/Dbito
Cuentas de Ingreso/Egreso
Monedas

3.- Mdulo de Compras y Cuentas x Pagar


Nombre de
la Pantalla
com1
odc1
cdp1
dvp1
ndr1
cp1
pag1
pro1
tip2
zon1
seg1
con1
cie1

Opcin del Sistema


Facturas de Compras
rdenes de Compra
Cotizaciones de Proveedores
Devoluciones de Proveedores
Notas de Recepcin
Documentos de Compras
Pagos a Proveedores
Proveedores
Tipos de Proveedor
Zonas
Segmentos
Condiciones de Pago
Cuentas de Ingreso/Egreso

4.- Cajas y Bancos:


Nombre de

Opcin del Sistema

Anexos

la Pantalla
dpc
opa1
cue1
caj1
ban1
ben1
cie1
tar1

Depsitos Bancarios
rdenes de Pago
Cuentas Bancarias
Cajas
Bancos
Beneficiarios
Cuentas de Ingreso/Egreso
Tarjetas de Crdito/Dbito

Solucin Caso Prctico # 1

27

28

Anexos

LOCAL pforma, lret, lalias, mren


pforma=_SCREEN.ACTIVEFORM
lret=.F.
lalias=ALIAS()
SELECT vreng_ped
COUNT FOR !DELETED() TO mren
IF mren > 5
=MESSAGEBOX("La factura no puede tener ms de cinco renglones",48,business_loc)
ELSE
lret=.T.
ENDIF
SELECT &lalias
pforma.retorno=lret
pforma. pageframe1.page1.descrip1.setfocus()

Solucin Caso Prctico # 2

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
cliente64,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

Solucin Caso Prctico # 3

29

30

Anexos

1.- Programa:
codigo=ALLTRIM(_SCREEN.ACTIVEFORM.pageframe1.page1.blgrid1.column2.text1.VALUE)
SELECT art.CAMPO1 FROM art ;
WHERE ALLTRIM(art.co_art) == ALLTRIM(codigo) ;
INTO CURSOR vreportes
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
KEYPRESS del Botn Aceptar
TABLA= THISFORM.FORMACTUAL.TABLASECUNDARIA
TABLA.COMENTARIO= THISFORM.DESCRIPCIN.VALUE + ; +
STR(THISFORM.CANTIDAD.VALUE)
THISFORM.RELEASE()

Solucin Caso Prctico # 4


1.- Proceso antes de Grabar el Cliente:

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
GETFLDSTATE(1,'TCLIENTES')= 4)
IF ALLTRIM(vtemp_cli.co_prov) == ALLTRIM(TCLIE) AND TLNUEVO
= MESSAGEBOX('El Cliente ya existe',32,'PREGUNTA')
_SCREEN.ACTIVEFORM.retorno=.F.
ENDIF
ENDIF
SELECT TCLIENTES
2.- Proceso despus de Grabar el cliente :
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
REPLACE PROV.CO_PROV WITH TCLIE, PROV.PROV_DES WITH TCLIE_DES,
PROV.NACIONAL WITH TCLIE_CONT,PROV.comentario WITH TCLIE_com, PROV.direc1
WITH TCLIE_dir1,PROV.direc2 WITH TCLIE_dir2 IN PROV
TABLEUPDATE(.T.)
ENDIF

Diccionario de datos

OR

32

Anexos

Centro Capriles, Piso 23, Ofc. 23-B, Plaza Venezuela, Caracas 1050
Telfs: 7934444 / 7818080 / 7935447 / 7813724 / 7934363
www.softechsistemas.com
soporte@softechsistemas.com

También podría gustarte