powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Парсинг + Select
11 сообщений из 11, страница 1 из 1
Delphi Парсинг + Select
    #39620722
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть вопрос по поводу парсинг.
У меня запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT B.TOCHKA, sum(b.analizid) as rn
      , LIST(b.analizzakaz',';'|| ASCII_CHAR(13) || ASCII_CHAR(10)) AS OPIS
      , LIST(b.Sost, ';'|| ASCII_CHAR(13) || ASCII_CHAR(10)) AS sost
      , D_STart, (D_Start) as Stope

  FROM ANALIZ$ZAKAZ B, LABEL$TOCHKA C
 WHERE C.T_UNIT = B.TOCHKA
   AND d_start between :a and :b

GROUP BY TOCHKA, D_STart
ORDER BY 1



Такой запрос нужен для отображения данных.
Мне нужно,осуществить ПАРСИНГ для поля b.sost
Мне нужно получить значения, что бы закрасить FONT в значений b.analizzakaz
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620724
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
а зачем парсить сам запрос ?
Каким компонентом пользуешься для отображения ?
Обычно у всех есть свойство типа onDrawCell
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620743
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator,
Запрос я формирую в FIBDataSet.
Отображение идет через DBPeriodSource- этот компонент необходим для заполнения моего DBPlanner.
В DBPeriodSource - есть такой Event
DBPeriodSource1FieldsToItem- который мне поможет.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure TAnalizJob_Form.DBPeriodSource1FieldsToItem(Sender: TObject; Fields: TFields; Item: TPlannerItem);
begin
if Fields.FieldByName('Sost').AsInteger = 1 then Begin
 Item.Text.Text := ('<b><font color="clGreed">'+ Fields.FieldByName('OPIS').AsString + '</font></b>' );
End;

if Fields.FieldByName('Sost').AsInteger = 0 then Begin
 Item.Text.Text := ('<b><font color="clYelo">'+ Fields.FieldByName('OPIS').AsString + '</font></b>' );
End;

if Fields.FieldByName('Sost').AsInteger = 2 then Begin
 Item.Text.Text := ('<b><font color="clRed">'+ Fields.FieldByName('OPIS').AsString + '</font></b>' );
End;
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620754
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
я не очень понял вопрос - ты не умеешь с компонентами TMS работать, или что ?
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620758
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator,
Могу..
Просто нужно, что бы в зависимости от статуса менялся фон надписи.
и при этом нужно что бы все заказы в точках и в этот день находились в одном Item/. а не каждый в своем.
Для стандартной задачи там все просто. При таком раскладе ... как я вижу нужен ПАРСЕР.

Как еще объяснить я не знаю. у каждого номера Заказа есть свой статус. И он (заказ) проходит через все рабочие точки.
В день таких заказов может быть .... много.
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620760
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kadekin,

Для решения задачи, я вижу что нужно только парсить. Текстовы файл, или Html/ нет проблем... а тут с запросом .... не пойму как сделать. чтобы и № заказа и его состояние.. ведь в один день и на одной операции у меня будит весь спектр состояний и повторяться .. для каждого заказа свой .. :(
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620799
Redmond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эмм.... Типа чтоле как-то так?:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT B.TOCHKA, sum(b.analizid) as rn
      , LIST('<b><font color="'+CASE WHEN b.Sost=0 THEN 'clYelo' WHEN b.Sost=1 THEN 'clGreed' WHEN b.Sost=2 THEN 'clRed' ELSE 'clBlack' END+'">'+b.analizzakaz+'</font></b>', ';' || ASCII_CHAR(13) || ASCII_CHAR(10)) AS OPIS
      , D_STart, (D_Start) as Stope
  FROM ANALIZ$ZAKAZ B, LABEL$TOCHKA C
 WHERE C.T_UNIT = B.TOCHKA
   AND d_start between :a and :b
GROUP BY TOCHKA, D_STart
ORDER BY 1



Код: pascal
1.
2.
3.
4.
procedure TAnalizJob_Form.DBPeriodSource1FieldsToItem(Sender: TObject; Fields: TFields; Item: TPlannerItem);
begin
Item.Text.Text:=Fields.FieldByName('OPIS');
End;
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620810
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Redmond,

Спасибо за помощь...
Вопрос, использую Fierbierd 2.5
Выдает ошибку

Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Dynamic SQL Error.
expression evaluation not supported.
Strings cannot be added or subtracted in dialect 3.
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620834
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KadekinStrings cannot be added or subtracted in dialect 3.О, и тут ты :)
Ну написано же: К строке нельзя ничего прибавлять и вычитать. Можно только конкатенировать с помощью ||
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620839
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

Да, я пробовал,, не помогло ..
...
Рейтинг: 0 / 0
Delphi Парсинг + Select
    #39620840
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kadekin,
Все Спасибо , все заработало.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Парсинг + Select
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]