Пропадают данные из представлений

  • Автор темы Kron
  • Дата начала
K

Kron

#1
В представлении по форме исчезают данные, хотя в другом представлении они есть, но тут начинается самое интересное. По главной форме конторы если нет то и не срабатывают действия, и что делать ума не приложу я наверно дуб.
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
<!--QuoteBegin-Kron+11:10:2007, 12:41 -->
<span class="vbquote">(Kron @ 11:10:2007, 12:41 )</span><!--QuoteEBegin-->В представлении по форме исчезают данные, хотя в другом представлении они есть
[snapback]81383" rel="nofollow" target="_blank[/snapback]​
[/quote]
НУ значит в первом представлении формула отбора отрабатываеткакойто параметр
 
K

Kron

#3
SELECT ((Form = "AgentForm"))
в первом, в котором конторы как бы нет и действия не работают

SELECT ((Form = "AgentForm")) & (@Contains(AgentType; "На обслуживании")) | (@Contains(AgentTypeStroy; "На обслуживании")) | (@Contains(AgentTypeAros; "На обслуживании")) | (@Contains(AgentType_reg; "На обслуживании")) | (@Contains(AgentTypeAros_1; "На обслуживании"))
во втором из конторого визуально не пропадают.

И самое обидное, они когда вылетают то по ним нельзя выдать задание, соотвкетственно потеря данных и как результат конторы вообще :) :(
 
R

redbestcat

#4
Для: Kron

в другом селекте правильно расставь скобки.
 
K

Kron

#5
как парвитльно все ведь рабоатет :)

все работает, а конторы сами по себе как хотят так и вылетают, но их ИД остаются
 
R

redbestcat

#6
1. Это не приватное представление?
2."AgentForm" - там случайно не работает какой-то агент, который эти самые формы "перемешывает" :) ?
 
K

Kron

#7
AgentForm работает с формы AgentSubForm (подформа) и вот на подформу всё завязано

представление обычное
 
R

redbestcat

#8
В представление с селектом

SELECT ((Form = "AgentForm")) & (@Contains(AgentType; "На обслуживании")) | (@Contains(AgentTypeStroy; "На обслуживании")) | (@Contains(AgentTypeAros; "На обслуживании")) | (@Contains(AgentType_reg; "На обслуживании")) | (@Contains(AgentTypeAros_1; "На обслуживании"))

могут попадать документы, которые в представление с селектом

SELECT ((Form = "AgentForm"))

Не попадают.

У вас именно так? Тут нет ничего странного - так и должно работать.
 
K

Kron

#9
Предсьавление текущие клиенты отбор
SELECT ((Form = "AgentForm")) & (@Contains(AgentType; "На обслуживании")) | (@Contains(AgentTypeStroy; "На обслуживании")) | (@Contains(AgentTypeAros; "На обслуживании")) | (@Contains(AgentType_reg; "На обслуживании")) | (@Contains(AgentTypeAros_1; "На обслуживании"))

Представление все компании в том чиле итекущие клиенты отбор

SELECT ((Form = "AgentForm"))

В текущих клиентах контора есть в преставлении где должны буть все её нет, причем ни каких связей или аналогий м\у конторами которые вылетают нет.

И самое страшное, и что пугает когда пытаешься из представления текущих клиентов,открыть карточку, онаоткрывается :) , но гдевсе её нет, и ужаз в том что при выдаче заданий, конторавсе равно не появляется.

