Delphi, C++ Builder & .NET Część sgcUI

sgcGrid, siatka danych na żywo dla Delphi, C++ Builder & .NET

Siatka stworzona dla danych, które nigdy nie stoją w miejscu. Zapisuj wiersze według klucza z dowolnego wątku, obserwuj, jak zmienione komórki błyskają na zielono lub czerwono, a potem grupuj, filtruj, edytuj i eksportuj te same wiersze. Klatka 1080p siatki ze 100 000 wierszy zajmuje 3,0 ms w Win32.

VCL, FireMonkey, WinForms, WPF, Avalonia3,0 ms na klatkę 1080p (Win32)Bezpłatna wersja .NET CommunityW sgcUI Standard
sgcGrid ze 100 000 zamówień pogrupowanych według regionu, potem kategorii, z chipami panelu grup i sumami w stopce

Wszystko, czego potrzebuje siatka na żywo

Dwadzieścia trzy funkcje w sześciu grupach, każda z odnośnikiem do tematu pomocy.

Dane na żywo

Strumienie, które się nie kończą: ceny, telemetria, kolejki i logi.

Dane na żywo

Aktualizuj tysiące wierszy na sekundę z dowolnego wątku

Strumień rynkowy, magistrala czujników albo kolejka zadań mogą pisać prosto do siatki. Każdy wiersz ma klucz, a wątek roboczy aktualizuje wiersz o danym kluczu według nazwy pola, bez wywołania Synchronize i bez własnego kodu blokującego. Siatka tylko oznacza się jako zmieniona w wątku piszącym i odświeża się w głównym wątku najwyżej MaxFPS razy na sekundę.

  • UpdateRow ustawia nazwane pola klucza i wstawia wiersz, gdy klucz jest nowy; UpdateCell zmienia jedno pole
  • AppendRow i DeleteRow dodają i usuwają wiersze według klucza, z dowolnego wątku
  • BeginUpdate i EndUpdate zamieniają partię zmian w jedno powiadomienie
  • Zaznaczony wiersz jest znajdowany ponownie po kluczu po każdym sortowaniu, więc nigdy nie ucieka
Przeczytaj temat pomocy
Zobacz każdą zmianę na pierwszy rzut oka

Dane na żywo

Zobacz każdą zmianę na pierwszy rzut oka

Traderzy i operatorzy muszą widzieć, co się zmieniło, bez czytania każdej liczby. Gdy FlashChanges jest włączone, co jest wartością domyślną, zmieniona komórka jest zabarwiona na zielono, gdy wartość wzrosła, i na czerwono, gdy spadła, a potem zanika przez FlashDuration milisekund, domyślnie 800. Dla logów i rosnących strumieni tryb tail utrzymuje najnowszy wiersz w widoku i przestaje podążać, gdy tylko użytkownik przewinie w górę, aby czytać.

  • FlashUpColor, FlashDownColor i FlashChangedColor; kolor 0 używa domyślnego koloru motywu
  • FlashMode barwi tło (fmBackground) lub tekst (fmText)
  • TailMode podąża za najnowszym wierszem, MaxRows usuwa najstarsze wiersze niekończącego się logu
  • Zaznaczenie jest rysowane nad błyskiem, a błysk nad regułami formatowania
Przeczytaj temat pomocy
Koloruj wiersze, które wymagają uwagi

Dane na żywo

Koloruj wiersze, które wymagają uwagi

Zaległa faktura, ujemne saldo albo nieudane zadanie powinny rzucać się w oczy, zanim ktokolwiek zapyta. Reguły formatowania porównują kolumnę z wartością według typu danych tej kolumny: liczby numerycznie, daty jako daty, tekst bez rozróżniania wielkości liter. Pasująca reguła ustawia kolor tła, kolor tekstu lub pogrubienie komórki albo całego wiersza i działa dalej, gdy aktualizacje na żywo zmieniają wartości pod spodem.

  • TsgcGridFormatRules ocenia swoje reguły w kolejności kolekcji, a późniejsze dopasowanie nadpisuje wcześniejsze
  • Operatory takie jak gfoLess, gfoBetween, gfoContains i gfoIsEmpty
  • ApplyToRow stylizuje każdą komórkę wiersza, StopOnMatch kończy ocenę dla komórki
  • Półprzezroczyste kolory barwią komórkę na tle, a OnGetCellStyle ma ostatnie słowo
  • Reguły ustawiają kursywę, podkreślenie i przekreślenie oprócz pogrubienia, a OnGetCellFont ustawia styl i rozmiar czcionki dowolnej komórki
  • AddIconSet umieszcza w kolumnie strzałki, kółka, flagi lub znaczniki wyboru na podstawie dwóch progów, a reguła może pokazać ikonę lub własny obraz
Przeczytaj temat pomocy

Dane na żywo

Lista alarmów ISA-18.2 dla ekranów HMI

Ekran operatora potrzebuje jednego miejsca, które wymienia każdy alarm, pokazuje, które nadal czekają na potwierdzenie, i pozwala operatorowi na nie reagować. Model alarmów przechowuje alarmy ze stanami ISA-18.2 i priorytetami od 1 do 4, a powiązanie z alarmami zapisuje je do siatki, jeden wiersz na tag, z kolorem priorytetu i migającymi wierszami dla alarmów jeszcze niepotwierdzonych. Aplikacja zgłasza i kasuje alarmy na podstawie własnych limitów, a operator potwierdza je, odkłada i przywraca z menu kontekstowego.

  • TsgcGridAlarmModel: RaiseAlarm, ClearAlarm, Acknowledge, AcknowledgeAll, Shelve, Unshelve
  • Sześć stanów: aktywny niepotwierdzony, aktywny potwierdzony, powrót do normy niepotwierdzony, normalny, odłożony i wyciszony
  • FilterPriorities, FilterStates i FilterText oraz eksport jako JSON lub CSV
  • TsgcGridAlarmLink i TsgcVCLGridAlarmMenu, także dla FireMonkey, a w .NET dla WinForms, WPF i Avalonia

Model, powiązanie i menu są w każdej edycji, także w Community. Dziennik potwierdzeń z Log i OnLog jest w edycji Zarejestrowanej. Lista alarmów należy do pakietu sgcUI HMI.

Przeczytaj temat pomocy

Kształtuj dane

Sortuj, filtruj, grupuj i zagnieżdżaj duże zbiory wierszy.

Grupuj i sumuj 100 000 wierszy jednym wywołaniem

Kształtuj dane

Grupuj i sumuj 100 000 wierszy jednym wywołaniem

Sprzedaż według regionu, zamówienia według miesiąca, zgłoszenia według statusu: użytkownicy chcą sum, a nie surowych wierszy. GroupBy grupuje siatkę według jednej lub kilku kolumn, a każdy wiersz grupy pokazuje swój element, liczbę wierszy i podsumowania swoich wierszy. Użytkownicy sami zmieniają grupowanie, przeciągając nagłówek na panel grup. Grupowanie dotyczy tylko widoku, więc wykres powiązany z siatką nadal widzi płaskie, posortowane wiersze.

  • GroupBy i ClearGrouping z kodu albo GroupIndex dla każdej kolumny
  • ShowGroupPanel dodaje chipy do przeciągania; kliknięcie chipa odwraca kolejność grup
  • SummaryType gsuSum, gsuCount, gsuAverage, gsuMin lub gsuMax, formatowane za pomocą SummaryFormat
  • GroupSummaries w każdym wierszu grupy i ShowFooter dla sum końcowych
  • DisplayFormat w postaci yyyy-mm grupuje daty według miesiąca
Przeczytaj temat pomocy
Sortuj, filtruj i szukaj w dużych danych

Kształtuj dane

Sortuj, filtruj i szukaj w dużych danych

