программы. В одной поле в таблицах это константный Kind, а в другом код из справочника. Говорила шефу, что ерунда получиться и вот уже больше месяца обновления выложить не могу. Даже компоненты выбора получаются разными: одна почти обычный комбобокс, а другая понавороченней выбор из справочника. Обкладываю ifdef`ами и уже сейчас видно, что изменений будет достаточно много. Делаю на 7ке. Может не вижу простой путь?
Уже наплодилось и это только начало:
{$ifdef KfgTarifRef}
TKfgTarifEdit = class(TSKFldRefLookup)
{$else}
TKfgTarifEdit = class(TSKFldLookup)
private
FTcField: string;
{$endif}
private
function GetTcField: string;
procedure SetTcField(AValue: string);
public
procedure ResizeWidth;
property TcField: string read GetTcField write SetTcField;
end;
function EKfgTarifCodeCreate(AParent: TWinControl; AName: string;
ALeft, ATop, AWidth, AHeight: integer;
ALabel: TLabel; ATabOrder: integer;
ADataSource: TRecSource; AFieldName, ATcField: string): TKfgTarifEdit;
выбор из справочника как делается (связь с данными) - простой селект? выбирай "константный Kind" тоже селектом
Ну не совсем простой селект, но мысль такая была. Делать временную таблицу при первом обращении. Остановило, что если коннекшен попортиться, то везде где джоиниться эта талица будет слом. И как-то рука не поднимается делать лишний join, где можно обойтись списком каиндов. Обдумаю еще разок плюсы-минусы. Спасибо
не, не временная таблица, а простая заглушка типа select 1 as id union select 2 as id union ... текст которой можно генерить в паскале
Можно и так попробовать. Загвоздка в том что kind уникален только в пределах транспортной компании, в отличии от кода. Смотрю
По закону сохранения сложности - она никуда не денется. Но я бы тоже свёл задачу к предыдущей/одно/без ifdef, на уровне программы.
Без ifdef не обойтись, но похоже можно обойтись одной компонентов, вроде позволяет
Обсуждают сегодня