Последняя версия DataExpress 3 beta от 1 сентября 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

как узнать таблицу, из которой берутся данные запроса?

Вопросы о применении того или иного класса или функции.
kok80
Эксперт
Сообщения: 284
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 12 раз

как узнать таблицу, из которой берутся данные запроса?

Сообщение kok80 » Сб сен 07, 2019 9:44 pm

Как для запроса TdxQueryGrid получить имя формы, из которой берутся данные ? Есть ли простой способ, не залезая в служебные таблицы ?

Аватара пользователя
admin
Разработчик
Сообщения: 4515
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 19 раз
Поблагодарили: 72 раза

как узнать таблицу, из которой берутся данные запроса?

Сообщение admin » Сб сен 07, 2019 10:40 pm

Не предусмотрено.

Аватара пользователя
Develop-Soft
Сообщения: 709
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 35 раз
Поблагодарили: 162 раза
Контактная информация:

как узнать таблицу, из которой берутся данные запроса?

Сообщение Develop-Soft » Вс сен 08, 2019 4:12 pm

Вариант решения:

Код: Выделить всё

function GetQuerySource(Query:TdxQueryGrid):TdxForm;
var SQ:TdxSqlQuery;
  i:integer;
  xmlDoc,Node:variant;
  FormList:TStringList;
begin
  SQ := TdxSqlQuery.Create(
  'select data from dx_reports where data containing ''name="'+Query.QueryName+'"''');
  SQ.Open;
  while not SQ.EoF do
  begin
    xmlDoc := CreateOleObject('Msxml2.DOMDocument.6.0');
    xmlDoc.LoadXML(Utf8StringReplace(SQ['data'],'&','Ёпта',[rfReplaceAll]));   // https://forum.mydataexpress.ru/viewtopic.php?p=23934&view=single_post#p23934
    Node := xmlDoc.SelectSingleNode('//reportdata');
    if Node.getAttribute('name') = Query.QueryName then
    begin
      Node :=  Node.SelectSingleNode('sources')
      if Node.childNodes.length = 1 then
      begin
        Node := Node.childNodes[0];
        FormList := TStringList.Create;
        GetForms(FormList)
        for i:=0 to FormList.Count-1 do
        begin
          if Node.getAttribute('id') =
          TdxForm(FormList.Objects[i]).Id then
          result := TdxForm(FormList.Objects[i]);
          Continue;
        end;
        FormList.Free;
      end;
      Node := Unassigned;
    end;
    xmlDoc := Unassigned;
    SQ.MoveNext;
  end;
  SQ.Free;
end; 
Для корректного парсинга невалидного xml пришлось поставить "заглушку".

Тест:

Код: Выделить всё

procedure GetQueriesSources(Fm:TdxForm);
 var i:integer;
     sFm:TdxForm;
begin
  for i:=0 to Fm.ComponentCount-1 do
    begin
      if Fm.Components[i].ClassName = 'TdxQueryGrid' then
      begin
        sFm := GetQuerySource(TdxQueryGrid(Fm.Components[i]));
        if sFm=nil then Continue;
        debug('        "'+TdxQueryGrid(Fm.Components[i]).QueryName+'" источник: "'+
        sFm.FormCaption+'"');
        sFm:=nil;
        Application.ProcessMessages;
      end;
    end;
end; 

procedure TestQuerySources;
var i:integer;
    SL:TStringList;
    Fm:TdxForm;
begin
    SL:=TStringList.Create;
    GetForms(SL);
    for i:=0 to SL.Count-1 do
    begin
      Fm:=TdxForm(SL.Objects[i]);
      debug(Fm.FormCaption)
      GetQueriesSources(Fm);
    end;
    SL.Free;
end;

procedure DataBase_Open;
begin
  TestQuerySources;
end; 


Результат теста:

Код: Выделить всё

About
Админ Панель Администратор
        "Запрос Пациенты лечение админ" источник: "Карта Пациента"
        "Запрос Пациенты оплаты админ" источник: "Форма оплаты"
        "Запрос Пациенты Авансы Админ" источник: "Форма аванса"
        "Запрос Планов лечения Админ" источник: "План лечения"
        "Запрос РН" источник: "Форма Направления на исследование"
        "Запрос отмененных визитов" источник: "Форма учета отмены визита"
        "Запрос Пациенты запись на прием" источник: "Форма Добавления записи пациентов"
        "ЗапросОбзвонаАдмин" источник: "Карта Пациента"
        "Запрос ДР Админ" источник: "Данные пациента"
        "ЗапросИмплантыАдмин АП" источник: "Протокол операции"
        "Запрос Вызовов Дисциплины" источник: "Данные пациента"
        "Запрос Комментариев врачей" источник: "Форма Добавления комментария"
        "Запрос Данные Пациента АП" источник: "Данные пациента"
        "Запрос Смен ассистентов Админ" источник: "Форма учета графика ассистенов"
        "ЗапросДолжники АП" источник: "Карта Пациента"
        "Запрос Фото Админ" источник: "Карта Пациента"
        "Запрос Технические Фото Админ" источник: "Заявка отправки фото"
        "Запрос Страховые АП" источник: "Форма Страховые компании"
        "Запрос Страховые Расчет АП" источник: "Форма оплаты"
        "Запрос Закрытия" источник: "Форма Закрытия Кассы"
        "ЗапросОплаты АП" источник: "Карта Пациента"
        "Запрос Недавних пациентов" источник: "Данные пациента"
Админ Панель Врач
        "Запрос Счета Пациента Врач" источник: "Карта Пациента"
        "Запрос План Лечения Врач" источник: "План лечения"
        "Запрос Снимков" источник: "Форма Направления на исследование"
        "Запрос Данные Пациента Врач" источник: "Данные пациента"
        "Запрос Записи на прием Врач" источник: "Форма Добавления записи пациентов"
        "Запрос смены врачей" источник: "Врачи"
        "Запрос смен Ассистенты" источник: "Ассистенты"
        "Запрос Почтовых сообщений" источник: "Почтовое собщение"
Админ Панель Глав Врач
        "Запрос Комментариев врачей ГВ" источник: "Форма Добавления комментария"
        "Запрос Врачи ГВ" источник: "Врачи"
        "Запрос Ассистены ГВ" источник: "Ассистенты"
        "Запрос Администраторы ГВ" источник: "Администратор"
        "Запрос первичных ГВ" источник: "Данные пациента"
        "Запрос Заполнения ГВ" источник: "Карта Пациента"
        "Запрос Отмен посещений" источник: "Форма учета отмены визита"
        "Запрос Оплат технику ГВ" источник: "Форма Наряд"
        "Запрос Техники ГВ" источник: "Зубные Техники"
Администратор
Актуальный прайс
        "Запрос Актуальный прайс" источник: "Прайс"
        "Запрос Актуальный прайс Консультация" источник: "Прайс"
        "Запрос Актуальный прайс Гигиена" источник: "Прайс"
        "Запрос Актуальный прайс Терапия" источник: "Прайс"
        "Запрос Актуальный прайс Ортодонтия" источник: "Прайс"
        "Запрос Актуальный прайс Ортопедия" источник: "Прайс"
        "Запрос Актуальный прайс Хирургия" источник: "Прайс"
Анестетики
Ассистенты
База имплантов
Валюта
Врачи
Выбор зубов
Выбор конструкции
Города
Данные пациента
        "ЗапросВрачей" источник: "Карта Пациента"
        "ЗапросОплат" источник: "Форма оплаты"
        "ЗапросЗвонки" источник: "Форма Звонков"
        "Аванс Запрос" источник: "Форма аванса"
Маркеры
Данные пациента Выдача паспорта
Данные пациента Регистрация
Данные Страховые компании
Диагнозы
Дисциплина
Доходная Форма
        "РасходнаяФорма" источник: "Расходы"
Закупка Баланс
        "Запрос Расходы" источник: "Закупка Расход"
        "Запрос Заказы" источник: "Закупка Заказ товаров"
Закупка Заказ товаров
Заказная форма
Закупка Каталог Стомат Товаров
Цены поставщиков
Закупка Категории стомат товаров
Закупка Поставщики
Закупка Приход
Приход
Закупка Расход
Расход
Запись пациентов
        "Запрос Записи на прием" источник: "Форма Добавления записи пациентов"
        "Запрос Врачей" источник: "Врачи"
Запись пациентов на 7 дней
Запись Пустая запись
Запрос авансов пациента
        "Запрос Авансов форма" источник: "Форма аванса"
Запрос Списка дел
        "Запрос СпискаДел" источник: "Форма Дело"
Зарплата по старым ведомостям
        "ЗапросФормОплатЗарплатыСТ" источник: "Форма оплаты"
Заявка отправки фото
Звонки Результат
Зубные Техники
Калькулятор ЗП
Карта Зубная формула
Карта ОртоЭтапы
Карта Пациента
        "Запрос Протоколы Операции" источник: "Протокол операции"
        "Запрос Форма Дезинтеграции" источник: "Форма Дезинтеграция имплантов"
        "Запрос Нарядов" источник: "Форма Наряд"
        "Запрос Форм Добавления счета" источник: "Форма Добавления счета"
        "Счет Печать" источник: "Форма Добавления счета"
        "Запрос Форма Оплаты" источник: "Форма оплаты"
        "Кнопки Шаблонов" источник: "Шаблоны"
ВыполненоПрайс
ОртЭтапы
РН обследование
Карта Пациента Примечания
Карта Пациента Типы манипуляций
Карта Пломбировочные материалы
Карта Просмотр Лечение
КартаАнамнез
КартаДиагноз
КартаЖалобы
КартаЛечение
КартаОбщий осмотр
КартаОбьективно
Комментарии шаблоны
Комплексы лечения
Комплекс
Кость
Маркеры пациентов
Мембрана
Наряд Фиссуры
Ортопдеия Вид работ
Ортопедия Заметки
Ортопедия Расцветки
Ортопедия Типы Ложек
Ортопедия Типы материалов
Откуда узнали
Отчет Recid0
        "Запрос ДанРек0" источник: "Данные пациента"
        "Запрос КартыРек0" источник: "Карта Пациента"
Отчет Выхода ассистентов
        "Запрос Смен ассистентов" источник: "Форма учета графика ассистенов"
        "Запрос Смен ассистентов Фильтр" источник: "Форма учета графика ассистенов"
Отчет Должники
        "ЗапросОтчетДолжники" источник: "Карта Пациента"
Отчет за период инкассации
        "Запрос Первичных за период инкасации" источник: "Данные пациента"
        "Запрос Карт за период инкасации" источник: "Карта Пациента"
        "Запрос периодов инкасаций" источник: "Форма Закрытия Кассы"
Отчет Заполенные карты
        "Запрос Заполнения карт" источник: "Карта Пациента"
Отчет Звонков
        "Запрос Отчет Звонков" источник: "Форма Звонков"
Отчет Оплат
        "Запрос Оплат" источник: "Форма оплаты"
Отчет Оплат технику
        "Запрос Оплат технику" источник: "Форма Наряд"
Отчет оплаченых Технику
        "Запрос Отчет оплаченых" источник: "Форма Наряд"
Отчет ошибки
        "Запрос Ошибок" источник: "Ошибки и Предложения"
Отчет первичных пациентов
        "Запрос первичных" источник: "Данные пациента"
        "Запрос Планов лечения" источник: "План лечения"
Отчет по врачам сегодня
        "Запрос ПациентВрач" источник: "Карта Пациента"
Отчет по техникам
        "Запрос Отчет техники" источник: "Форма Наряд"
Отчет Поданных страховых
        "Запрос Отчет Под Страховка" источник: "Форма оплаты"
Отчет Посещаемости
Отчет Премии Удержания Все
        "Запрос Премий Удержаний Ассистентов" источник: "Форма Премии Удержания Ассистент"
        "Запрос Премий Удержаний Администраторов" источник: "Форма Премии Удержания Администратор"
        "Запрос Премий Удержаний Врачей" источник: "Форма Премии Удержания"
Отчет премий удержаний
        "ЗапросФормПремии Удержаний" источник: "Форма Премии Удержания"
Отчет Расходы за период
        "Запрос Расходов за период" источник: "Расходы"
Отчет Реклама
        "Запрос Поставщиков" источник: "Данные пациента"
Отчет сводная по докторам
        "Запрос сводная Выручка " источник: "Форма оплаты"
Отчет сводный по поставщикам
        "Запрос по поставщикам" источник: "Форма оплаты"
        "Запрос по поставщикам общий" источник: "Форма оплаты"
Отчет Страховых
        "Запрос Отчет Страховка" источник: "Форма оплаты"
Отчет Финансов Клиники
        "ЗапросФормОплатЗарплаты" источник: "Форма оплаты"
        "ЗапросФормПремии" источник: "Форма Премии Удержания"
        "ЗапросФормВозвраты" источник: "Форма возврата средств"
        "ЗапросАвансовВнесение" источник: "Форма аванса"
        "ЗапросАвансовЗакрытие" источник: "Форма аванса"
        "ЗапросФормОплат" источник: "Форма оплаты"
        "Запрос Оплат технику Отчет" источник: "Форма Наряд"
        "ЗапросФормОплатПродаж" источник: "Форма оплаты продажи товара"
        "Запрос Расходы за период" источник: "Расходы"
Отчетность по имплантам
        "Запрос Установленных Имплантов Общий" источник: "Протокол операции"
        "Запрос Установленных Имплантов Детальный" источник: "Протокол операции"
        "Запрос Дезинтеграция Имплантов" источник: "Форма Дезинтеграция имплантов"
Отчетность по ложкам
        "Запрос ложек" источник: "Форма Учета ложек"
Ошибки и Предложения
Панель персонала
        "Запрос Врачи" источник: "Врачи"
        "Запрос Врачи378" источник: "Ассистенты"
        "Запрос Врачи378379" источник: "Администратор"
        "Запрос Врачи378379380" источник: "Зубные Техники"
Пароли главного врача
Печатные формы
Печать карт
        "Запрос Манипуляций" источник: "Карта Пациента"
План лечения
        "Запрос Прайса Консультации" источник: "Прайс"