Znalezienie jednego klienta wśród tysięcy powinno wymagać kilku naciśnięć klawiszy. FilterText zachowuje wiersze, których sformatowany tekst zawiera wpisane słowa w dowolnej widocznej kolumnie, a procedura OnFilterRow dodaje własne reguły. Kliknięcie nagłówka sortuje, Ctrl i kliknięcie dodaje kolumnę do sortowania wielokolumnowego, a sortowanie jest stabilne. Kolumna, która tyka, ale nie jest sortowana ani filtrowana, nie kosztuje żadnego ponownego sortowania.

  • SortOrder i SortIndex dla każdej kolumny, OnSortChange po każdej zmianie
  • FilterText nie rozróżnia wielkości liter i czyta tekst tak, jak widzi go użytkownik
  • OnFilterRow dla własnej logiki, InvalidateView, gdy ta logika się zmienia
  • SelectionMode zaznacza wiersze lub komórki, a Ctrl+C kopiuje je jako tekst rozdzielany tabulatorami
  • Wartości null, puste i niekonwertowalne zawsze sortują się na początku
Przeczytaj temat pomocy
Pokaż hierarchie za pomocą wierszy drzewa i pasm szczegółów

Kształtuj dane Tylko zarejestrowana

Pokaż hierarchie za pomocą wierszy drzewa i pasm szczegółów

Schemat organizacyjny albo zestawienie materiałowe najlepiej wyglądają jako drzewo, a zamówienia klienta najlepiej tuż pod klientem. Wiersze drzewa układają wiersze w głąb z kolumny klucza i kolumny rodzica. Pasma szczegółów otwierają małą siatkę powiązanych wierszy pod dowolnym wierszem nadrzędnym, z własnym nagłówkiem, przewijaniem i sortowaniem, wypełnianą z TsgcGridDataStore, innej siatki albo ze zdarzenia.

  • Tree.KeyField i Tree.ParentField włączają drzewo; ExpandNode i CollapseNode działają z kodu
  • Stan rozwinięcia jest zapamiętany dla każdego klucza, więc przetrwa sortowanie, filtrowanie i aktualizacje na żywo
  • Detail.MasterKeyField i Detail.DetailKeyField łączą pasmo z jego źródłem, a OnGetDetailData wypełnia je na żądanie
  • Pasma działają w trybie płaskim, grupowanym i drzewa, a zmienione komórki szczegółów błyskają jak w siatce nadrzędnej

Nie ma tego w wersji .NET Community, która zachowuje grupowanie.

Przeczytaj temat pomocy
Pokaż te same wiersze jako karty

Kształtuj dane Tylko zarejestrowana

Pokaż te same wiersze jako karty

Lista kontaktów, katalog produktów albo kolejka zgłoszeń często czyta się lepiej jako karty niż jako tabelę. Przy ViewStyle ustawionym na gvsCard siatka rysuje każdy wiersz jako kartę: opcjonalny pasek tytułu, opcjonalny obraz i po jednej linii na każdą widoczną kolumnę z jej tytułem i wartością. Karty pokazują te same wiersze co tabela, więc sortowanie, filtry, panel wyszukiwania, zaznaczanie, edycja i tryb serwera działają w obu widokach, a jedna właściwość przełącza je w czasie działania.

  • CardOptions ustawia CaptionField, ImageField nad polami lub obok nich, CardWidth i liczbę kart w paśmie
  • Każda karta ma ten sam rozmiar, więc widok kart stronicuje siatkę w trybie serwera z milionami wierszy tak jak tabela, z kartami zastępczymi dla wierszy, które jeszcze nadchodzą
  • Wartości są rysowane jak komórki: reguły formatowania, komórki postępu, tagów, łączy i sparkline, trafienia wyszukiwania i błysk przy zmianie
  • Klawisze strzałek przechodzą między kartami, Tab między polami, F2 edytuje pole, a prawy przycisk myszy na tytule pola otwiera menu kolumny, by sortować i filtrować bez nagłówka
  • Pismo od prawej do lewej, drukowanie i czytniki ekranu działają w widoku kart, a zapisany układ zachowuje widok

Widok kart nie grupuje i nie rysuje nagłówka kolumn, wiersza filtra ani stopki. W VCL, FireMonkey, WinForms, WPF i Avalonia, nie w wersji .NET Community.

Przeczytaj temat pomocy
Zachowaj kolumny kluczy w widoku, gdy reszta się przewija

Kształtuj dane

Zachowaj kolumny kluczy w widoku, gdy reszta się przewija

Szerokie siatki tracą kontekst, gdy symbol albo nazwa klienta się przewinie. FrozenColumns utrzymuje pierwsze widoczne kolumny na miejscu, gdy pozostałe przewijają się poziomo, a nagłówek, stopka i podsumowania grup podążają za tym samym podziałem. Użytkownicy zmieniają szerokość kolumn, przeciągając krawędź nagłówka, a renderer headless używa tego samego ustawienia, więc eksportowane obrazy odpowiadają ekranowi. Szewrony grup po lewej też nigdy się nie przewijają.

  • FrozenColumns liczy widoczne kolumny, a jednopikselowa linia oznacza zamrożoną krawędź
  • Ruchy klawiatury wprowadzają przewiniętą kolumnę w widok na prawo od zamrożonej krawędzi
  • FrozenWidth renderera zwraca szerokość, która się nie przewija
  • MinWidth ogranicza zmianę rozmiaru, OnColumnResized zgłasza nową szerokość
  • Część każdej edycji, także bezpłatnej wersji .NET Community
  • Od prawej do lewej dla arabskiego i hebrajskiego: pierwsza kolumna jest po prawej, zablokowane kolumny pozostają przy prawej krawędzi, a eksport XLSX siatki od prawej do lewej zapisuje arkusz od prawej do lewej
Przeczytaj temat pomocy
Demo FilterAndFind: przyciski lejka, wiersz filtra z (2 wartości) i > 500 oraz panel wyszukiwania podświetlający Nakatomi

Kształtuj dane

Filtruj jak w arkuszu kalkulacyjnym i znajdź każdą wartość

Użytkownicy oczekują lejka znanego z Excela. ShowFilterButtons umieszcza go w każdym nagłówku kolumny: otwiera okienko z unikalnymi wartościami kolumny i liczbą ich wierszy, polem wyszukiwania i maksymalnie dwoma typowanymi warunkami połączonymi przez I albo LUB. ShowFilterRow dodaje pod nagłówkiem wiersz, który filtruje kolumnę już podczas pisania, a Ctrl+F otwiera panel wyszukiwania, który podświetla tekst w każdej komórce i przeskakuje od trafienia do trafienia.

  • Każda kolumna ma filtr, edytowany przez okienko, wiersz filtra i Column.Filter w kodzie, więc wszystkie trzy zawsze się zgadzają
  • Listy wartości dwóch filtrowanych kolumn wzajemnie się zawężają, a wypełniony lejek pokazuje, które kolumny filtrują
  • FilterRowOperator dla każdej kolumny: równe, większe niż, zawiera, zaczyna się od, jest puste i inne
  • FindText, FindNext i FindPrevious działają z kodu, a FindOnlyMatches ukrywa wiersze bez trafień
  • Filtry kolumn działają razem z FilterText i OnFilterRow, a OnFilterChange zgłasza każdą zmianę
  • Kolumny dat filtrują według okresu: dziś, wczoraj, ten lub poprzedni tydzień, miesiąc albo rok oraz ostatnie N dni, a początek tygodnia ustawia FirstDayOfWeek

W siatkach VCL, FireMonkey, WinForms, WPF i Avalonia, łącznie z bezpłatną wersją .NET Community.

Przeczytaj temat pomocy

Kształtuj dane

Użytkownicy układają kolumny po swojemu i tak zostaje

