Announcement

Collapse
No announcement yet.

Grid das sich verhält wie Excel?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Grid das sich verhält wie Excel?

    Hallo!
    Ist es möglich einem Grid folgendes beizubringen?
    -> Markierung von ganzen Zeilen
    -> Markierung von ganzen Spalten
    -> Markierung von mehreren einzelnen Zellen?
    -> Eintragen der Eingabewerte in alle markierten Zellen?
    -> Combobox in einer Zelle
    -> Andersfarbige Summenzeile unter den eigentliche Daten?
    ->Und das ganze noch Datensensitiv?

    m.f.G. Andreas Käding

  • #2
    Ja - denn die Jungs bei Microsoft haben das im Fall von Excel auch hinbekommen. Es ist nur eine Frage des Fleißes und der Zeit, die man für derartige Wünsche aufbringen will. Ich gehe davon aus, dass es vom Zeit- und Entwicklungsaufwand preiswerter ist, Microsoft Office 2000/XP zu installieren und dann auf die <i>Office Web Components (OWC)</i> zurückzugreifen. Über <b>TSpreadsheet</b> (Delphi-Wrapperkomponente für das native OWC-Objekt <b>SpreadSheet</b>) werden die o.g. Anforderungen bereits erfüllt:
    <pre>
    { ************************************************** *******************
    Autor : Andreas Kosch
    Compiler : Delphi 5 UpdatePack#1
    Betriebssystem : Windows 2000
    Datum : 03.12.2000
    Beschreibung : Einsatz der Office Web Components (OWC) im eigenen
    Delphi-Projekt. Das zweite Beispiel fügt die Daten
    aus einer ACCESS-Datenbanktabelle in die
    TSpreadsheet-Instanz ein.
    ************************************************** ******************** }

    unit TSpreadSheetDataBaseDemoFrm;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    Db, ADODB, StdCtrls, ExtCtrls, OleCtrls, OWC_TLB, ComCtrls;

    type
    TForm1 = class(TForm)
    StatusBar1: TStatusBar;
    Spreadsheet1: TSpreadsheet;
    Panel1: TPanel;
    CheckBoxConnect: TCheckBox;
    ADOConnection1: TADOConnection;
    ButtonInsert: TButton;
    ADOTable1: TADOTable;
    procedure ButtonInsertClick(Sender: TObject);
    procedure CheckBoxConnectClick(Sender: TObject);
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    uses ADOInt;

    procedure TForm1.CheckBoxConnectClick(Sender: TObject);
    var
    bActive : Boolean;
    begin
    bActive := CheckBoxConnect.Checked;
    ADOConnection1.Connected := bActive;
    ADOTable1.Active := bActive;
    ButtonInsert.Enabled := bActive;
    end;

    procedure TForm1.ButtonInsertClick(Sender: TObject);
    var
    aRS : _RecordSet;
    i, j : Integer;
    aRange : Range;
    aField : Field;
    vColor : OleVariant;
    begin
    vColor := clRed;
    aRS := ADOTable1.Recordset;
    // Spaltenbeschriftung
    for i := 1 to aRS.Fields.Count do
    begin
    aRange := IDispatch(Spreadsheet1.Cells.Item[1,i]) as Range;
    aRange.Font.Set_Bold(True);
    aRange.Font.Set_Color(@vColor);
    aField := aRS.Fields[i-1];
    aRange.Set_Value(aField.Name);
    end;
    // Daten aus der ADO-Datenmenge kopieren
    i := 1;
    while NOT aRS.EOF do
    begin
    for j := 1 to aRS.Fields.Count do
    begin
    Spreadsheet1.Cells.Item[i + 1, j].Set_Value(
    VarToStr(aRS.Fields[j - 1].Value));
    end;
    aRS.MoveNext;
    Inc(i);
    end;
    // Spaltenbreite anpassen
    with Spreadsheet1 do
    with Range[Cells.Item[1, 1], Cells.Item[aRS.Fields.Count, 10]] do
    AutoFitColumns;
    end;

    end.
    </pre>
    P.S: Weitere Infos zu OWC und diesem Beispielprojekt sind in der Ausgabe <b>3.2001</b> (Mai/Juni) von DER ENTWICKLER zu finden.
    &#10

    Comment


    • #3
      Hallo!

      Ich muss das leider unter Windows NT realisieren.

      m.f.G. Andreas Kädin

      Comment


      • #4
        Hallo,

        das läuft auch unter NT (oder Win9x/Me), genauer gesagt unter jeder Windows-Version, auf der sich Microsoft Office 2000 installieren lässt

        Comment


        • #5
          Hi,

          Bevor ich den Anwendern wegen erweiterter Funktionalitäten des Grids den Kauf/Einsatz von O2000 zumuten würde, würde ich erst nach fertigen Komponenten suchen, die dies erledigen. Ein Link der derartige Komponenten günstig und zuverlässig anbietet ist z.B. http://www.tmssoftware.com.

          Gruß
          Gesin

          Comment


          • #6
            Hallo,<br>Office 2000/XP, Windows XP ist ja alles schön und gut. Aber meine Kunden verwenden nach wie vor Win 95, Office 97 und den IE 4.0. Davon lassen sie sich auf unabsehbare Zeit auch nicht abbringen. <b>Never touch a running system</b>.<br>Ich würde es gut finden, wenn hier im Forum mal eine Umfrage zum Thema "Wer verwendet was" gestartet wird.<br>Herrn Kosch's Bücher und Beiträge sind mit Sicherheit erstklassig, aber da meine Kunden immer noch den alten Kram verwenden, hat es für mich eher akademischen Charakter.<br> Bin ich eigentlich der einzige, der sich damit plagen muß ?<br>Jens Schuman

            Comment


            • #7
              Absoult nicht. Bei uns geht es sogar soweit, daß sich erst jetzt die Meinung durchsetzt Windows 3.1 muß nicht mehr unterstützt werden, es könnte ja irgendwo noch ein potentieller Kunde sein, der 3.1 nutzt. Wenn ich jetzt aber davon ausgehe, daß irgendwo ein Office installiert ist, werde ich erschossen

              Comment


              • #8
                Interessante Frage

                wir haben in der Firma viel Zeit investiert um alle Clients vernünftig auf einen einheitlichen Stand zu bringen und damit den Adminaufwand zu minimieren (98% Win95). Wenn hier einer auf die Idee kommt wir stellen auf W98, 2000 oder weiß ich was um, den laß ich o.g. "heiligen" Spruch 10.000 mal aufschreiben (in Sonntagsschönschrift ;-) Es gibt nämlich keinen <b>vernünftigen</b> Grund dafür. Oder kann mir einer einen nennen? Ich bin auf stichhaltige Argumente gespannt :-)

                Gruß Fal
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Hi

                  1)
                  Da zückt jemand auch mit vollem Recht die Schrotflinte ;-). Es nervt schon ungemein, dass man bei der Entwicklung inzwischen fünf grundsätzlich unterschiedliche MS-Betriebssysteme berücksichtigen muss. Muss man bei der Entwicklung dann auch noch millionen unterschiedliche Applikationsstände berücksichtigen, dann sollte man lieber gleich aus dem Fenster springen.

                  2)
                  Bei den normalen turn-arround-Zeiten von Hardware ( und damit auch des darauf eingesetzten Betriebssystems ) in Firmen, müssen Applikationen im professionellen Umfeld ca. sechs Jahre 'zurückdenken'.

                  3)
                  Darum halte ich manche Vorschläge ( den hier ganz besonders heftig ) von Andreas Kosch auch für eher kontraproduktiv. Seine inhaltlich fundierten Beiträge gehen häufig davon aus, dass immer die letzten Versionen des MS-Umfeldes eingesetzt werden. Das mag auf dem eigenen und dem PC des Privatnutzers noch zutreffen, in der Realität von Firmennetzwerken gleicht diese Voraussetzung aber eher einem Luftschloss. Da Andreas sich intensiv mit dem Gebiet der Applikationsintegration ( COM etc. ) beschäftigt, ist es natürlich nur logisch, dass viele seiner Vorschläge auf den neuesten Techniken aufbauen ( vielleicht hat er aber auch viele MS-Aktien ;-) ).

                  4)
                  Eine der herrausragenden Merkmale von Delphi ist die immense Verfügbarkeit von ( häufig sogar kostenlosen ) bereits bestehenden stabilen Komponenten. Ignoriere ich solche Angebote und setze lahme, fehlerträchtige, teure und zualledem noch herstellerabhängige Komponenten ein, dann verpufft ein grosser Teil des Delphipotenzials ungenutzt. Da muss man sich in letzter Konsequenz die Frage gefallen lassen, warum man nicht gleich auch noch die passende MS-Entwicklungsumgebung einsetzt.

                  5)
                  Wenn ich die durschnittlichen Installations-, Lizenz- und Folgekosten mit 750.- DM pro Station anlege ( was ein eher niedriger Ansatz ist ), dann kann man bei 1000 angenommenen Installationen schon die eine oder andere MH in der Entwicklung einsetzen.

                  6)
                  Für den Umstieg auf W2k kann ich drei vernünftige Gründe liefern: 1. Stabilität, 2. Stabilität, 3. Stabilität.

                  Gruß
                  Gesin

                  Comment


                  • #10
                    Hi,<p>ich konnte es einfach nicht lassen, meinen Kommentar loszuwerden...<p>
                    Ich arbeite sehr viel mit Industrierechner. In der Industrie (nicht Büro - sondern Maschinen, Fahrzeuge usw.) ist das Betriebssystem Windows 3.x <b>STANDART!!!!</b> Warum? <br>Weil die meisten Rechner einen 486-Prozssor haben, da dieser jahrelang (auch nachdem es bereits höhre gegeben hat) weiterentwicklet wurde und inzwischen den harten Bedigungen in der Industrie standhält. Vor einiger Zeit meinte jemand, man könnte doch auch einen schnelleren Prozessor verwenden und ein neueres Betriebssystem installieren. Folge daraus war, dass die neuen Prozessoren ständig den "Geist" aufgegeben haben. Nachdem wieder auf 486 umgestellt wurde und Windows 3.x angewendet wurde, waren diese Probleme wie vom Erdboden verschwunden. Eines ist ganz klar. Dieses trifft NUR in der Industrie zu.<p>
                    Viele Privatanwender nutzen "veraltete" Software, denn viele sind nicht bereit, ständig die teuren Produkte zu kaufen. Vielen stellt sich die Frage wie sicher sind die neuen System und wie effektiv! Dem Anwender intressiert doch nicht, ob z.B.: in Windows 2000 tausende von neuen Funktionen für den Entwickler bereitstehen, sondern das was er machen möchte, auch funktioniert. Um es mal ganz krass zu sagen: Wenn der Anwender einen Brief schreibt ist es ihm doch egal, ob er mit Office 2000 oder Office 95 arbeitet. In beiden Fällen wird der Brief auf dem Drucker ausgedruck. Also warum soll ein kleiner Anwender umsteigen

                    Comment


                    • #11
                      Hallo,

                      kleine Anwender sind noch eher bereit die neuesten Techniken und Technologien mitzumachen. Dort ist auch der Invetitionsaufwand noch überschaubar. Eine Firma mit 5 bis 10 Arbeitsplätzen ist mal noch gerade so, alleine an einem Wochenende, umzustellen auf eine neue BS-Version und bleibt so noch einigermaßen im Kostenrahmen. Aber wehe es ist branchenspezifische Software im Spiel, vielleicht noch unter DOS. Ich nehme solche Aufträge inzwischen gar nicht mehr an, da die meisten Kunden in diesem Umfeld weder die damit zusammenhängenden Probleme durchschauen noch bereit sind nach Aufwand zu bezahlen. Dann rate ich allen Kunden solange mit den alten Teilen zu arbeiten wie es geht, Reservelüfter, Reservenetzteile und ein paar Tastaturen und Mäuse ins Lager legen ist auch eine gute Idee. Und erst wenn die Software den Anforderungen nicht mehr genügt oder nicht mehr gepflegt wird sollte man sich Gedanken über ein neues Gesamtkonzept machen. Und das kostet auch für kleinere Firmen in der Regel richtig Geld.

                      In größeren Firmen (s.g. Mittelständler) wird die Entscheidung wie welche EDV eingesetzt wird einmal getroffen und dann ist man eh gebunden. Eine Frage eines BS-Wechsels stellt sich bei einer Firma mit mehr als 50-100 APs innerhalb eines Zeitraumes von 5 bis 8 Jahren garnicht, solange die eingesetzte Software (meist Textverarb. und Tabellenkalk., eMail, Fax und ein Informationssystem) noch arbeitet. Wenn von der Administartionsseite dann noch alles klappt und die richtigen Tools zur Wartung eingesetzt werden wird keiner die Geschäftsleitung darauf drängen nun doch mal Windows2000 auf die Clients zu beamen und die Server mit XP zu bestücken.

                      Die gleiche Frage (oder Antwort) gilt auch für die Anfangs gestellte Diskussion. Bei einigen kleineren Kunden kann ich noch sagen, installiert mal Office in der Version XYZ oder den IE XYZ. Bei Entscheidern von Firmen, die etwas größer sind erntet man mit diesem Ansinnen ehestens irritierte Blicke. Office??? Sorry wir arbeiten mit Lotus, was nun? Kann ihre Softwarelösung bei uns nicht eingesetzt werden.

                      Man sollte nur dann auf solche Lösungen wie oben propagiert zugreifen, wenn man damit den Funktionsumfang der Software erweitern kann: Ja, wenn sie mit Word2000 arbeiten, können sie ihre Dokumente besonders einfach automatisch mit unseren Datenbankfeldern aktualisieren....

                      Aber man hüte sich davor, Basisfunktionalität so zu programmieren, das eine bestimmte Fremdkomponente auf dem System installiert sein muß, die man selber nicht installieren kann. Spätestens wenn der Kunde auf Word5000 updatet hat man da ein richtiges Problem.

                      Die gleiche Problematik trifft natürlich auch auf die Hardware zu. Ich habe in meiner Firma Zugriff auf GHz Systeme, meine Kunden arbeiten in der Regel mit PII von 200 bis 450 MHz, 32 oder 64 MB RAM und 4MB Grafikkarten, Win95, 98 oder NT. Unsere Software hat sich letztendlich an diesen Voraussetzungen zu messen. Das Argument, welches ich öfters hier höre: 'Bei heutigen Prozessorgeschwindigkeiten....' ist absoluter Schwachsinn. Jeder kennt die Abschreibungsfristen für EDV in Deutschland. Die wenigsten sind bereit ein noch nicht abgeschriebenes System zu ersetzen. Deshalb habe ich auch immer Bauchschmerzen damit, wenn ich Office2000 oder XP lese. Auf 200MHz win95 mit 32MB??? Wer braucht den Quark eigentlich. 98% unserer Kunden wären mit MS Works Version 4 zufriedengestellt. (Analyseergebnis!!) Und die, die eine "richtige" Textverarbeitung wirklich brauchen greifen mit Word meist eh in die Sch... Denn die brauchen ein Layoutprogramm, welches in der Lage ist flexibel und sicher mit Grafiken, Tabellen, Charts,Layoutstilen usw. umzugehen. Die Betonung liegt auf SICHER. Wer ständig Berichte mit mehreren hundert Seiten, dutzenden von Tabellen, Charts und zig Grafiken erstellen muß, ist bei Word wirklich falsch. Ich mache sowas mit TeX (ok, ist ziemlich hardcore)oder CorelVENTURA 5.0(ja, so altes Zeug!!!) und das funktioniert, meine Freundin muß sowas m

                      Comment


                      • #12
                        ...mit Word machen und gibt IMMER irgendwann entnervt auf, weil der Termin drückt. Stimmt halt der Umbruch nicht, oder die Nummerierung, oder das Layout ist verschoben, oder die Grafik fehlt, oder, oder, oder.

                        Wir als Entwickler brauchen doch diesen ganzen Schwachsinn nicht noch dahingehend mitmachen, dass wir unsere Anwendungen abhängig machen vom Funktionieren von MS Word und Konsorten. Nur das mich keiner falsch versteht. COM/DCOM ist eine feine Sache, wir nutzen die Technologie bei uns in der Firma z.B. intensiv um Projekte mit unterschiedlichen Werkzeugen erzeugen zu können. Du kannst mit Delphi wunderbar GUI entwickeln und die dann einer C++ Anwendung als ActiveX zur Verfügung stellen. Aber wenn du zum Drucken Word brauchst, hast du bei einem Großteil deiner potentiellen Kundschaft ein Problem. Wenn schon Fremdanwendungen als Server benutzt werden, dann bitte richtig. Es macht durchaus Sinn diesen Weg zu gehen. Siehe z.B. DocToHelp. Dann sollte man das aber auch so verkaufen: Eine Anwendung für Excel2000 oder so.

                        Um auf die Eingangsfrage zurückzukommen, hier etwas ketzerisch: Warum sich eigentlich mit Delphi quälen, wenn man eine Tabelle braucht, die sich wie Excel verhält? VBA und Office können auch eine Menge..

                        Comment

                        Working...
                        X