DISKUSE
Jak omezit vkládání textu do textového pole z kláv... 
04.04.2024 13:55

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


ŠKOLENÍ


REKLAMA


KOMENTÁŘE
Diskusní skupina: Notes/Domino R5


Roman BeitlProblem se zpracovanim dokumentu v pohledu
12.01.2011
07:28:25

ID: 3265.0

Roman Beitl
Dobry den,
mam v DB 2 pohledy. V prvnim pohledu jsou uvedeny dokumenty ke vsem vyrobkum(cca 3000). Druhy pohled zobrazuje pouze dokumenty oznacene k exportu. Tzn. uzivatel v prvnim pohledu oznaci dokument, tlacitkem provede akci, kdy do pole EXPORT daneho doc zapise 1. Exportni pohled pak zobrazuje vsechny dokumenty kde EXPORT = 1.
V pohledu EXPORT je pak tlaciko s LS, kdy potrebuji projit vsechny dokumenty a provest export(generuji TXT soubor nejake struktury).
Pohled EXPORT projizdim v cyklu:
Set db = s.currentdatabase
Set view = db.getview("EXPORT")
Set doc = view.getfirstdocument
While Not (doc Is Nothing)
... export kod...
doc.export = "0"
Call doc.save(False, True)
Set doc = view.getnextdocument(doc)
Wend

problem: tento skript ma asi jednu vadu, kdyz takto projizdim vsechny dokumenty, zpracuji je a na konci jim nastavim EXPORT=0, meni se pocet dokumentu v pohledu, nebot dokumenty po zpracovani z pohledu "mizi". Skript pak haze chybu.

Dotaz: lze tento cyklus nejak osetrit? a nebo je nejaka lepsi metoda jak provadet export jen z urciteho vzorku dokumentu, ktere uzivatel k exportu oznaci?


PepaK Možná řešení
progr

12.01.2011
08:55:29

ID: 3265.1


Dobrý den. Řešení je několik např:
1. projít pohled a status měnit nakonci všem dokumentům hromadně
nebo
2.místo procházení pohledu vytvořit DocumentCollection a procházet v cyklu kolekci
nebo ...
rb collection - v helpu pouze na vsechny doc v DB
12.01.2011
10:38:55

ID: 3265.2


o.k. diky za hint.

ale na ty collections jsem se dival do helpu a nejak tam nemuzu najit, jak toto naroubovat na dokumenty v pohledu? vsechny priklady pouze delaji collection ze vsech dokumentu v DB viz.
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Set dc = db.AllDocuments

Mohl byste poradit jak toto aplikovat na dokumenty ve view?
rb view collection - vyreseno
12.01.2011
12:28:18

ID: 3265.3


diky za tip, chtelo jen lepe hledat.

dim vc as NotesViewEntryCollection

set db = sess.CurrentDatabase
set view = db.GetView("YOURVIEWNAME")
set vc = view.AllEntries
cifra Uprava puvodniho kodu
12.01.2011
23:09:39

ID: 3265.4


Neni potreba delat dalsi collection staci tohle:

Set db = s.currentdatabase
Set view = db.getview("EXPORT")
Set doc = view.getfirstdocument
While Not (doc Is Nothing)
set nextdoc = view.getnextdocument(doc)
... export kod...
doc.export = "0"
Call doc.save(False, True)
Set doc = nextdoc
Wend
JaMi Ještě jednodušší?
13.01.2011
00:04:26

ID: 3265.5


Když už jsme u úpravy původního kódu, možná by stačilo přidat jediný řádek:

Set db = s.currentdatabase
Set view = db.getview("EXPORT")
view.AutoUpdate = False
Set doc = view.getfirstdocument
While Not (doc Is Nothing)
... export kod...
doc.export = "0"
Call doc.save(False, True)
Set doc = view.getnextdocument(doc)
Wend
rb ano, autoupdate = false
13.01.2011
09:04:15

ID: 3265.6


ano, ano - presne takto jsem to udelal, na zacatku vypnu aktualizaci pohledu a po zkonceni ho zapnu.

diky.
VZ Logika aplikace
13.01.2011
10:22:17

ID: 3265.7


Je vůbec nutné kvůli každému exportu modifikovat dokumenty? Když to budou chtít exportovat 2 uživatelé současně , první si vybere nějaké dokumenty a nastaví v nich pole Export na "1". Druhý si vybere jiné dokumenty nastaví v nich stejné pole a v pohledu Export se to krásně pomíchá, eventuálně budou vznikat konflikty.
Nebylo by jednodušší:
1. vybrat dokumenty v pohledu,
2. zobrazit si jen ty vybrané (menu View\Show\Selected only nebo akce @Command( [ViewShowOnlySelected] ) )
3. zpracovat kolekci NotesDatabase.UnprocessedDocuments a na konci zpracování každého dokumentu volat Call notesSession.UpdateProcessedDoc( notesDocument )
PepaK Hint
prog

13.01.2011
10:43:39

ID: 3265.8


Já jsem svůj příspěvek zamýšlel jako nakopnutí. :-)
Proto tam bylo nebo ...
protože v dotazu není uvedeno, co se s tím pohledem pro export ještě dělá či děje, co znamená změna pole Export pro další uživatele, ... atd.

Jen malý dotaz >cifra :
Set doc = nextdoc tohle jsem nepochopil, nextdoc je co prosím. Dík předem.
VZ Další metoda: Použití folderu
13.01.2011
10:46:42

ID: 3265.9


Místo nastavování hodnoty pole Export v každém dokumentu by šlo přidávat vybrané dokumenty do Exportní složky. Design exportní složky by byl stejný jako u pohledu, ale uživatel by si to tam přetahoval myší nebo třeba pomocí @AddToFolder(foldernameadd ; foldernameremove).
A exportovací skript by ty dokumenty zase odebíral pomocí Call notesDocument.RemoveFromFolder( folderName$ ). Jinak se s tím pracuje z hlediska skriptu úplně stejně jako s pohledem, jen by nebylo nutné modifikovat a ukládat dokumenty.
Tomáš Hanus RE: Hint (PepaK)
13.01.2011
12:57:09

ID: 3265.10


Pro zpětnou referenci. NextDoc je pomocná proměnná, která ukazuje na další objekt v pohledu dle tomu předešlému, který z pohledu zmizí ve chvíli, kdy nevyhovuje podmínce. Proto viewUpdate=False nebo toto řešení. Je to klasický "návrhový vzor" například pro mazání dokumentů v pohledu. Na další dokument v pohledu se nelze odkázat díky tomu předešlému, protože již neexistuje.
rb dalsi moznosti pohledu EXPORT
13.01.2011
13:38:11

ID: 3265.11


to jak vybirat dokumenty k exportu uz je vec konkertni potreby. v mem pripade, jsou 2 cesty, jednak je dokument oznacen k exportu automaticky(v jine DB se provede zmena ktera ma vliv na dokument, tento pak spadne do pohledu EXPORT, kde ceka na zpracovani), nebo uzivatel primo oznaci(nastavi tlacitkem export=1) dokument pro EXPORT.
Tomáš Hanus RE: dalsi moznosti pohledu EXPORT
13.01.2011
15:51:11

ID: 3265.12


To zajisté. To, co měl VZ na mysli je fakt, že je reálná možnost, kdy v jednu chvíli bude dokument editovatelný dvě uživateli (i více), a to "agentem" a běžným uživatelem aplikace (pokud on vidí ty, které jsou označeny k exportu). Z toho pak mohou vzniknout konflikty (záleží na konfiguraci). Pokud taková situace může nastat z hlediska používání aplikace je již na vás.
PepaK RE>Tomáš Hanus
progr

14.01.2011
08:36:20

ID: 3265.13


Tomáš Hanus: Četl jsem Váš kód moc rychle a nevšiml si definice nextdoc. :-)

Osobně používám raději v těchto případech postup:
přesun do folderu - cyklus dle potřeby a pak třeba vytvoření kolekce a pomocí StampAll změna příznaku. Tento postup se mi osvědčil nejvíc. Ale tak jak jsem už napsal, záleží na konkrétním zadání.

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)