Kliknięcie prawym przyciskiem nagłówka kolumny otwiera menu, które sortuje, grupuje, dopasowuje szerokości, filtruje i otwiera wybór kolumn, okienko z polem wyboru dla każdej kolumny. Użytkownicy przeciągają nagłówek, aby przenieść jego kolumnę, a dwukrotne kliknięcie krawędzi nagłówka dopasowuje szerokość do nagłówka i komórek. SaveLayoutToString i LoadLayoutFromString zapisują to wszystko jako krótki tekst JSON, dzięki czemu siatka otwiera się tak, jak użytkownik ją zostawił.

  • HeaderMenu, ColumnMoving i BestFitOnDblClick są domyślnie włączone, a przypisane PopupMenu nadal ma pierwszeństwo
  • ShowColumnChooser otwiera wybór z przycisku albo z własnej pozycji menu
  • Przeniesiona kolumna zostaje po swojej stronie kolumn zamrożonych i w swoim paśmie, a OnColumnMoved zgłasza przeniesienie
  • BestFitColumn i BestFitColumns mierzą nagłówek i do 1000 próbkowanych wierszy, więc milion wierszy kosztuje mniej więcej tyle samo co tysiąc
  • Układ zapisuje kolejność kolumn, szerokości, widoczność, sortowanie, grupowanie, filtry kolumn, pasma i opcje paneli; SaveLayoutToFile i LoadLayoutFromFile używają pliku
  • AutoSaveLayout zapisuje układ przy zamykaniu siatki i przywraca go przy następnym uruchomieniu, a Reset layout w menu nagłówka przywraca kolumny z czasu projektowania
  • AutoFitColumns sprawia, że kolumny wypełniają szerokość siatki, a MaxWidth ogranicza kolumnę przy zmianie rozmiaru lub dopasowaniu

W siatkach VCL, FireMonkey, WinForms, WPF i Avalonia, łącznie z bezpłatną wersją .NET Community.

Przeczytaj temat pomocy
Demo BandsAndCells: pasma Instrument, Live data, Price i Position, sparkline obszarowe, paski postępu, ikony statusu i trzy zaznaczone wiersze

Kształtuj dane

Nagłówki pasm, bogate komórki i zaznaczanie wielu wierszy

Ekran handlowy czyta się lepiej, gdy Last, Change i trend stoją pod jednym nagłówkiem Price. Bands dodaje nagłówki nad grupami kolumn, na dowolną liczbę poziomów, a każda kolumna podaje swoje pasmo w Band. CellKind rysuje komórkę jako obraz, pasek postępu lub sparkline, a komórka zachowuje swoją zwykłą wartość, więc sortowanie, grupowanie i eksport nadal widzą liczbę.

  • Bands.Add przyjmuje nagłówek i pasmo nadrzędne, a wiersze pasm układają się nad nagłówkiem kolumny
  • gcdProgress używa ProgressMin i ProgressMax; gcdSparkline rysuje wykres liniowy, obszarowy lub słupkowy z listy liczb
  • gcdTags pokazuje kilka kolorowych znaczników w jednej komórce z tekstu takiego jak "Urgent, Pending review", a TagColors i OnGetTagStyle pozwalają ustawić własne kolory
  • gcdImage rysuje obraz z CellImages, które siatka wypełnia z dowolnej listy obrazów przypisanej do Images
  • TrueValue i FalseValue zamieniają kolumnę przechowującą wartości takie jak "S" i "N" w pola wyboru, a gcdLink pokazuje łącze wywołujące OnLinkClick
  • HeaderLines, RowLines i WordWrap pokazują nagłówki i tekst komórek w kilku wierszach, a HeaderImageIndex i HeaderButton umieszczają obraz i przycisk w nagłówku kolumny
  • ShowTruncatedHints pokazuje pełny tekst uciętej komórki lub nagłówka jako podpowiedź, a OnGetCellHint ustawia własną podpowiedź dla każdej komórki
  • SelectionMode gsmMultiRow zaznacza dowolne wiersze z Ctrl i Shift, gsmCellRange zakres komórek, a Ctrl+A zaznacza wszystko
  • Zaznaczenie jest trzymane według klucza wiersza, więc przeżywa sortowanie, filtrowanie i aktualizacje na żywo, a Ctrl+C kopiuje je jako tekst rozdzielony tabulatorami
  • RowHeader dodaje pasek ze wskaźnikiem rekordu, numerami wierszy i polem wyboru przy każdym wierszu, a SelectionColor i SelectionTextColor ustawiają kolory zaznaczenia
  • RowDragMode przeciąga zaznaczone wiersze do innej kontrolki, a w VCL także do innych aplikacji, takich jak Excel

W siatkach VCL, FireMonkey, WinForms, WPF i Avalonia, łącznie z bezpłatną wersją .NET Community.

Przeczytaj temat pomocy

Edytuj i eksportuj

Zmieniaj dane, synchronizuj je z bazą danych, przekaż dalej.

Edytuj i eksportuj Tylko zarejestrowana

Edycja w miejscu z walidacją

Użytkownicy zaplecza oczekują, że poprawią ilość albo status prosto w siatce. Ustaw ReadOnly na False, a F2, Enter, wpisany znak lub podwójne kliknięcie otwiera edytor nad komórką albo pole kombi, gdy kolumna ma PickList. Wpisany tekst jest konwertowany na typ danych kolumny, OnValidate może zmienić lub odrzucić wartość, a wynik jest zapisywany przez UpdateCell, więc sortowanie i błyski nadal działają.

  • Editable dla każdej kolumny, a OnBeforeEdit może odmówić edycji
  • Enter zatwierdza, Tab przechodzi do następnej edytowalnej komórki, Escape anuluje; StartEdit, CommitEdit i CancelEdit robią to samo z kodu
  • OnEditError utrzymuje otwarty edytor przy błędnym wpisie, OnEdited zgłasza starą i nową wartość

Nie ma tego w wersji .NET Community.

Przeczytaj temat pomocy
Powiąż dowolny TDataSet w kilku liniach

Edytuj i eksportuj

Powiąż dowolny TDataSet w kilku liniach

Istniejący kod bazodanowy nadal działa: TsgcGridSource_DataSet wypełnia siatkę z zapytania FireDAC, TClientDataSet lub dowolnego innego TDataSet. Ustaw jego Grid i DataSet, włącz Active, a wiersze się pojawią. Z KeyField siatka jest synchronizowana, a nie przeładowywana, więc zmienione wiersze aktualizują się w miejscu i błyskają. Przy włączonym LiveUpdates każdy zatwierdzony Append, Edit i Delete trafia do siatki bez dodatkowego kodu.

  • AutoColumns tworzy kolumny z pól zestawu danych
  • Z KeyField nowe klucze są dołączane, a brakujące usuwane
  • Zestaw danych jest przeglądany z DisableControls, a jego bieżący rekord jest przywracany
  • JSON i CSV też: GridLoadFromJSONFile, GridSaveToCSVFile i reszta sgcGrid_IO
  • Obrazy zapisane w polach BLOB są pokazywane w kolumnach gcdImage, a ImagePreview pokazuje większą kopię, gdy mysz zatrzyma się nad komórką
  • ApplyFilter sprawia, że zestaw danych zachowuje tylko wiersze pokazywane przez siatkę, a OnApplySort przekazuje sortowanie siatki jako nazwy pól dla Twojego zapytania
  • W VCL polecenie Import columns from DB grid w menu kontekstowym siatki kopiuje w czasie projektowania kolumny, powiązanie z zestawem danych i zdarzenia kontrolki TDBGrid
  • W .NET ta sama klasa czyta DataTable
Przeczytaj temat pomocy

Edytuj i eksportuj Tylko zarejestrowana

Daj użytkownikom prawdziwy plik Excela

