kolmapäev, 21. detsember 2016

Märkeruudu ärakaotamine CheckBoxListi grupeerimisel

ASP.NET CheckBoxList komponendil mõnikord vaja nimekirja grupeerida erinevatel põhjustel


Kogu trikk põhineb CSS3 kasutamisel, kuna see võib tekitada segadusi projekti piirides, siis mõtekas kasutada "inline CSS", näiteks vajaliku userControli sees

<style>
    #CheckBoxListOtsinguMajad input:disabled {
        display: none;
    }
</style>
reegli mõju piirame CheckBoxListOtsinguMajad komponendi nende osadega, mille input:disabled, ehk märkeruuduga, sättida tuleb ka  ClientIDMode="Static" , et ASP.NET komponendi ID-d ei muudaks ja CSS3 reegel komponendi tuvastaks

asp:CheckBoxList ID="CheckBoxListOtsinguMajad" ClientIDMode="Static"
Kui nüüd CheckBoxListi ListItem seada Enabled=False, siis vastavale reale CSS reegel rakendub ja kuna display: none; siis märkeruut kaob ära


protected void CheckBoxListOtsinguMajad_PreRender(object sender, EventArgs e)
    {
        foreach (ListItem it in this.CheckBoxListOtsinguMajad.Items)
        {
            if (it.Value.Equals("0")) //grupeeringu tunnus
            {
                it.Enabled = false;
                it.Selected = false;
                it.Attributes.Add("style", "font-size:14px;height:16px;font-weight:bold;");
            }
        }
    }

 Grupeeringu rida aga võiks teistest tugevamalt eristada, täiendame stiili
 it.Attributes.Add("style", "font-size:14px;height:16px;font-weight:bold;");

kolmapäev, 19. oktoober 2016

Raporti andmeallika akna taastamine


Ctrl+Alt+D klahvikombinatsioon toob raporti Report Data andmeallikate akna tagasi, kui see peaks kadunud olema



teisipäev, 29. märts 2016

Eesti isikukoodi kontrollsumma arvutamise funktsioon Transact-SQL

-- =============================================
-- Author: Kuido Külm
-- Description: Arvutab Eesti isikukoodi kontrollsumma
-- =============================================
CREATE FUNCTION [dbo].[EST_PERSON_IDCODE_CHECKSUM_S](@isikukood NVARCHAR(11))
RETURNS NVARCHAR(1)
AS
BEGIN
DECLARE  @checksum INT = -1, @sum INT=0, @weight INT=1, @i INT=1,@k INT
WHILE @i <= 10
BEGIN
    SET @k=CAST(SUBSTRING(@isikukood,@i,1) AS INT)*@weight
SET @sum=@sum+@k
IF @weight = 9
 SET @weight=1
ELSE
 SET @weight=@weight+1
SET @i=@i+1
END
SET @checksum=@sum%11
IF @checksum != 10
  RETURN CAST(@checksum AS NVARCHAR(1))

SET @sum=0
SET @weight=3
SET @i=1
WHILE @i <= 10
BEGIN
    SET @k=CAST(SUBSTRING(@isikukood,@i,1) AS INT)*@weight
SET @sum=@sum+@k
IF @weight = 9
 SET @weight=1
ELSE
 SET @weight=@weight+1
SET @i=@i+1
END
SET @checksum=@sum%11
IF @checksum != 10
  RETURN CAST(@checksum AS NVARCHAR(1))

RETURN '0'
END