25.12.2005, 19:05 | #21 |
Участник
|
Ну я просто в имя пользователя ввиду полное имя сотрудника как оно задано в справочнике сотрудников.
|
|
25.12.2005, 19:26 | #22 |
Участник
|
1. Определяем есть ли такая группа прав у пользователя, которая назначена кассиру в контактах. Если группа есть, то это кассир.
2. Определяем имя пользователя 3. Подставляем его в качестве кассира во время ввода кассового ордера. Поэтому редактировать хотела форму. Теперь я понимаю, что редактировать надо класс, который подставляет ФИО кассира при вводе кассовых ордеров и других отчетов. Ваше решение , насколько я поняла, подразумевает, что кассиры все сразу определются в контактах. Т.е. снимается запрет на повторное использование записи. Когда пользователь входит, он идентифицируется с кассиром. Или я опять не то поняла? Но это потенциально опастно снимать ограничение на повтор записи по позициям Почему опять пропало мое сообщение? Куда оно делось? |
|
25.12.2005, 20:09 | #23 |
Участник
|
Цитата:
Сотрудник не обязательно связан с пользователем. Пользователь может иметь несколько групп. Вы уверены, что хотите получить данные настолько извратным способом? Цитата:
Ничего он не делает. Просто поиск имени кассира учитывает имя текущего пользователя. И еще. Цитата:
Обратите на это внимание. Какое сообщение? Что вы делаете в конце концов? Почему у остальных не пропадает? ============= Ага. Кажется въехал. Если вы добавляете еще одно сообщение после СВОЕГО ЖЕ в течении 5 минут, то форум автоматически объединяет ваше сообщение с предыдущим. Так, мое сообщение, начиная со знаков === будет объединено с предыдущим... Наверное. Попробуем. |
|
25.12.2005, 20:25 | #24 |
Участник
|
Я так и не смогла ввести два раза кассира и
Запрет не снимается, а расширяется. validateWrite модифицирован. Обратите на это внимание. метод валидэйтрайт не видела изменным. А в каком месте у какой таблицы или класса оно изменено. |
|
25.12.2005, 20:40 | #25 |
Участник
|
Цитата:
Скачайте проект еще раз, пожалуйста. http://forum.mazzy.ru/index.php?s=&showtop...indpost&p=19503 Если вам тяжело скачивать, то здесь код метода validateWrite таблицы OfficialsTable_RU <div class='XPPtop'>X++</div><div class='XPP'>boolean validateWrite() { boolean ret; OffCheckPosition_RU checkPosition; OfficialsTable_RU tmpOfficials; ret = [color=:blue]super[/color](); ret = this.checkRelation(); checkPosition = [color=:blue]new[/color] OffCheckPosition_RU(this.ReportType, this.Position); ret = checkPosition.check() && ret; [color=:blue]if[/color] ( (this.Position != OffPosition_RU::InCharge) && (this.Position != OffPosition_RU::Member )) { [color=:blue]select[/color] [color=:blue]firstonly[/color] RecId [color=:blue]from[/color] tmpOfficials [color=:blue]where[/color] tmpOfficials.ReportType [color=:blue]==[/color] this.ReportType && tmpOfficials.CustVendCode [color=:blue]==[/color] this.CustVendCode && tmpOfficials.CustVendRelation [color=:blue]==[/color] this.CustVendRelation && tmpOfficials.Position [color=:blue]==[/color] this.Position && tmpOfficials.InvLocation [color=:blue]==[/color] this.InvLocation && tmpOfficials.UserId [color=:blue]==[/color] this.UserId && [color=:green]// +Mazzy [/color] tmpOfficials.RecId != this.RecId; [color=:blue]if[/color] (tmpOfficials) { ret = checkFailed([color=:red]"@DIS7294"[/color]); } } [color=:blue]else[/color] { [color=:blue]if[/color] (this.InvRelationType [color=:blue]==[/color] OffInvRelationType_AllTable_RU::Table) { ret = checkFailed([color=:red]"@DIS15786"[/color]); } } [color=:blue]return[/color] ret; }</div> |
|
25.12.2005, 20:47 | #26 |
Участник
|
И заодно вопрос от дурака
(!_user || (officials.UserId == _user) Это что значит: если юзер не пустой или юзер текущий = юзеру в таблице должностей А есть где -нибудь учебный проект , где будет описано как создать документ с проводками. Типа кассовый ордер или еще чего с подробным объяснением чего откда берется , что где значит построчно А то я доверенность без провдок делала целый день, тяжело однако... |
|
25.12.2005, 20:50 | #27 |
Участник
|
Цитата:
Если юзер в таблице не указан, то функциональность должна работать по старому, не так ли? Цитата:
Поищите про создание проводок... Например, http://www.axforum.info/forums/showthread.php?t=4277 http://erpkb.com/Axapta/FormirovanieProvodokGK |
|
25.12.2005, 21:05 | #28 |
Участник
|
Если юзер в таблице не указан, то функциональность должна работать по старому, не так ли?
Да. Вопрос задавала давно, но все как-то проезжали. Уже сделала много косметического в печатных формах документов. Но вот с кассовой книгой не смогла договриться. Вопрос в следующем: в кассовой книге можно расширить поле содержание ПКО/РКО? Когда я сделала свойство поля CashNotes DynamicHeight = Yes Ошибка времени выполнения. : ReportSection Объект не инициализирован. Трассировка стека: © \Classes\ReportSection\name © \Reports\RCashBook\Methods\CashNotes © \Classes\ReportSection\executeSection © \Reports\RCashBook\Designs\ReportDesign\Generated Design\Section Group: RCashTrans_TransDate\Body:CashTransBody\Methods\executeSection © \Classes\ReportRun\send © \Classes\ReportRun\fetch © \Classes\ReportRun\run © \Classes\SysReportRun\run - line 16 © \Classes\RunBaseReport\run - line 32 © \Classes\RCashReport_CashBook\run - line 4 © \Classes\RCashReport_CashBook\main - line 20 |
|
25.12.2005, 21:09 | #29 |
Участник
|
Цитата:
Можно я не буду отвечать по кассе? Ругаться не хочется... Скорее всего, проблема из-за того, что там ОЧЕНЬ много и ОЧЕНЬ бездуно напрогали... |
|
25.12.2005, 21:13 | #30 |
Участник
|
Неееееееееееееееееееет, ну пж, я там ничего не прогала, я только свойство поменяла.
А я взамен от вас отстану на сколько скажите. Ответ "на совсем" не принимается |
|
25.12.2005, 21:15 | #31 |
Участник
|
Напрогали там не вы, а программисты-локализаторы...
|
|
25.12.2005, 21:20 | #32 |
Участник
|
И что все пропало, марсиане захватили планету. Счастья не будет?
|
|
25.12.2005, 21:22 | #33 |
Участник
|
будет. но не в воскресенье вечером. извините.
|
|
25.12.2005, 21:28 | #34 |
Участник
|
Пасибо за все. Это ж нервы у вас резиновые. Круто!
|
|
26.12.2005, 10:33 | #35 |
Участник
|
Проблема в дисплейном методе cashNotes(). Он используется для вывода разных данных в зависимости от секции. При этом выбор осуществляется по названию так:
<div class='XPPtop'>X++</div><div class='XPP'> [color=:blue]switch[/color] (this.section().name())</div> Для контрола со свойством DynamicHeight = Yes вызов this.section() возвращает NULL. По-этому при попытке вызова метода Name() возникает исключение. Разбейте этот дисплейный метод на несколько - по кол-ву case и перенесите туда код из case. В контролах пропишите соответствующие DataMethod's.
__________________
Axapta v.3.0 sp5 kr2 |
|
27.12.2005, 14:05 | #36 |
Участник
|
Я сделала как вы написали - ошибок нет. Теперь вопрос: а почему он отворачивается и не растягивает по высоте строчку. У меня там текст большой, а вижу как и прежде начала. Где не доделала?
Или мне все обработки по строчке, где используется метод кази надо переделывать? |
|
28.12.2005, 19:00 | #37 |
Участник
|
Вопрос решен. Сама нашла и доделала.
|
|