Księgowość chce liczby w Excelu, a nie zrzut ekranu. SaveToXLSX zapisuje siatkę jako skoroszyt Office Open XML do pliku lub strumienia, bez zewnętrznej biblioteki. Arkusz zachowuje to, co widzi użytkownik: widoczne kolumny w kolejności wyświetlania z ich szerokościami i formatami liczb, zamrożony nagłówek, grupy i poziomy drzewa jako zwijany konspekt oraz sumy grup jako formuły SUBTOTAL.

  • SaveToXLSX przyjmuje nazwę pliku lub strumień i opcjonalną nazwę arkusza
  • Liczby pozostają liczbami, daty stają się datami Excela, a DisplayFormat staje się formatem liczby komórki
  • Zwinięte grupy otwierają się w Excelu zwinięte, tak jak pokazywała je siatka
  • Wywołuj w wątku UI; pasma szczegółów nie są eksportowane
  • Każdy wiersz grupy i wiersz widoku jest zapisywany, niezależnie od tego, co jest zwinięte

Nie ma tego w wersji .NET Community, która zachowuje eksport do JSON i CSV.

Przeczytaj temat pomocy

Edytuj i eksportuj Tylko zarejestrowana

Pracuj w siatce jak w lekkim arkuszu kalkulacyjnym

Dział sprzedaży przysyła skoroszyt i chce szybko sprawdzić scenariusz, a nie kolejną rundę przez Excela. Gdy ExcelMode ma wartość True, siatka zachowuje się jak lekki arkusz kalkulacyjny: użytkownicy zaznaczają zakres, przeciągają uchwyt wypełniania, aby kontynuować serię, wpisują formuły zaczynające się od =, formatują komórki i pracują na kilku arkuszach. LoadFromXLSX otwiera sam skoroszyt, z pliku lub ze strumienia, bez zewnętrznej biblioteki i bez zainstalowanego Excela.

  • Zaznaczanie zakresu: przeciągnij prostokąt, rozszerz go klawiszami Shift+strzałki, a Ctrl+C go kopiuje
  • Uchwyt wypełniania kontynuuje serie liczb i dat, kopiuje tekst i przesuwa odwołania względne w formułach; każde wypełnienie to jeden krok cofania, a OnBeforeFill może je zablokować
  • Formuły z operatorami + - * / ^ &, porównaniami, odwołaniami A1, $A$1 i A1:B5 oraz funkcjami SUM, AVERAGE, MIN, MAX, COUNT, IF, ROUND i ABS
  • Błędy są pokazywane jako #DIV/0!, #REF!, #NAME?, #VALUE! oraz #CIRC! dla odwołania cyklicznego; wartości przeliczają się przy edycji, a sortowanie, filtry i podsumowania korzystają z wartości obliczonych
  • Formatowanie pojedynczych komórek: pogrubienie, kursywa, podkreślenie, przekreślenie, rozmiar i kolor czcionki, kolor wypełnienia, wyrównanie poziome i pionowe, zawijanie tekstu, format liczb i obramowania, ustawiane przez FormatSelection lub Ctrl+B, Ctrl+I, Ctrl+U i Ctrl+5; każda zmiana formatu to jeden krok cofania
  • Kilka arkuszy w jednej siatce: z ShowSheetTabs pasek kart dodaje je, zmienia ich nazwy, usuwa i zmienia ich kolejność, formuły odczytują inne arkusze za pomocą odwołań takich jak Orders!E1:E20 lub 'Q4 Notes'!B1, a zmiana nazwy przepisuje te odwołania
  • W trybie Excel SaveToXLSX zapisuje każdy arkusz z jego nazwą, formatami komórek i formułami jako formułami Excela z zapisanymi obliczonymi wartościami; wiersze są zapisywane w kolejności magazynu, więc odwołania pozostają dokładne
  • LoadFromXLSX w trybie Excel odczytuje wszystkie arkusze skoroszytu albo jeden arkusz według nazwy lub indeksu, tworzy kolumny z wiersza nagłówka z rozpoznanymi typami i odczytuje teksty, liczby, wartości logiczne i daty, także w systemie dat 1904
  • Formuły i formaty komórek skoroszytu trafiają do siatki jako działające w trybie Excel; w pozostałych przypadkach formuły trafiają jako wartości z pamięci podręcznej
  • Formuła kolumny Formula, na przykład =C1*D1, jest zapisywana dla wiersza 1 i oblicza każdy wiersz kolumny tylko do odczytu, na danych w pamięci, w trybie wirtualnym i ze źródłem DataSet; w trybie wirtualnym obliczane są także teksty formuł zwracane przez OnGetValue

To nie jest pełny arkusz kalkulacyjny: bez wykresów, bez scalonych komórek i bez formuł komórek ze źródłem DataSet, gdzie zastępują je formuły kolumn. Dostępne w VCL, FireMonkey, WinForms, WPF i Avalonia, ale nie w wersji .NET Community.

Przeczytaj temat pomocy Przeczytaj temat o formatowaniu komórek Przeczytaj temat o arkuszach Przeczytaj temat o formułach kolumn
Demo DataSetEditing: TDBNavigator i dwa TDBEdit na tych samych rekordach co siatka, z kolumną lookup dla kategorii

Edytuj i eksportuj Tylko zarejestrowana

Edytuj DataSet przez siatkę

Przy włączonym WriteBack komponent TsgcGridSource_DataSet zapisuje każdą zmianę w siatce do rekordu jej wiersza. Znajduje rekord przez KeyField i zatwierdza wartość. Jeśli zatwierdzenie się nie powiedzie, na przykład w kontroli BeforePost, rekord jest anulowany, a komórka zachowuje starą wartość. SyncCursor łączy bieżący rekord z zaznaczonym wierszem, więc TDBNavigator i kontrolki TDBEdit na tym samym zestawie danych podążają za siatką, a siatka za nimi.

  • AllowInsert: Ins dołącza rekord i go zatwierdza, a OnNewRecord zestawu danych wypełnia wartości domyślne
  • AllowDelete: Ctrl+Del usuwa zaznaczone wiersze i ich rekordy, gdy OnBeforeDelete się zgodzi
  • Pola lookup są edytowane jako lista wyboru wyników lookup, a zapisywany jest odpowiedni klucz
  • OnEditError pokazuje komunikat zestawu danych; wklejone wartości i cofnij używają tej samej ścieżki zapisu

W siatkach VCL, FireMonkey, WinForms, WPF i Avalonia; nie ma tego w wersji .NET Community. W .NET źródło zapisuje zmiany do DataTable, AddLookup dodaje kolumny lookup, a SyncCursor jest tylko w Delphi.

Przeczytaj temat pomocy
Demo Editing w ciemnym motywie z otwartym selektorem daty w kolumnie Date

Edytuj i eksportuj Tylko zarejestrowana

Selektory dat, wklejanie z Excela, cofnij i ponów

Każda kolumna wybiera kontrolkę, która ją edytuje. EditorKind wybiera selektor daty, czasu lub daty i czasu, pokrętło, selektor koloru albo edytor tokenów z sgcEditors, a wartość domyślna wynika z typu danych kolumny. Ctrl+V wkleja blok skopiowany z Excela: każda wartość jest konwertowana i sprawdzana, zanim cokolwiek zostanie zapisane, a całe wklejenie jest jednym krokiem cofania. Ctrl+Z i Ctrl+Y cofają i ponawiają zmiany oraz wklejenia.

  • OnCreateEditor umieszcza w komórce dowolną własną kontrolkę, na przykład TTrackBar
  • gedMemo edytuje długi tekst w wielu wierszach, a gedLookup wybiera wartość z listy o wielu kolumnach, wypełnianej z LookupItems lub z pola lookup
  • Kolumny z polami wyboru są przełączane w miejscu i zapisują z powrotem swoje TrueValue lub FalseValue
  • PasteText i PasteFromClipboard działają z kodu, a OnBeforePaste może zmienić tekst albo go odrzucić
  • Wartość, której nie da się skonwertować albo którą odrzuci OnValidate, zatrzymuje wklejanie, zanim cokolwiek zostanie zapisane
  • Cofnij działa po kluczu wiersza i polu, więc znajduje swoje wiersze po sortowaniu i filtrowaniu i zachowuje wartość, którą w międzyczasie zmieniła aktualizacja na żywo
  • UndoLimit zachowuje ostatnie 100 kroków; Undo, Redo i CanUndo działają z kodu

