AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen
Thema durchsuchen
Ansicht
Themen-Optionen

MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

Ein Thema von Luki206 · begonnen am 20. Okt 2013 · letzter Beitrag vom 24. Nov 2013
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#21

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 25. Okt 2013, 13:22
Ich weiß nicht, ob Ado Komponenten in der Starter Version dabei sind.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#22

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 17. Nov 2013, 18:17
Entschuldigung das ich mich so lange nicht gemeldet habe
@Spock
Ist der Code im Großen und Ganzen Copy und Paste fähig?
Aber vorab, danke

PS: ADO oder ähnlich hatte ich nicht in Delphi gefunden.. kann aber sein das ich nicht richtig nachgesehen habe
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#23

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 17. Nov 2013, 19:09
Entschuldigung das ich mich so lange nicht gemeldet habe
@Spock
Ist der Code im Großen und Ganzen Copy und Paste fähig?
Aber vorab, danke
Der Code lässt sich kopieren und pasten.
(Das erinnert mich an Loriot in Papa ante Portas: Chef fragt: "... und wie gehts dem Sohn, kann er schon sitzen und sprechen"? Herr Klose (Loriot): "Mein Sohn ist 16. Er sitzt und spricht! "

Ich wollte aber nur mal ein kurzes Code Beispiel zeigen, wie man sich "manuell" bei Excel anmeldet und dort zwei Zellen füllt. Du solltest dich noch etwas in Excel Automation einlesen. Mein Codeschnipsel geht davon aus, dass es eine Datei eines bestimmten Namens in einem bestimmten Pfad gibt. Dann gibt es möglicherweise bessere / einfachere Möglichkeiten, wie man in eine Zelle schreibt. Ich selekte ja eine Range (von einer Zelle) und greife dann über ActiveCell zu. Es wäre aber schöner direkt in eine Zelle zu schreiben. Also von daher solltest du dich wie gesagt in Excel Automation einlesen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#24

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 19. Nov 2013, 17:24
So, ich hab da mal etwas gefunden nur weis ich jetzt nicht ob das verwendbar ist
Delphi-Quellcode:
unit DS2XML;

interface

uses
  Classes, DB;

procedure DatasetToXML(Dataset: TDataset; FileName: string);

implementation

uses
  SysUtils;

var
  SourceBuffer: PChar;

procedure WriteString(Stream: TFileStream; s: string);
begin
  StrPCopy(SourceBuffer, s);
  Stream.Write(SourceBuffer[0], StrLen(SourceBuffer));
end;

procedure WriteFileBegin(Stream: TFileStream; Dataset: TDataset);

  function XMLFieldType(fld: TField): string;
  begin
    case fld.DataType of
      ftString: Result := '"string" WIDTH="' + IntToStr(fld.Size) + '"';
      ftSmallint: Result := '"i4"'; //??
      ftInteger: Result := '"i4"';
      ftWord: Result := '"i4"'; //??
      ftBoolean: Result := '"boolean"';
      ftAutoInc: Result := '"i4" SUBTYPE="Autoinc"';
      ftFloat: Result := '"r8"';
      ftCurrency: Result := '"r8" SUBTYPE="Money"';
      ftBCD: Result := '"r8"'; //??
      ftDate: Result := '"date"';
      ftTime: Result := '"time"'; //??
      ftDateTime: Result := '"datetime"';
    else
    end;
    if fld.Required then
      Result := Result + ' required="true"';
    if fld.Readonly then
      Result := Result + ' readonly="true"';
  end;

var
  i: Integer;
begin
  WriteString(Stream, '<?xml version="1.0" standalone="yes"?><!-- Generated by SMExport --> ' +
                      '<DATAPACKET Version="2.0">');
  WriteString(Stream, '<METADATA><FIELDS>');

  {write th metadata}
  with Dataset do
    for i := 0 to FieldCount-1 do
    begin
      WriteString(Stream, '<FIELD attrname="' +
                          Fields[i].FieldName +
                          '" fieldtype=' +
                          XMLFieldType(Fields[i]) +
                          '/>');
    end;
  WriteString(Stream, '</FIELDS>');
  WriteString(Stream, '<PARAMS DEFAULT_ORDER="1" PRIMARY_KEY="1" LCID="1033"/>');
  WriteString(Stream, '</METADATA><ROWDATA>');
end;

procedure WriteFileEnd(Stream: TFileStream);
begin
  WriteString(Stream, '</ROWDATA></DATAPACKET>');
end;

procedure WriteRowStart(Stream: TFileStream; IsAddedTitle: Boolean);
begin
  if not IsAddedTitle then
    WriteString(Stream, '<ROW');
end;

procedure WriteRowEnd(Stream: TFileStream; IsAddedTitle: Boolean);
begin
  if not IsAddedTitle then
    WriteString(Stream, '/>');
end;

procedure WriteData(Stream: TFileStream; fld: TField; AString: ShortString);
begin
  if Assigned(fld) and (AString <> '') then
    WriteString(Stream, ' ' + fld.FieldName + '="' + AString + '"');
end;

function GetFieldStr(Field: TField): string;

  function GetDig(i, j: Word): string;
  begin
    Result := IntToStr(i);
    while (Length(Result) < j) do
      Result := '0' + Result;
  end;

var Hour, Min, Sec, MSec: Word;
begin
  case Field.DataType of
    ftBoolean: Result := UpperCase(Field.AsString);
    ftDate: Result := FormatDateTime('yyyymmdd', Field.AsDateTime);
    ftTime: Result := FormatDateTime('hhnnss', Field.AsDateTime);
    ftDateTime: begin
                  Result := FormatDateTime('yyyymmdd', Field.AsDateTime);
                  DecodeTime(Field.AsDateTime, Hour, Min, Sec, MSec);
                  if (Hour <> 0) or (Min <> 0) or (Sec <> 0) or (MSec <> 0) then
                    Result := Result + 'T' + GetDig(Hour, 2) + ':' + GetDig(Min, 2) + ':' + GetDig(Sec, 2) + GetDig(MSec, 3);
                end;
  else
    Result := Field.AsString;
  end;
end;

procedure DatasetToXML(Dataset: TDataset; FileName: string);
var
  Stream: TFileStream;
  bkmark: TBookmark;
  i: Integer;
begin
  Stream := TFileStream.Create(FileName, fmCreate);
  SourceBuffer := StrAlloc(1024);
  WriteFileBegin(Stream, Dataset);

  with DataSet do
  begin
    DisableControls;
    bkmark := GetBookmark;
    First;

    {write a title row}
    WriteRowStart(Stream, True);
    for i := 0 to FieldCount-1 do
      WriteData(Stream, nil, Fields[i].DisplayLabel);
    {write the end of row}
    WriteRowEnd(Stream, True);

    while (not EOF) do
    begin
      WriteRowStart(Stream, False);
      for i := 0 to FieldCount-1 do
        WriteData(Stream, Fields[i], GetFieldStr(Fields[i]));
      {write the end of row}
      WriteRowEnd(Stream, False);

      Next;
    end;

    GotoBookmark(bkmark);
    EnableControls;
  end;

  WriteFileEnd(Stream);
  Stream.Free;
  StrDispose(SourceBuffer);
end;


end.
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#25

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 23. Nov 2013, 12:01
Noch einmal eine ander Frage. Wie kann ich schaffen das man in der Tabelle zwei spalten addiert.
Wie geht das? Oder geht das überhaupt? Und wie könnte ich es machen, wegen dem Drucken?
danke
Luki
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#26

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 23. Nov 2013, 12:27
Neue Frage -> Neuer Thread

Allerdings ist die Antwort hier auch schon gefallen (wenn ich die Frage richtig deute)
Also bitte nochmal konkreter formuliert in einem neuen Thread
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#27

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 23. Nov 2013, 17:16
Ok

Edit: Ich habe mir eben noch einmal den Thread angesehen und habe das von MrSpock mit dem Reportgenerator gesehen und auch gegooglet nur sagt mir das was Google mir ausspuckt nichts oder wie ich da auch was installieren kann...

Geändert von Luki206 (23. Nov 2013 um 17:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#28

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 23. Nov 2013, 17:50
Was hast du denn herausgefunden?

Ich nutze zum Beispiel FastReport. Ist aber nicht in der Starter Version von Delphi enthalten. Du kannst es ab 79$ kaufen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#29

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 23. Nov 2013, 21:32
Generell bevor ich etwas falsches installiere und Delphi geht dann nicht mehr, deshalb habe ich gerade ein mulmiges Gefühl
Und es sollte möglicherweise kostenlos sein..
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#30

AW: MyBase | Daten zur Tabelle hinzufügen und in der Tabelle suchen

  Alt 24. Nov 2013, 13:10
Ich kenne kein Reporting Tool, welches kostenlos verfügbar ist und unter XE5 Starter läuft. Die Freereport Komponenten funktionieren nur bis D2006 (oder so).
Du hast oben ein XML Export abgedruckt. Kannst du zwar grundsätzlich verwenden. Nur hatte ich dich so verstanden, dass du die Daten aus MyBase nach Excel exportieren willst. Dazu habe ich ein Codeschnipsel angehängt, welches zeigt, wie das prinzipiell manuell gemacht werden kann. Da solltest du noch ein bisschen im Forum oder allgemein im Internet suchen, wie der Export nach Excel funktioniert. Von dort aus kannst du dann auch drucken.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz