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 4 av 5
Snacka datorer och telefoner i detta forum.

Ulf (trådstartaren)

#46 » 09:24:26, 31-08-2018
  • Överför markerat ord till lexikonet

I fråga #2 ger ibland samma resultat som #3

Mycket underligt!!

jag har gjort ca 300 körningar och jämfört (räknat för hand) och det verkar stämma till 100% med fråga #3. Med fråga #2 är det fel i ca 100 fall av 300. 300 fall data är data 300 dagar tillbaka.

Jag har sett att MS SQL SERVER kan ha problem med decimaler, men då är det tal som har 19 decimaler....
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)

#47 » 17:03:47, 31-08-2018
  • Överför markerat ord till lexikonet

Ett litet fenomen till:

Jag har en tabell med två främmande nycklar (FK), fid och oid. Här finns även en typ samt ett värde.
jag har en funktion för att få ut dessa:
Kod: Markera allt
alter FUNCTION [dbo].[testslask]
(@fid bigint)
RETURNS numeric(11,2)
AS
BEGIN
declare @result numeric(11,2)

select
     @result = isnull(sum(varde),0)
   from
      mytable
   where
      fid=@fid and oid=@oid and typ=2

return @result
end


om jag nu använder denna i en fråga
select
a.fid,
b.oid,
dbo.testslask(a.fid, b.oid) as test
from
a
inner join b on b.k = f.k


på tabellerna
Kod: Markera allt
a:
fid  k
1    1
1    2

B:
oid  k
1     1
2     2

mytable:
fid   oid   varde  typ
1       1       1       2

Så får jag

Kod: Markera allt
fid oid test
1     1    1
1     2    1

vilket jag inte vill ha :klia: :klia: , men det borde ge rätt resultat
Men

select
t.fid,
t.oid,
dbo.testslask(t.fid, t.oid) as test
from
(select
a.fid,
b.oid,
from
a
inner join b on b.k = f.k) as t

så blir det rätt och förväntat resultat
Kod: Markera allt
fid oid test
1     1    1
1     2    0


Ja, ja, handla och hem!!!
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)

#48 » 12:30:50, 02-10-2018
  • Överför markerat ord till lexikonet

Jag är väl ganska självlärd på SQL, och lat som man är när man skriver frågor så har jag utelämnat schemat när jag anger tabeller.
Kod: Markera allt
ALTER function [dbo].[calculate_frakt] (
   @fakturaid bigint ,
   @orderid bigint )
returns numeric(11,2)
with execute as caller
as
begin
declare @result numeric(11,2)

   select
         @result = isnull(sum(kostnad), 0)
      from
          [fakost]
      where
         fakturaid = @fakturaid and
         orderid = @orderid
         and kosttyp = 2
return @result;
end

Men ack vad den late får lida ibland!
Jag har några frågor där jag har bla ett antal scalar valued functions, inte optimalt, men de stora frågorna blir lättare att hantera.
I några av de senaste så fick jag lite problem med prestanda. Läste, läste och läste.
Det visar sig att anger man inte schemat så kommer det i varje anrop av funktionen att sökas efter vilket schema som tabellen finns i...
Är det många anrop så blir det många sådana sökningar, och även om jag bara har ett fåtal schema (ett som JAG använder, dbo) så finns det några till som det letas i.
Så,
Kod: Markera allt
 
ALTER function [dbo].[calculate_frakt] (
   @fakturaid bigint ,
   @orderid bigint )
returns numeric(11,2)
with execute as caller
as
begin
declare @result numeric(11,2)

   select
         @result = isnull(sum(kostnad), 0)
      from
          [dbo].[fakost]
      where
         fakturaid = @fakturaid and
         orderid = @orderid
         and kosttyp = 2
return @result;
end

går snabbare totalt sett, kanske inte för några enstaka anrop, men när det blir många...
Reducerade tiden för en daglig fråga från 4,5 sekunder till en halv!

Tänk om dom hade präntat in detta i reklamen! Nu blir man ju lite sugen på att optimera fler..., men det får bli efterhand, användarna är ju vana med de som finns...
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)

#49 » 18:06:28, 26-02-2019
  • Överför markerat ord till lexikonet

Dagen är sen och hjärnan slut...

Inge Bra är här igen och snurrar till det med arvstänkandet

