llevo como 2 meses con progress y sinceramente no se nada y en mi trabajo ya me encargaron filtros de progress a word.
no se como empezar a trabajar me han dado algunos programas similares pero no corren bien.
sin embargo estos programas me llevan a la solucion; pero hay desenredarlos.
este es el siguiente codigo que me han dado:
- Código: Seleccionar todo
DEF VAR limita AS CHAR INITIAL '@@' NO-UNDO.
DEF VAR t_pos1 AS INT NO-UNDO.
DEF VAR t_pos2 AS INT NO-UNDO.
DEF VAR t_voy_en AS INT NO-UNDO.
DEF VAR t_tamano AS INT NO-UNDO.
DEF VAR t_campo AS CHAR NO-UNDO.
DEF VAR t_regresa AS CHAR NO-UNDO.
DEF VAR t_regresa1 AS CHAR NO-UNDO.
DEF VAR t_imp1 AS CHAR NO-UNDO.
DEF VAR t_imp2 AS CHAR NO-UNDO.
DEF VAR t_tot AS DEC NO-UNDO.
DEF VAR t_porc AS DEC NO-UNDO.
DEF VAR t_texto AS CHAR NO-UNDO FORMAT 'X(300)'.
DEF VAR t_tex1 AS CHAR NO-UNDO.
DEF VAR t_wrk AS CHAR NO-UNDO.
DEF VAR RUTA AS CHAR NO-UNDO.
DEF VAR vc-fecha AS CHAR NO-UNDO.
{MESES.I}.
DEF INPUT PARAMETER T_DOCTO AS CHAR.
DEF VAR v-reg AS ROWID NO-UNDO.
IF V-REG = ? THEN DO:
RUN FI01901.W(TRUE, OUTPUT V-REG).
END.
IF V-REG = ? THEN RETURN.
DEF VAR v-doc-fte AS CHAR NO-UNDO.
DEF VAR v-doc-fin AS CHAR NO-UNDO.
DEF VAR T_SALIDA AS CHAR NO-UNDO.
DEF VAR T_TIPO_IMP AS CHAR NO-UNDO.
DEFINE VARIABLE Wdirector LIKE Unidad_adm.Director NO-UNDO.
DEFINE VARIABLE WSubdir_obras LIKE Unidad_adm.Subdirector NO-UNDO.
DEFINE VARIABLE wdir LIKE Unidad_adm.Direccion NO-UNDO.
DEFINE VARIABLE wciud LIKE Unidad_adm.Ciudad NO-UNDO.
DEFINE VARIABLE wcol LIKE Unidad_adm.Colonia NO-UNDO.
DEFINE VARIABLE wcp LIKE Unidad_adm.C_P NO-UNDO.
RUN GUARDAR-A.P(OUTPUT T_SALIDA, OUTPUT T_TIPO_IMP).
ASSIGN v-doc-fte = SEARCH(T_DOCTO)
v-doc-fin = T_SALIDA. /*'FALLO_RE' + vg_usuario + '.RTF'*/
RUTA = T_SALIDA. /*SEARCH('FALLO_RE' + vg_usuario + '.RTF'). */
IF RUTA NE ? THEN DO:
DEF VAR N AS INT.
FIND licitacion WHERE
ROWID(licitacion) = v-reg NO-LOCK.
FIND obras.estado OF licitacion NO-LOCK.
RUN CON_SIA.P. /* Conectando la base del Datos del Sia*/
RUN CONS_ADM3.P(INPUT licitacion.id_estado, OUTPUT Wdirector,
OUTPUT WSubdir_obras, OUTPUT wdir, OUTPUT Wciud,
OUTPUT wcol, OUTPUT wcp).
IF CONNECTED ('SIA') THEN DISCONNECT SIA. /* DESCONECTA EL SIA */
INPUT FROM VALUE(v-doc-fte) NO-ECHO BINARY NO-CONVERT.
OUTPUT TO VALUE(v-doc-fin) BINARY NO-CONVERT.
REPEAT:
IMPORT UNFORMATTED T_TEXTO.
RUN CAMBIA.
PUT UNFORMATTED T_TEXTO.
PUT SKIP.
END.
PUT UNFORMATTED '\par }}'.
OUTPUT CLOSE.
DEFINE VAR WORD AS COM-HANDLE NO-UNDO.
DEFINE VAR WORDBOOK AS COM-HANDLE NO-UNDO.
DEFINE VAR WORDSHEET AS COM-HANDLE NO-UNDO.
DEFINE VAR CHART AS COM-HANDLE NO-UNDO.
CREATE "WORD.APPLICATION" WORD.
WORD:VISIBLE = TRUE.
WORDBOOK = WORD:DOCUMENTS:OPEN(RUTA). /* Abre un documento */
RELEASE OBJECT WORD.
RELEASE OBJECT WORDBOOK.
END.
PROCEDURE CAMBIA.
t_wrk = t_texto.
t_voy_en = 1.
REPEAT:
t_pos1 = INDEX(t_texto,limita,t_voy_en).
IF t_pos1 = 0 THEN LEAVE.
t_pos2 = INDEX(t_texto,limita,t_pos1 + 2).
IF t_pos2 = 0 THEN LEAVE.
t_tamano = t_pos2 - (t_pos1 + 2).
t_campo = SUBSTRING(t_texto,t_pos1 + 2,t_tamano).
RUN substituye.
END.
END procedure.
Procedure Substituye.
t_regresa = ''.
CASE t_campo:
WHEN 'licitacion.id_licitacion' THEN
t_regresa = STRING(licitacion.id_licitacion,'XXXXXXXX-XXX-XXXXXX').
WHEN 'licitacion.descripcion' THEN t_regresa = licitacion.descripcion.
WHEN 'Licitacion.f_apertura' THEN
RUN fecha-texto(INPUT Licitacion.f_apertura, OUTPUT t_regresa).
WHEN 'Licitacion.H_apertura' THEN
t_regresa = SUBSTRING(Licitacion.H_apertura,1,2) + ':' +
SUBSTRING(Licitacion.H_apertura,3,2).
WHEN 'Licitacion.Lugar_apertura' THEN
t_regresa = Licitacion.Lugar_apertura.
WHEN 'Licitacion.f_apertura_eco' THEN
RUN fecha-texto(INPUT Licitacion.f_apertura_eco, OUTPUT t_regresa).
WHEN 'Licitacion.h_apertura_eco' THEN
t_regresa = SUBSTRING(Licitacion.h_apertura_eco,1,2) + ':' +
SUBSTRING(Licitacion.h_apertura_eco,3,2).
WHEN 'Licitacion.f_fallo' THEN
RUN fecha-texto(INPUT Licitacion.f_fallo, OUTPUT t_regresa).
WHEN 'Licitacion.h_fallo' THEN
t_regresa = SUBSTRING(Licitacion.h_fallo,1,2) + ':' +
SUBSTRING(Licitacion.h_fallo,3,2).
WHEN 'contrato.firma_sct[1]' THEN
t_regresa = contrato.firma_sct[1].
WHEN 'Wciud' THEN
t_regresa = Wciud.
WHEN 'Wdir' THEN
t_regresa = Wdir + ', ' + Wcol + ' ' +
'C.P. ' + STRING(Wcp,'99999') + ', ' + Wciud.
WHEN 'estado.desc_larga' THEN
t_regresa = OBRAS.estado.desc_larga.
WHEN 'Wdirector' THEN
t_regresa = Wdirector.
WHEN 'Wsubdir_obras' THEN
t_regresa = Wsubdir_obras.
WHEN 'nombres' THEN DO:
t_regresa = ''.
FOR EACH participante OF licitacion NO-LOCK.
FIND contratista OF participante NO-LOCK.
/*t_regresa = t_regresa + STRING(contratista.nombre_largo).*/
DISPLAY '\par' contratista.nombre_largo WITH STREAM-IO NO-BOX NO-LABELS.
END.
END.
WHEN 'GANADOR' THEN DO:
t_regresa = ''.
FIND contratista WHERE
contratista.id_contratista = licitacion.id_contratista NO-LOCK NO-ERROR.
IF AVAILABLE contratista THEN t_regresa = contratista.nombre_largo.
END.
WHEN 'PARTICIPANTE.IMPORTE_TOTAL' THEN DO:
t_regresa = ''.
FIND participante OF licitacion WHERE
participante.id_contratista = licitacion.id_contratista NO-LOCK NO-ERROR.
IF AVAILABLE participante THEN DO:
t_regresa = STRING(participante.monto_total,'zzzz,zzz,zz9.99').
RUN NUM_LET.P(PARTICIPANTE.MONTO_TOTAL, OUTPUT t_imp1, OUTPUT t_imp2).
t_regresa = t_regresa + t_imp1 + ' ' + t_imp2 + 'M.N.'.
END.
END.
END CASE.
IF t_regresa = '' THEN t_regresa = ' '.
t_voy_en = LENGTH(SUBSTRING(t_texto,1,t_pos1 - 1) + t_regresa).
t_texto = SUBSTRING(t_texto,1,t_pos1 - 1) + t_regresa +
SUBSTRING(t_texto,t_pos2 + 2).
END procedure.
PROCEDURE fecha-texto:
DEF INPUT PARAMETER v-fecha AS DATE.
DEF OUTPUT PARAMETER vf-texto AS CHAR.
IF v-fecha = ? THEN DO:
vf-texto = '________'.
RETURN.
END.
vf-texto = STRING(DAY(v-fecha)) + ' de ' +
LC(t_meses[MONTH(v-fecha)]) + ' de ' +
STRING(YEAR(v-fecha), '9999').
END.
que alguine me explique que hace este programa por favor c los agradecere muchisimo.
atte: el nuevo en progress
