/[projects]/dao/DelphiScanner/Main.pas
ViewVC logotype

Diff of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2668 by torben, Tue Aug 25 16:34:41 2015 UTC revision 2679 by torben, Wed Aug 26 14:11:34 2015 UTC
# Line 10  uses Line 10  uses
10    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,
11    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet,    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet,
12    UITypes,    UITypes,
13    PakkeshopLabels    PakkeshopLabels,
14      StBarC,
15      Math // DegToRad() bruges i PrintPakkeshopLabel
16    
17    
18    ;    ;
19    
# Line 94  type Line 97  type
97    
98    function Explode(var a: TStrArray; Border, S: string): Integer;    function Explode(var a: TStrArray; Border, S: string): Integer;
99    function BarCodeValid (ACode: string): boolean;    function BarCodeValid (ACode: string): boolean;
100    function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String;    function Sto_GetFmtFileVersion(const FileName: String = ''): String;
101    function TColorToHex(Color : TColor) : string;    function TColorToHex(Color : TColor) : string;
102    function HexToTColor(sColor : string) : TColor;    function HexToTColor(sColor : string) : TColor;
103    function getProddato() : TDate;    function getProddato() : TDate;
# Line 251  type Line 254  type
254      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
255      TjekUrls : String;      TjekUrls : String;
256    
257      PakkeshopLabel: TPakkeshopLabel;      Barcode : TStBarcode;
258    
259            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }
260    
# Line 271  type Line 274  type
274      { Public declarations }      { Public declarations }
275    end;    end;
276    
277          function GetPixelsPerInchX(): Integer;
278        function GetPixelsPerInchY(): Integer;
279    
280  var  var
281    MainForm: TMainForm;    MainForm: TMainForm;
282    
# Line 309  begin Line 315  begin
315      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
316  // 20150309: slut  // 20150309: slut
317    
318        Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
319    
320      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
321      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
322      begin      begin
# Line 634  begin Line 642  begin
642    
643      if (SkrivLog = '1') then      if (SkrivLog = '1') then
644      begin      begin
645        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
646        try        try
647          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
648          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
# Line 1148  begin Line 1156  begin
1156      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
1157    
1158      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1159      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion(''));
1160    
1161  end;  end;
1162    
# Line 2068  var Line 2076  var
2076    URLStr : String;    URLStr : String;
2077    pakkestorrelse : String;    pakkestorrelse : String;
2078    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2079    
2080      PakkeshopLabel: TPakkeshopLabel;
2081  begin  begin
2082    if radioStorPakke.Checked then    if radioStorPakke.Checked then
2083    begin    begin
# Line 2170  begin Line 2180  begin
2180       begin       begin
2181         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2182         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2183           RuteNummer := PakkeshopLabel.Koreliste;
2184    
2185         PrintPakkeshopLabel( PakkeshopLabel );         PrintPakkeshopLabel( PakkeshopLabel );
2186    
# Line 3070  begin Line 3081  begin
3081      repeat      repeat
3082        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
3083        begin        begin
3084    
3085          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
3086          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
3087          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
# Line 3369  var Line 3381  var
3381   tekst, filversion : String;   tekst, filversion : String;
3382  begin  begin
3383    
3384    filversion := Sto_GetFmtFileVersion('','');    filversion := Sto_GetFmtFileVersion('');
3385    tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';    tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';
3386    
3387    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3823  end; Line 3835  end;
3835  ///   values.</param>  ///   values.</param>
3836  /// <returns>Formatted version number of file, '' if no version  /// <returns>Formatted version number of file, '' if no version
3837  ///   resource found.</returns>  ///   resource found.</returns>
3838  function TMainForm.Sto_GetFmtFileVersion(const FileName: String = '';  function TMainForm.Sto_GetFmtFileVersion(const FileName: String = ''): String;
   const Fmt: String = '%d.%d.%d.%d'): String;  
3839  var  var
3840    sFileName: String;    sFileName: String;
3841    iBufferSize: DWORD;    iBufferSize: DWORD;
3842    iDummy: DWORD;    iDummy: DWORD;
3843    pBuffer: Pointer;    pBuffer: Pointer;
3844    pFileInfo: Pointer;    pFileInfo: Pointer;
3845    iVer: array[1..4] of Word;    iVer: array[1..4] of Integer;
   S : String;  
3846  begin  begin
3847    // set default value    // set default value
3848    Result := '';    Result := '';
# Line 3857  begin Line 3867  begin
3867      finally      finally
3868        FreeMem(pBuffer);        FreeMem(pBuffer);
3869      end;      end;
3870    
3871      // format result string      // format result string
3872      Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]);      Result := Format('%d.%d.%d.%d', [iVer[1], iVer[2], iVer[3], iVer[4]]);
3873    
     // Hvorfor virker ovenstående ikke ???  
     S := '';  
     Str(iVer[1], Result);  
     S := S+Result+'.';  
     Str(iVer[2], Result);  
     S := S+Result+'.';  
     Str(iVer[3], Result);  
     S := S+Result+'.';  
     Str(iVer[4], Result);  
     S := S+Result+'';  
     Result := S;  
