2011-04-26 5 views
1

CSV 파일에서 읽는 편지 병합 파일을 설정하고 있습니다. CSV 파일에는 ~ 20 개의 부울 필드가있어 Word 편지 병합 파일의 본문을 생성합니다. 문제는 첫 번째 19 개의 필드가 모두 "N" 인 경우 Word 편지 병합 파일에 19 개의 공백이 있고 그 아래에 20 번째 필드가 출력된다는 것입니다. 기본 제공 편지 병합 규칙을 사용하여 이러한 빈 줄 출력을 억제하는 방법이 있습니까? 복사 및 메일 병합 붙여 넣기 원본을 보여주지 않기 때문에 여기에 Microsoft Word 2007 편지 병합에서 빈 줄을 어떻게 억제합니까?

"firstname","lastname","PRNT1040","LEGALGRD","ACADTRAN","STUD1040","VERWKSIN","VERWKSDP","UNEMPLOY","SSCARD","HSDPLOMA","DPBRTCFT","DEATHCRT","USCTZPRF","SLCTSERV","PROJINCM","YTDINCM","LAYOFFNT","MAJRCARS","W2FATHER","W2MOTHER","W2SPOUSE","W2STUDNT","2YRDEGRE","4YEARDEG","DPOVERRD" 
"Joe","Smith","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","Y" 

내가 노력하고있어 편지 병합 파일 (이미지의 두 라인이 연결되어있다 :
다음은 헤더와 CSV 파일의 샘플 행의 문서)

msword_mailmerge


사람이 주위에 얻는 방법을 알고 있나요? 조건문 앞에 SKIPIF을 놓으려고했으나 작동하지 않습니다.

답변

0

: 여기에 내가 비슷한 목표를 달성하는 데 사용하는 에이스 보고서의 예 대화 상자 상자 안에 각 규칙이 끝난 후 줄 바꿈을가합니다. Word의 편지 병합 옵션에 포함 된 IF -> THEN -> ELSE 규칙을 끝내면 Word에서 줄 바꿈을 구문 분석합니다.

1

필드가 빈 중간 초기 필드에 의해 발생하는 빈 공간을 제거 할 경우 조건 다음 다음 조건부 MERGEFIELD 필드가 어떤 분야에서 공백을 제거합니다

{FNAME} {IF {MI} <> "" "{MI} "}{LNAME} 

합니다. 예를 들어, 다음과 같은 조건문이 제대로 일반적으로 빈 필드에 포함 된 공간이 표시되지 않습니다

{Prefix} {FirstName} {LastName} 

다음 필드, 주어진 :

{IF {MERGEFIELD Prefix}<>"" "{MERGEFIELD Prefix} "} 
{IF {MERGEFIELD FirstName}<>"" "{MERGEFIELD FirstName} "} 
{IF {MERGEFIELD LastName}<>"" "{MERGEFIELD LastName}"} 

필드의 문자를 입력하려면을 ({}), 필드를 선택 삽입 메뉴에서 또는 Ctrl + F9를 누릅니다.

참고 : informix에서 데이터를 언로드하고 파이프 구분 기호를 쉼표로 바꾸어 CSV를 만들고 있습니까? ... 아마도 CSV 파일을 만들기 위해 문자열을 더 잘 조작 할 수있는 에이스 보고서를 만드는 것이 좋습니다. !

{ IF { MERGEFIELD PRNT1040} = "Y" "Write some text, then use a return line here " "" }

그런 다음 우리는 대신 다시 다시 그 규칙을 넣어 : 우리는 선을 변경하여 문제를 해결

database pawnshop end 

define 
variable act integer 
variable actven integer 
variable ret integer 
variable ven integer 
variable cmp integer 
variable plt integer 
variable vta integer 
variable tot integer 
variable totprof integer 
end 


output 
top margin 0 
bottom margin 0 
left margin 0 
right margin 384 
report to "clientes.unl" 
page length 200000 
end 


