.: Doporučujeme: Aveo Club.:.O.Zátopek.:.OldaSoft.EU:.

Úvod

ORA-12712 on NLS_CHARACTERSET changing from EE8MSWIN1250 to AL32UTF8 I tried to change character set in my oracle database because of Russian localization, I tried command: ALTER DATABASE CHARACTER SET AL32UTF8; i got this error: ORA-12712: new character set must be a superset of old character set After some googling I found solution, below are the commands executed by me: SQL> SHUTDOWN IMMEDIATE; SQL> CONNECT SYS/password AS SYSDBA; SQL> STARTUP MOUNT; SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL> ALTER DATABASE OPEN; SQL> ALTER DATABASE CHARACTER...(read more) 27.1.2012 11:37:11
AjaxControlToolkit.Binary.NET4 I have fond some unresolved issue in last ASP.NET Ajax Control Toolkit project. I tried use calendar extender with fallowing result: The requested script resource 'Common.Common.js' requires version 'AjaxControlToolkit, Version=4.1.51116.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e' of the ASP.NET AJAX Framework. To use this resource, make sure that the application references version 'AjaxControlToolkit, Version=4.1.51116.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e'. I wasn’t able...(read more) 26.1.2012 11:26:04
ora-12154 tns could not resolve the connect identifier specified Issue : Cant connect from Visual Studio to Oracle DB on Windows 64 bit system Solution : Move Visual Studio from Program Files (x86) to Program Files folder Reason : Oracle driver doesn't accept parenthesis in working path Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!...(read more) 24.1.2012 14:31:00
Omezení výběru uživatelů v dialogu výběru uživatelů

Celé to začalo podivným chováním úkolů v SharePointu. Jeden uživatel (říkejme mu třeba Karel Novák) měl přiřazeno několik úkolů. O všech mu přišla notifikace, že mu byly přiřazeny, ale některé nemohl měnit z důvodů nedostatku práv. Prostředí bylo nastaveno tak, že právo měnit úkol měl pouze přiřazený uživatel a zadavatel úkolů. Zběžná kontrola úkolů neodhalila nic podezřelého. Oba zkoumané úkoly vypadaly na vlas stejně. Práva byla nastavena automatickým procesem a taky byla stejná. Tedy alespoň na první a druhý pohled. Nakonec jsem si všiml, že problém byl v tom, že není Karel Novák jako Karel Novák. I když byl ve firmě jediný. On totiž měl 2 loginy v různých doménách se stejným jménem. Díky tomu se v dialogu pro výběr uživatele zobrazoval 2x. Pokud ale zadavatel úkolu zadal přesné jméno už v dialogu úkolu a stiskl Ctrl+K tedy ověření, tak ověření prošlo. Ale který z těch dvou účtů byl vybrán, to už se zadavatel nedozvěděl.

Naštěstí s tímto problémem při vývoji SharePointu počítali, takže se dá omezit, ze kterých organizačních jednotek se mají nabízet uživatelé při výběru uživatelů.

Dá se určit organizační jednotka AD, na kterou se má omezit výběr uživatelů:
stsadm -o setsiteuseraccountdirectorypath -path "OU=Sales,DC=ContosoCorp,DC=local" –url http://ServerName

Taky se dá určit, že

  1. při ověřování jména uživatele (tlačítko Kontrola jmen, nebo Ctrl+K) se mají brát v potaz pouze ti uživatelé, kteří mají přístup k dané kolekci webů:
  2. stsadm -o setproperty –pn peoplepicker-Peopleeditoronlyresolvewithinsitecollection –pv yes –url <Web application URL>
  3. ve vyhledávacím dialogu (tlačítko Procházet) se mají brát v potaz pouze ti uživatelé, kteří mají přístup k dané kolekci webů:
  4. stsadm -o setproperty –pn peoplepicker-onlysearchwithinsitecollection –pv yes –url <Web application URL>

Pokud potřebujete něco sofistikovanějšího, můžete výběr uživatelů z AD omezit pomocí LDAP dotazu:
stsadm –o setproperty –pn peoplepicker-searchadcustomfilter -pv <LDAP query filter> -url <Web application URL>

Kompletní popis najdete na MSDN.

Při praktickém použití je ale nutné udělat ještě jednu věc. Samotné omezení výběru z Active Directory nestačí. Pokud totiž uživatel (resp. jeho login) už v SharePointu figuruje, např. proto, že mu byl přiřazen úkol, práva ... , je v seznamu uživatelů SharePointu. Jako takový je do výsledku vyhledávání v PeoplePickup editoru taky zahrnut, ať už výše uvedeným omezením vyhovuje, nebo ne. Proto je nutné, k tomu abyste se takového loginu zbavili uplně, odstranit ho i z tohoto "seznamu". S tím souvisí další trik. Standardně se totiž k seznamu všech uživatelů pomocí webového UI SharePointu nedostanete. Lze zobrazit jen členy určité skupiny. K tomu slouží stránka s adresou http://server/_layouts/people.aspx?MembershipGroupId=XXX. Parametrem XXX je ID té skupiny. Pokud použijete 0, dostanete seznam všech uživatelů bez ohledu na to členy jakých skupin jsou (pokud vůbec nějakých).

19.1.2012 22:30:00
Odkazy z prohlížeče – 19.1.2012

CodeProject

HW, roboti a udělátka

Ostatní

19.1.2012 6:29:47
Grid–RowDefinitionPattern

Pro usnadnění práce s Gridem mě napadlo takové vylepšení jak si ulehčit práci s definování jednotlivých řádků. Místo definice v XAMLu, jsem si vytvořil vlastní Grid, který má vlastnost RowDefinitionPattern, kterou lze nastavit jednoduše na hodnotu např.": RowDefinitionPattern="50 50 150 20 1 A" (mezera slouží jako oddělovač a hodnoty jsou v celku intuitivní)

image

Dalším usnadněním, které mě v této souvislosti napadlo bylo automatické generování řádku dle toho v jakém pořadí jsou UIElementy v Gridu:

Občas se mi stává, že mám Grid rozdělený na 20 řádků a zrovna poslední řádek potřebuju vložit na první místo. Tzn. přepsat všechny vlastnosti Grid.Row což je velice otravné, obzvlášť když testujete několik variant rozložení jednotlivých prvků. Řešením může být přepsání metody OnInitialized, kde projdeme všechny UIElementy v kolekci Children a inkrementálně nastavíme Grid.Row. UIElementy budou mít tedy číslo řádku právě takové, v jakém pořadí se nacházejí v XAMLu.

image

12.1.2012 12:22:23
WPF 4.5 Developer Preview - Binding to static properties

Určitě se Vám někdy stalo, že jste chtěli použít Binding na statickou vlastnost a ono to jednoduše nešlo. Nyní je vše jinak a velice jednoduše můžete nabindovat cokoli z UI na statickou vlastnost.

Notifikace změny statické vlastnosti se může provádět dvěma způsoby:

  1. pomocí static event EventHandler <název-vlastnosti>Changed – pokud máme ovšem více statických vlastností, musíme mít více handlerů.
  2. nebo pomocí static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged – kde jednoduše předáme pouze název vlastnosti

Další změnou je i syntaxe Bindingu, která využívá klasické závorky: Text="{Binding Path=(local:Class1.Abc)}"

Xaml i code-behind je pro oba případy stejný

image

image

Add 1.

image

Add 2.

image

12.1.2012 10:55:06
Odkazy z prohlížeče – 10.1.2012

Codeproject

HW a robotické věci

Ostatní

11.1.2012 0:38:17
WPF 4.5 Developer Preview - Automatically updating the source of a data binding

Třída BindingBase se rozrostla o novou vlastnost Delay. Tato vlastnost nám umožní specifikovat čas (v ms) než dojde k aktualizaci zdroje. Ukázkové použití:

Máme formulář, kde jsou jednotlivé vlastnosti nabindované na TextBox, respektivě na jejich vlastnost Text. Jakmile uživatel píše do TextBoxu, hodnota se díky módu TwoWay propisuje automaticky do naši vlastnosti, kde provádíme nějakou akci (např. validace, apod.) Někdy je ovšem nepodstatné aby se tato kontrola prováděla při každém stisku klávesy a v tom případě můžeme nastavit Delay na pár sekund, které by teoreticky mohly stačit k vyplnění příslušné hodnoty a binding po uplynutí této doby aktualizuje zdroj a validace se provede 1x.

Poznámka: Pokud chcete používat Delay, musí být hodnota Mode=TwoWay a UpdateSourceTrigger=PropertyChanged

image

image

Ukázka z aplikace:

image

Po uplynutí 3s:

image

Závěr:

Při testování zadání hodnoty s mezerou např.": “sdf sdfs sdf sdfs sdf” to přestane ovšem fungovat a VS zahlásí chybu:

System.Windows.Data Error: 8 : Cannot save value from target back to source. BindingExpression:Path=Name; DataItem='DelayDataBinding' (Name='aaa'); target element is 'TextBox' (Name=''); target property is 'Text' (type 'String') ArgumentException:'System.ArgumentException: 'sdf sdfs sdf sdfs sdf' is not a valid value for property 'Name'.
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   at MS.Internal.Data.PropertyPathWorker.SetValue(Object item, Object value)
   at MS.Internal.Data.ClrBindingWorker.UpdateValue(Object value)
   at System.Windows.Data.BindingExpression.UpdateSource(Object value)'

Vypadá to asi na nějaké bug.

Moje chyba, používal jsem název vlastnosti Name, který už ovšem existuje v rámci UserControlu.

10.1.2012 13:30:00
WPF 4.5 Developer Preview - Accessing collections on non-UI Threads

WPF 4.5 nabízí novou metodu, která nám umožní přistupovat ke kolekci z různých vláken. V UI vlákně kolekci vytvoříme, ve vlákně na pozadí jí modifikujeme a data se nám zobrazí bez žádného problému v UI. Metoda EnableCollectionSynchronization přebírá jako parametr pouze kolekci a objekt k synchronizovanému přístupu ke kolekci:

image

10.1.2012 12:48:18
Rss novinky

Rady a tipy

celý seznam 



Hledání

Speciál

Freeware
  • SQLCreator
    [ generování uložených procedur pro MS SQL ]

Odkazy

Copyright (c) 2006 - OldaSoft - Kontakt