Diferencia entre revisiones de «Controlar Archivo de Acreditación de Banco Nación»

De Wiki
Saltar a: navegación, buscar
(Página nueva: ==FORMULARIO== ==INFORME== ==CÓDIGO== ===Botón "Buscar Archivo"=== CLOSE TABLES all * programas = vm_programas + "prg_ver_sicoss.prg" * do &programas WITH vm_mes,vm_a...)
 
 
(No se muestran 17 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
==FORMULARIO==
+
==<div style="text-align:center;color:blue">'''FORMULARIO'''</div>==
  
 +
===frm_contr_banco2.scx===
  
 +
[[Imagen:Frm_contr_banco2.PNG]]
  
==INFORME==
+
==<div style="text-align:center;color:blue">'''INFORME'''</div>==
  
 +
===frx_contr_banco2.frx===
  
==CÓDIGO==
+
[[Imagen:Frx_contr_banco2.PNG]]
  
 +
==<div style="text-align:center;color:blue">'''CÓDIGO'''</div>==
  
===Botón "Buscar Archivo"===
 
  
CLOSE TABLES all
+
===Botón "Buscar Archivo"(cmdaceptar)===
  
*    programas = vm_programas + "prg_ver_sicoss.prg"
+
  CLOSE TABLES all
*    do &programas WITH vm_mes,vm_anio
+
 
 
+
  *    programas = vm_programas + "prg_ver_sicoss.prg"
volver=fullpath(curdir())
+
  *    do &programas WITH vm_mes,vm_anio
 
+
 
arch=getfile("TXT","Abra suledos.txt","tomar",0,"Tomar Archivo de Banco Nación")
+
  volver=fullpath(curdir())
 
+
 
*info del archivo
+
  arch=getfile("TXT","Abra suledos.txt","tomar",0,"Tomar Archivo de Banco Nación")
vec = ADIR(vector_file, arch)
+
 
 
+
  *info del archivo
v_arch_nombre= vector_file(1)
+
  vec = ADIR(vector_file, arch)
v_arch_tamanio= vector_file(2)
+
 
v_arch_fecha= vector_file(3)
+
  v_arch_nombre= vector_file(1)
v_arch_hora= vector_file(4)
+
  v_arch_tamanio= vector_file(2)
 
+
  v_arch_fecha= vector_file(3)
 
+
  v_arch_hora= vector_file(4)
set defa to &volver
+
 
*--cartel de espera
+
 
formulario = vm_formularios + "frmprocesando.scx"
+
  set defa to &volver
do form &formulario
+
  *--cartel de espera
*--
+
  formulario = vm_formularios + "frmprocesando.scx"
 
+
  do form &formulario
 
+
   *--
*--tabla para asignar el arch
 
tabla=vm_bases_informes + "temponacion"
 
create table &tabla free (datos C(254))
 
 
 
APPEND FROM &arch type sdf
 
 
 
IF NOT USED("temponacion")
 
USE &tabla IN 0
 
endif
 
 
 
*--tabla de cabecera
 
 
 
*tabla=vm_bases_informes+"cabecera_ob"
 
*CREATE TABLE &tabla free (tipo c(1),iden_empre C(11),casa_cuent C(4),cuen_tipo C(1),cuen_moned C(1),cuen_nro c(11),cuen_dv C(1),;
 
                          mone_trans C(1),fecha C(8),empresa C(20),tipo_trans C(3),largo_lin N(3))
 
 
 
tabla=vm_bases_informes+"datos_arch"
 
CREATE TABLE &tabla free (nombre c(100),tamanio C(50),fecha C(50),hora C(50),respons C(150),proceso C(150),registros N(8),largo_lin2 C(100),;
 
                          fecha_p C(6),empresa C(4),total N(15,2))
 
 
 
 
 
 
 
tabla=vm_bases_informes+"cuerpo_ob_n"
 
CREATE TABLE &tabla free (casa c(4),cuenta C(10),movimiento C(3),fecha_pago C(6),identi_emp C(4),legajo C(9),importe c(13),nombre C(30),;
 
                          tipo_doc C(2),nume_doc C(8),largo_lin N(3))
 
                         
 
 
 
                         
 
v_cant_reg=RECCOUNT("temponacion")
 
 
 
*--cargo la info del arch
 
SELECT datos_arch
 
APPEND BLANK
 
replace nombre  WITH v_arch_nombre,;
 
        tamanio WITH ALLTRIM(STR(v_arch_tamanio)),;
 
        fecha  WITH PADL(ALLTRIM(STR(day(v_arch_fecha))),2,"0")+"-"+PADL(ALLTRIM(STR(month(v_arch_fecha))),2,"0")+"-"+ALLTRIM(STR(YEAR(v_arch_fecha))),;
 
        hora   WITH v_arch_hora,;
 
        respons with thisform.txtresponsable.Text,;
 
        proceso with thisform.txtproceso.Text,;
 
        registros WITH v_cant_reg
 
       
 
 
 
*---escaneo y guardo el informe
 
SELECT temponacion
 
SCAN
 
    SCATTER memvar
 
 
 
    *casa c(4),cuenta C(10),movimiento C(3),fecha_pago C(6),identi_emp C(4),legajo C(9),importe c(13),nombre C(30),;
 
                          tipo_doc C(2),nume_doc C(8)
 
                         
 
    *son los de detallee
 
    v_casa=SUBSTR(m.datos,1,4)
 
    v_cuenta=SUBSTR(m.datos,5,10)
 
    v_movimiento=SUBSTR(m.datos,15,3)
 
    v_fecha_pago=SUBSTR(m.datos,18,6)
 
    v_identi_emp=SUBSTR(m.datos,24,4)
 
    v_legajo=SUBSTR(m.datos,28,9)
 
    v_importe=SUBSTR(m.datos,37,13)
 
    v_nombre=SUBSTR(m.datos,50,30)   
 
    v_tipo_doc=SUBSTR(m.datos,80,2)
 
    v_nume_doc=SUBSTR(m.datos,82,8)
 
    v_largo_linea=LEN(ALLTRIM(m.datos))
 
 
        
 
        
    SELECT cuerpo_ob_n
+
  *--tabla para asignar el arch
    APPEND blank
+
  tabla=vm_bases_informes + "temponacion"
    replace  casa      WITH v_casa,;
+
  create table &tabla free (datos C(254))
            cuenta    WITH v_cuenta,;
+
 
            movimiento WITH v_movimiento,;
+
  APPEND FROM &arch type sdf
            fecha_pago WITH v_fecha_pago,;
+
 
            identi_emp WITH v_identi_emp,;
+
  IF NOT USED("temponacion")
            legajo     WITH v_legajo,;
+
  USE &tabla IN 0
            importe   with v_importe,;
+
  endif
            nombre     WITH v_nombre,;
+
 
            tipo_doc   with v_tipo_doc,;
+
  *--tabla de cabecera
            nume_doc   with v_nume_doc,;
+
 
            largo_lin with v_largo_linea
+
  *tabla=vm_bases_informes+"cabecera_ob"
 
+
  *CREATE TABLE &tabla free (tipo c(1),iden_empre C(11),casa_cuent C(4),cuen_tipo C(1),cuen_moned C(1),cuen_nro c(11),cuen_dv C(1),;
endscan
+
                            mone_trans C(1),fecha C(8),empresa C(20),tipo_trans C(3),largo_lin N(3))
 
+
 
SELECT SUM(VAL(importe))/100 as tot FROM cuerpo_ob_n INTO CURSOR total
+
  tabla=vm_bases_informes+"datos_arch"
 
+
  CREATE TABLE &tabla free (nombre c(100),tamanio C(50),fecha C(50),hora C(50),respons C(150),proceso C(150),registros N(8),largo_lin2       
v_total=total.tot
+
  C(100),;
*MESSAGEBOX(V_TOTAL)
+
                            fecha_p C(6),empresa C(4),total N(15,2))
*--veo las cantidades de lineas en los reg 2
+
 
SELECT largo_lin,COUNT(*) as canti;
+
  tabla=vm_bases_informes+"cuerpo_ob_n"
from cuerpo_ob_n;
+
  CREATE TABLE &tabla free (casa c(4),cuenta C(10),movimiento C(3),fecha_pago C(6),identi_emp C(4),legajo C(9),importe c(13),nombre C(30),;
GROUP BY largo_lin;
+
                            tipo_doc C(2),nume_doc C(8),largo_lin N(3))
ORDER BY  canti desc;
+
                                                     
INTO CURSOR mirar
+
  v_cant_reg=RECCOUNT("temponacion")
 
+
 
v_largo=""
+
  *--cargo la info del arch
SELECT mirar
+
  SELECT datos_arch
SCAN
+
  APPEND BLANK
  SCATTER memvar
+
  replace nombre  WITH v_arch_nombre,;
  v_largo=v_largo+ALLTRIM(STR(m.canti))+" lineas de "+ALLTRIM(STR(m.largo_lin))+"; "
+
          tamanio WITH ALLTRIM(STR(v_arch_tamanio)),;
endscan
+
          fecha  WITH PADL(ALLTRIM(STR(day(v_arch_fecha))),2,"0")+"-"+PADL(ALLTRIM(STR(month(v_arch_fecha))),2,"0")+"-     
SELECT datos_arch
+
  "+ALLTRIM(STR(YEAR(v_arch_fecha))),;
replace largo_lin2 WITH v_largo,;
+
          hora    WITH v_arch_hora,;
        total      WITH v_total,;
+
          respons with thisform.txtresponsable.Text,;
        empresa    WITH v_identi_emp,;
+
          proceso with thisform.txtproceso.Text,;
        fecha_p    WITH v_fecha_pago
+
          registros WITH v_cant_reg
 
          
 
          
*--fin cartel de espera
+
  *---escaneo y guardo el informe
frmprocesando.release
+
  SELECT temponacion
 
+
  SCAN
informes = vm_informes + "frx_contr_banco2.frx"
+
      SCATTER memvar
report format &informes preview
+
   
 
+
      *casa c(4),cuenta C(10),movimiento C(3),fecha_pago C(6),identi_emp C(4),legajo C(9),importe c(13),nombre C(30),;
Botón "Ver Detalle"
+
                            tipo_doc C(2),nume_doc C(8)
 +
                           
 +
      *son los de detallee
 +
      v_casa=SUBSTR(m.datos,1,4)
 +
      v_cuenta=SUBSTR(m.datos,5,10)
 +
      v_movimiento=SUBSTR(m.datos,15,3)
 +
      v_fecha_pago=SUBSTR(m.datos,18,6)
 +
      v_identi_emp=SUBSTR(m.datos,24,4)
 +
      v_legajo=SUBSTR(m.datos,28,9)
 +
      v_importe=SUBSTR(m.datos,37,13)
 +
      v_nombre=SUBSTR(m.datos,50,30)   
 +
      v_tipo_doc=SUBSTR(m.datos,80,2)
 +
      v_nume_doc=SUBSTR(m.datos,82,8)
 +
      v_largo_linea=LEN(ALLTRIM(m.datos))
 +
       
 +
      SELECT cuerpo_ob_n
 +
      APPEND blank
 +
      replace  casa      WITH v_casa,; 
 +
                cuenta    WITH v_cuenta,; 
 +
                movimiento WITH v_movimiento,;
 +
                fecha_pago WITH v_fecha_pago,;
 +
                identi_emp WITH v_identi_emp,;
 +
                legajo    WITH v_legajo,;
 +
                importe    with v_importe,;
 +
                nombre    WITH v_nombre,;
 +
                tipo_doc  with v_tipo_doc,;
 +
                nume_doc  with v_nume_doc,;
 +
                largo_lin  with v_largo_linea
 +
  endscan
 +
 
 +
  SELECT SUM(VAL(importe))/100 as tot FROM cuerpo_ob_n INTO CURSOR total
 +
 
 +
  v_total=total.tot
 +
  *MESSAGEBOX(V_TOTAL)
 +
  *--veo las cantidades de lineas en los reg 2
 +
  SELECT largo_lin,COUNT(*) as canti;
 +
  from cuerpo_ob_n;
 +
  GROUP BY largo_lin;
 +
  ORDER BY  canti desc;
 +
  INTO CURSOR mirar
 +
 
 +
  v_largo=""
 +
  SELECT mirar
 +
  SCAN
 +
    SCATTER memvar
 +
    v_largo=v_largo+ALLTRIM(STR(m.canti))+" lineas de "+ALLTRIM(STR(m.largo_lin))+"; "
 +
  endscan
 +
  SELECT datos_arch
 +
  replace largo_lin2 WITH v_largo,;
 +
          total      WITH v_total,;
 +
          empresa    WITH v_identi_emp,;
 +
          fecha_p    WITH v_fecha_pago
 +
         
 +
  *--fin cartel de espera
 +
  frmprocesando.release
 +
 
 +
  informes = vm_informes + "frx_contr_banco2.frx"
 +
  report format &informes preview
  
SELECT cuerpo_ob_n
+
===Botón "Ver Detalle" (cmddetalle)===
BROWSE nomod
 
  
===Botón "Formato"===
+
  SELECT cuerpo_ob_n
 +
  BROWSE nomod
  
DECLARE INTEGER ShellExecute ;
+
===Botón "Formato" (cmdformato)===
IN SHELL32.DLL ;
 
INTEGER nWinHandle,;
 
STRING cOperation,;
 
STRING cFileName,;
 
STRING cParameters,;
 
STRING cDirectory,;
 
INTEGER nShowWindow
 
  
V_busca = 'R:\werken\docs\Formato_Banco_Nacion.pdf'
+
  DECLARE INTEGER ShellExecute ;
ShellExecute(0, "open",v_busca,"", Fullpath(""),0)
+
  IN SHELL32.DLL ;
 +
  INTEGER nWinHandle,;
 +
  STRING cOperation,;
 +
  STRING cFileName,;
 +
  STRING cParameters,;
 +
  STRING cDirectory,;
 +
  INTEGER nShowWindow
 +
 
 +
  V_busca = 'R:\werken\docs\Formato_Banco_Nacion.pdf'
 +
  ShellExecute(0, "open",v_busca,"", Fullpath(""),0)
  
===Botón "Salir"===
+
===Botón "Salir" (cmdcancelar)===
  
thisform.release
+
  thisform.release

Revisión actual del 12:30 14 feb 2012

FORMULARIO

frm_contr_banco2.scx

Frm contr banco2.PNG

INFORME

frx_contr_banco2.frx

Frx contr banco2.PNG

CÓDIGO

Botón "Buscar Archivo"(cmdaceptar)

  CLOSE TABLES all
  
  *    programas = vm_programas + "prg_ver_sicoss.prg"
  *    do &programas WITH vm_mes,vm_anio
  
  volver=fullpath(curdir())
  
  arch=getfile("TXT","Abra suledos.txt","tomar",0,"Tomar Archivo de Banco Nación")
  
  *info del archivo
  vec = ADIR(vector_file, arch)
  
  v_arch_nombre= vector_file(1)
  v_arch_tamanio= vector_file(2)
  v_arch_fecha= vector_file(3)
  v_arch_hora= vector_file(4)
  
  
  set defa to &volver
  *--cartel de espera
  formulario = vm_formularios + "frmprocesando.scx"
  do form &formulario
  *--
     
  *--tabla para asignar el arch
  tabla=vm_bases_informes + "temponacion"
  create table &tabla free (datos C(254))
  
  APPEND FROM &arch type sdf
  
  IF NOT USED("temponacion")
  USE &tabla IN 0 
  endif
  
  *--tabla de cabecera
  
  *tabla=vm_bases_informes+"cabecera_ob"
  *CREATE TABLE &tabla free (tipo c(1),iden_empre C(11),casa_cuent C(4),cuen_tipo C(1),cuen_moned C(1),cuen_nro c(11),cuen_dv C(1),;
                            mone_trans C(1),fecha C(8),empresa C(20),tipo_trans C(3),largo_lin N(3))
  
  tabla=vm_bases_informes+"datos_arch"
  CREATE TABLE &tabla free (nombre c(100),tamanio C(50),fecha C(50),hora C(50),respons C(150),proceso C(150),registros N(8),largo_lin2         
  C(100),;
                            fecha_p C(6),empresa C(4),total N(15,2))
  
  tabla=vm_bases_informes+"cuerpo_ob_n"
  CREATE TABLE &tabla free (casa c(4),cuenta C(10),movimiento C(3),fecha_pago C(6),identi_emp C(4),legajo C(9),importe c(13),nombre C(30),;
                            tipo_doc C(2),nume_doc C(8),largo_lin N(3))
                                                      
  v_cant_reg=RECCOUNT("temponacion")
  
  *--cargo la info del arch
  SELECT datos_arch
  APPEND BLANK
  replace nombre  WITH v_arch_nombre,;
          tamanio WITH ALLTRIM(STR(v_arch_tamanio)),;
          fecha   WITH PADL(ALLTRIM(STR(day(v_arch_fecha))),2,"0")+"-"+PADL(ALLTRIM(STR(month(v_arch_fecha))),2,"0")+"-      
  "+ALLTRIM(STR(YEAR(v_arch_fecha))),;
          hora    WITH v_arch_hora,;
          respons with thisform.txtresponsable.Text,;
          proceso with thisform.txtproceso.Text,;
          registros WITH v_cant_reg
       
  *---escaneo y guardo el informe
  SELECT temponacion
  SCAN 
      SCATTER memvar
    
      *casa c(4),cuenta C(10),movimiento C(3),fecha_pago C(6),identi_emp C(4),legajo C(9),importe c(13),nombre C(30),;
                            tipo_doc C(2),nume_doc C(8)
                            
      *son los de detallee
      v_casa=SUBSTR(m.datos,1,4)
      v_cuenta=SUBSTR(m.datos,5,10)
      v_movimiento=SUBSTR(m.datos,15,3)
      v_fecha_pago=SUBSTR(m.datos,18,6)
      v_identi_emp=SUBSTR(m.datos,24,4)
      v_legajo=SUBSTR(m.datos,28,9)
      v_importe=SUBSTR(m.datos,37,13)
      v_nombre=SUBSTR(m.datos,50,30)    
      v_tipo_doc=SUBSTR(m.datos,80,2)
      v_nume_doc=SUBSTR(m.datos,82,8)
      v_largo_linea=LEN(ALLTRIM(m.datos))
        
      SELECT cuerpo_ob_n
      APPEND blank
      replace  casa       WITH v_casa,;  
               cuenta     WITH v_cuenta,;  
               movimiento WITH v_movimiento,;
               fecha_pago WITH v_fecha_pago,;
               identi_emp WITH v_identi_emp,;
               legajo     WITH v_legajo,;
               importe    with v_importe,;
               nombre     WITH v_nombre,;
               tipo_doc   with v_tipo_doc,;
               nume_doc   with v_nume_doc,;
               largo_lin  with v_largo_linea
  endscan
  
  SELECT SUM(VAL(importe))/100 as tot FROM cuerpo_ob_n INTO CURSOR total
  
  v_total=total.tot
  *MESSAGEBOX(V_TOTAL)
  *--veo las cantidades de lineas en los reg 2
  SELECT largo_lin,COUNT(*) as canti;
  from cuerpo_ob_n;
  GROUP BY largo_lin;
  ORDER BY  canti desc;
  INTO CURSOR mirar
  
  v_largo=""
  SELECT mirar
  SCAN
    SCATTER memvar
    v_largo=v_largo+ALLTRIM(STR(m.canti))+" lineas de "+ALLTRIM(STR(m.largo_lin))+"; "
  endscan
  SELECT datos_arch
  replace largo_lin2 WITH v_largo,;
          total      WITH v_total,;
          empresa    WITH v_identi_emp,;
          fecha_p    WITH v_fecha_pago
          
  *--fin cartel de espera
  frmprocesando.release
  
  informes = vm_informes + "frx_contr_banco2.frx"
  report format &informes preview

Botón "Ver Detalle" (cmddetalle)

  SELECT cuerpo_ob_n
  BROWSE nomod

Botón "Formato" (cmdformato)

  DECLARE INTEGER ShellExecute ;
  IN SHELL32.DLL ;
  INTEGER nWinHandle,;
  STRING cOperation,;
  STRING cFileName,;
  STRING cParameters,;
  STRING cDirectory,;
  INTEGER nShowWindow
  
  V_busca = 'R:\werken\docs\Formato_Banco_Nacion.pdf'
  ShellExecute(0, "open",v_busca,"", Fullpath(""),0)

Botón "Salir" (cmdcancelar)

  thisform.release