W siatkach VCL, FireMonkey, WinForms, WPF i Avalonia; nie ma tego w wersji .NET Community.

Przeczytaj temat pomocy

Skala i połączenia

Miliony wierszy, strumienie na żywo i zwykły język.

Przeglądaj miliony wierszy bez ich ładowania

Skala i połączenia

Przeglądaj miliony wierszy bez ich ładowania

Archiwa logów, historie czujników i wyniki zapytań, które już gdzieś są, nie muszą być kopiowane do pamięci. W trybie wirtualnym siatka nie przechowuje wierszy: VirtualRowCount mówi, ile ich jest, a OnGetValue zwraca wartość, gdy jej wiersz wjeżdża w widok. Rysowane są tylko widoczne wiersze, więc siatka z milionem wierszy kosztuje tyle samo co siatka z pięćdziesięcioma. Zmieniaj liczbę, gdy źródło rośnie.

  • Virtual i VirtualRowCount w danych siatki, OnGetValue dostarcza komórki
  • Podsumowania w stopce czytają swoje wartości także przez OnGetValue
  • Wiersze wirtualne nie mają kluczy, więc zachowują kolejność źródła, bez sortowania, filtrowania i błysków; aby sortować, filtrować i grupować w źródle danych, użyj trybu serwera poniżej
  • Dla strumieni, które rosną bez końca, MaxRows z TailMode to alternatywa z kluczami
Przeczytaj temat pomocy
Stronicuj tabelę bazy danych z milionami wierszy

Skala i połączenia Tylko zarejestrowana

Stronicuj tabelę bazy danych z milionami wierszy

Historia zamówień albo tabela audytu jest zdecydowanie za duża, by ją załadować, a mimo to użytkownicy chcą ją sortować, filtrować i grupować. W trybie serwera komponent dostawcy czyta jedną stronę wierszy naraz, a źródło danych oblicza sortowanie, filtry kolumn, wiersz filtra, tekst wyszukiwania, podsumowania stopki, grupowanie i liczbę wierszy. Tabela z milionami wierszy otwiera się tak szybko jak tabela z pięćdziesięcioma, a odczytywane są tylko strony widoczne na ekranie.

  • TsgcGridServerProvider_DataSet zamienia każde żądanie w jedną instrukcję SQL dla SQLite, SQL Server, PostgreSQL, MySQL, Oracle, Firebird, InterBase lub dialektu ogólnego, uruchamianą przez dowolny komponent zapytania: FireDAC, dbExpress, ADO, IBX, UniDAC, Zeos i inne
  • W .NET TsgcGridServerProvider_Queryable czyta dowolny IQueryable, na przykład zbiór Entity Framework Core, a TsgcGridServerProvider_AdoNet uruchamia ten sam SQL na dowolnym połączeniu ADO.NET
  • TsgcGridServerProvider_Callback obsługuje każde inne źródło, na przykład usługę REST, przez zdarzenia, na które można odpowiedzieć od razu lub później z dowolnego wątku
  • Wiersze ładują się w blokach po PageSize przez pamięć podręczną; rysowanie nigdy nie czeka, a wiersze jeszcze niezaładowane pokazują paski zastępcze, aż nadejdzie ich strona
  • Grupowanie działa na serwerze: jedna instrukcja GROUP BY na poziom zwraca grupy z liczbami wierszy i podsumowaniami, a elementy podrzędne grupy ładują się po jej rozwinięciu
  • Edycje są zapisywane z powrotem przez dostawcę, a eksport, drukowanie i kopiowanie czytają każdy wiersz, strona po stronie

Wiersze drzewa i pasma szczegółów nie są dostępne w trybie serwera, a okno filtra nie pokazuje liczby wierszy. W VCL, FireMonkey, WinForms, WPF i Avalonia, nie w wersji .NET Community.

Przeczytaj temat pomocy

Skala i połączenia

Pozwól użytkownikom pytać siatkę zwykłym językiem

Nie każdy użytkownik chce budować filtry. TsgcGridAI zamienia pytanie, takie jak price greater than 100 sort by volume descending highlight change less than 0, na filtry, sortowania i wyróżnienia wierszy w siatce, a pasek zapytań AI daje użytkownikom miejsce, w którym je wpiszą. Bez przypisanego dostawcy lokalnie odpowiada parser oparty na regułach, bez sieci i bez klucza API. Przypisz dostawcę, a odpowiadać będzie dowolny LLM: TsgcUIAIEventProvider przekazuje każde żądanie do Twojego kodu, a TsgcUIAIChatProvider używa komponentu TsgcAIChat z sgcWebSockets. Wysyłany jest tylko katalog pól, czyli nazwy, podpisy, typy i kilka przykładowych wartości kolumn, nigdy wiersze.

  • Pasek zapytań: TsgcVCLAIQueryBar, TsgcFMXAIQueryBar, TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar i TsgcAvaloniaAIQueryBar, z ostatnimi pytaniami, podpowiedziami, Cancel i Undo
  • Filtry przechodzą przez OnFilterRow, wyróżnienia stają się regułami formatowania ApplyToRow
  • Każda odpowiedź zastępuje poprzednią, a Undo cofa o jeden krok
  • LastExplanation mówi, co zastosowano, a gdy dostawca zawiedzie, odpowiada parser oparty na regułach
  • Most sgcGridWS zachowuje TsgcGridAIQuery z TsgcHTMLAIAssistant i wnosi TsgcGridFeedSource_WebSocket, TsgcGridFeedSource_MQTT i TsgcGridFeedSource_SSE, które zapisują wiadomości JSON do siatki według klucza

Każda edycja, także bezpłatna Community, w VCL, FireMonkey, WinForms, WPF i Avalonia. Dostawca sgcWebSockets i most sgcGridWS wymagają sgcWebSockets i edycji Registered.

Przeczytaj temat pomocy

Dostępność

UI Automation dla czytników ekranu, klawiatura i wysoki kontrast, bez konfiguracji.

Dostępność

Siatka udostępniana jako prawdziwa tabela

sgcGrid udostępnia swoją zawartość Microsoft UI Automation jako tabelę z nagłówkami kolumn, wierszami i komórkami, czyli interfejs API używany przez czytniki ekranu, takie jak Narrator i NVDA. Budowane są tylko widoczne wiersze, a liczby wierszy i kolumn są zawsze pełne, więc siatka z milionem wierszy nie kosztuje nic więcej.

  • Aktywna komórka, zaznaczenie, sortowanie, filtrowanie, grupowanie i wiersze drzewa są udostępniane przez wzorce Grid, Table i Selection
  • Strzałki, Home, End, Page Up i Page Down przesuwają aktywną komórkę, Shift rozszerza zaznaczenie, Ctrl+Space przełącza wiersz lub komórkę, a F2 lub Enter włącza edycję
  • Alt+Down otwiera okno filtra, Alt+Shift+Left i Alt+Shift+Right przesuwają kolumnę, Ctrl+Shift+G grupuje według aktywnej kolumny, a Ctrl+Shift+U usuwa to grupowanie
  • Widoczny wskaźnik fokusu, a w motywie wysokiego kontrastu systemu Windows siatka rysuje się kolorami systemowymi

Dostępność jest domyślnie włączona w każdej edycji, łącznie z bezpłatną edycją Community, w VCL w każdej wersji Delphi i C++Builder od Delphi 7 do Delphi 13, w FireMonkey w systemie Windows oraz w WinForms, WPF i Avalonia. W Delphi i C++Builder właściwości AccessibleName i AccessibleDescription ustawiają nazwę i opis udostępniane UI Automation, a w .NET to samo robią standardowa nazwa dostępności i tekst pomocy każdego frameworka. Zobacz raporty zgodności dotyczące dostępności. W Avalonia, która nie ma wzorców tabeli, każda komórka zawiera swoją kolumnę i pozycję w nazwie i tekście pomocy. Szerokość kolumn zmienia się wyłącznie myszą.

Przeczytaj temat pomocy

Zobacz sgcGrid w akcji

sgcGrid w demach pakietu sgcUI: kompletne aplikacje działające offline na wbudowanych danych symulowanych.

Klatka 1080p w kilka milisekund

Ostatnio zmierzone średnie z bramki wydajnościowej QA sgcGrid: klatka 1920 x 1080 z 12 kolumnami, 100 000 wierszy i 45 widocznymi wierszami, renderowana 60 razy na kanwie rastrowej. Bramka zawodzi powyżej 16 ms na klatkę w Win64 i 25 ms w Win32.

PomiarWynikWarunki
Zwykła klatka3,0 msWin32
Zwykła klatka4,6 msWin64
Zwykła klatka3,7 msLinux64
Błysk i 3 reguły formatowania3,2 msWin32
Błysk i 3 reguły formatowania6,8 msWin64
Demo LiveTicker, zapisy z wątku roboczegoOkoło 1000 aktualizacji na sekundęPosortowana, błyskająca siatka przy 60 fps

Źródło: temat pomocy opisujący te liczby.

Kto buduje z sgcGrid

Biura handlu i danych rynkowych

Tablica notowań musi pozostać czytelna, gdy setki cen zmieniają się co sekundę. Wątki strumienia piszą przez UpdateRow i nigdy nie czekają na UI, błysk przy zmianie pokazuje kierunek każdego ruchu, a tryb tail utrzymuje dziennik transakcji na najnowszym zleceniu. Most sgcGridWS może czytać notowania z WebSocket, MQTT lub SSE.

  • Aktualizacje na żywo
  • Błysk przy zmianie
  • Tryb tail
  • Strumienie na żywo
Uruchom demo LiveTicker

Back office i systemy branżowe

Ekrany wprowadzania zamówień, list magazynowych i fakturowania żyją na bazie danych. Powiąż istniejący TDataSet, pozwól użytkownikom grupować według klienta lub miesiąca z sumami w każdym wierszu grupy, poprawiać wartości w miejscu z walidacją i eksportować skoroszyt, który księgowość otwiera z nienaruszonymi grupami i formułami SUBTOTAL.

  • Powiązanie z DataSet
  • Grupowanie i podsumowania
  • Edycja w miejscu
  • Eksport do Excela
Uruchom demo DataSetGrid

Monitoring, logi i alerty

Ekrany operacyjne pokazują strumienie zdarzeń, które się nie kończą. MaxRows ogranicza log, reguły formatowania malują błędy na czerwono, a tryb wirtualny przegląda na żądanie archiwum milionów linii. Na serwerze Linux64 renderer zapisuje tę samą siatkę do pliku PNG lub SVG na potrzeby e-maila z alertem.

  • Reguły formatowania
  • MaxRows i tryb tail
  • Tryb wirtualny
  • PNG i SVG headless
Uruchom demo LiveFeed

Siatka na żywo w kilku liniach

To samo API w Delphi, C++ Builder i C#: dodaj kolumny, dołącz wiersze według klucza i aktualizuj je później z dowolnego wątku.

Siatka VCL w kodzie: typowane kolumny, wiersze dołączane według klucza i aktualizacja według nazwy pola z dowolnego wątku.

uses
  Forms, Classes, Controls,
  sgcGrid_Columns, sgcGrid_Data, sgcGrid_VCL;

procedure CreateGrid(aForm: TForm);
var
  oGrid: TsgcVCLGrid;
begin
  oGrid := TsgcVCLGrid.Create(aForm);
  oGrid.Parent := aForm;
  oGrid.Align := alClient;
  // the columns: FieldName, Caption and DataType
  oGrid.Columns.Add('Symbol', 'Symbol');
  oGrid.Columns.Add('Price', 'Price', gdtFloat).DisplayFormat := '0.00';
  oGrid.Columns.Add('Volume', 'Volume', gdtInteger);
  // one row per key, the values in column order
  oGrid.Data.AppendRow('MSFT', ['MSFT', 412.5, 1200]);
  oGrid.Data.AppendRow('AAPL', ['AAPL', 228.1, 3400]);
  // later, from any thread: update the row of a key by field name
  oGrid.Data.UpdateRow('MSFT', ['Price', 'Volume'], [413.1, 1350]);
end;

Przeczytaj temat pomocy →

Ta sama siatka w C++ Builder z wygenerowanymi nagłówkami sgcGrid.

#include "sgcGrid_Columns.hpp"
#include "sgcGrid_Data.hpp"
#include "sgcGrid_VCL.hpp"

void __fastcall CreateGrid(TForm *Form)
{
  TsgcVCLGrid *Grid = new TsgcVCLGrid(Form);
  Grid->Parent = Form;
  Grid->Align = alClient;
  // the columns: FieldName, Caption and DataType
  Grid->Columns->Add("Symbol", "Symbol", gdtText);
  Grid->Columns->Add("Price", "Price", gdtFloat)->DisplayFormat = "0.00";
  Grid->Columns->Add("Volume", "Volume", gdtInteger);
  // one row per key, the values in column order
  Grid->Data->AppendRow("MSFT", OPENARRAY(Variant,
    (Variant("MSFT"), Variant(412.5), Variant(1200))));
  Grid->Data->AppendRow("AAPL", OPENARRAY(Variant,
    (Variant("AAPL"), Variant(228.1), Variant(3400))));
  // later, from any thread: update the row of a key by field name
  Grid->Data->UpdateRow("MSFT",
    OPENARRAY(String, (String("Price"), String("Volume"))),
    OPENARRAY(Variant, (Variant(413.1), Variant(1350))));
}

Przeczytaj temat pomocy →

Siatka WinForms z błyskającymi komórkami, regułą dla ujemnej zmiany i ciemnym motywem.

using System.Windows.Forms;
using esegece.sgcGrid;
using esegece.sgcUICore;

internal class MainForm : Form
{
    private readonly TsgcWinFormsGrid Grid = new TsgcWinFormsGrid();

    public MainForm()
    {
        Grid.Dock = DockStyle.Fill;
        // the columns: field name, caption and data type
        Grid.Columns.Add("symbol", "Symbol");
        Grid.Columns.Add("price", "Price", TsgcGridDataType.gdtFloat).DisplayFormat = "#,##0.00";
        Grid.Columns.Add("change", "Change", TsgcGridDataType.gdtFloat).DisplayFormat = "+0.00;-0.00;0.00";
        Grid.Columns.Add("volume", "Volume", TsgcGridDataType.gdtInteger).DisplayFormat = "#,##0";
        // changed cells flash and fade, negative rows are tinted red
        Grid.FlashChanges = true;
        Grid.FormatRules.Add("change", TsgcGridFormatOperator.gfoLess, "0", 0x30E53935).ApplyToRow = true;
        Grid.Theme = TsgcUITheme.utDark;
        // one row per key, the values follow the column order
        Grid.Data.AppendRow("MSFT", "MSFT", 412.5, 0.0, 1200);
        Grid.Data.AppendRow("AAPL", "AAPL", 228.1, 0.0, 3400);
        Controls.Add(Grid);
    }

    // call it from any thread: TsgcGridData is thread safe
    public void OnQuote(string aSymbol, double aPrice, double aChange, int aVolume)
    {
        Grid.Data.UpdateRow(aSymbol, new[] { "price", "change", "volume" },
            new object[] { aPrice, aChange, aVolume });
    }
}
dotnet add package esegece.sgcGrid.WinForms

Przeczytaj temat pomocy →

Uruchom dema sgcGrid

19 dem dla Delphi, w tym pięć FireMonkey, 13 dla C++ Builder i 24 dla .NET w WinForms, WPF i Avalonia.

LiveTicker

LiveTicker

Około 1000 aktualizacji cen na sekundę z wątku roboczego przez UpdateRow, posortowany widok, błyskające komórki i reguła formatowania dla ujemnych zmian. VCL, FireMonkey, C++ Builder, WinForms, WPF i Avalonia.

DataSetGrid

DataSetGrid

TsgcGridSource_DataSet powiązany z TClientDataSet z 200 rekordami z KeyField, AutoColumns i LiveUpdates, plus eksport i import JSON i CSV.

Tylko zarejestrowana Spreadsheet

Tryb Excel z trzema arkuszami na pasku kart: Orders, w którym kolumna Total ma formułę kolumny =C1*D1, Summary, z =SUM(Orders!E1:E20) i innymi formułami między arkuszami, oraz Notes. Pasek narzędzi formatuje zaznaczenie, uruchamia polecenia arkuszy oraz zapisuje i otwiera pliki XLSX z formułami, formatami i nazwami arkuszy. VCL, FireMonkey (SpreadsheetFMX), C++ Builder, WinForms, WPF i Avalonia.

ServerModeAndCards

Tylko zarejestrowana ServerModeAndCards

200 000 wygenerowanych zamówień w bazie FireDAC SQLite w pamięci, stronicowanych przez TsgcGridServerProvider_DataSet. Przełączaj między tabelą a kartami, sortuj, filtruj, wyszukuj, sumuj w stopce, grupuj według kraju i klienta z liczbami i sumami obliczanymi przez SQL i zapisuj edycje z powrotem do bazy danych. VCL i C++ Builder; ServerModeAndCardsFMX stronicuje 100 000 wygenerowanych wierszy przez TsgcGridServerProvider_Callback, a dema WinForms, WPF i Avalonia mają strony ADO.NET, IQueryable i callback.

GroupAndSummary

GroupAndSummary

100 000 zamówień pogrupowanych według regionu i kategorii z panelem grup, podsumowaniami Count, Sum i Average, stopką i dwiema zamrożonymi kolumnami. W .NET nazywa się Grouping.

FilterAndFind

FilterAndFind

100 000 wierszy sprzedaży z wyskakującymi okienkami lejków, wierszem filtra i panelem wyszukiwania, a do tego wybór kolumn, optymalna szerokość oraz układ zapisany do pliku i wczytany z powrotem. VCL, FireMonkey, C++ Builder, WinForms, WPF i Avalonia.

BandsAndCells

BandsAndCells

2000 instrumentów pod pasmami Instrument, Live data, Price i Position, z komórkami sparkline, postępu i obrazu, zaznaczaniem wielu wierszy i przyciskiem Copy. VCL, C++ Builder i WinForms.

Tylko zarejestrowana Editing

Kolumna z listą wyboru, kolumna logiczna przełączana spacją, OnValidate odrzucające ujemne ilości, OnEditError i dziennik OnEdited, a do tego edytory daty, czasu, pokrętła, koloru i tokenów z sgcEditors, TTrackBar przez OnCreateEditor, wklejanie oraz cofnij i ponów.

DataSetEditing

Tylko zarejestrowana DataSetEditing

Products i Categories w dwóch TClientDataSet, z TDBNavigator i dwoma TDBEdit na tych samych rekordach: WriteBack, SyncCursor, kolumna lookup, wstawianie, usuwanie i cofnij. VCL, C++ Builder i WinForms (DataTable z AddLookup).

TreeAndDetail

Tylko zarejestrowana TreeAndDetail

Drzewo schematu organizacyjnego oraz klienci z pasmem szczegółów zamówień wypełnianym przez TsgcGridDataStore.

Tylko zarejestrowana ExcelExport

Siatka z grupami i siatka z drzewem zapisane przez SaveToXLSX i otwarte w arkuszu kalkulacyjnym, z zachowanym konspektem i podsumowaniami.

GridAndChart

Kafelek siatki i kafelek wykresu na dashboardzie: TsgcChartDataSource_Table rysuje wiersze siatki. Wymaga sgcCharts i sgcDashboard.

Tylko zarejestrowana AskYourGrid

TsgcGridAI i pasek zapytań AI filtrują, sortują i wyróżniają 200 akcji na podstawie pytań zadanych zwykłym językiem, bez sieci i bez klucza API, obok mostu TsgcGridAIQuery. Wymaga sgcWebSockets.

Tylko zarejestrowana LiveFeed

Serwer WebSocket w tym samym procesie rozsyła partie JSON z 50 symbolami, a TsgcGridFeedSource_WebSocket zapisuje je do siatki według klucza. Delphi i .NET.

Skompilowane dema

Gotowe do uruchomienia pliki wykonywalne każdego produktu sgcUI, nic nie trzeba instalować.

Pobierz sgcUI_bin.zip →

Przewodnik Getting Started

Pięć dem QuickStart dla Delphi (VCL) znajduje się w Demos\Grid\Delphi\00.QuickStart. Przewodnik PDF omawia je krok po kroku: pierwsza siatka, kolumny z typami, edycja w miejscu, połączenie ze zbiorem danych oraz aplikacja zamówień z filtrami, grupowaniem i sumami.

Pobierz przewodnik (PDF, po angielsku) →

Gdzie jest sgcGrid

sgcGrid jest sprzedawany osobno, wchodzi w skład każdej edycji sgcUI od Standard wzwyż i jest w pakiecie All-Access.

Pojedynczy pakiet sgcGrid

€199 / programista, pełny kod źródłowy, 1 rok aktualizacji.

Kup sgcGrid → Zobacz cennik →

sgcUI Standard

sgcGrid, sgcNavigation, sgcToolbar i sgcEditors, od €380.

Zobacz Standard →

sgcUI Professional

Standard plus sgcCharts, sgcDashboard i sgcGauges, od €529.

Zobacz Professional →

sgcUI Enterprise

Wszystkie produkty sgcUI (17), od €699.

Zobacz Enterprise →

Bezpłatna edycja .NET Community to esegece.sgcGrid.Community w NuGet. Projekt odwołuje się albo do pakietów Community, albo do zarejestrowanych, nigdy do obu. Bezpłatna edycja Delphi Community jest na stronie pobierania.

FunkcjaCommunity (bezpłatna)Zarejestrowana
Aktualizacje na żywo z dowolnego wątku, błysk przy zmianie, tryb tail✓✓
Reguły formatowania ze stylami czcionek i zestawami ikon, motywy✓✓
Sortowanie, filtrowanie i zaznaczanie✓✓
Grupowanie, panel grup i podsumowania✓✓
Zamrożone kolumny i zmiana szerokości kolumn✓✓
Tryb wirtualny✓✓
Powiązanie z DataTable, filtr siatki zastosowany do DataTable, JSON i CSV✓✓
PNG i SVG headless✓✓
Filtry kolumn z okresami dat, wiersz filtra i panel wyszukiwania✓✓
Wybór kolumn, zmiana kolejności kolumn, optymalna szerokość, układy automatyczne i kolumny wypełniające szerokość✓✓
Pasma, komórki obrazu, postępu, sparkline i tagów, zaznaczanie wielu wierszy✓✓
Komórki pól wyboru i łączy, obrazy z pól BLOB, wielowierszowe nagłówki i wiersze, podpowiedzi✓✓
Nagłówek wierszy z polami wyboru, obrazy i przyciski w nagłówkach, kolory zaznaczenia, przeciąganie wierszy✓✓
Zapytaj swoją siatkę: TsgcGridAI, pasek zapytań AI i dowolny dostawca LLM✓✓
Edycja w miejscu, przełączanie pól wyboru, edytory memo i lookup−✓
Dwukierunkowa edycja DataTable, wklejanie, cofnij i ponów, edytory komórek sgcEditors−✓
Wiersze drzewa i master detail−✓
Eksport do Excela−✓
Tryb Excel, formatowanie komórek, arkusze i formuły kolumn−✓
Tryb serwera: stronicowanie bazy danych, sortowanie, filtrowanie, podsumowania i grupowanie na serwerze−✓
Widok kart−✓
Strumienie na żywo, TsgcGridAIQuery i dostawca AI sgcWebSockets (mosty sgcGridWS i sgcUICoreWS)−✓

Obsługiwane frameworki i platformy

Komponenty w sgcGrid

KomponentCel
TsgcVCLGridDelphi i C++ Builder, VCL (sgcGrid_VCL)
TsgcFMXGridDelphi FireMonkey od XE6, w Windows, macOS, iOS i Android (sgcGrid_FMX)
TsgcGridData, TsgcGridColumns, TsgcGridFormatRules, TsgcGridLineView, TsgcGridRendererNiezależny od frameworka magazyn wierszy, kolumny, reguły formatowania i renderer, także w Linux64
TsgcGridAINiezależny od frameworka silnik zapytań w języku naturalnym, w każdej edycji, także w Linux64 (sgcGrid_AI)
TsgcVCLAIQueryBar, TsgcFMXAIQueryBar, TsgcUIAIEventProviderPasek zapytań AI i dostawca AI z sgcUICore, w każdej edycji
TsgcUIAIChatProviderMost sgcUICoreWS: TsgcAIChat z sgcWebSockets jako dostawca AI (edycja zarejestrowana)
TsgcGridSource_DataSet, TsgcGridDataStorePowiązanie z TDataSet i magazyn wierszy pasm master detail
TsgcGridFeedSource_WebSocket, TsgcGridFeedSource_MQTT, TsgcGridFeedSource_SSE, TsgcGridAIQueryMost sgcGridWS z sgcWebSockets (edycja zarejestrowana)
TsgcWinFormsGrid, TsgcWpfGrid, TsgcAvaloniaGrid.NET, WinForms, WPF i Avalonia
TsgcGridAI, TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar, TsgcAvaloniaAIQueryBar.NET, zapytania w języku naturalnym i pasek zapytań AI dla WinForms, WPF i Avalonia
CelKomponentPlatformy
Delphi 7 do 13, VCLTsgcVCLGridWin32 oraz Win64 od XE2
Delphi XE6 do 13, FireMonkeyTsgcFMXGridWindows, macOS, iOS i Android
C++ Builder 2007 do 13TsgcVCLGrid, TsgcFMXGridGenerowane nagłówki .hpp i biblioteki statyczne
Delphi 10.2 do 13, niezależne od frameworkaModel, formatowanie, renderer, JSON i CSVLinux64, na przykład do renderowania obrazów siatki na serwerze
.NET Framework 4.7.2, .NET 8, 9 i 10TsgcWinFormsGrid, siatki WPF i AvaloniaWinForms, WPF, Avalonia, PNG i SVG headless

Najczęściej zadawane pytania

Tak. AppendRow, UpdateRow, UpdateCell i DeleteRow danych siatki są bezpieczne wątkowo, więc wątek roboczy zapisuje wiersze według klucza bezpośrednio. Siatka odświeża się w głównym wątku najwyżej MaxFPS razy na sekundę. Zobacz Aktualizacje na żywo.

Rysowane są tylko widoczne wiersze, więc koszt klatki zależy od okna, a nie od liczby wierszy. Bramka QA mierzy klatkę 1080p siatki ze 100 000 wierszy na 3,0 ms w Win32 i 4,6 ms w Win64. Dla danych, które żyją gdzie indziej, tryb wirtualny nie przechowuje wierszy i prosi o wartości, gdy wjeżdżają w widok. Zobacz Wydajność.

Tak, w trybie serwera. Dostawca czyta jedną stronę wierszy naraz, a baza danych oblicza sortowanie, filtry kolumn, wiersz filtra, tekst wyszukiwania, podsumowania stopki, grupowanie i liczbę wierszy. W Delphi i C++ Builder TsgcGridServerProvider_DataSet buduje SQL dla SQLite, SQL Server, PostgreSQL, MySQL, Oracle, Firebird, InterBase lub dialektu ogólnego i uruchamia go przez dowolny komponent zapytania. W .NET dostawcy czytają IQueryable, na przykład zbiór Entity Framework Core, albo połączenie ADO.NET, a dostawca callback obsługuje każde inne źródło. Widok kart stronicuje tak samo. Tryb serwera jest w edycji Registered. Zobacz Tryb serwera.

Tak. TsgcGridSource_DataSet wypełnia siatkę z dowolnego TDataSet, tworzy kolumny przez AutoColumns i, z LiveUpdates, podąża za każdym Append, Edit i Delete zestawu danych. Z KeyField zmienione wiersze są aktualizowane w miejscu zamiast przeładowywane. W .NET to samo źródło czyta DataTable. Zobacz Powiązanie z DataSet.

Tak. TsgcVCLGrid to zwykła kontrolka VCL, więc może leżeć na formularzu obok istniejącego TStringGrid lub TDBGrid. Ekran z TDBGrid zachowuje swój zestaw danych i dodaje TsgcGridSource_DataSet; ekran z TStringGrid zapisuje swoje wiersze przez AppendRow i UpdateRow według klucza. Nie ma automatycznej konwersji całych formularzy, ale w czasie projektowania polecenie Import columns from DB grid w menu kontekstowym siatki kopiuje kolumny, powiązanie z zestawem danych, położenie i zdarzenia istniejącej kontrolki TDBGrid.

Edycji w miejscu, przełączania pól wyboru, edytorów memo i lookup, dwukierunkowej edycji DataTable, wklejania, cofnij i ponów, edytorów komórek sgcEditors, wierszy drzewa, wierszy master detail, eksportu do Excela, trybu Excel z formatowaniem komórek, arkuszami i formułami kolumn, trybu serwera, widoku kart, mostu sgcGridWS oraz dziennika potwierdzeń alarmów. Sortowanie, filtrowanie, wiersz filtra i panel wyszukiwania, grupowanie, podsumowania, zamrożone kolumny, wybór kolumn, układy i układy automatyczne, kolumny wypełniające szerokość, pasma, komórki obrazu, postępu, sparkline, tagów, łączy i pól wyboru, obrazy z pól BLOB, wielowierszowe nagłówki i wiersze, podpowiedzi, pasek nagłówka wierszy, obrazy i przyciski w nagłówkach, przeciąganie wierszy, zaznaczanie wielu wierszy, reguły formatowania z zestawami ikon, filtry okresów dat, tryb wirtualny, JSON i CSV, wyjście headless, lista alarmów ISA-18.2 oraz Zapytaj swoją siatkę z TsgcGridAI są w każdej edycji. Zobacz Edycje.

Tak. Rozmiary takie jak GroupIndent i GroupPanelHeight są w pikselach niezależnych od urządzenia, a siatka VCL skaluje je do DPI swojego monitora, osobno dla każdego monitora od Delphi 10.3. Theme przełącza między utLight i utDark, a AccentColor ustawia akcent zaznaczenia i błysku.

Pomoc sgcGrid

Migrujesz?

Przechodzisz z TDBGrid lub cxGrid?

Zestaw migracyjny przyporządkowuje każdy używany przez Ciebie element TDBGrid i DevExpress cxGrid jego odpowiednikowi w sgcGrid, z kodem ze skompilowanego dema, ponumerowanymi krokami migracji i znanymi różnicami.

Migracja z TDBGrid i cxGrid →
Wszystkie zestawy migracyjne sgcUI →
3,000+Programistów
20+Lat
761+Komponentów
30+Integracji API
5Platform
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów

Wypróbuj sgcGrid już dziś

Wersja próbna sgcUI zawiera sgcGrid z odblokowanymi wszystkimi funkcjami, pozostałe 16 produktów sgcUI i wszystkie projekty demonstracyjne.