0
На рассмотрении
В коде алгоритма, как получить РВ по виду с другим источником
Добрый день!
В коде алгоритма возникла необходимость получить РВ по виду с другим источником, работая с матрицей:
int rowMy=poiskosnkodprop(CodeMy,rowkod,0,Prop);
получив нужную row...
Как прежде чем воспользоваться функцией
GetTime(row,?)
получить правильную колонку?
Сервис поддержки клиентов работает на платформе UserEcho
Добрый день!
С помощь prop вы задаете нужный фильтр..
Например, нужен источник Б :
источник заранее не известен, просто ищу действующий вид с любым источником в тек. периоде
перебирал в отладчике GetTime(row,col)
создалось впечатление, что в найденной row с разными col получаю РВ разных периодов
1)как можно искать РВ по "неизвестному источнику"?
2)что такое col?
Опишите задачу более конкретно. Услуги экстрасенсов нынче дороги..
рассчитывается вид начисления с определенной суммовой базой с учетом РВ, которое можно взять из оклада, но оклад может быть на другом источнике
что это значит?
col - колонка матрицы с1, если я правильно понимаю из описания функции GetTime(int Row,int Col )
Список прочих функций
c1
и номеру столбцаМатрицу с1 я получил выше приведенной функцией
1)poiskosnkodprop() - это функция для поиска строк НУ.
2)Зная номер нужной вам строки, вы получаете точный код вида:
3)РВ по виду определяется так:
з.ы. Так и не увидел описание того, что хотите получить в конечном итоге..
Если вопрос по конкретной функции - напишите ее название.
Если задача более сложная - не надо ее пытаться описывать с помощью функций..
Опишите задачу "словами бухгалтера"..
Конкретный пример ЛС с суммами - укорит процесс
Обращаю внимание на ошибку в вашем коде
функция возвращает не номер строки, а количество найденных строк!
номера строк записываются в массив rowkod
не придумывайте..
rvvid работает по точному коду, который вы ей передали.
Источник в этой функции не анализируется
что тут еще можно придумать...
можно не придумывать, а выложить сохраненку с ЛС
по поводу ошибки в коде:
переименуйте rowMy в rowCount иначе потом сами запутаетесь
jrow я был переименовал в rowIndex и инициализировал внутри цикла:
дату начала и окончания строки можно определять так
объявление jrow или rowIndex специально вынес вне тела цикла, т.к. требуется обработать случай когда не сработал break,
if (Jrow==rowMy)
break там кажется по ошибке стоит, должен быть continue
а после того как нашли нужную строку в заданном период - запоминаете row и ставите break
break прерывает цикл в нужный момент, когда найдена строка с действующим видом в тек. периоде.
Но если такой строки не найдется, требуется обработка случая, иначе можно поймать ошибочный результат.
Правильнее поместить код, который ищет нужную строку, в отдельную функцию
и обработать ситуацию, когда строку не нашли ( функция вернула -1)
И все-таки, выше приведенный код работает, но из найденной строки не могу получить РВ!
В отладчике проверял значения
GetTime(row,0)
GetTime(row,1)
GetTime(row,2)
...
все имеют разное значение и только третье из них равно 167
Как понять что оно именно в третьем, а не в перво и не во втором .... и не в пятом, десятом...?
У вас на GetTime свет клином сошелся?
Почему вы игнорируете мой совет выложить сохраненку с кодом, который не работает при использовании rvvid?
Из приведенного выше скрина видно, что rvvid не дает желаемого результата, поэтому нет смысла высылать сохраненку! Даже полное досье параметров продемонстрировано - не убедительно?
Если других вариантов получения РВ из уже найденной строки нет, а то что она найдена тоже видно из скрина по коду вида, спасибо за вариант кода, подобного не встречал в скриптах, возьму на вооружение!
А я не вижи смысла в дальнейшем обсуждении вопроса.
З.ы.Вы когда в автосервис приезжаете - тоже препятствуете доступу специалиста в подкапотное пространство для точной диагностики поломки?
Хотел-бы уточнить, возможно Вы не поняли место применения кода, он выполняется в скрипте usalg по ветке номера алгоритма, где имеем дело с "фоновым" окружением расчетной строки с видом, вызывающим алгоритм его расчета. Вероятно это обстоятельство влияет на результат работы rvvid().