Logo

ClearLight
Sistema Integrado para la Administracion

Su IP: 44.205.2.188


Los documentos generados por ClearLight se producen combinando las instrucciones contenidas en un archivo de formato, con un nombre determinado por el programa en función del tipo de documento, con los datos contenidos en el documento que se está imprimiendo. 

En la ayuda en línea se incluye la especificación sintáctica de los archivos de reportes. El objetivo de esta sección es explicar el uso y significado de cada uno de los elementos nombrados en la especificación, y dar algunos consejos prácticos que permitan una mayor eficiencia en el proceso de desarrollo o modificación de formatos. 

En esencia, el desarrollo de un formato –tal como lo hace el generador de formatos- consiste en colocar elementos sobre un plano bidimensional de coordenadas. 

Las dimensiones de este plano de coordenadas se expresan en twips

Un twip (no es una palabra en ningún idioma, parece ser parte de la jerga de los programadores de Windows) equivale a 1/1440 pulgadas. 

El origen del plano de coordenadas (es decir, la coordenada <0,0>) se ubica en la esquina superior izquierda del área de impresión. El eje horizontal crece hacia la derecha. El eje vertical crece hacia abajo. 

Las coordenadas de un elemento especifican la esquina superior izquierda del rectángulo que lo contiene.

 Los archivos de formato están divididos en secciones, a saber: 

Entorno 

En la sección de entorno se definen variables que afectarán la presentación (no el contenido) del formato. A partir de la versión 2 de DocFormatter, tambien se permite incluir comandos de lectura de datos suministrados por el usuario; son los mismos procedimientos descritos en la sección 6, relativa a los reportes definidos por el usuario. 

Las variables disponibles para configurar el entorno, y su uso, son las siguientes: 

Copias: Cantidad de copias a emitir. Este parámetro es pasado a la impresora antes de iniciar el trabajo de impresión.
 

ADVERTENCIA: No todas las impresoras soportan todas las propiedades. El intento de utilizar una propiedad no soportada por la impresora generará un error e impedirá la emisión del formato. En algunas instalaciones, se produce un error grave en el componente MsgServer del sistema operativo al intentar enviar formatos hacia una impresora genérica de sólo texto.
Las versiones de Win32 (NT, 2000 y superiores) utilizan una API de control de impresoras diferente de la utilizada por VB6, y algunas de las funciones de control del printer no funcionan y debe ser establecidas desde el panel de control de impresión.

 AltoDetalle: Especifica el alto (siempre en twips) de cada línea de detalle.

 YComienzoDetalle: Indica la coordenada Y (vertical) del borde superior de la primera linea de detalle.

 DetallesPagina: Especifica la cantidad de detalles por cada página.

 Orientación: Representa la orientación del papel. El valor 1 (Orientacion=1) especifica la orientación vertical (portrait). El valor 2 indica que se imprima en sentido apaisado (landscape).

OffsetX: Desplazamiento completo sobre el eje horizontal. Sirve para mover todo el formato hacia la izquierda (usando un valor negativo) o hacia la derecha (usando un valor positivo).

OffsetY: Desplazamiento sobre el eje vertical. Si se usa un valor negativo, los elementos del formato "suben". Si se usa un valor positivo, se desplazan hacia abajo.

 En la sección de entorno se pueden incluir tambien comandos que le permitan al operador introducir datos al momento de leer el archivo de formato. Estos datos serán accesibles a través de su identificador de variable. Los comandos disponibles son:

GETTEXT, GETFECHA, GETNUMERO, GETRANGOFECHAS y GETRANGOALFA, todos suficientemente descritos en la sección que describe el generador de reportes en el manual del usuario.

Las siguientes son secciones de contenido. Las secciones de contenido sólo pueden contener elementos imprimibles. 

Los objetos imprimibles pueden ser de varias clases: 

Literales Alfanuméricos: cualquier secuencia de carateres encerrados entre comillas.

Referencias a Variables: pueden referirse a variables exportadas por el programa (ver adelante las variables exportadas por cada componente) o las definidas por los comandos de lectura ejecutados durante el proceso del entorno.

Líneas: Lineas que unen el punto inicial con otro punto contenido dentro de la especificacion.

Cuadros: Cuadros o marcos rectangulares.

Areas de Texto: Especifican un área rectangular dentro de la cual se coloca un literal alfanumérico o el contenido de una variable. 

Todos los objetos imprimibles van precedidos por las coordenadas X y Y de la esquina superior izquierda del rectángulo dentro del cual se inscribirán.

 ADVERTENCIA: Para el n-esimo detalle de la página, se asume como coordenada vertical cero (el origen de las coordenadas verticales) la coordenada vertical de la página que corresponde a su borde superior. La fórmula para determinar esta coordenada es:

OrigenDetalle(n) = YComienzoDetalle + (n – 1) * AltoDetalle

Para todas las otras secciones, se asume como la coordenada vertical cero el borde superior del área de impresión.

La sintaxis de un objeto imprimible, entonces, viene a ser:

<CoordX>, <CoordY>, <Objeto> [<DatosAdicionales>]

Si CoordX y CoordY son ambas iguales a cero, el objeto se coloca en la misma coordenada vertical del objeto anterior, e inmediatamente a la derecha de éste.

Pr ejemplo, puede escribirse:

5800,  701, "FACTURA Nº "
       0,      0, Numero

haciendo que el contenido de la variable Numero aparezca inmediatamente a continuación del texto Factura Nº

Los <DatosAdicionales> van en función del tipo de objeto, según se expone a continuación:

LINEA:

Sintaxis:

<x1>, <y1>, LINEA, <x2>,<y2> [,grosor=<numero>] [,color=<color>] [,linestyle=<numero>]

Ejemplo:

1800,  4320, LINEA, 1800, 11520

<x2>, <y2>: Valores numéricos requeridos. Indican el punto donde termina una línea que se inicia en el punto designado por <CoordX>, <CoordY>. El ejemplo indica una línea vertical que baja a lo largo de la columna 1800 (aproximadamente 1,25” del borde izquierdo del area de impresión) desde la coordenada vertical 4320 hasta la 11520. Es decir, con una longitud de 5” partiendo a 3” del borde superior del area de impresión). 