Kan en box vara en linje, eller linjen en box...? :screwy: :screwy: :klia:
Båda är en shape, eh, kanske skita i det andra. :idee3:
Får se om det är en bra idé i morgon oxå

Ett ReportItem är en basklass och ReportContainer ärver ifrån den.
ReportPageheader, ReportPagefooter, ReportDetailband, ReportGroup, ReportGroupHeader, ReportGroupFooter, och förmodligen några fler ärver ifrån ReportContainer.
Sedan har jag ReportPagenumbering och ReportTextfield som ärver från ReportTextItem som i sin tur ärver från ReportItem.
ReportNumericField och ReportTextbox ärver från ReportTextfield...

Tror jag, vet inte om jag skrivit rätt, men jag behöver få det ur skallen.
Alla har konstruktorer som är protected. Suck, dan är slut och jag med!

Spottat ur mig ca 2k rader kod på 2 dagar ej inkluderat test och experiment, det är nog 500 rader till!
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)

#50 » 21:02:50, 02-04-2019
  • Överför markerat ord till lexikonet

Hu, utskrifter mot skrivare och pdf är inte att leka med.

PrintDocument-klassen är riktigt trevlig. För pdf-genereringen anväds pdfsharp, oxå rätt trevlig och kraftfull.
Kommer mera, gws mord på tv...
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)

#51 » 16:32:56, 09-04-2019
  • Överför markerat ord till lexikonet

Såååå, då är rapportgeneratorn nästan klar.

Rapporten hämtas från en tabell i databasen, varje rapport har sitt unika id. Alla items i tabellen kan ha en föräldraid som beskriver vad det tillhör.
Vissa kolumner är strängar som kan innehålla tex Fontstyle=Bold, och gud ske pris för reflection!

Speciellt då enum XFontStyle mappar mot FontStyle och min FontStyle mappar mot dessa.

Hursom, rapportlayouten blir inläst och en traverserare kopplas till ett affärsobjekt. Traverseraren är en extension till affärsobjektet.
Dessa båda kan då skickas till antingen ReportDocument, som skriver ut till skrivare, eller till ReportPdfDocument som genererar en pdf-fil.
Och lyckliga jag (tror jag iaf, troligen mot bättre vetande) behöver bara göra en layout per utskrift.
Troligt är att jag kan hämta detta från det gamla systemet med lite mindre justeringar! :mrgreen:

Resan hit var inte enkel då vissa delar, dels var olika mellan de två typerna (PrintDocument och PdfSharp), dels inte var helt vad man förväntar sig.
Till det första är referenspunkten för texterna, PrintDocument, eller egentligen Graphics refererar till det övre, vänstra hörnet på texten, medans PdfSharp (XGraphics) refererar till skrivlinjen. Detta tog en väldans tid innan jag förstod varför en linje hamnade galet.
Udda beteende är PdfSharp, sätter jag sidformatet till A4 (210x297mm) och sedan sätter vänstermarginal på 10mm, så blir dokumentet 220x297mm. Detta oxå en sådan sak som tog tid att åtgärda!

Möjlighet till vattenstämpel och idsträng finns oxå.

Nu är det bara resten kvar!

Jag hoppas att hallen har golvet klart idag och att badrumet har golv och väggar klara!
Får se om det kan bli :hurra: idag!
Där är det oxå "bara" resten kvar...., sen kan jag drita i frid!
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)

#52 » 15:53:10, 24-05-2019
  • Överför markerat ord till lexikonet

Bråkat med DataGridView ett tag nu, usch, inget har hänt. Det är ett problem som alltid har funnits i de flesta nifty GUI miljöer.
Fast å andra sidan så är just en grid (kalla det rutnät...) som på något sätt har blivit ett sätt att kolla vad språket/systemet går för.

Funktionen ska vara följande: en order med orderrader.
Första kolumnen är artikelnummer och nedersta raden är där man knappar i ett nytt. Är inget nummer i fyllt så går det bra att förflytta sig uppåt bland raderna, är det inte nedersta "nyraden" så kan man bara bläddra uppåt och nedåt.
Man kommer bara åt enskilda kolumner om man på "nyraden" i kolumn ett har skrivit i ett giltigt artikelnummer OCH tryckt enter.
NU är vi inmatningsläge, och kan inte byta rad, utan bara hoppa mellan de aktiva cellerna för den nya raden (antal, rabatt och pris).
När man står i pris cellen och trycker enter så accepteras raden och en ny skapas.

