Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
File is not open
Message
From
09/11/2009 05:23:44
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP
Network:
Windows XP
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01433741
Message ID:
01433797
Views:
63
hi,
thank you for reply,
i try as below, no errors but no skip to get another office no.

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"

         If Not Used('new1')
            USE new1.dbf Alias new1 Again In 0 Shared
         Endif
      SELECT new1 
         SELECT * FROM new1 WHERE OFFICE=THISFORM.TEXT1.VALUE

            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 new1 alter column (gaMyArray(nCount,1)) n(10,2)
                  EndIf 
              EndFor 
              Wait clear
************************************
           #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

       Create table answers From Array aStruc

        If Not Used('new1')
                 USE new1.dbf Alias new1 Again In 0 Shared
        Endif

         SELECT new1 

            lcText4Table =  ALLTRIM(thisform.text41.value)
            lcText4Alias = "Questions"

              IF NOT USED(lcText4Alias)
                  SELECT 0
                  If Not Used('new1')
                          USE new1.dbf Alias new1 Again In 0 Shared
                   Endif

                SELECT new1 
                  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

        *****************************************
  
                Select answers
        
                  SET SAFETY OFF
               USE answers
            GO top
                 replace question1 WITH "  íæÌÏ áÏí æÚí áãÝåæã ÇáãÚÑÝÉ ÇáÕÑíÍÉ                           " 
                 SKIP
                 replace question1 WITH " íæÌÏ áÏí æÚí áãÝåæã ÇáãÚÑÝÉ ÇáÖãäíÉ                         " 
                 SKIP
                 replace question1 WITH " ÇäÇ Úáì Úáã ÈÇáÊåÏíÏÇÊ ÇáÊí ÊæÇÌå ÇáãÚÑÝÉ Ýí ÇáÏÇÆÑÉ        " 
                 SKIP
                 replace question1 WITH "ÇÔÇÑß Ýí ÊÈÇÏá ÇáãÚÑÝÉ Èíä ÒãáÇÆí                              " 
                 SKIP
                 replace question1 WITH " ÇäÇ Úáì Úáã ÈãÍÊæíÇÊ ãæÞÚ ÇáãÚÑÝÉ  ÈÇáÏÇÆÑÉ                  " 
                 SKIP
                 replace question1 WITH "ÇäÇ Úáì Úáã ÈÃä ÇÏÇÑÉ ÇáãÚÑÝÉ ÊÒíÏ Ýí ÇáÇÑÊÞÇÁ ÈãÓÊæì ÇáÇÏÇÁ     " 
                 SKIP
                 replace question1 WITH "ÇäÇ Úáì Úáã  ÈÇåÏÇÝ  ÇÏÇÑÉ ÇáãÚÑÝÉ ÊÒíÏ Ýí ÇáÇÑÊÞÇÁ ÈãÓÊæì ÇáÇÏÇÁ" 
                 SKIP
                 replace question1 WITH LTRIM("ÇäÇ ÇÔÇÑß ÈäÔÑ ÇáãÚÑÝÉ ÈÇáÏÇÆÑÉ                        ") 
                 SKIP
                 replace question1 WITH "ÇäÇ Úáì ÇÓÊÚÏÇÏ áãÔÇÑßÉ ãÚÑÝÊí ÇáÖãäíÉ Èíäí æÈíä ÒãáÇÆí ÈÇáÏÇÆÑÉ " 
                 SKIP
                 replace question1 WITH "ÇÔÇÑß Ýí ÑÝÏ ãæÞÚ ÇáãÚÑÝÉ ÈÇáãÚÇÑÝ ÇáÖãäíÉ æÇáÕÑíÍÉ ÈÇÓÊãÑÇÑ    " 
                 SKIP
                 replace question1 WITH LTRIM("ÇáÍÇÓæÈ íÓÇÚÏ Ýí äÔÑ ÇáãÚÑÝÉ Ýí ÇáÏÇÆÑÉ                   " )
                 SKIP
                 replace question1 WITH "åá ÊÑÛÈ ÈÒíÇÏÉ ÓÇÚÇÊ ÇáÇäÊÑäÊ Ýí ÇáÏÇÆÑÉ   (äÚã)  Ãæ  (áÇ)  " 
                 SKIP
                 replace question1 WITH " Úáì äÔÑ ÇáãÚáæãÇÊ WorkFlow  åá íÓÇÚÏ  (äÚã)  Ãæ  (áÇ)  " 
                 SKIP
                 replace question1 WITH "ÇäÇ Úáì Úáã ÈãÕÇÏÑ  ÇáãÚÑÝÉ ÇáÖãäíÉ Ýí ÇáÏÇÆÑÉ (äÚã)  Ãæ  (áÇ) " 
                 SKIP
                 replace question1 WITH "ÇäÇ Úáì ÏÑÇíÉ ÈÃãÇßä ÇáãÚÑÝÉ ÇáÕÑíÍÉ Ýí ÇáÏÇÆÑÉ   (äÚã)  Ãæ  (áÇ)" 
                 SKIP
                 replace question1 WITH "åá ÇáãÚÑÝÉ ÇáÖãäíÉ ÊÑÝÚ ÇÏÇÄß Ýí ÇáÚãá   (äÚã)  Ãæ  (áÇ)" 
                 SKIP
                 replace question1 WITH "åá ÊÚÊÞÏ Çä ÇáÏÇÆÑÉ æÝÑÊ ÇáíÇÊ áÊÈÇÏá ÇáãÚáæãÇÊ (äÚã)  Ãæ  (áÇ)" 
                 SKIP
                 replace question1 WITH "ÇáãÌãæÚ" 
     
     Select answers
      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

     If Not Used('answers')
          USE answers.dbf Alias answers Again In 0 Shared
     Endif
          SELECT 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 "ÇáÊßÑÇÑ"
           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
      
      
          
       it must be thisform.text1.Value=2