Opcionalmente, para las líneas se pueden especificar los siguientes parámentros adicionales: 

COLOR=<color>: Indica el color de la línea. Puede introducirse el nombre del color o su valor numérico, según la tabla siguiente:

Nombre del Color

Valor

NEGRO

0

ROJO

255

VERDE

65280

AMARILLO

65535

AZUL

16711680

MAGENTA

16711935

CYAN (Azul añil claro)

16776960

BLANCO

16777215

Tambien puede especificar otros colores como una combinación de Azul, Verde y Rojo, sumando el producto de su “cantidad de azul” (de 0 a 255) por 65536, más su “cantidad de verde” por 256 más su “cantidad de rojo”.

GROSOR=<grosor>: Grosor de la línea en “puntos tipográficos”. Un punto tipográfico equivale a 1/72 de pulgada.

LINESTYLE=<estilo>: Donde estilo es un valor entre cero y seis, cuyo efecto se indica en la siguiente tabla:

Numero

Estilo

0

Línea continua

1

Línea cortada (- - - - - - -)

2

Línea punteada (. . . . . . .)

3

Línea de rayas y puntos (- . - . -)

4

Raya-Raya-Punto (- - . - - .)

5

Invisible

6

Relleno sólido (para los cuadros)

CUADRO:

Sintaxis:

<x1>, <y1>, CUADRO, <alto>, <ancho> [,color=<color>] [,grosor=<numero>] [,linestyle=<numero>]

Ejemplo:

360,  4320, CUADRO, 11000, 7200, GROSOR=3

Dibuja un cuadro con el borde superior izquierdo en <x1, y1> con una altura de <ancho> twips y una altura de <alto> twips. Los parámetros ancho y alto son requeridos. Las propiedades adicionales: grosor, color y linestyle tienen los mismos valores expuestos para línea.

GRAFICO:

Sintaxis:

<x1>, <y1>, GRAFICO, <ancho>, <alto>, <archivo>

Ejemplo:

360,  501, GRAFICO, 5000, 1440, "C:\ DatosClear \Logo.bmp"

<archivo> es un literal alfanumérico que indica la ubicación de un archivo de imágen.

<ancho> y <alto> se refieren a las dimensiones, en twips, que deberá tener el área ocupada por el gráfico.

Todos los elementos de esta construcción son requeridos.

AREATEXTO:

Sintaxis:

<x1>, <y1>, AREATEXTO, <ancho>, <alto>, <contenido> [,margen=<numero>]  [,colorborde=<color>] [, colortexto=<color>] [,grosor=<numero>] [,linestyle=<numero>] [,font=<NombreFuente>] [,fontstyle=<numero>] [,fontsize=<numero>] [,align=<numero>]

Ejemplo:

6500,  2200, AreaTexto, 4600, 1600, Direccion_Cliente, FONT="Arial", FONTSIZE=12, FONTSTYLE=0, ALIGN=0, MARGEN=90

En las coordenadas <x1, y1> se posicionará la esquina superior izquierda de un area de texto rectangular, con un ancho de tantos twips como se especifica en <ancho> y una altura de <alto> twips (incluyendo los bordes).

Dentro de ese rectángulo se escribira el valor especificado por <contenido>. Este puede ser un literal alfanumérico o el identificador (nombre) de alguna variable. Esta construcción es útil para presentar contenidos extensos que puedan ocupar varias líneas, v.g. la dirección de un cliente, o los comentarios de un documento.

Los parámetros opcionales pueden presentarse en cualquier orden, y su uso es el siguiente:

MARGEN=<numero>: indica la distancia (en twips) que se dejará en blanco entre los bordes del rectángulo y el borde correspondiente del área de impresión del contenido.

COLORBORDE=<color>: color con el cual se dibujará el borde del area de texto (si grosor es mayor que cero). Tambien puede escribrse COLOR=<color>.

COLORTEXTO=<color>: color con el cual se escribirá el texto del contenido.

GROSOR=<numero>: grosor de borde en puntos tipográficos (1 punto = 1/72 pulgadas).

LINESTYLE=<numero>: estilo de las líneas. Vea los detalles en la descripción del objeto LINEA, arriba.

FONT=<NombreFuente>: especifica que el contenido se imprimirá utilizando la fuente cuyo nombre se especifica en <NombreFuente> (literal alfanumérico, p. ej. “Arial”).

FONSTYLE=<Numero>: Atributos de la fuente. Un número con los siguientes significados: 

Valor

Atributos

0

Normal

1

Negritas

2

Itálica o cursiva

3

Negritas e itálica

4

Subrayado

5

Negritas subrayadas

6

Itálica subrayada

7

Itálica negrita subrayada

 

FONTSIZE=<Numero>: Tamaño de la fuente (altura en puntos tipográficos). Este texto está escrito usando la fuente “Times New Roman” de 10 puntos, normal.

ALIGN=<Numero>: alineación horizontal del texto. Valor numérico donde CERO (0) representa alineado por la izquierda, UNO (1) alinea el texto por la derecha y DOS (2) centra el contenido dentro del area. 

LITERAL ALFANUMERICO:

Sintaxis:

<x1>, <y1>,  <LiteralAlfanumerico> [, color=<color>] [,longitud=<Numero>] [,font=<NombreFuente>] [,fontstyle=<numero>] [,fontsize=<numero>] [,align=<numero>]

Ejemplo:

360, 14460, "C. Juan Cancio Rodríguez - Nº 11.86 - La Otrabanda - Municipio Arismendi - Isla de Margarita", FONT="Arial", FONTSIZE=9, ALIGN=2, LONGITUD=11800

<x1> y <y1> indican las coordenadas de la esquina superior izquierda del rectángulo que ocupará el texto. <LiteralAlfanumérico> es una secuencia de caracteres (excluyendo las comillas) encerrada entre comillas (“por ejemplo”).