Enkelt som att skita, detta fungerar i de två äldre systemen. Jag har testat i bla Java, det funkar INTE.
Med c# så tog det bara längre tid innan man upptäckte att röven fortfarande är bak!

Men inte något positivt som inte har något negativt med sig! öh, tvärtom!
Efter som jag grävt ganska djupt i klassen så vet jag i ganska stora drag hur den fungerar. Detta kan jag nu ta med mig när jag skapar min egen grid, utan att behöva vara så generell och utan alla flådiga finesser!

kodagkodagkodag koda!
Kommer du med problem, eller är du en del av det?

2 personer 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

Towil

#53 » 16:04:48, 24-05-2019
  • Överför markerat ord till lexikonet

Nu raserar du ju hela windows konceptet och PC industrin. Utan konstant expansion av windowskod så behövs ju inga nya datorer.
Utan kod fluffet blir många arbetslösa. Tänk på det! :skriva2:

2 personer gillar det här inlägget.
Användarvisningsbild
Towil
Moderator
Moderator
 
Blev medlem: 20:00:40, 18-08-2007
Ort: Nybro
Sverige

Ulf (trådstartaren)

#54 » 14:17:41, 27-05-2019
  • Överför markerat ord till lexikonet

Towil skrev:Nu raserar du ju hela windows konceptet och PC industrin. Utan konstant expansion av windowskod så behövs ju inga nya datorer.
Utan kod fluffet blir många arbetslösa. Tänk på det! :skriva2:


Självklart! :mrgreen:

Nä, skämtåsido, så har jag fått till början på en vettig grid som gör precis som jag vill så långt. på <700 rader kod. Då är nog ca 300 rader debug och test.

Så långt kan jag lägga till kolumner, specat med ordning, bredd, titel, dataproperty. Den senare är det värdet som ska visas/hanteras.
Kommer för närvarande från min fantasifulla List<testrecord>...
Jag kan bläddra upp och ned med pilar, pgup/pgdn samt home/end. Nu ska det bara hanteras lite musklickediklick :grin: !
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)

#55 » 10:29:28, 03-06-2019
  • Överför markerat ord till lexikonet

Griden i sig funkar utmärkt och inte blev det så mycket kod, MEN!

Ja, de måste ju alltid finnas en MEN!

Hur F#$!N får man en vettig funktion på numeriska fält? Decimala och/eller negativa?
Jag använder bindningar mot dataobjektet, tror jag bli galen på det här! :screwy:

Antingen så klipps decimalerna eller så "skriver jag över" ett markerat värde, då är det omöjligt att komma förbi decimaltecknet utan att klicka. Skriver jag talet 155 så ställer sig markören före ettan när den är knappad, sedan så skrivs femmorna före ettan så talet blir 551, och fortfarande, kommer inte förbi decimalentecknet. :aaargh:
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

igelkottar

#56 » 10:34:00, 03-06-2019
  • Överför markerat ord till lexikonet

Kan du lura det med högerställt? :idee:
eller har jag fattat fel som vanligt? :ohnej:
Bild
/Lillen

"Jag bryr mig faktiskt inte om vad folk tycker.
Jag gör vad jag har lust med."

Julia Child (1912–2004), ameri-
kansk kock och kokboksförfattare
Användarvisningsbild
igelkottar
Fler än 500 inlägg
 
Blev medlem: 13:53:53, 31-01-2008
Ort: Skövde
Sverige
Maskintyp: Ej angivet
Maskin: Gutbrod 1050 Trädgårdstraktor m. Skopa, snöschaktblad och borstaggregat.

Ulf (trådstartaren)

#57 » 12:51:29, 03-06-2019
  • Överför markerat ord till lexikonet

Högerställt eller vänsterställt spelar ingen roll!

Det borde fungera så här, tycker jag iaf:

Man ramlar in i ett numeriskt textfält och all text blir vald.
Om jag sedan trycker ett tecken (-, 0-9) så raderas allt och det nya tecknet skrivs, eventuellt saknade decimaler läggs till med .00
Markören hamnar efter det inslagna tecknet och före decimaltecknet. Resterande siffror skjuts in före decimaltecknet
Trycker jag på decimaltecknet (.) så ska markören hamna EFTER decimaltecknet, är inga siffror inknackade tidigare så ska en nolla hamna till vänster om de decimaltecknet.
Detta kommer nog ta dubbelt (minst) med tid att får till om man jämför med själva griden.

