All Forums
 Категория Visio
 Форум Вопросы и ответы
 Странная ситуация! Помогите разобраться!
Author Previous Topic Topic Next Topic  

yabes

39 Posts

Posted - 01/19/2010 :  14:20:55
Вот код по добавлению новой точки соединения на коннектор. Координатам X, Y присваиваются данные из Recordset !Х и !Y. Возникла очень странная ситуация:
В режиме отладки (Даже если зажать F8 и продержать до конца выполнения процедуры) координаты точки соединения присваиваются как надо! А вот если запустить процедуру (Run/F5), то точки соединения располагаются неправильно - координаты присваиваются неверно! В чем может быть дело? Может что-то не успевает выполниться? Как это исправить?
Cmd.CommandText = "Select * FROM CONPOINT"
Cmd.CommandType = adCmdText
With Rst
        .Open Source:=Cmd, CursorType:=adOpenStatic, LockType:=adLockOptimistic
        If .RecordCount > 0 Then
           .MoveFirst
           Do While Not .EOF
              intRowIndex = sh.AddRow(visSectionConnectionPts, visRowLast, visTagCnnctPt) 
              Set vsoRow = sh.Section(visSectionConnectionPts).Row(intRowIndex)
              vsoRow.Cell(visCnnctX).Formula = !x
              vsoRow.Cell(visCnnctY).Formula = !y
              .MoveNext
           Loop
        End If
        .Close
End With

Tumanov

Russia
1198 Posts

Posted - 01/19/2010 :  16:05:15
А больше ничего в это время не работает? Например, какие-то обработчики событий, которые могут изменить ситуацию...
Go to Top of Page

yabes

39 Posts

Posted - 01/19/2010 :  16:38:21
quote:
Originally posted by Tumanov

А больше ничего в это время не работает? Например, какие-то обработчики событий, которые могут изменить ситуацию...


Больше ничего не работает. Единственное, что я здесь сделал для себя нового - это использовал вложенные Recordset! Может из-за этого?
Вот большая часть кода:
'вывод коннекторов, начиная с самого высокого уровня и до самого низкого
For i = 1 To NumOfTypesCon
    'Выборка коннекторов уровня i с выбранной страницы
    Cmd.CommandText = "Select * FROM CONNECTOR,TYPECON  where Connector.idtypecon = TypeCon.idtypecon AND Connector.IDPAG=(SELECT IDPAG FROM PAG WHERE NUMPAG='" & PAG & "') AND Connector.IDTYPECON='" & i & "'"
    Cmd.CommandType = adCmdText
    With Rst
       .Open Source:=Cmd, CursorType:=adOpenStatic, LockType:=adLockOptimistic
        If .RecordCount > 0 Then
            .MoveFirst
            Do While Not .EOF 'Вывод на страницу всех коннекторов из выборки
                 Set sh = ActivePage.Drop(Application.Documents.Item("ДИПЛОМ.vss").Masters.ItemU("" & !NAMETYPECON & ""), 0, 0)
                 sh.Name = !SHAPENAME
                 sh.Cells("BeginX").Formula = !BeginX
                 sh.Cells("BeginY").Formula = !BeginY
                 sh.Cells("EndX").Formula = !EndX
                 sh.Cells("EndY").Formula = !EndY
                 'Проверка, существуют ли у данного коннектора точки соединения
                 Cmd.CommandText = "Select * FROM CONPOINT WHERE IDSHAPE=" & !IDSHAPE & ""
                 Cmd.CommandType = adCmdText
                 With Rst2
                    .Open Source:=Cmd, CursorType:=adOpenStatic, LockType:=adLockOptimistic
                     If .RecordCount > 0 Then
                     'Если есть точки соединения
                         .MoveFirst
                         Do While Not .EOF
                            intRowIndex = sh.AddRow(visSectionConnectionPts, visRowLast, visTagCnnctPt) 'добавление точки
                            Set vsoRow = sh.Section(visSectionConnectionPts).Row(intRowIndex)
                            vsoRow.Cell(visCnnctX).Formula = !x                                                               
                            vsoRow.Cell(visCnnctY).Formula = !y
                            .MoveNext
                         Loop
                     End If
                     .Close
                 End With
                 
                 .MoveNext
            Loop
        End If
        .Close
    End With
Next
End Sub

Edited by - yabes on 01/19/2010 16:43:08
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)