3874    end;    end;
3875  end;  end;
3876    
# Line 4619  begin Line 4619  begin
4619    until S2 = '';    until S2 = '';
4620  end;  end;
4621    
4622  // ToDo: Færdiggør implementationen  // ToDo: PrintPakkeshopLabel()
4623  procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4624    var
4625      XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4626      Angle: integer;
4627      gMode: integer;
4628      BarcodeArea: TRect;
4629      Dirigering: string;
4630    
4631  begin  begin
4632      with Printer do      with Printer do
4633      begin      begin
4634        BeginDoc();        BeginDoc();
       Canvas.Font.Size := FontSizeRuteLille;  
4635    
4636        Canvas.Font.Size := FontSizeKorelisteLille;  
4637        Canvas.TextOut(XPosKoreliste,YPosKoreliste, PakkeshopLabel.Navn);        Canvas.Font.Size := 16;
4638          Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4639    
4640    
4641    
4642          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4643          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4644          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4645    
4646    
4647          Canvas.Font.Size := 9;
4648          Canvas.TextOut(110, 240, 'Pakkeshop:');
4649          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4650          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4651          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4652    
4653          Canvas.TextOut(350, 240, 'Afsender:');
4654          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4655          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4656          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4657    
4658          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4659          if ( PakkeshopLabel.Koreliste <> '') then
4660          begin
4661            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4662          end;
4663    
4664    
4665          Canvas.Font.Size := 12;
4666          Canvas.TextOut(15, 370, Dirigering);
4667    
4668    
4669    
4670    
4671    
4672          //Tegn adskillelses linier
4673          Canvas.Pen.Width := 2;
4674          //Øverste linie
4675          Canvas.MoveTo(20,80);
4676          Canvas.LineTo(600,80);
4677    
4678          // Midterste linie
4679          Canvas.MoveTo( 20, 240);
4680          Canvas.LineTo(600, 240);
4681    
4682          //Nederste linie
4683          Canvas.MoveTo( 20, 370);
4684          Canvas.LineTo(600, 370);
4685    
4686    
4687          //Tegn skrå streger over afsender
4688          Canvas.Pen.Width := 1;
4689          Canvas.MoveTo(600, 250);
4690          Canvas.LineTo(350, 360);
4691          Canvas.MoveTo(600, 360);
4692          Canvas.LineTo(350, 250);
4693    
4694    
4695    
4696    
4697          // Resten af rutinen vedr genering og placering af Barcode
4698    
4699          BarCode.BarCodeType := bcCode128;
4700          BarCode.Code128Subset := csCodeC;
4701          BarCode.Code := PakkeshopLabel.Stregkode;
4702          BarCode.Validate(True);
4703    
4704          //Start X-formation
4705          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4706          GetWorldTransform(Canvas.Handle, XFormOld);
4707    
4708          Angle := 270;
4709          XForm.eM11 := Cos(DegToRad(Angle));
4710          XForm.eM12 := Sin(DegToRad(Angle));
4711          XForm.eM21 := -Sin(DegToRad(Angle));
4712          XForm.eM22 := Cos(DegToRad(Angle));
4713          XForm.eDx := 0;
4714          XForm.eDy := 0;
4715    
4716          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4717          SetWorldTransform(Canvas.Handle, XForm);
4718    
4719          // PaintToCanvasSize arbejder i Inches
4720          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4721          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4722    
4723          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4724    
4725    
4726          SetWorldTransform(Canvas.Handle, XFormOld);
4727          SetGraphicsMode(Canvas.Handle, gMode);
4728    
4729        EndDoc();        EndDoc();
4730      end;      end;
4731    
4732    
4733    end;
4734    
4735    function GetPixelsPerInchX(): Integer;
4736    begin
4737      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
4738    end;
4739    
4740    function GetPixelsPerInchY(): Integer;
4741    begin
4742      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
4743  end;  end;
4744    
4745    
# Line 4992  var Line 5098  var
5098     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
5099     imorgenYmd : string;     imorgenYmd : string;
5100     logFilnavn : string;     logFilnavn : string;
5101      error : Integer;     //error : Integer;
5102    
5103  begin  begin
5104    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5380  end; Line 5486  end;
5486    
5487  function TMainForm.CheckUrl(url:string):boolean;  function TMainForm.CheckUrl(url:string):boolean;
5488  var  var
5489    hSession, hfile, hRequest: hInternet;    hSession, hfile: hInternet;
5490    dwindex,dwcodelen :dword;    dwindex,dwcodelen :dword;
5491    dwcode:array[1..20] of char;    dwcode:array[1..20] of char;
5492    res : pchar;    res : pchar;

Legend:
Removed from v.2668  
changed lines
  Added in v.2679

  ViewVC Help
Powered by ViewVC 1.1.20