SET SAFETY OFF SET TALK OFF SET STATUS OFF SELECT * FROM SOSO WHERE flg="1" ; nofilter; INTO TABLE NEW1 SELECT DISTINCT office,DEPARTMENT FROM new1 INTO TABLE mytable1 USE mytable1 SCAN m.office=office m.DEPARTMENT=DEPARTMENT thisform.text1.Value=m.office thisform.text3.value=m.DEPARTMENT COUNT TO THISFORM.TEXT2.VALUE THISFORM.TEXT41.Value="NEW1"+".DBF" CLOSE all Use (thisform.text41.value) Exclusive gnFieldcount = AFIELDS(gaMyArray) For nCount = 1 To gnFieldcount If left(Upper(gaMyArray(nCount,1)),1)='Q' and gaMyArray(nCount,2)='C'&& begin with q and ather charcters Wait "Converting "+gaMyArray(nCount,1) WINDOW nowait Alter table (thisform.text41.value) alter column (gaMyArray(nCount,1)) n(10,2) EndIf EndFor Wait clear ************************************ CLOSE all #Define ANSWERCOUNT 6 #Define QUESTIONCOUNT 3 Local array aStruc[(ANSWERCOUNT+1)*2,4] Local ix,lnPair aStruc = 0 aStruc[1,1] = 'Question' aStruc[1,2] = 'C' aStruc[1,3] = 5 For lnPair=1 To ANSWERCOUNT aStruc[m.lnPair*2,1] = 'CountOf'+Ltrim(Str(m.lnPair)) aStruc[m.lnPair*2,2] = 'I' aStruc[m.lnPair*2,3] = 4 aStruc[m.lnPair*2+1,1] = 'PctOf'+Ltrim(Str(m.lnPair)) aStruc[m.lnPair*2+1,2] = 'B' aStruc[m.lnPair*2+1,3] = 8 aStruc[m.lnPair*2+1,4] = 2 Endfor aStruc[(ANSWERCOUNT+1)*2,1] = 'Total' aStruc[(ANSWERCOUNT+1)*2,2] = 'I' aStruc[(ANSWERCOUNT+1)*2,3] = 4 SET SAFETY off Create table answers From Array aStruc lcText4Table = ALLTRIM(thisform.text41.value) lcText4Alias = "Questions" IF NOT USED(lcText4Alias) SELECT 0 USE (lcText4Table) ALIAS Questions ENDIF For ix=1 To FCOUNT(lcText4Alias) IF UPPER(LEFT(FIELDS(ix,lcText4Alias),1)) == "Q" thisform.GetCounts(m.ix,lcText4Alias+'.'+FIELDS(ix)) ENDIF ENDFOR Select answers ALTER TABLE answers add COLUMN question1 Character(100) ALTER TABLE answers ALTER COLUMN question Character(10) *************************************8 cSelect = "SELECT [sum] AS Question" FOR cFlds = 2 TO FCOUNT("Answers") cFldName = FIELDS(cFlds) IF UPPER(LEFT(cFldName,7)) == "COUNTOF" cSelect = cSelect + [,] + " SUM("+FIELDS(cFlds)+") AS "+FIELDS(cFlds) ELSE cSelect = cSelect + [,] + " 0 AS "+FIELDS(cFlds) ENDIF NEXT cSelect = cSelect + " FROM Answers INTO ARRAY sumAnswers" &cSelect SUM CountOf1 TO nTest INSERT INTO Answers FROM ARRAY sumAnswers ***************************************** CLOSE ALL CLEAR SET SAFETY OFF USE answers GO top replace question1 WITH " ???I ?I? ??? ?????? C?????E C?????E " SKIP replace question1 WITH " ???I ?I? ??? ?????? C?????E C?????E " SKIP replace question1 WITH " C?C ??? ??? EC?E?I?ICE C?E? E?C?? C?????E ?? C?IC??E " SKIP replace question1 WITH "COC?? ?? EECI? C?????E E?? ???C?? " SKIP replace question1 WITH " C?C ??? ??? E??E??CE ???? C?????E EC?IC??E " SKIP replace question1 WITH "C?C ??? ??? E?? CIC?E C?????E E??I ?? C?C?E?C? E??E?? C?CIC? " SKIP replace question1 WITH "C?C ??? ??? EC?IC? CIC?E C?????E E??I ?? C?C?E?C? E??E?? C?CIC?" SKIP replace question1 WITH LTRIM("C?C COC?? E?O? C?????E EC?IC??E ") SKIP replace question1 WITH "C?C ??? C?E?ICI ??OC??E ????E? C?????E E??? ?E?? ???C?? EC?IC??E " SKIP replace question1 WITH "COC?? ?? ??I ???? C?????E EC???C?? C?????E ?C?????E EC?E??C? " SKIP replace question1 WITH LTRIM("C??C??E ??C?I ?? ?O? C?????E ?? C?IC??E " ) SKIP replace question1 WITH "?? E?UE E??CIE ?C?CE C?C?E??E ?? C?IC??E (???) ?? (?C) " SKIP replace question1 WITH " ??? ?O? C??????CE WorkFlow ?? ??C?I (???) ?? (?C) " SKIP replace question1 WITH "C?C ??? ??? E??CI? C?????E C?????E ?? C?IC??E (???) ?? (?C) " SKIP replace question1 WITH "C?C ??? I?C?E E??C?? C?????E C?????E ?? C?IC??E (???) ?? (?C)" SKIP replace question1 WITH "?? C?????E C?????E E??? CIC?? ?? C???? (???) ?? (?C)" SKIP replace question1 WITH "?? E?E?I C? C?IC??E ???E C??CE ?EECI? C??????CE (???) ?? (?C)" SKIP replace question1 WITH "C??????" **************************************************************** CLOSE all USE answers excl ALTER table answers ADD COLUMN no n(3) ALTER table answers drop COLUMN no ALTER table answers ADD COLUMN no n(3) m.i=0 FOR m.i=i TO 17 REPLACE no WITH m.i skip endfor CLOSE ALL USE answers SELECT no, question,question1 ,'count',countof1,countof2, countof3,countof4,countof5; FROM answers ; UNION ALL; SELECT no,question,question1,'persentage',pctof1,pctof2, pctof3,pctof4,pctof5; FROM answers INTO CURSOR mucur READWRITE ORDER BY no ************************************************************************* SCAN replace question WITH "C?E??C?" SKIP replace question1 WITH "" replace question WITH "%" replace countof1 WITH ROUND(countof1,2) replace countof2 WITH ROUND(countof2,2) replace countof3 WITH ROUND(countof3,2) replace countof4 WITH ROUND(countof4,2) replace countof5 WITH ROUND(countof5,2) endscan ENDSCAN&& error message file is not open>It is very hard to read (or to understand) those commands, due to a lack of correct indentation. If you have a SCAN and its ENDSCAN, they should have the same indentation (left margin); everything in between should have an additional indentation (for example, an additional tab).