Манипуляции
ОртодонтияПлан
ОртопедияПлан
ТерапияПлан
ХирургияПлан
План Лечения Примечания
Почтовое собщение
Прайс
Продажи Каталог товаров
        "Запрос Товаров для продажи" источник: "Продажи Форма добавления товара"
Продажи Счет Оплата товара Админ
        "Запрос Оплат по продажам Админ" источник: "Форма оплаты продажи товара"
Товар Админ
Продажи Счет Оплата товара Врач
        "Запрос Оплат по продажам" источник: "Форма оплаты продажи товара"
Товар Врач
Продажи Форма добавления товара
Протокол операции
Установленные импланты
Протокол операции Шаблоны
Расходы
Расчет ЗП Персонала
        "Запрос Смен Печать ЗП" источник: "Форма учета графика ассистенов"
        "Запрос Премий Удержаний Ассистента" источник: "Форма Премии Удержания Ассистент"
        "Запрос Премий Удержаний Администратор" источник: "Форма Премии Удержания Администратор"
        "Запрос Администратор Оплаты" источник: "Форма оплаты"
        "Запрос Администратор Расход" источник: "Форма Наряд"
Сводная форма по материалам
        "Запрос Приход" источник: "Форма Получения материалов"
        "Запрос Расход" источник: "Форма Отправки материалов"
        "Запрос Материалов" источник: "Ортопедия Типы материалов"
Сокращения
Сотрудники
Список Форма Дело
Справка RN
Справочник
Справочник База Диагнозы
Справочник База Индексы
Справочник База Шаблоны Карт
Справочник Блоки
Справочник Блоки Группы
Справочник Диагнозы
Справочник Диагнозы Запрос
        "Запрос Диагноз" источник: "Справочник Диагнозы"
Справочник Индексы
        "Запрос Индексы" источник: "Справочник База Индексы"
Справочник МКБ
        "Запрос Диагнозов" источник: "Справочник База Диагнозы"
Справочник Неотложка
Справочник Шаблоны карт
Тест
Улицы
Фирмы имплантов
Форма аванса
Форма ввода пароля
Форма Внесение средств
Форма возврата средств
Позиция прайса
Форма Выбора счета пациента
        "Запрос Всех счетов на оплату" источник: "Форма Добавления счета"
Форма Дезинтеграция имплантов
Форма Дело
Форма Добавления записи пациентов
Форма Добавления комментария
Форма Добавления счета
        "Запрос Оплат Добавление счета" источник: "Форма оплаты"
        "Запрос Нарядов Добавление счета" источник: "Форма Наряд"
Добавление манипуляций
Форма Закрытия Кассы
Форма Звонков
Форма Направления на исследование
Форма Наряд
        "Запрос Ложек Наряд" источник: "Форма Отправки материалов"
Виды работ
Оплата по наряду
Форма настройки общих шаблонов
        "Шаблоны карт" источник: "Шаблоны"
        "Примечания карт" источник: "Карта Пациента Примечания"
        "Запрос Анестетиков" источник: "Анестетики"
        "Запрос Пломбировочных материалов" источник: "Карта Пломбировочные материалы"
        "Запрос Ортопедических расцветок" источник: "Ортопедия Расцветки"
        "Запрос Фиссур" источник: "Наряд Фиссуры"
        "Запрос Видов работ ортопедии" источник: "Ортопдеия Вид работ"
        "Запрос примечаний плана лечения" источник: "План Лечения Примечания"
        "Запрос Сроков лечения" источник: "Форма Сроки"
        "Запрос Дисциплин" источник: "Дисциплина"
        "Запрос Типов манипуляций" источник: "Карта Пациента Типы манипуляций"
        "Запрос Фирм имплантов" источник: "Фирмы имплантов"
        "Запрос размеров имплантов" источник: "База имплантов"
        "Запрос Костных материалов" источник: "Кость"
        "Запрос Мембран" источник: "Мембрана"
Форма оплаты
        "Печать Манипуляции" источник: "Форма Добавления счета"
        "Запрос Чек Оплаты" источник: "Форма оплаты"
Форма оплаты продажи товара
Форма Отправки материалов
Отправлено
Форма Перезвонить
Форма Получения материалов
Получено
Форма Премии Удержания
Форма Премии Удержания Администратор
Форма Премии Удержания Ассистент
Форма Рекламы
Форма Сроки
Форма Страховые компании
Форма учета графика ассистенов
Добавление Астт
Форма Учета Дезинтегрированных Имплантов
        "Запрос ДезИмпл" источник: "Форма Дезинтеграция имплантов"
Форма Учета ложек
Форма учета отмены визита
Шаблоны
Шаблоны Администратор
        "Запрос поставщиков Пациентов" источник: "Форма Рекламы"
        "Запрос395396" источник: "Откуда узнали"


Вернуться в «Вопросы по API DataExpress.»