Longitud=<numero>: Especifica la longitud total que deberá tener el literal impreso. Si la longitud efectiva es menor, se rellenará con espacios en blanco hasta alcanzar la longitud deseada. Si es mayor, se eliminarán caracteres hasta obtener un valor menor o igual que el especificado. Si la longitud resultante de la supresión es menor que la especificada (esto puede pasar con las fuentes de tamaño proporcional, donde una “M” es varias veces más ancha que una “I”, por ejempl), se rellenará con espacios.

En la práctica, los valores devueltos por Windows (o los que reciben las aplicaciones escritas en Visual Basic) no siempre son exactos. Con el fin de evitar que se trunquen indebidamente los textos, el generador de documentos le agrega un 10% a las longitudes especificadas.

El resto de los parámetros opcionales son los mismos definidos para la clase AREATEXTO, y puede consultarlos allí.

VARIABLES:

Sintaxis:

<x1>,<y1>, <Identificador>  [, color=<color>] [,longitud=<Numero>] [,font=<NombreFuente>] [,fontstyle=<numero>] [,fontsize=<numero>] [,align=<numero>] [formato=<LiteralAlfanumérico>]

Ejemplo:

9100, 11040, SubTot_PNeto,  FONT="Times New Roman", FONTSIZE=16, FONTSTYLE=1, FORMATO="##,###,##0.00", LONGITUD=2200, ALIGN=1

<x1> y <y1> indican las coordenadas de la esquina superior izquierda del rectángulo que ocupará el contenido de la variable.

<Identificador> es el nombre de una variable. Puede referirse al nombre de una variable publicada por el documento que se está procesando, o a una variable creada con alguno de los comandos de lectura incluídos en el Entorno.

Con excepción del parámetro Formato, que explicaremos a continuación, los otros parámetros opcionales han sido definidos para la clase AREATEXTO, salvo Longitud, que se definió para los Literales Alfanuméricos.

FORMATO=<LiteralAlfanumérico>:  Para una discusión detallada de los diferentes formatos disponibles, puede referirse a la ayuda en línea, o a cualquier buen manual, de Visual Basic. Los formatos más comunes son los siguientes:


Formatos Numericos:

Utilice el símbolo de numeral para las posiciones flotantes por la derecha. Coloque una coma (,) donde quiera los separadores de millares, y un punto (.) para indicar la posición del separador decimal. Escriba ceros (0) donde quiera que vaya un dígito (aunque sea cero).

Por ejemplo, suponiendo que el valor fuera 15.223,45, veamos su representación con diferentes formatos:

“#,###,##0.00”:     15.223,45
“##########”:            15223
“0000.00”:              15223,45
“0000000”:              0015223

Para asegurarse de que los valores queden correctamente alineados por la derecha, especifique siempre una longitud,y alínee los campos por la derecha.

Para representar los valores numéricos como texto, utilice el modificador de formato”LETRAS”. La conversión de números a texto asume siempre cantidades monetarias.

El mismo valor de 15.223,45 expresado como “LETRAS”, se imprimirá como Quince Mil Doscientos Veintitres bolívares con 45 céntimos.

Fechas:

Puede especificar las fechas definidas en su configuración regional empleando los códigos especiales de formato de VB:

 “Short Date”: Fecha corta, ej. 12-06-2002.
“General Date”: Fecha general, ej. 12-06-02 04:45:58 p.m.
“Long Date”: Fecha larga, ej. Miércoles, 12 de Junio de 2002 

Tambien puede usar formatos específicos como “dd-mm-yyyy” ó “d-m-yy”.

 Los símbolos para especificar los elementos de las fechas son:

d:  El día del mes, representando con un dígito los días menores que diez.
dd:
El día, utilizando siempre dos dígitos.
m:
El mes, utilizando sólo los dígitos requeridos
mm
: El mes, siempre con dos dígitos
yy
: El año, utilizando dos dígitos.
yyyy
: El año, con cuatro dígitos
ddd
: El día de la semana, abreviado (Lun, Mar, etc.)
dddd
: El día de la semana completo (Lunes, Martes, etc.
mmm
: El mes, abreviado (Ene, Feb, etc.)
mmmm
: El nombre del mes, completo (Enero, Febrero, etc.)

Valores alfanuméricos:

Visual Basic ofrece varios tipos de formato para mostrar los valores alfanuméricos. Aquí nos interesan sólamente dos:

>: Convierte todas las letras a mayúsculas.
<: Convierte todas las letras a minúsculas.

Caracteres de Escape:

Si quiere incluir dentro de un formato caracteres literales (es decir, caracteres que serán incluídos en la imagen resultante), precédalos con el caracter \. Por ejemplo:

Escriba "DDDD\, dd \d\e MMMM \d\e yyyy\."

para obtener un resultado como Miércoles, 12 de Junio de 2002.
 

Pagina:

NOTA: Página, en castellano, lleva acento. PAGINA, como identificador, no lo lleva. Por favor, no use el acento en el título de la sección.

En esta sección se colocan los elementos visuales comunes a todas las páginas del formato. La especificación GDI de Windows, que incluye a las impresoras, permite que cada página de salida sea “armada” en la memoria del CPU antes de ser enviada al dispositivo de salida. Esto significa que la limitación que impide subir o desplazarse hacia la izquierda, inherente a las impresoras de líneas, no aplica en Windows. Gracias a esto, podemos imprimir un formato base en una página primero, y despues llenarla, todo con una sola pasada.

Desarrollando formatos con los recursos disponibles en nuestros sistemas anteriores, nos dimos cuenta de lo conveniente que podía ser desarrollar el formato de la página completa y despues llenarlo. Esto se agradece especialmente cuando se quiere utilizar cuadrículas o líneas en las áreas de detalles.

Normalmente, en la sección Pagina sólamente se incluirán literales alfanuméricos, lineas, cuadros y gráficos. Sin embargo, cuando un literal deberá ir seguido siempre de una misma variable, y ese valor es conocido de antemano, puede resultar cómodo utilizar las coordenadas nulas para el segundo valor, evitando así el recálculo de la variable en una sección posterior.

Por ejemplo:

5800,  701, "FACTURA Nº ", FONT="Arial", FONTSIZE=14
     0,     0,  Numero, FONT="Arial", FONTSIZE=14, FORMATO="00000"

El número de la factura aparecerá inmediatamente a continuación del texto “FACTURA Nº “, resultando en una secuencia como FACTURA Nº 11106.

Las secciones restantes son:

Encabezado1: Encabezado de la primera página.

EncabezadoN: Encabezados de las páginas siguientes

CierreZ: Cierre de la última página

CierreN: Cierre de las páginas no terminales.

Detalles: Cada uno de los detalles del documento.

Lo normal es colocar exclusivamente referencias a variables en estas secciones.

Ya se dijo arriba, pero no está de más repetir que las coordenadas verticales (y) de la sección de detalles son relativas al borde superior de cada detalle, no al borde superior del area de impresión, al cual se refieren las (y) de todas las otras secciones.

En el directorio \DevTools de la carpeta de distribución se incluye un programita, llamado PrintGrid.exe, que nos ha resultado útil a la hora de diseñar nuevos formatos. Ló único que hace PrintGrid es dibujar una rejilla sobre toda el área imprimible de la hoja de papel sobre la cual se imprimirán los formatos una vez terminados. La distancia entre cada linea es de 432 twips.  Leyendo las coordenadas de los objetos ubicados sobre la rejilla, se facilita muchísimo la ubicación de los mismos.

Documentos y Variables:

En esta sección se presentan las variables disponibles para cada tipo de documento. Para cada variable se incluye su nombre y una breve descripción de su contenido. Corrsponde a la versión 2.31 en su estado del 12 de junio de 2002.

Si un documento no puede evaluar una variable, solicita de la Empresa su evaluación. Esto quiere decir las variables definidas en la empresa, aunque no son accedidas directamente, están disponibles para todos los documentos.

Ajustes de Inventario:

NUMERO: Numero de referencia del ajuste
FECHA_REGISTRO:  Fecha de registro de la operación
FECHA, FECHA_AJUSTE, FECHA_EMISION: Fecha de realización del ajuste (nombres alternativos).
OPERADOR: Código del operador que transcribió el ajuste
DESCRIPCION: Descripción del ajuste
REFERENCIA, REFAJUSTE: Referencia. “AJU-nnnnnnn”
TIPO: Refleja el tipo del ajuste, ENTRADA ó SALIDA
NOTAS: Notas o comentarios del ajuste
CONTRAPARTIDA: Código de la cuenta de contrapartida del ajuste
ALMACEN: Código del almacen afectado por los movimientos del ajuste
NOMBRE_ALMACEN: Nombre del almacen
VALOR: Valor neto del ajuste (negativo = SALIDA, positivo = ENTRADA)

Detalles de los Ajustes:

CODIGO, CODIGOARTICULO, CODIGOITEM: Código del artículo
ENTRADAS: Cantidad de unidades que ingresan con el renglon. Cero si se trata de un movimiento de salida.
SALIDAS: Cantidad de unidades que salen en el renglón. Cero si es un movimiento de entrada
CANTIDAD: Cantidad de unidades afectadas. Negativo si es una salida, positivo si es una entrada.
RENGLON: Número correlativo del renglón.
COSTO: Costo unitario del artículo
VALOR: Valor del ajuste. Negativo para las salidas, positivo para las entradas.
VALORENTRADAS: Valor de las unidades entrantes en el renglon. Cero si es un movimiento de salida.
VALORSALIDAS: Valor de las unidades que salen con el renglón. Cero si es un movimiento de entrada.
DESCRIPCION: Descripción del Artículo / Seriales

Transferencias entre Almacenes:

ORIGEN, ALMACENORIGEN: Código del almacén de origen
DESTINO, ALMACENDESTINO: Código del almacén de destino
DESCRIPCION: Descripción de la transferencia
CONCEPTO: Nombre alternativo de la descripción.
FECHAREGISTRO, FECHA_REGISTRO: Fecha en que fue transcrito el movimiento.
FECHA, FECHATRANSACCION: Fecha en que ocurrió el movimiento
NOTAS: Notas de la transferencia
NUMERO: Número correlativo de la transferencia
OPERADOR: Código del operador que registró la transferencia.

Renglones de Transferencias entre Almacenes

ARTICULO: Código del articulo
RENGLON: Número del renglón
DESCRIPCION: Descripción del Artículo
CANTIDAD: Cantidad de unidades transferidas
COSTO: Costo unitario (actual) del artículo.
TOTAL: Valor transferido.

Movimientos de Bancos: 

NOMBREBANCO: Nombre del Banco
NUMERO: Número correlativo del movimiento
FECHAREGISTRO: Fecha de registro del movimiento
FECHA: Fecha de realización de la operación.
CODIGOBANCO: Código del Banco
TIPO: Tipo de movimiento (CH, DP, NC, ND)
CONCEPTO: Descripción del movimiento
BENEFICIARIO: En cheques, nombre del beneficiario
MONTO: Monto de la operación
REFERENCIA, REFERENCIABANCO: Referencia delcomprobante bancario: número del cheque, de la planilla de depósito o Id de la transacción.


Notas de Debito/Crédito a Clientes o Proveedores:

NUMERO: Número correlativo de la nota.
DESCRIPCION, CONCEPTO: Descripción de la nota
FECHA: Fecha de emisión de la nota
MONTO: Monto de la nota emitida.
SALDO: Saldo actual de la nota
OPERADOR: Código del operador que registró la operación.
CODIGO: Código del Cliente o Proveedor
TIPOENTIDAD: Tipo de la entidad afectada por la nota. CLT=Cliente, PRV=Proveedor.
NOMBRE: Nombre del ciente o proveedor afectado por la nota.

Devoluciones de Ventas:

ALMACEN: Código del almacén donde reingresa la mercancía
CODCLI, CODIGOCLIENTE: Código del cliente que realiza la devolución.
CODVEND, CODIGOVENDEDOR: Código del vendedor afectado por la devolución.
NOMBRECLI, NOMBRECLIENTE: Nombre del cliente que realiza la devolución.
COMISANUL, COMISIONANULADA, ANULCOMIS: Monto de la comisión anulada.
NOMBREVEND, NOMBREVENDEDOR: Nombre del vendedor
COSTODEVUELTO, COSTOMERCANCIA: Costo de la mercancía devuelta.
DESCRIPCION: Nombre del cliente
CONCEPTO: “Devolución de Ventas No. nnnnnn”
FECHAREGISTRO: Fecha de registro de la operacion
FECHA, FECHATRANSACCION: Fecha en que se producjo efectivamente la devolución.
IMPUESTO: Monto de los impuestos anulados.
NOTAS: Notas de la devolución
NUMERO: Número de la devolución.
FACTURA: Código de referencia (Serie + Correlativo) de la factura asociada (o “nil” si es una devolución directa).
SERIE: Código de la serie.
MONTODEVUELTO, MONTOANULACION: Valor neto de la mercancía devuelta (a precio de venta)
REFERENCIA: DVV-nnnnnnn (número de la devolución)
TOTAL: Valor de la mercancía devuelta  (a precio de Venta) más impuesto.

Detalles de la Devolución de Ventas:

CODIGO, PRODUCTO: Código del producto devuelto
CANTIDAD: Cantidad de unidades devueltas
PRESENTACION, UNIDAD: Tipo de empaque
FACTOREMPAQUE: Cantidad de unidades por empaque
DESCRIPCION: Descripción del producto / Seriales.
VALORDEVUELTO: Valor total (a precio de venta) de los productos devueltos en el renglón.
COSTODEVUELTO: Costo de la mercancía devuelta.
DANHADO, DANHADAS: Indica si los productos a los que se refiere este renglón están o no dañados (Sí/No).
ESTADO: “Dañada” si la mercancía está dañada, u “Ok” de lo contrario.
VALORUNITARIO: Valor unitario (a precio de venta) de la mercancía devuelta.
COSTOUNITARIO: Costo unitario de la mercancía devuelta.

Devoluciones de Compras:

ALMACEN: Código del almacen de donde salen los artículos devueltos
NUMERO: Numero correlativo de la devolución.
REFERENCIA: DVC-nnnnnnn (numero de la devolución)
FECHA, FECHA_TRANSACCION: Fecha en que ocurrió la devolución.
FECHAREGISTRO, FECHA_REGISTRO: Fecha de registro de la devolución.
OPERADOR, USUARIO: Código delusuario que transcribió la devolución.
CODIGO_PROVEEDOR, PROVEEDOR: Código del proveedor al que se le devuelve la mercancía.
NOMBREPROVEEDOR, NOMBRE_PROVEEDOR: Nombre del Proveedor
FACTURA, NUMERO_FACTURA, REF_FACTURA: Referencia de la factura (Codigo Proveedor-Numero de Factura
MONTO, VALOR, VALOR_DEVUELTO: Valor total de la mercancía devuelta
IMPUESTO, IVA: Valor del IVA retornado.
TOTAL: Valor combinado de la mercancía más el impuesto.
NOTAS: Notas (comentarios) de la devolución.

Detalles de Devolución de Compra:

CODIGO, CODIGOITEM, ARTICULO: Código del artículo devuelto
DESCRIPCION: Descripción del artículo / Seriales
CANTIDAD, CANTIDADDEVUELTA, DEVUELTAS: Cantidad de unidades devueltas.
EMPAQUE, PRESENTACION, UNIDAD: Código del empaque o presentación al que se refiere “Cantidad”
COSTOUNITARIO: Costo de cada unidad devuelta
COSTOTOTAL: Costo total de la mercancía devuelta en este renglón.

DANHADO, DANHADAS: Indica si los productos a los que se refiere este renglón están o no dañados (Sí/No).
ESTADO: “Dañada” si la mercancía está dañada, u “Ok” de lo contrario.

Documentos de Venta (Facturas, Notas de Entrega y Cotizaciones):

NUMERO: Numero correlativo del documento
FECHA_REGISTRO: Fecha en que se transcribió la operación.
FECHA, FECHA_FACTURA, FECHA_EMISION: Fecha en la que se realizó la operación.
OPERADOR: Código del operador que realizó la última modificación al documento.
SERIE: Serie del correlativo (sólo facturas)
CORRELATIVO: Número correlativo dentro de la serie (facturas) o número correlativo del documento (Notas de Entrega y Cotizaciones).
REFERENCIA, EXT_REF: Referencia de la factura (sólo facturas: v. ayuda en línea)
CODIGO_CLIENTE, CODCLI: Código del Cliente
NOMBRE_CLIENTE, NOMBRECLIENTE, NOMBRECLI: Nombre del cliente
CODIGO_VENDEDOR, CODVEND, VENDEDOR: Código del Vendedor
NOMBRE_VENDEDOR, NOMBREVENDEDOR, NOMBREVEND: Nombre del Vendedor
TELEFONO_CLIENTE: Numeros de teléfono del cliente
DIRECCION_CLIENTE: Direción del cliente
RIF_CLIENTE: RIF del Cliente
NIT_CLIENTE: NIT del Cliente
PRECIOLISTA, PRECIO_LISTA: Valor de la factura a precio de lista
PRECIOVENTA, PRECIO_VENTA: Suma de los precios de venta de los detalles, antes de aplicar los descuentos adicionales.
PRECIOEFECTIVO, PRECIO_EFECTIVO, PRECIO_FINAL, PRECIOFINAL: Precio final de la factura (antes del Impuesto)IMPUESTO1: Valor del primer impuesto.
IMPUESTO2: Valor del segundo impuesto (inactivo)
IMPUESTO: Valor del impuesto total cobrado con la factura.
T_APAGAR: Valor de la venta más el impuesto
TIPO_PREF: Nombre del precio de Referencia
TIPO_PVENTA: Nombre del precio de venta
PDESC1: Porcentaje del descuento 1
PDESC2: Porcentaje del decuento 2
VDESC1: Valor del Descuento 1
SDESC1: Saldo despues de aplicar el primer descuento (sobre PrecioVenta)
VDESC2: Valor del Descuento 2
SDESC2: Valor despues de aplicar el segundo descuento (debe ser igual a PrecioEfectivo).
VDESCABS, VDESCUENTOABSOLUTO: Diferencia entre el precio de lista y el precio final.
PDESCABS: Proporción de VescuentoAbsoluto con respecto al Total a Precio de Lista.
PDESCGENERAL, PDESC12: Porcentaje combinado de los descuentos 1 y 2
MDESC12: Valor combinado de los descuentos 1 y 2
CODIGO_CONDICION: Código de la condición de venta.
NOMBRE_CONDICION: Descripción de la Condición de Venta
DIRECCION_ENTREGA: Dirección de Entrega (sólo en facturas)
NOTAS: Notas del documento.

Las siguientes variables son publicadas por la interfaz “DocumentoISPC”, y sólo aplican a las facturas a crédito.

NCUOTAS: Si es una factura a crédito, cantidad de cuotas.
FECHA_VENCIMIENTO: Si es una factura a crédito, fecha del primer vencimiento.
VENCIMIENTOS: Si es una factura a crédito, lista de los vencimientos, incluyendo para cada uno la fecha y el monto del pago. 

Detalles de Documentos de Venta (Facturas, NNEE y Cotizaciones)

SUBTOT_PLISTA: Subtotal acumulado a precio de lista. Puede ser utilizada por el documento para imprimir las líneas de arrastre de totales en los cierres o encabezados de páginas no terminales.
SUBTOT_PVENTA: Subtotal acumulado a precio de venta.
SUBTOT_PFINAL: Subtotal acumulado a precio final.
NITEM: Número correlativo del renglón
CODIGO, CODIGO_PRODUCTO, CODIGO_ITEM: Código del producto
DESCRIPCION: Descripción del producto / Seriales (en NNEE y Facturas)
PRESENTACION: Tipo de presentación dl producto.
FACTOR_EMPAQUE: Cantidad de unidades por presentación.
CANTIDAD: Cantidad de unidades o empaques.
PRECIO_LISTA: Precio de lista (por empaque)
PRECIO_LISTA_UNITARIO: Precio de Lista / Factor Empaque
PRECIO_VENTA: Precio de venta (antes de los descuentos 1 y 2)
PRECIO_VENTA_UNITARIO: Precio_Venta / Factor_Empaque
PRECIO_EFECTIVO: Valor efectivo (final) del detalle.
PRECIO_EFECTIVO_UNITARIO: Precio_Efectivo / Factor_Empaque
TOTAL_RENGLON: Valor final del renglón (incluyendo los descuentos 1 y 2)
TOTAL_PLISTA: Valor del renglón a precio de lista
TOTAL_PVENTA:  Valor total del renglon (antes de los descuentos 1 y 2) 

Las siguientes variables son publicadas por el Producto:

PRECIO1, PRECIO2, PRECIO3, PRECIO4: Cada uno de los cuatro precios de venta del producto, tal como aparecen en la ficha.
LINEA: Codigo de la línea a la que pertence el producto.
CANTIDAD_EMPAQUE: Cantidad de unidades por empaque.
TIPOIMPUESTO1: Código del tipo de impuesto 1
TIPOIMPUESTO2: Codigo del tipo de impuesto 2 (inactivo).

Documentos de Compra (Ordenes de Compra y Facturas):

NUMERO: Número correlativo del documento
FECHA: Fecha de la transacción
FECHA_REQUERIDA, FECHA_REQUERIDO: Fecha requerida de entrega (sólo para Ordenes de Compra)
OPERADOR: Código del operador que realizó la última modificación
CODIGOPROVEEDOR, PROVEEDOR: Código del proveedor.
FACTURA, REFERENCIAPROVEEDOR, REFPROVEEDOR: Codigo el Proveedor-Numero de la Factura (sólo facturas)
NOMBREPROVEEDOR: Nombre del proveedor
COSTO, COSTOMERCANCIA, VALOR: Valor total de la mercancía recibida o requerida.
DESCUENTO1: Porcentaje de Descuento 1
DESCUENTO2: Porcentaje de Descuento 2
DESCUENTOS: Porcentaje combinado de los descuentos 1 y 2
COSTODETALLES: Valor neto (final) de la mercancía recibida/requerida
IMPUESTO: Valor del impuesto
ALMACEN: Almacén donde ingresa la mercancía recibida (sólo facturas)
CONDICION: Código de la condición.
NOTAS: Notas (comentarios) del documento.
SALDO: Saldo actual del documento (solo facturas).
MONTOTOTAL: Valor total del documento (mercancía más impuesto).

Las siguientes variables se refieren sólo a las facturas de compras a crédito, y son publicadas por la interfaz DocumentoISPC:

NCUOTAS: Si es una factura a crédito, cantidad de cuotas.
FECHA_VENCIMIENTO: Si es una factura a crédito, fecha del primer vencimiento.
VENCIMIENTOS: Si es una factura a crédito, lista de los vencimientos, incluyendo para cada uno la fecha y el monto del pago.

Detalles de Facturas de Compra:

CANTIDADFACTURADA, CANTFACT: Cantidad de unidades facturadas.
CANTIDADPROMOCION: Cantidad de unidades recibidas en promocion
CANTIDAD: Cantidad total de unidades recibidas (Facturadas + Promocion)
CANTIDADTOTAL: Cantidad de unidades de cuenta recibidas (Facturads + Promocion) * FactorEmpaque
CODIGO, ARTICULO: Código del Artículo
COSTOUNITARIO: Costo unitario
DESCRIPCION: Descripción del artículo / Seriales.
FACTOREMPAQUE: Cantidad de unidades por empaque.
PRECIOEFECTIVO:  Precio unitario final.
TOTALRENGLON, VALORRENGLON: Valor total final del renglón.
PRECIONOMINAL: Precio unitario antes de los descuentos
PRESENTACION, UNIDAD: Código del tipo de empaque recibido.
TIPOIMPUESTO1: Código del tipo de impuesto correspondiente al producto

Detalles de las Ordenes de Compra:

CANTIDAD: Cantidad de unidades ordenadas.
CODIGO, ARTICULO: Código del artículo
REFPARTEPROVEEDOR, CODIGOPRODUCTOPROVEEDOR: Código del producto según el proveedor (si no está definido, se toma el código del artículo).
COSTOUNITARIO, PRECIO, PRECIOREQUERIDO: Precio unitario de cada unidad/empaque requerido.
DESCRIPCION: Descripción del artículo
FACTOREMPAQUE: Cantidad de unidades por empaque
PRECIOEFECTIVO: Precio unitario medio de las unidades recibidas (tiene sentido sólo en reimpresiones).
PRECIOTOTAL, VALORRENGLON: Valor del renglón (Cantidad * Precio)
PRESENTACION, UNIDAD: Tipo de Empaque
TIPOIMPUESTO1: Código del impuesto correspondiente al artículo. 

Parámetros de la Empresa:

NOMBRE_EMPRESA: Nuestro nombre o razón social de la empresa
RIF_EMPRESA: Nuestro numero de RIF
NIT_EMPRESA: Número de NIT
DIRECCION_EMPRESA: Dirección
TELEFONO_EMPRESA: Numero de teléfono.
OPERADOR: Código del usuario activo.
CIUDAD: Ciudad
FECHA_IMPRESION: Fecha actual

Adicionalmente, la empresa reconoce cualquier variable definida en el entorno del sistema operativo (mediante el comando SET <VarID>=<Valor>)

Archivos de Formato por Tipo de Documento:

En la siguiente tabla se indica cual es el nombre del archivo de formato correspondiente a cada tipo de documento. Estos archivos deben residir en el directorio de datos de la empresa.

Tipo de Documento

Nombre del Archivo

Ajuste de Inventario

FormatoAjuste.txt

Transferencias entre Almacenes

FormatoTransferencia.txt

Movimientos Banco: Cheques

FormatoCheque.txt

Movimientos Banco: otros

FormatoMovimientoB.txt

Notas de Debito/Credito: Clientes

FormatoNotasDCCLT.txt

Notas de Debito/Credito: Proveedor

FormatoNotasDCPRV.txt

Devoluciones de Venta

FormatoDevVenta.txt

Devoluciones de Compra

FormatoDVC.txt

Cotizaciones (Ventas)

FormatoCotizacion.txt

Facturas de Compra

FormatoCompra.txt

Ordenes de Compra

FormatoOrdenCompra.txt

Notas de Entrega

FormatoNE.txt

Facturas a clientes registrados

FormatoFactura.txt

Facturas al cliente Eventual

FormatoEventual.txt

Movimientos de caja

«depende del tipo»

Cobranzas

fmcCobros.txt

Prestamos a clientes

fmcPrestamosCLT.txt

Adelantos de clientes

fmcAdelantosCLT.txt

Pagos a proveedores

fmcPagos.txt

Adelantos a proveedores

fmcAdelantosPRV.txt

Prestamos de proveedores

fmcPrestamoPRV.txt

Pagos a vendedores

fmcPagoVend.txt

Egresos varios

fmcEgreso.txt

 

Scripts de Evaluación de Variables:

La mayoría de los cambios requeridos por los usuarios de sistemas administrativos se concentran en tres áreas principales: modificación o adición de reportes, ampliar la funcionalidad de los procesos y cambios a los formatos de los documentos.

Con los mecanismos descritos hasta ahora, los usuarios pueden modificar sus formatos en cuanto a la distribución y apariencia de los valores publicados por cada documento. Pero si se quiere ofrecer la máxima flexibilidad, es necesario disponer de un mecanismo que permita agregar cualquier valor que el usuario pueda necesitar. 

Para implementar ese mecanismo, nuevamente recurrimos a VBScript. 

En el sistema existen veinte tipos de objeto que exponen sus propiedades a los formatos de impresión. Para cada uno de ellos, el integrador del sistema puede definir un archivo de script. El contenido de este archivo es una serie de funciones, que no reciben argumentos y devuelven valores de cualquier tipo para el que existan mecanismos intrínsecos de conversión a texto. El resultado de esta función es tomado como el valor requerido. 

El script, una vez cargado, recibe del prograa dos referencias:

OwnerObject: representa al objeto que requiere la evaluación
Factoria
: permite el acceso a diferentes objetos del sistema, según se expuso en la sección “5: Uso de VBScript” del manual del usuario.

Los nombres de los archivos de extensión de cada tipo de objeto se muestran en la tabla siguiente:

Tipo de Objeto

Nombre del Archivo

Nota de Entrega

evNNEE.vbs

  Detalle de Nota de Entrega

evDetalleNE.vbs

Factura

evFactura.vbs

  Detalle de Factura

evDetalleFactura.vbs

Factura de Compra

evCompra.vbs

  Detalle de Factura de Compra

evDetalleCompra.vbs

Ajuste de Inventario

evAjuste.vbs

  Movimiento de Inventario (detalles en los ajustes)

evMINV.vbs

Transferencias de Mercancía

evTransferencia.vbs

  Detalle de Transferencia

evDetalleTransferencia.vbs

Movimiento de Bancos

evMovBanco.vbs

Nota de Debito o Credito (a clientes)

evNDCCLT.vbs

Nota de Debito o Credito (a proveedores)

evNDCPRV.vbs

Devolucion de Ventas

evDevolucionVenta.vbs

  Detalle de Dev. Ventas

evDetalleDVV.vbs

Devolucion de Compras

evDevolucionCompra.vbs

  Detalle Dev. Compras

evDetalleDVC.vbs

Cotizacion

evCotizacion.vbs

  Detalle de Cotizacion

evDetalleCotizacion.vbs

Ordenes de Compra

evOrdenCompra.vbs

  Detalle de Orden de Compra

evDetalleOC.vbs

Ajustes Temporales

evAjusteTemporal

Los scripts de evaluación extendida son el último recurso. El sistema intenta evaluar la referencia buscando primero en las variables intrínsecas del objeto. Lugo, si se trata de un documento (no de un detalle), entre las variables intrínsecas de la empresa. Finalmente, intenta ejecutar la función en el script de evaluación correspondiente.

Uso de formatos variables:

En la versión 4.2.22 de ClearLight se implementó un mecanismo para la selección opcional del formato con el cual se imprimirán los documentos.

Este mecanismo permite:

  1. Especificar un nombre y vía de acceso para cada tipo de archivo de formato, diferentes de los asumidos por omisión por el programa.

  2. Que el operador seleccione el archivo a utilizar, de entre varias opciones predefinidas.

Para especificar el archivo correspondiente a un tipo de formato en particular, se asignará su nombre a un identificador en la clave HKEY_CURRENT_USER\Software \ClearLight\Formatos, según se indica en la siguiente tabla.

Si se quiere permitir que el operador seleccione de entre varias opciones posibles, se asignará el valor SELECT al identificador en cuestión. En este caso, se creará una Clave de Registro con el identificador indicado en la columna “Clave para las Opciones” de la tabla. Bajo esta clave se almacenarán valores identificados por un número correlativo a partir de uno, cuyo valor sea el nombre completo (incluyendo la vía de acceso, si es necesario) del archivo de formato.

Tipo de Documento

Identificador del Valor

Clave para las Opciones

Ajuste de Inventario

FormatoAjuste

FormatosAjuste

Transferencias entre Almacenes

FormatoTransferencia

FormatosTransferencia

Movimientos Banco: Cheques

FormatoCheque

FormatosCheque

Movimientos Banco: otros

FormatoMovimientoB

FormatosMovimientoB

Notas de Debito/Credito: Clientes

FormatoNotaDCCLT

FormatosNotaDCCLT

Notas de Debito/Credito: Proveedor

FormatoNotaDCPRV

FormatosNotaDCPRV

Devoluciones de Venta

FormatoDevVenta

FormatosDevVenta

Devoluciones de Compra

FormatoDVC

FormatosDVC

Cotizaciones (Ventas)

FormatoCotizacion

FormatosCotizacion

Facturas de Compra

FormatoCompra

FormatosCompra

Ordenes de Compra

FormatoOrdenCompra

FormatosOrdenCompra

Notas de Entrega

FormatoNE

FormatosNE

Facturas

FormatoFactura

FormatosFactura

 

Ejemplo (exportacion de clave de registro):


REGEDIT4
 [HKEY_CURRENT_USER\Software\VB and VBA Program Settings\ClearLight\Formatos]
 "FormatoFactura"="SELECT"
 [HKEY_CURRENT_USER\Software\VB and VBA Program Settings\ClearLight\Formatos\FormatosFactura]
    "1"="FormatoFactura.txt"
   
"2"="FormatoEventual.txt"
 

Procedimiento de Ejemplo:

Supongamos que se requiere poder imprimir las notas de entrega con tres formatos diferentes: uno para entregar como pre-factura a los clientes finales, otro para dar salida a la mercancía como promoción, y otro para soportar las entregas de mercancía a consignacion. Los tres archivos se llaman, respectivamente, FormatoNE.txt, PromocionNE.txt y FormatoConsignacion.txt. Todos los formatos residen en el mismo directorio de datos, digamos que C:\Mis Documentos\DatosClear. 

Abrimos el programa regedit.exe, buscamos la clave HKEY_CURRENT_USER; buscamos dentro de ella la clave Software\VB and VBA Program Settings\ClearLight\ Formatos.

Allí creamos el identificador FormatoNE y le asignamos el valor SELECT.

Creamos una nueva clave, con el identificador FormatosNE, y dentro de ella creamos los identificadores siguientes
1 = “C:\Mis Documentos\DatosClear\FormatoNE.txt”,

2=  “C:\Mis Documentos\DatosClear\PromocionNE.txt”
3=  “C:\Mis Documentos\DatosClear\FormatoConsignacion.txt”


Formatos “adaptativos”
:

Otro nombre altisonante para un concepto simple. La idea es permitir que el formato a emplear para la emisión de un documento se adapte automaticamente a las caracteristicas o condiciones del documento. En la sección anterior vimos como se puede presentar un menú con varios formatos para que el operador elija uno. El siguiente paso es que la decisión acerca del formato a utilizar sea automatizada.

Para eso basta con crear un Script llamado FormatoDocumento.vbs, que implemente la función NombreFormato, que deberá devolver el nombre del archivo de formato adecuado, o bien una cadena vacía para indicarle al sistema que debe proceder con el algoritmo regular para la selección del formato, que es lo que hemos descrito hasta el comienzo de este apartado.

Para la selección del formato, el script recibe dos referencias: OwnerObject, que contiene el documento a ser generado, y Factoria, que contiene una instancia de la clase CFactoria, descrita en la sección 5 sobre el uso de VBScript.

El procedimiento consiste en detectar en primer lugar el tipo de documento de OwnerObject, y en función de éste, analizar las caracteristicas relevantes para decidr el formato correcto.

Por ejemplo, un cliente necesita un formato especial para emitir facturas a clientes “especiales” (ciertas dependencias del gobierno y asociaciones beneficas sin fines de lucro, exentas de IVA: para facturar a este tipo de clientes se toma la serie “E”).

Una implementacion posible es la siguiente:


‘ FormatoDocumento.vbs

Public Function
NombreFormato()
  If OwnerObject.TipoEntidad = “FCT” Then
     If OwnerObject.Serie = “E” Then

        NombreFormato = “\\Servidor\DatosCL\SinIVA.txt”
        Exit Function

    End If
  End If
  NombreFormato = “”

End Function
 

Note que la funcion devuelve la ruta de acceso completa del archivo de formato. La cadena vacia devuelta al final (si el documento no es una factura o si la serie no es “E”) indica al sistema que continue con el metodo original de evaluacion del formato.