endscan
thanks
>Hi Mohammed,
>
>I didn't read the whole code, but one thing caught my attention - why do you have CLOSE ALL inside SCAN/ENDSCAN ? Try to comment this line for now.
>
>Also, you may want to open your table exclusively outside the SCAN/ENDSCAN also.
>
>>hi all,
>>
>>i need help to fix this code , i get at the last line endscan error message file is not open
>>
>>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
>>
>>*Create Cursor answers >From Array aStruc
>>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  ALTER COLUMN question Character(100) 
>>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 "  íæÌÏ áÏí æÚí áãÝåæã ÇáãÚÑÝÉ ÇáÕÑíÍÉ                           " 
>>SKIP
>>replace question1 WITH " íæÌÏ áÏí æÚí áãÝåæã ÇáãÚÑÝÉ ÇáÖãäíÉ                         " 
>>SKIP
>>replace question1 WITH " ÇäÇ Úáì Úáã ÈÇáÊåÏíÏÇÊ ÇáÊí ÊæÇÌå ÇáãÚÑÝÉ Ýí ÇáÏÇÆÑÉ        " 
>>SKIP
>>replace question1 WITH "ÇÔÇÑß Ýí ÊÈÇÏá ÇáãÚÑÝÉ Èíä ÒãáÇÆí                              " 
>>SKIP
>>replace question1 WITH " ÇäÇ Úáì Úáã ÈãÍÊæíÇÊ ãæÞÚ ÇáãÚÑÝÉ  ÈÇáÏÇÆÑÉ                  " 
>>SKIP
>>replace question1 WITH "ÇäÇ Úáì Úáã ÈÃä ÇÏÇÑÉ ÇáãÚÑÝÉ ÊÒíÏ Ýí ÇáÇÑÊÞÇÁ ÈãÓÊæì ÇáÇÏÇÁ     " 
>>SKIP
>>replace question1 WITH "ÇäÇ Úáì Úáã  ÈÇåÏÇÝ  ÇÏÇÑÉ ÇáãÚÑÝÉ ÊÒíÏ Ýí ÇáÇÑÊÞÇÁ ÈãÓÊæì ÇáÇÏÇÁ" 
>>SKIP
>>replace question1 WITH LTRIM("ÇäÇ ÇÔÇÑß ÈäÔÑ ÇáãÚÑÝÉ ÈÇáÏÇÆÑÉ                        ") 
>>SKIP
>>replace question1 WITH "ÇäÇ Úáì ÇÓÊÚÏÇÏ áãÔÇÑßÉ ãÚÑÝÊí ÇáÖãäíÉ Èíäí æÈíä ÒãáÇÆí ÈÇáÏÇÆÑÉ " 
>>SKIP
>>replace question1 WITH "ÇÔÇÑß Ýí ÑÝÏ ãæÞÚ ÇáãÚÑÝÉ ÈÇáãÚÇÑÝ ÇáÖãäíÉ æÇáÕÑíÍÉ ÈÇÓÊãÑÇÑ    " 
>>SKIP
>>replace question1 WITH LTRIM("ÇáÍÇÓæÈ íÓÇÚÏ Ýí äÔÑ ÇáãÚÑÝÉ Ýí ÇáÏÇÆÑÉ                   " )
>>SKIP
>>replace question1 WITH "åá ÊÑÛÈ ÈÒíÇÏÉ ÓÇÚÇÊ ÇáÇäÊÑäÊ Ýí ÇáÏÇÆÑÉ   (äÚã)  Ãæ  (áÇ)  " 
>>SKIP
>>replace question1 WITH " Úáì äÔÑ ÇáãÚáæãÇÊ WorkFlow  åá íÓÇÚÏ  (äÚã)  Ãæ  (áÇ)  " 
>>SKIP
>>replace question1 WITH "ÇäÇ Úáì Úáã ÈãÕÇÏÑ  ÇáãÚÑÝÉ ÇáÖãäíÉ Ýí ÇáÏÇÆÑÉ (äÚã)  Ãæ  (áÇ) " 
>>SKIP
>>replace question1 WITH "ÇäÇ Úáì ÏÑÇíÉ ÈÃãÇßä ÇáãÚÑÝÉ ÇáÕÑíÍÉ Ýí ÇáÏÇÆÑÉ   (äÚã)  Ãæ  (áÇ)" 
>>SKIP
>>replace question1 WITH "åá ÇáãÚÑÝÉ ÇáÖãäíÉ ÊÑÝÚ ÇÏÇÄß Ýí ÇáÚãá   (äÚã)  Ãæ  (áÇ)" 
>>SKIP
>>replace question1 WITH "åá ÊÚÊÞÏ Çä ÇáÏÇÆÑÉ æÝÑÊ ÇáíÇÊ áÊÈÇÏá ÇáãÚáæãÇÊ (äÚã)  Ãæ  (áÇ)" 
>>SKIP
>>replace question1 WITH "ÇáãÌãæÚ" 
>>
>>
>>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 "ÇáÊßÑÇÑ"
>>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
>>
>>
>>
>>
>>thanks
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform