Friday, 2 March 2012

Če bo imel kdo želje po splitter-ju (separatorju) znotraj katerekoli grupe (na sliki med vračilnico in prevzemom) v initu gumba doda BeginGroup="true", če tega ni se smatra kot false.

Slika v vrstici 1

primer isti kot na sliki:
PageGroup Name="MaterialManagment" Caption ="Materialno" Group="MaterialManagmentStandard">

Button Name="Issue"
Caption ="Izdajnica"
LargeGlyph="issue"
Command="GetIssueBrowseView"
Group="MaterialManagmentStandard"

Button Name="ReturnIssue"
Caption ="Vračilnica"
LargeGlyph="issue"
Command="GetReturnIssueBrowseView"
Group="MaterialManagmentStandard"

Button Name="Acquisition"
Caption ="Prevzem"
LargeGlyph="acquisiton"
Command="GetAcquistionBrowseView"
Group="MaterialManagmentStandard"
BeginGroup="true"
PageGroup


--
lp, Primož Marzidošek

Thursday, 15 December 2011

Update Textbox async

V primeru async nalaganja podatkov v formo in posodabljanja textboxov, itd. se vam lahko zgodi da dobite napako da je controla  kreirana v drugem threadu.
Pravilni način za posodobitev vrednosti textboxa in drugih kontrol je z uporabo delagatov in metode za posodobitev vrednosti v textboxu. Enostavno naredimo metodo, ki posodobit vrednost textboxa.
Kokončamo z async nalaganjem in želimo prirediti vrednost kličemo metodo za nastavitev texta, ona se pa odloči če je ali nastavi ali pa kliče nov thread za nastavitev vrednosti.

delegate void SetTextCallback(string text);
private void SetText(string text)
{
if (this.textBox1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this
.Invoke(d, new object[] { text });
}
else
{
this.textBox1.Text = text;
}
}


Friday, 14 October 2011

Naključno sem naletel na še en način registracije Propertijev v objektih, ki odpravlja pogoj da mora biti ime pri kreiranju PropertyInfo objekta enako kot sam property.

private static PropertyInfo<int> UpdateActionTypeProperty = RegisterProperty(new PropertyInfo<int>("UpdateActionType", "UpdateActionType"));

public int UpdateActionType { get; set; }

V tem primeru lahko z lambda expression registritamo property z katerim koli propertijem v objektu. Ni potrebno enako ime, če bomo napisali napačno ime se bo napaka pojavila že med samim buildom.

private static PropertyInfo<int> UpdateActionTypeProperty = RegisterProperty<int>(x => x.UpdateActionType, "UpdateActionType");

public int UpdateActionType { get; set; }

Bolj podrobno

Tuesday, 19 July 2011

32bit aplikacije na 64bit Windows serverju ( IIS )

PRO.3 Services v osnovi na 64-bitnih aplikacijah ne delujejo. Da vzpostavimo delovanje moramo zagnati naslednji ukaz :

cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 “true”

Iz  mape c:\inetpub\wwwroot\AdminScripts.



še vir : Microsoft | TechNet

-

Friday, 10 June 2011

Preštevilčenje Identa - Save (session)

Primer uporabe preštevilčenja v potnih nalogih, kjer je bilo polje na bazi UniqueKey in je bilo potrebno, da se znotraj iste transakcije naprej podatki pobrišejo in se zatem omogoči zapis preštevilčenih potnih nalogov.

1.Na listi je potrebno narediti override metode save(session)

2. Poskrbeti je potrebno da je lista ki ji shranjujemo IsDitry = true


3. Po klicu Save() pridemo v override metode save(session), kjer moramo poskrbeti, da je vsak BO v listi IsDirty = true . Primer na sliki, prikazuje delete in insert znotraj iste transakcije.

Wednesday, 1 June 2011

Registriranje DLLjev - Network drive

Pri registriranju dllje na disku, ki ji je tipa Network drive, je potrebno folderju nastavit FulllTrust. To storimo tako v cmd vpišemo naslednji ukaz :
caspol.exe -m -ag LocalIntranet_Zone -url \\\\ FullTrust -n FullTrustShare