Googlar man så får man upp en massa "niffty" lösningar, många föreslår att använda NumericUpDownBox och då får man bläddringspilar. Sån skit vill jag inte ha! Ge ALDRIG en användare möjligheter som inte stöds i programmet!!!
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)

#58 » 16:02:23, 03-06-2019
  • Överför markerat ord till lexikonet

Pillat oavbrutet, så d-a korkat att man inte har en textbox som detta funkar på från början!
Det fanns ju redan sommaren 92 i Foxpro som ms köpte upp då, förvisso en del egenheter, men det funkade om man inte tog ut svängarna för mycket! Förvisso inköpt och inte utvecklat av ms.

Nu har jag hackat en box som verkar fungera, nu ska jag bara ta bort en massa debug och få ordning på koden, märkligt är att jag får blanda in konverteringen i bindningen (decimal->sträng och decimal->sträng) för att sätta önskad markörposition och vald textlängd...

Undrar just om jag kommer ihåg vad jag gjort, tills i morgon :klia:

Snart dags att smyga hem via Jula och införskaffa tre grillspett. Lilla M har klassavslutning i kväll med grillning och hyss!
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)

#59 » 16:48:51, 04-06-2019
  • Överför markerat ord till lexikonet

Skolavslutning i morse, Lilla M's första!

Så det blev lite sen start på kodandet, men ack vad det har flutit på!

NU, kan jag kör hela rader med inmatning. Ungefär som en fin växellåda distinkt och mjukt!

Det slutade med att jag fick göra min egen NumericTextBox som i sin tur ärver ifrån min GridTextBox.

Det som är lite kul med extensions (statiska klasser med statiska metoder, ungefär) är att dom kan vara eventlyssnare.
DET, är coolt, speciellt om man ska ha diverse konverterare, går nog att använda på andra kluriga ställen oxå!
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)

#60 » 15:04:10, 08-11-2019
  • Överför markerat ord till lexikonet

Sååå,
jag hade en hoper klasser i en arvshierarki, dryga 20 stycken.

De skulle upp in en trädvy så att det blir lite lättare att redigera innehållet på valt objekt i en PropertyGrid.
PropertyGrid är faktiskt en liten trevlig historia som det bara är att slänga på ett objekt så fixar den så att alla objektets publika egenskaper visas. Om det är något den inte klarar så är det ganska enkelt att knacka en konverter för detta.

Problemet var ALLA egenskaper...
Lösningen blev en wrapper klass för varje som bara exponerar de egenskaperna jag vill, ja naturligtvis inte en, utan en för varje klass i hopen. Dessutom med samma arvshierarki. Det sista för att slippa koda sådana saker som en ana redan kan.

Jo, det fungerade bra, MEN, så skulle det ju gå att klippa&klistra saker i trädet, en trevlig egenskap.

Jag såg plötsligt en sjujäkla massa kodning framför mig:
Själva trädnoden har en wrapper klass i sig som i sin tur har en klass från hopen...
Jag började med trädnoden, den var ganska enkel, men så var det ju de övriga.

Jag började med att kika på att klona objekt, det finns några varianter varav en innebar serialisering...
Jag vet sedan tidigare att det var magiskt hokuspokus.

Serialisering innebär i princip att du tar ett objekt och plockar ner egenskaperna i ett rör. I andra änden på röret så står det en och plockar ihop det efter den beskrivning som kommer i röret.

Jag fann mig en modell som fungerar alldeles utmärkt, det vara bara många klasser att pilla i (40+, för klasserna i hopen hade ju andra klasser i sig...). Nu har jag iaf lärt mig serialisering i C#!! :cool:

Jo, detta var bara för att göra en editor som kommer att underlätta arbetet framöver....

Det blir lite stressigt efter jobbet, Lilla M ska hämtas för att sedan skjutas till disco. och så ska det handlas.
Och hennes kusin Lille L 1½ ska sova hos oss i natt...

Tror jag smiter iväg lite tidigare idag!
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


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

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst



Älmeboda Maskinservice

OilQuick

TK Traktordelar

Klaravik

Crazyride

Bra Verktyg

Motrab

Engcon

Scandcut

Astrak

Olsson Parts

Nya och begagnade
truckar på vstruck.se