select 
     pa_serial, 
     pa_code, 
     pa_store_id, 
     pa_user_id, 
     pa_cust_name, 
     pa_id_type, 
     pa_id_no, 
     pa_dob, 
     pa_address1, 
     pa_city, 
     pa_tel, 
     pa_cmt, 
     pa_entry_date, 
     pa_last_date, 
     pa_idioma, 
     pa_apodo, 
     pwd_id, 
     pwd_trx_type, 
     pwd_last_type, 
     pwd_last_pymt, 
     pwd_trx_date, 
     pwd_pawn_amt, 
     pwd_last_amt, 
     pwd_cob1, 
     pwd_cob2, 
     pwd_cob3, 
     pwd_cob4, 
     pwd_update_flag, 
     st_code, 
     st_exp_days, 
     st_com_exp, 
     st_plat_exp 

    from CLIENTES, outer BOLETOS, storetab 
where pa_serial = pwd_id 
    and pa_code = st_code 
order by pa_cust_name, pwd_last_pymt 

end 



format 

on every row 

if pwd_last_type = "E" then 
begin 
let act = act + 1 
if today - pwd_last_pymt >= st_exp_days then 
let actven = actven + 1 
end 


if pwd_last_type = "I" then 
begin 
let act = act + 1 
if today - pwd_last_pymt >= st_exp_days then 
let actven = actven + 1 
end 


if pwd_trx_type = "C" then 
begin 
let cmp = cmp + 1 
if pwd_last_type = "C" and (today - pwd_last_pymt >= st_com_exp) then 
let actven = actven + 1 
end 


if pwd_last_type = "R" then 
begin 
let ret = ret + 1 
end 


if pwd_trx_type = "P" and pwd_last_type = "P" then 
begin 
let plt = plt + 1 
if today - pwd_last_pymt >= st_plat_exp then 
let actven = actven + 1 

end 


if pwd_trx_type = "E" and pwd_last_type = "F" then 
begin 
let ven = ven + 1 
end 

if pwd_trx_type = "P" and pwd_last_type = "F" then 
begin 
let ven = ven + 1 
end 


if pwd_trx_type = "E" and pwd_last_type = "T" then 
begin 
let ven = ven + 1 
end 

if pwd_trx_type = "P" and pwd_last_type = "T" then 
begin 
let ven = ven + 1 
end 


before group of pa_cust_name 
let totprof = 0 
let tot = 0 
let act = 0 
let actven = 0 
let ret = 0 
let ven = 0 
let cmp = 0 
let plt = 0 
let vta = 0 


after group of pa_cust_name 

print column 1, pa_serial using "<<<<<","|", 
       pa_code clipped,"|", 
       pa_store_id clipped,"|", 
       pa_user_id clipped,"|", 
       pa_cust_name clipped,"|", 
       pa_id_type clipped,"|", 
       pa_id_no clipped,"|", 
       pa_dob using "mm-dd-yyyy","|", 
       pa_address1 clipped,"|", 
       pa_city clipped,"|", 
       pa_tel clipped,"|", 
       pa_cmt clipped,"|", 
       pa_entry_date using "mm-dd-yyyy","|", 
       pwd_last_pymt using "mm-dd-yyyy","|", 
       act using "&&&","|", 
       ret using "&&&","|", 
       ven using "&&&","|", 
       tot using "&&&","|", 
       totprof using "-&&&&&","|", 
       actven using "&&&","|", 
       cmp using "&&&","|", 
       pa_idioma,"|", 
       pa_apodo,"|", 
       plt using "&&&","|", 
       vta using "&&&","|" 
end 
+0

감사를 취할 것

IF MERGEFIELD = "Y" "true section" 

그냥 진정한 부분을 쓰기, 오늘이을 시도 할 것이다. ACE는 여기에서 요구 사항을 충족시킬 수 없습니다.csv 파일을 작성하고, 롤백 파일을 작성하고, 사용자 입력 및 파일 경로를 기록하고, csv 파일을 실행 프로그램에 전자 우편으로 보내서 데이터를 편지 병합 파일로 푸시 할 수있는 펄 스크립트입니다 – CheeseConQueso

1

간단한 것은 IF 조건의 '거짓'섹션을 건너 뛴 것이었을 것입니다. 당신이 잘못된 부분을 포함, 그것은이 (내가 생각하는) 계정으로