И самое главное, если я делаю переход внури конторы редактироватиь сохранить и выйти, она появляется везде и в текущих и во всех :(
 
R

redbestcat

#11
Ошибка в логике формулы отбора представления "текущие клиенты" скрыла какую-то более глобальную ошибку в работе системы.

Ошибка вот в чем:
сюда ((Form = "AgentForm")) попадают только те документы у кого Form = "AgentForm" и это понятно

а сюда ((Form = "AgentForm")) & (@Contains(AgentType; "На обслуживании")) | (@Contains(AgentTypeStroy; "На обслуживании")) | (@Contains(AgentTypeAros; "На обслуживании")) | (@Contains(AgentType_reg; "На обслуживании")) | (@Contains(AgentTypeAros_1; "На обслуживании"))

Могут попасть документы у которых например (@Contains(AgentType_reg; "На обслуживании")) но Form != "AgentForm". Тоесть они в представление ((Form = "AgentForm")) не попадут!!!

Так оно у вас и есть.

Судя по вашим высказываниям, формула для представления "текущие клиенты" должна быть написана так:

((Form = "AgentForm")) & ((@Contains(AgentType; "На обслуживании")) | (@Contains(AgentTypeStroy; "На обслуживании")) | (@Contains(AgentTypeAros; "На обслуживании")) | (@Contains(AgentType_reg; "На обслуживании")) | (@Contains(AgentTypeAros_1; "На обслуживании")))

Чтобы быстро исправить ошбку. Вернее не исправить а "заклепать" нужно в представлении "все компании" написать формулу

SELECT (Form = "AgentForm") | (@Contains(AgentType; "На обслуживании")) | (@Contains(AgentTypeStroy; "На обслуживании")) | (@Contains(AgentTypeAros; "На обслуживании")) | (@Contains(AgentType_reg; "На обслуживании")) | (@Contains(AgentTypeAros_1; "На обслуживании"))

"заклепать" - потому как за стабильность системы в таком случае не ручаюсь. Но те документы которые вам нужно - вы точно увидете

А там не респонсные документы случайно?
кстати - точный вопрос.
 
K
#12
неа, фишка втом что один документ, ответы все нормально,самое главное, главныйдок на которое все вяжется вылетает

"заклепать" - потому как за стабильность системы в таком случае не ручаюсь. Но те документы которые вам нужно - вы точно увидете
Сработает, но тогда получается я просто приравняю представления, так, а суть исчезновения карточек??? ни как не измениться

А может связано с подформой с ИД формы
 
R

redbestcat

#13
Для: Kron
но тогда получается я просто приравняю представления, так, а суть исчезновения карточек??? ни как не измениться
1. Не преравняете а добавите. В "все компании" вы увидите те, что раньше видели + те что в "текущие клиенты".

2. Суть в ошибке системы. Мне кажется, вам не совсем понятна работа логических операторв.

Опишите словами, как вы понимаете формулу

SELECT ((Form = "AgentForm")) & (@Contains(AgentType; "На обслуживании")) | (@Contains(AgentTypeStroy; "На обслуживании")) | (@Contains(AgentTypeAros; "На обслуживании")) | (@Contains(AgentType_reg; "На обслуживании")) | (@Contains(AgentTypeAros_1; "На обслуживании"))
 
K
#14
Отбор всех карточек по форме и в том числе с параметром На обслуживании в поле AgentType, которое в данной форме | показатель или.

Sub Initialize
Dim ns As New notessession
Dim db As notesdatabase
Dim nedel As String
Dim mes As String
Dim password As String
Dim den As String
Dim dc As notesdocumentcollection
Dim doc1 As notesdocument
Dim doc2 As notesdocument
Dim ni As notesitem
Dim fields List As String
Dim d As notesdatetime
Set db = ns.currentdatabase

password = Inputbox("Введите пароль","")
If password = "неделя" Then

mes = Inputbox("Введите номер месяца","")
If Len(mes)=1 Then
mes = "0"+mes
End If

nedel = Inputbox("Введите номер недели","")
Set dc = db.search( | form="AgentForm" & AgentUpdateWeek="|+nedel+|" & AgentUpdatemonth="|+mes+|" & AgentType="На обслуживании"|,Nothing,0)
' Set dc = db.search(|form="AgentForm" & AgentUpdateWeek="|+nedel+|" & AgentUpdatemonth="|+mes+|"|,Nothing,0)
If dc.count = 0 Then
Msgbox "Документов не найдено!"
Exit Sub
End If
Fields("AgentShortName")="UpdateContactAgent"
Fields("AgentUpdateManager") = "UpdateContactManager"
Fields("AgentFactor")="UpdateContactFactor"
Fields("Agent_ID")="UpdateContactAgentID"
Fields("AgentPrivod")="UpdateContactPrivod"
Fields("AgentUpdateDay")="UpdateContactDay"
Fields("AgentUpdateWeekForAccount")="UpdateContactWeekForAccount"
Fields("AgentLawSystemCodeForAccount")="БД_для_выписки"
Fields("AgentLawSystemSummKodeks")="Сумма_счета"
Fields("AgentAccountComments")="Комментарий_счета"
Fields("depchief")="depchief"
Fields("docauthors")="docauthors"
Fields("docauthor")="docauthor"
Fields("docreaders")="docreaders"

Set d = New notesdatetime("01."+mes+"."+Cstr(Year(Now)))
Call d.adjustmonth(+1)
Call d.adjustday(-1)
Set doc1 = dc.getfirstdocument
While Not doc1 Is Nothing
Set doc2 = db.createdocument
doc2.form="UpdateContactForm"
Forall field In fields
Set ni = doc1.GetFirstItem(Listtag(field))
If Not ni Is Nothing Then
Call doc2.CopyItem(ni,field)
End If
End Forall
doc2.UpdateContactRate="40"
doc2.UpdateContactRate_1="40"
doc2.UpdateContactTaskDate=Year(Now)
doc2.UpdateContactCondition="Выдано"
doc2.UpdateContactWeek = nedel
doc2.UpdateContactMonth = mes

Dim iadmin As New notesitem(doc2,"admin","[admin]",AUTHORS)

doc2.docid = doc2.UniversalID
doc2.parentdocid = doc1.UniversalID

Call doc2.save( True,True)
Set doc1 = dc.getNextDocument(doc1)
Wend
Else
Print "Пароль НЕ верен!"
End If
End Sub
Вот действие которое в принципе и делает задания, по нему и выявили эту ошибку
 
R

redbestcat

#15
Понимаете правильно.
Но вы обратили внимание что это самое "или" относется не к (@Contains(AgentType; "На обслуживании")) а ко всему ((Form = "AgentForm")) & (@Contains(AgentType; "На обслуживании")) ?


И самое страшное, и что пугает когда пытаешься из представления текущих клиентов,открыть карточку, онаоткрывается ohmy.gif , но гдевсе её нет, и ужаз в том что при выдаче заданий, конторавсе равно не появляется.

И самое главное, если я делаю переход внури конторы редактироватиь сохранить и выйти, она появляется везде и в текущих и во всех wink.gif
1. возьмити документ, который пропал в "все компании" но есть в "текущие клиенты"
2. посмотрите через свойства документа значение поля "Form"

Я думаю что оно не равно "AgentForm". Когда он откроется (возможно в представлении Form Formula указана как "AgentForm") и вы его пересохраните. Значение поля Form будет "AgentForm" и документ опять отобразится в представлении "все компании"
 
K
#16
2. посмотрите через свойства документа значение поля "Form"
в свойствах документа не нашел поле Form

нашел оно везде
Имя поля: Form
Тип данных: Набор строк
Размер данных: 13 байт
Порядковый номер: 12
Код дубликата: 0
Флаги поля: SUMMARY

"AgentForm"
 
R

redbestcat

#17
Если его там нет - то в представление "все компании" он точно не попадет.

а что-то из
(@Contains(AgentTypeStroy; "На обслуживании")) |
(@Contains(AgentTypeAros; "На обслуживании")) |
(@Contains(AgentType_reg; "На обслуживании")) |
(@Contains(AgentTypeAros_1; "На обслуживании"))

должно быть.
 
R

redbestcat

#19
ну если оно есть и в представление "все компании" этот док не попадает то тебе нужен бубен :)