Friday, 27 May 2011

ManyToOne vezave na Info objektih

e bo kdo zasledil kakšne napake pri filtriranju kombota na polja, ki jih dobimo preko ManyToOne, naj bo pozoren na Info objekt, kako je sestavljen ManyToOne.

Z kodo na zgornji sliki se je objekt ContactInfo normalno napolnil vendar je javilo napako ko sem na kombotu filtriral po ContactInfo.ShowAs npr.

Rešitev je na spodnji sliki kjer je odstranjen CSLA...

Tuesday, 1 February 2011

Dodajanje novih vlog - Aplikacijske

Če po novem dodamo nove vloge znotraj kode ( npr. CRMRoleList.SetRoles() ) ,

-- se NE DODA AVTOMATSKO V DB ! -- ta postopek moramo do nadaljnega narediti ročno --

To se mora narediti pri vsakem deployu na drugo bazo ( Protestni, SDX, ... )

Tuesday, 11 January 2011

Inline editing

Za dodajanje nove vrstice se omogoči property AllowNew in implementira event AddingNew:
private void

_bindingSource_AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e)
{
//namesto NewEntity() seveda uporabimo dataService (da ne bo nepotrebnih komentarjev :)
e.NewObject = PFPTWorkTimesDetail.NewEntity();
}

Wednesday, 8 December 2010

Tuesday, 7 December 2010

Advanced PICKER forma

In smo dočakali ... vsaj delno :). Za enkrat deluje samo metoda, ki je opisana spodaj.

var modalDialogResult = _viewService.ShowPickerForm ("Naziv modalnega okna", new TravelOrderBrowseList.Criteria());

            //pred tem še seveda preverimo ali je uporabnik sploh kliknil "Potrdi" - DialogResult

            if (modalDialogResult != null && modalDialogResult.View != null)
            {
                var selectionView = modalDialogResult.View as IPBAdvancedPickerForm;

                if (selectionView!= null)
                {
                    var selectedRows = selectionView.GetSelectedRows;

                    // DO Your MAGIC!
                }
            }


Manjka še metoda : ShowPickerForm(object selectionList, string caption) ter seveda možnost obvezne izbire samo ENEGA zapisa.
Če bo čas na moji strani bom probal še narediti tako, da se vrne lista s pravimi objekti ... oz. kakšna helper metoda, ki ti sama pretvori v "pravo" listo ...

To je to ... sedaj pa hitro uporabljat ...

Friday, 3 December 2010

Init vs Initilize

Vprašanje kdo, kaj, zakaj, metoda Initialize?

Ta metoda se kliče vedno ob kreiranju NH povezav 1:m, m:1, .... ko se naloži objekt iz baze. Na listah se pravi povezavah 1:m naredi NH ISet objekt, ki ga potem naložimo v naš List objekt. ForEach in za vsak objekt posebaj kličemo Init od objekta.

Zaključek:

Init = naš, csla
Initialize = Nhibernate

Tuesday, 30 November 2010

Registracija WCF-ja v IIS

Včasih je potrebno "ponovno" registrirati WCF service znotraj IIS-a

komanda je naslednja :

"C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe-i "

NHibernate - Unique-Index

Da zagotovimo unikatnost podatkov tudi na DB nivoju lahko polja kot so "IDENT" opremimo z atributom "Column".

Klasični atribut za property je
[Property(Name = "Ident", Column = "Ident", Length = 10)]
 Če pa želimo narediti unique index pa moramo ločiti Property ter Column atribut na naslednji način:
[Property(0,Name = "Ident")]
[Column(1,Name = "Ident", Length = 20, Unique = true, UniqueKey = "CostCenterIdent")]

Saturday, 27 November 2010

Using The Guid.Comb Identifier Strategy

Alternativa navadnim "Guid" primary key's ... baje je boljše zaradi indexov.

@Mitja : a bomo testirali ? :)

http://nhforge.org/blogs/nhibernate/archive/2009/05/21/using-the-guid-comb-identifier-strategy.aspx