Как добавить колонку с вычисляемым полем в браузер
Модераторы: m0p3e, edward_K, Модераторы
Как добавить колонку с вычисляемым полем в браузер
for (i := 0; i < 2; i++)
{
cfsSetCurrentContainer('ACTCOMPL.editsopr.brbynameraz');
cfsCreateObject('Column', 'brbynameraz', 'summa', FALSE, fMy_var);
cfsSetProp('summa','Visible',TRUE);
if (i = 0)
{
cfsSetProp('summa','Visible',FALSE);
}
else
{
cfsSetProp('summa','Visible',TRUE);
}
cfsSetProp('summa','Title','Общая сумма');
}
Здесь добавляется поле из таблицы katsopr.summa в browse.
Можно ли таким способом создать вычисляемое поле ? И если можно, то как? Может как-то по другому (но не через конфигуратор!) ?
{
cfsSetCurrentContainer('ACTCOMPL.editsopr.brbynameraz');
cfsCreateObject('Column', 'brbynameraz', 'summa', FALSE, fMy_var);
cfsSetProp('summa','Visible',TRUE);
if (i = 0)
{
cfsSetProp('summa','Visible',FALSE);
}
else
{
cfsSetProp('summa','Visible',TRUE);
}
cfsSetProp('summa','Title','Общая сумма');
}
Здесь добавляется поле из таблицы katsopr.summa в browse.
Можно ли таким способом создать вычисляемое поле ? И если можно, то как? Может как-то по другому (но не через конфигуратор!) ?
СПАСИБО сработало ! Добавил в select поле, а потом уже использовал его при добавлении в браузер.
Теперь вопрос. Как изменить формат выводимого вычисляемого поля в select поля. Мне надо допустим 88'001.09, а выводит 88000. Как быть ?
Теперь вопрос. Как изменить формат выводимого вычисляемого поля в select поля. Мне надо допустим 88'001.09, а выводит 88000. Как быть ?
Последний раз редактировалось BlazeBio 17 май 2010, 16:33, всего редактировалось 1 раз.
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Re: Как добавить колонку с вычисляемым полем в браузер
Приветствую!
А вот у меня не получилось!
Делаю так
Ошибок при компиляции нет, но при вызове фейса дает ошибку, что не может определить поле tt.
Если же просто вывести DocInfo.cdoc, то поле cdoc появляется и все работает.
Как же добавить вычисляемое поле в стандартный фейс?
А вот у меня не получилось!
Делаю так
Код: Выделить всё
Alter interface DOGOVOR;
overload end;
create view
var tts: string;
as select Dogovor1.nrec, if(DocInfo.cdoc>0, 'Есть','Нет') (FieldName 'tt')
From Dogovor1, DocInfo
Where((root==Dogovor1.nrec and
dogovor1.nrec==docinfo.cdoc
));
var MyFieldNum : longint ;
var ifHaveText : String ;
HandleEvent
cmInit:
{
inherited::handleEvent(cmInit);
cfsSetCurrentContainer('L_DOGOVOR::DOGOVOR');
cfsCreateObject('TreeColumn', 'BRDOGOVORSELECTMAIN', 'Field: tt', FALSE, MyFieldNum);
cfsSetProp ( MyFieldNum, cfpVisible,TRUE);
cfsSetProp ( MyFieldNum, cfpTitle,'Текст');
}
Если же просто вывести DocInfo.cdoc, то поле cdoc появляется и все работает.
Как же добавить вычисляемое поле в стандартный фейс?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как добавить колонку с вычисляемым полем в браузер
(FieldName=tt)
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Re: Как добавить колонку с вычисляемым полем в браузер
Да и так пробовал! Та же ошибка: Ошибка интерпретации имени поля.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как добавить колонку с вычисляемым полем в браузер
ну сам я юзаю
(prod_nakl,prod_sp) // эти поля добавляю конфигуратором
as select
Get_Prod_Nakl,Get_Prod_Sp
(prod_nakl,prod_sp) // эти поля добавляю конфигуратором
as select
Get_Prod_Nakl,Get_Prod_Sp
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Re: Как добавить колонку с вычисляемым полем в браузер
Все делал без конфигуратора. Причем поле мое в конфигураторе не появляется, если есть ошибка.edward_K писал(а):ну сам я юзаю
(prod_nakl,prod_sp) // эти поля добавляю конфигуратором
as select
Get_Prod_Nakl,Get_Prod_Sp
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как добавить колонку с вычисляемым полем в браузер
а попробовать? конфигуратором в смысле его функциями
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Re: Как добавить колонку с вычисляемым полем в браузер
Не совсем понял технологию.savov писал(а):ну сам я юзаю
(prod_nakl,prod_sp) // эти поля добавляю конфигуратором
as select
Get_Prod_Nakl,Get_Prod_Sp
Когда я присоединил свой ресурсник с докомпилированным фейсом, то поле в конфигураторе не появилось. Что именно добавляется конфигуратором, а что пишется в коде? Конфигуратор не хотел использовать потому, что данные его могут теряться ( обновления и пр).
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как добавить колонку с вычисляемым полем в браузер
чтобы понять почитайте vipprogr.chm
в () - имена полей, в "As select" на первом месте должны идти их значения.
В таком виде 100% работают функции конфигуратора как для обычных полей. Впрочем вы еще можете добавлять как вычисляемое поле - добавте конфигуратором и выгружите в скрипт.
Но поле numMeshok здесь описано в var create view, а не в as select - приходится руками перевычислять его значение. Можно в as select вызвать функцию, которая бы переопределяла значение переменных var
Что касается самого конфигуратора то уже пишу раз 10. Я всегда выгружаю в скрипт cnf, убираю мусор и компилю vip-ом после vip в один и тот же рес.
в () - имена полей, в "As select" на первом месте должны идти их значения.
В таком виде 100% работают функции конфигуратора как для обычных полей. Впрочем вы еще можете добавлять как вычисляемое поле - добавте конфигуратором и выгружите в скрипт.
Код: Выделить всё
lErr:=cfsCreateObject ('PanelInputLine','SCRASHKU_RKO','numMeshok',FALSE,wwFFPCO);
#Cfs_ErrMes
cfsSetProp('numMeshok','Origin_X',587);
cfsSetProp('numMeshok','Origin_Y',223);
cfsSetProp('numMeshok','Size_X',101);
cfsSetProp('numMeshok','Size_Y',14);
cfsSetProp('numMeshok','PickButton',True);
cfsSetProp('numMeshok','Protect',False);
cfsSetProp('numMeshok','SKIP',False);
cfsSetProp('numMeshok','StatusCtx','sci1378Esc')
cfsSetProp('numMeshok','HelpLine','Номер тары мешка')
Что касается самого конфигуратора то уже пишу раз 10. Я всегда выгружаю в скрипт cnf, убираю мусор и компилю vip-ом после vip в один и тот же рес.
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Re: Как добавить колонку с вычисляемым полем в браузер
Да, конфигуратором поле добавил, оно появилось и правильно вычислилось, НО!
Когда скидываю в cnf, а потом загружаю - поле не появляется. Если записать конфигурацию, закрыть фейс, а потом открыть, то выскакивает ошибка ( иа же самая. что описана выше), поле тоже не появляется.
Еще, в cnf должны бать только изменения, внесенные конфигуратором? Остальное можно убрать?
Когда скидываю в cnf, а потом загружаю - поле не появляется. Если записать конфигурацию, закрыть фейс, а потом открыть, то выскакивает ошибка ( иа же самая. что описана выше), поле тоже не появляется.
Еще, в cnf должны бать только изменения, внесенные конфигуратором? Остальное можно убрать?