以下是引用hu9jj在2015-8-15 08:28:53的发言:
这是输出的排列问题,应该不复杂。
钻点牛角尖:两个汉字的名字统一转换成三个汉字(中间加空格),那么四个及四个以上汉字的名字如何处理呢?
这是输出的排列问题,应该不复杂。
钻点牛角尖:两个汉字的名字统一转换成三个汉字(中间加空格),那么四个及四个以上汉字的名字如何处理呢?
这可不是钻牛角尖,这是很现实的问题,中文名字最多可以有七个字(甚至更多)
SELECT * FROM Xsxx INTO CURSOR Temp LOCAL cStr,nCnt,cXm cStr="" nCnt=0 SCAN * 去除 Name 前面的CHR(9)字符 cXm=STRTRAN(ALLTRIM(Name),CHR(9),"") * 判断姓名是否是两个汉字 cXm=IIF(LEN(cXm)=4,STUFF(cXm,3,0,SPACE(2)),cXm) DO CASE CASE INLIST(LEFT(cXm,6),"高81级","班主任") cStr=cStr+IIF(nCnt>0,0H0D0A,"")+cXm+0H0D0A nCnt=0 OTHERWISE nCnt=nCnt+1 cStr=cStr+cXm+IIF(MOD(nCnt,16)=0,0H0D0A,SPACE(1)) ENDCASE ENDSCAN * 保存在文本文件中 =STRTOFILE(cStr,"学生名单.Txt") MODIFY FILE 学生名单.Txt * 保存在临时表中 CREATE CURSOR Md (XM C(120)) APPEND FROM 学生名单.Txt SDF BROWSE CLOSE DATABASES
SET TALK OFF SET SAFETY Off CLOSE ALL CLEAR ALL CLEAR WAIT "请打开存放数据的文件。。。。。" USE ? Word=CREATEOBJECT('word.application') &&创建WORD文档 Word.Visible=.t. &&显示WORD文档 Word.Documents.add() &&建立新文档 Word.ActiveDocument.PageSetup.TopMargin=2/0.035 &&设置上页边距 Word.ActiveDocument.PageSetup.BottomMargin=2/0.035 &&设置下页边距 Word.ActiveDocument.PageSetup.LeftMargin=2/0.035 &&设置左页边距 Word.ActiveDocument.PageSetup.RightMargin=2/0.035 &&设置右页边距 GO top Word.Selection.Font.Size = 15 &&指定字号,9为小五号,10.5为五号,12为小四号 Word.Selection.Font.Name = "黑体" &&设置字体 word.Selection.ParagraphFormat.Alignment=1 word.Selection.TypeParagraph word.selection.typetext('学 生 名 单') word.Selection.TypeParagraph i=1 Word.Selection.Font.Size = 12.5 &&指定字号,9为小五号,10.5为五号,12为小四号 Word.Selection.Font.Name = "宋体" &&设置字体 word.Selection.ParagraphFormat.Alignment=0 DO WHILE !eof() IF LEN(ALLTRIM(name))>6 word.Selection.TypeParagraph word.selection.typetext(ALLTRIM(name)) word.Selection.TypeParagraph SKIP i=1 ELSE IF MOD(i,8)=0 i=1 word.Selection.TypeParagraph ELSE IF LEN(allt(name))=6 word.selection.typetext( SUBSTR(name,1,8)) ELSE word.selection.typetext( SUBSTR(name,1,2)+' '+SUBSTR(name,3,4)) ENDIF i=i+1 ENDIF skip ENDIF ENDDO word.Selection.WholeStory word.Selection.ParagraphFormat.LineSpacingRule = 4 Word.Selection.ParagraphFormat.LineSpacing = 17 USE SET TALK ON return也许能给你些帮助。我的程序是每行8人。直接输出到WORD文档。