DISKUSE
HCL Domino na NAS QNAP (1)
20.02.2024 10:34

Vložení přílohy do dokumentu MS Word (3)
14.02.2024 20:54

Problěmy s diakritikou. (4)
06.02.2024 17:34

AI pomocnici 
15.01.2024 10:16

Export do pdf souboru (1)
12.01.2024 23:11

Agent přestává fungovat (1)
18.11.2023 06:42

RTF - Computed (2)
19.10.2023 13:00

Čtení polí v neuloženém dokumentu 
08.10.2023 17:15


ŠKOLENÍ


REKLAMA


KOMENTÁŘE
Diskusní skupina: Programování


Václav Ťulákproblém při práci s výběrem
18.01.2020
14:32:55

ID: 3726.0

Dobrý den,
narazil jsem na problém který zatím nedokážu vyřešit, při práci s výběrem dokumentů v pohledu dle následujícího výpisu (jde o jednoduchou změnu hodnoty jednoho pole ve vybraných dokumentech prostřednictví akčního tlačítka a následný refreš pohledu již bez změněného dokumentu) všechno funguje dokud neudělám následující postup:

1. označím si 1 či více dokumentů (je jedno zda stojím na jednom z vybraných dokumentů či ne)
2. provedu akci (ta se provede OK)
3. aniž bych by udělal další výběr, mám jen vysvícený dokument v pohledu, provedu akci znovu a nic se nestane.

Po čerstvém otevření databáíze, dokud neudělám nějaký výběr, akce funguje i na vysvícený dokument, pak už ne.

při ladění jsem zjistil že zůstává stále informace o výběru aktivní (dc.count má stále původní hodnotu), takže skript probíhá a přepisují se obsahy polí z předchozí akce jakoby dokumenty byly stále vybrané a v původním pohledu. Když kliknu myší na jiný řádek, či přepnu pohled nic se nezmění, musím zavřít a znovu otevřít databázi. Pokud udělám jiný výber s tím to funguje, ale pak je situace stejná

Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uiview As NotesUIView
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Set uiview = ws.CurrentView
Set dc = uiview.Documents
If dc Is Nothing Then
Set doc = session.DocumentContext
Else
Set doc = dc.GetFirstDocument
End If
While Not (doc Is Nothing)
Call doc.Replaceitemvalue("Archiv", "A")
Call doc.Save(True, True)
If dc Is Nothing Then
Set doc = Nothing
Else
Set doc = dc.GetNextDocument(doc)
End If
Wend
Call ws.ViewRefresh
End Sub

existuje nějaká možnost jak informaci o původním výběru odstranit jinak než znovuotevřením databáze? Na nic nemůžu přijít.

Děkuji za pomoc.
Václav Ťulák tak už jsem to vyřešil
20.01.2020
12:57:01

ID: 3726.1


nakonec skriptu jsem musel přidat

Call uiview.DeselectAll

Nějak mi nenapadlo hledat o třídu výše než v collections.
mpistora Agentem na vybrané dokumenty
21.01.2020
16:24:26

ID: 3726.2


Standardně se to řeší agentem nastaveným na "All selected documents", který se volá z akčního tlačítka pohledu. Ve skriptu se kolekce získá pomocí db.UnprocessedDocuments a je tak zajištěno, že se pracuje buď s aktivním dokumentem nebo s "oháčkovanými", jen zřidka je to potřeba rozlišovat.
Po skončení agenta se deselect provede automaticky, kód přímo v akčním tlačítku to nedělá (to se hodí jen zřídka).
Vaclav Ťulák Diky za tip
24.01.2020
11:40:15

ID: 3726.3


Agenta jsem nechtěl použít, byla to jednoúčelová záležitost do konkrétního pohledu a takto mi to připadlo čistší. Nakonec se to tedy povedlo ale chvíli mi to zabralo, ten deselect jsem hledal ve špatné třídě.

Přidejte názor
Autor:
Profese:
E-mail: i
URL:
Phone:
Předmět:
Obsah příspěvku (i):

Kolikátý je den v měsíci ? (číslovkou bez tečky)