Maskinistens Twitter-flöde  Stöd Maskinisten via Patreon  Maskinistens nätverk - information på svenska  Maskinistens nätverk - information på finska  Maskinistens nätverk - information på norska  Maskinistens nätverk - information på danska  Maskinistens nätverk - information på isländska
Forumindex

ForumindexForumindexMaskin-databasFotoalbumKalender-informationKöp & SäljDownloadsLexikonKontaktregisterMaskinistenin rikosrekisteri

Åkerman-register
Visa forum för mobila enheter

ForumindexDiverseSnick SnackDatorer/telefoner, hård- och mjukvara

C#

72 inlägg • Sida 2 av 5
Snacka datorer och telefoner i detta forum.

Ulf (trådstartaren)

#16 » 11:33:37, 24-08-2017
  • Överför markerat ord till lexikonet

Snabbhackat lite, det verkar lovande än så länge!

Men det borde vara en standardklass ...

Just nu ligger det i formuläret, därav tex
Kod: Markera allt
TextBox TB = (TextBox)sender;


Kod: Markera allt
        private void test_KeyDown(object sender, KeyEventArgs e)
        {
            TextBox TB = (TextBox)sender;

            switch (e.KeyCode)
            {
                case Keys.Decimal:
                    string c = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator).ToString();
                    if (TB.Text.IndexOf(c) == -1)
                    {   //  Finns inget komma, lägg till plus två nollor.
                        TB.Text = string.Format("{0}{1}00", TB.Text.TrimEnd(), c);
                        //  Sätt positionen efter komma och marker decimalerna
                        TB.Select(TB.TextLength -2,2);
                    }
                    else
                    {
                        // Troligen ej helt ok... Än
                        TB.Text = string.Format("0{0}00", c);
                        TB.Select(TB.TextLength - 2, 2);

                    }
                    break;

                case Keys.Enter:
                    TB.SelectNextControl(this,
                        true,   //  forward
                        false,  //  tabStopOnly
                        false,  //  nested
                        true);  //  wrap
                    break;

                default:
                    break;
            }
        }

Kod: Markera allt
        private void test_KeyPress(object sender, KeyPressEventArgs e)
        {
            int keyvalue = (int) e.KeyChar; // not really necessary to cast to int

            TextBox TB = (TextBox)sender;
            string c = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator).ToString();
            int decimalIndex = TB.Text.IndexOf(c);

            // Funkar inte än
            if (TB.SelectionStart == TB.TextLength  && (decimalIndex == TB.TextLength - 2))
            { //&& (decimalIndex != -1)
                e.Handled = true;
                return;
            }

            if ((keyvalue == (int) Keys.Back) ||
                ((keyvalue >= (int) Keys.D0) && (keyvalue <= (int)Keys.D9)))
            {
                return;
            }
            e.Handled = true;
        }
Kommer du med problem, eller är du en del av det?

1 person gillar det här inlägget.
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61



Ulf (trådstartaren)

#17 » 14:11:42, 25-08-2017
  • Överför markerat ord till lexikonet

Visual Studio och c# har en hel del smaskiga saker, men det är väääldigt lätt att få det rotigt!
Kommer du med problem, eller är du en del av det?
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

Ulf (trådstartaren)

#18 » 12:39:42, 30-08-2017
  • Överför markerat ord till lexikonet

Vågar påstå att utan Google så hade jag inte kommit så pass långt som jag gjort nu!

OrderGrid:en funkar bra! Har skapat mig en egen usercontrol som har lite info om artikeln.
Denna ArtikelStatusPanel binder till en ArtikelStatus-historia som hämtar relevant data från databasen.
Jag fick nu prova på att utnyttja diverse events och vad som behövs för att binda change events till egna properties!

Då artikeltabellen har både primärnyckel och kandidatnyckel så blir sökningen smidig.
För dom som inte vet om nycklar i databaser så är en primärnyckel helt unik för en rad i tabellen, i mitt fall ett nummer som genereras automagiskt för varje rad man lägger till och är unik i tabellen. Kandidatnyckeln är oxå unik, i mitt fall är det artikelnummer.

Att koda eget samtidigt som man får en portion teori och exempel är ett bra sätt att lära sig!
Kommer du med problem, eller är du en del av det?
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

Ulf (trådstartaren)

#19 » 09:20:22, 31-08-2017
  • Överför markerat ord till lexikonet

Men nu skulle jag vilja lägga till en linje i en container, men hur i h-e gör man det?
Går det inte att göra the visual-way?
Kommer du med problem, eller är du en del av det?
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

Ulf (trådstartaren)

#20 » 10:40:10, 31-08-2017
  • Överför markerat ord till lexikonet

Ah, detta var användbart :grin: :
Kod: Markera allt
    class AnotherTextBox : System.Windows.Forms.TextBox
    {
        bool labelbehavior = false;
        private const int WM_SETFOCUS = 0x07;
        private const int WM_ENABLE = 0x0A;
        private const int WM_SETCURSOR = 0x20;

        protected override void WndProc(ref System.Windows.Forms.Message m)
        {
            if(labelbehavior)
            {
                if (!(m.Msg == WM_SETFOCUS || m.Msg == WM_ENABLE || m.Msg == WM_SETCURSOR))
                    base.WndProc(ref m);
            }
            else
            {
                base.WndProc(ref m);
            }
        }

        #region PUBLIC FIELDS
        [Browsable(true)] //Added this but still does not show up
        [Category("Behavior")]
        [DefaultValue(false)]
        [Description("Act as label")]
        public bool ActAsLabel { get { return labelbehavior; } set { labelbehavior = value; } }
        #endregion

    }

Genom att AtcAsLabel till true så kan den fungera som just en Label, men formateringar genom bindningar fungerar som TextBox.

Det här får bli min lilla tråd med kodsnuttar och sådant!
Kommer du med problem, eller är du en del av det?
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

Ulf (trådstartaren)

#21 » 14:34:51, 12-09-2017
  • Överför markerat ord till lexikonet

Pillar och härjar med utskrifter för att känna lite på hur det funkar.
Det har tillochmed blivit så att jag har en liten basklass för utskrifterna.
Motorn, myReportEngine : PrintDocument, ImyPrintEngine kan hantera flera typer av utskrifter.
Blanketter renderas helt från början för att kunna bestämma antal sidor och när brytningar ska ske. Längre listor renderas bara huvud och fot i förväg, medans detaljbiten görs onthefly.

Nu försöker jag få VFP att producera en stor del av koden åt mig utifrån rapporterna i VFP.
Det är mycket magic bakom...
Kommer du med problem, eller är du en del av det?
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

Ulf (trådstartaren)

#22 » 13:09:46, 13-09-2017
  • Överför markerat ord till lexikonet

Hmmm, intellisense lägger av i VS då och då. Oftast kommer det igång av sig självt...
Kommer du med problem, eller är du en del av det?
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

Ulf (trådstartaren)

#23 » 10:35:09, 23-11-2017
  • Överför markerat ord till lexikonet

Det är nästan så att jag börjar gilla c# och Visual Studio!

En del saker känns dock lite bakvända, och en del benämningar känns lite fel.

Ibland verkar det som om dom har krånglat till det, fast det är väl bara att vänja sig.

Jag har fått till inloggning, fönsterhantering (som jag vill ha det) och basen för meny systemet.
Dessutom har jag grundtanken för affärsobjekten, utskrifter samt lite annat.
Bara resten kvar...
Allt som allt är det bortåt 130000 rader kod som ska "över".
En stor del av affärslogiken ligger i databasen redan och den kommer till största delen att återanvändas .

Jag har även knåpat till konverterare för rapport, formulär och affärsobjekt. Även om de inte genererar hela koden så får jag mycket att klistra in!
Kommer du med problem, eller är du en del av det?

1 person gillar det här inlägget.
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

Ulf (trådstartaren)

#24 » 17:13:11, 22-01-2018
  • Överför markerat ord till lexikonet

Sedärja!
Hittade en liten trevlig sak i Visual Studio, Test Explorer!
MS har nog tänkt en hel del för att få till det!
Vid närmare eftertanke så har dom nog fläkt upp börsen och handlat!

Men det gör det hela mycket snabbare och lättare att utveckla.
Tex affärsobjekt jag gör en enkel klass hierarki, lite sådär basic så att det hänger ihop.
Sen är det bara att skriva testfall, först för basfunktionalitet och sedan för det som inte är implementerat än.
Efter detta så är det bara att koda resten av affärsobjektet så att testerna ramlar igenom!
Kodar gör man, testfall för testfall, det blir ett ordentligt fokus på det som ska göras!
Kommer du med problem, eller är du en del av det?

1 person gillar det här inlägget.
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

Ulf (trådstartaren)

#25 » 10:36:39, 01-02-2018
  • Överför markerat ord till lexikonet

Hmm, då slänger vi in lite SQL oxå.

Jag har haft problem med med vissa frågor mot databasen, dom tar tid s-t-n ibland.

Följande går snabbt
Kod: Markera allt
select
     *
   from
      (enherrejössessubfråga) as tmp


Men följande gör det inte
Kod: Markera allt
select
     *
   from
      (enherrejössessubfråga) as tmp
      inner join mintabell as mt on mt.uid = tmp.min


Dock går följande snabbt
Kod: Markera allt
select
     *
   from
      (enherrejössessubfråga) as tmp
      left outer join mintabell as mt on mt.uid = tmp.min


jag körde inner join först efter som kolumnen min har ett värde som i alla rader från enherrejössessubfråga finns i mintabell. Relationen enherrejössessubfråga<=>mintabell är n<=>1.

Om det är för att det kollas om poster i enherrejössessubfråga som inte har ett min-värde i mintabell?
I så fall borde det gå att göra
Kod: Markera allt
select
     *
   from
      mintabell as mt
      left outer join (enherrejössessubfråga) as tmp on tmp.min = mt.uid

Vilket den gör efter ett test, men jag får lite oönskade rader i resultatet...

Någon som är väldigt slängd i SQL och då Sqlserver 2005 Express. Kanske kan det vara att det är klent med minne på servern...
Kommer du med problem, eller är du en del av det?
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

DennisCA

#26 » 11:41:45, 01-02-2018
  • Överför markerat ord till lexikonet

Ingen expert och endast självlärd inom SQL och har aldrig lär mig mera än att få skiten att funka för det jag vill, men prova byt * till bara dom kolumner du vill ha? Tar väl extra resurser att använda * så det brukar jag undvika, kan också vara något att göra med index, typ kolumnerna du använder för urval bör ha index eller så blir det slött. Så har jag uppfattat det iaf.
Användarvisningsbild
DennisCA
Fler än 500 inlägg
 
Blev medlem: 08:22:05, 16-09-2014
Ort: Österbotten
Suomi Finland (svenska)
Maskintyp: Ej angivet
Maskin: Verkstadsmaskiner

mats_o

#27 » 21:14:24, 01-02-2018
  • Överför markerat ord till lexikonet

Japp. jag är av samma uppfattning. Select ska vara så "snål" som det någonsin går.
Datat ska ju antagligen skickas någonstans också.

Ett alternativ är att titta på att göra frågorna med stored procedures på servern och bara returnera rätt data.
En väl designad DB med bra skrivna procedures ger prestanda på ett sätt man bara kan drömma om.
Jag har haft förmånen att jobba med en riktigt vass SQL/VB utvecklare och den fart han fick på sina Databasapplikationer .....
mats_o
Fler än 500 inlägg
 
Blev medlem: 20:12:55, 27-03-2010
Ort: Sundsvall
Sverige
Maskintyp: Ej angivet

JD400

#28 » 23:34:03, 01-02-2018
  • Överför markerat ord till lexikonet

Ett sätt att ta reda på det är att analysera hur SQL server exekverar frågorna. Gissar att det har med storleken på tabellerna att göra. I det ena fallet plockas data från den mindre tabellen för att därefter joinas med den större vilket blir effektivare än tvärtom. Left outer ger alla rader i den ena tabellen samt eventuella gemansamma rader så beroende på vilken ordning man gör joinen så kan det ge olika resultat.
JD400
Fler än 500 inlägg
 
Blev medlem: 18:34:03, 08-10-2007
Ort: Dalarna
Maskintyp: Traktorgrävare
Maskin: JD400

Ulf (trådstartaren)

#29 » 10:30:40, 02-02-2018
  • Överför markerat ord till lexikonet

Nämde inte, men den är en SP.

Tiderna kanske oxå ska nämnas, fråga 1 och 3 går på runt 500 mS , men fråga 2 tar bortemot 30 S!

Men när relationen enherrejössessubfråga -> mintabell är n->1 så spelar det egentligen ingen roll att det är en left outer join, det kommer alltid att bara vara ett resultat från mintabell för varje rad i enherrejössessubfråga.

Men det får nog bli en kommentar om det i SP så jag minns varför det är så!
Kommer du med problem, eller är du en del av det?
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

JD400

#30 » 11:12:39, 02-02-2018
  • Överför markerat ord till lexikonet

Relationen är alltså "ett till många". Upprätthålls den med en främmande nyckel (fk) på mångasidan? Är den främmande nyckeln nullable? Som tidigare nämnts, är nycklarna indexerade?

Du borde förresten inte kunna ersätta en inner join med en outer rakt av då de inte ger samma resultat.
JD400
Fler än 500 inlägg
 
Blev medlem: 18:34:03, 08-10-2007
Ort: Dalarna
Maskintyp: Traktorgrävare
Maskin: JD400


Återgå till Datorer/telefoner, hård- och mjukvara

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 0 gäster



Älmeboda Maskinservice

OilQuick

TK Traktordelar

Klaravik

Crazyride

Bra Verktyg

Motrab

Engcon

Scandcut

Astrak

Olsson Parts

Nya och begagnade
truckar på vstruck.se