Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 472
от 04.02.2007, 13:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 244, Экспертов: 34
В номере:Вопросов: 3, Ответов: 7


Вопрос № 73102: Уважаемые эксперты! В Access 2000 Windows 2000 Prof. Необходимо вывести на печать отчет о выполненных работах и использованных деталях. Report в две колонки: слева таблица с колонками Дата, документ, клиент, сумма док, список раб...
Вопрос № 73128: Здраствуйте, эксперты. Подскажите, как заставить VBasic 6 читать по слову из Text1 и анализировать этот текст....
Вопрос № 73179: У меня вопрос. Я хочу сделать эмулятор для джойстика, чтобы он посылал нажатия клавиш в dos-программу.Я применил Public Sub, чтобы событие распространялось на все окна,но программа работала только в Windows.Как сделать так,чтобы DOS воспр...

Вопрос № 73.102
Уважаемые эксперты!
В Access 2000 Windows 2000 Prof.
Необходимо вывести на печать отчет о выполненных работах и использованных деталях.
Report в две колонки:
слева таблица с колонками
Дата, документ, клиент, сумма док, список работ из документа, список деталей из документа
Внизу сумма всех (сумма док) , НДС
Справа сводная таблица с колонками
название детали/работ ; количество (сумма по всем документам из таблицы слева); количество на складе на начало периода, расход за период, остаток на конец
Т.Е. движение по складу, который является машиной техобслуживания.

Информация берется из двух таблиц M_TTmov список документов, дата, клиент, сумма

И M_Ctmov список строк с работами и деталями по каждому документу.
Код, название, кол, цена.
Как организовать Report в 2 колонки, основанный на разных запросах?

В дополнение как организовать в Access 2000 хранение остатков на начало стандартного периода например месяц? В 1С это делается с помощью регистров есть ли такие инструменты в Access 2000? С помошью таблиц?
Спасибо
Отправлен: 29.01.2007, 12:46
Вопрос задала: Natali (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Vvvv
Здравствуйте, Natali!
По первому вопросу, я ничего подобного не делал, так что ниже следующее на предположении, но попробывать стоит:
Делаем два отчета тот который слева и тот который справа, так как они должны выглядеть в конечном виде, затем создаем третий отчет в который внедряем компонент "подчиненная форма/запрос" и с помощью мастера подключам левую часть (заранее подгатовленный отчет), тоже самое делаем для правой стороны, самое интересное и сложное передать параметры в подчененные запросы (отчеты), такие как начало, конец периода ну и что там потребуется... для этого нужна форма из которой можно задать параметры и вывести отчет ну это тема другого разговора
По второму вопросу Access универсальная СУБД, а 1С специализированая, у неё все эти функции реализованы на уровне ядра программы. Для Access же все эти функции нужно либо реализовывать самим, либо искать в инете, мож кто ранее реализовал. Ну как вариант организовать процедуру закрытия месяца, которая бы расчитывала остатки на окончание месяца и сохраняла в таблице, но тут возникают проблемы корректировки документов за закрытый период..., надо будет перресчитывать итоги за закрытые периоды... ну т.д.
PS может пока не позно на 1С перескочить написать все на Торговле и Склад, там это все на уровне инстинктов...
Ответ отправил: Vvvv (статус: 1-ый класс)
Ответ отправлен: 29.01.2007, 14:05
Оценка за ответ: 4
Комментарий оценки:
Спасибо за информацию Vvvv, особенно по 1 вопросу с отчетом. Конечно вначале форма с параметрами, потом отчет и Report. Мне как раз нужна была последовательность создания подчиненного запроса. Попробую и по ходу задам более конкретные вопросы.
По второму вопросу. Как раз с 1С нет проблем, но переписать не могу так как программа большая и огромная база данных и все переделывать труба.
Надо написать процедуру создания, хранения и пересчета остатков именно в Access. Если есть конкретные идеи или источники почитать, посмотреть. Буду рада

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Natali!
Я не использую отчеты Access, слишком трудоемко их проектирование, разработка и корректировка при необходимости.
В качестве отчетов Access гораздо удобнее использовать таблицу или шаблон Excel.
Для этого достаточно одного запроса и пары процедур, для сбора данных и передачи в Excel.
Информации по складу храниться достаточно много, приход, цена, поставщик, дата....
Рекомендую создать дополнительную таблицу "Остатки" и в ней сохранять "обезличеные" (без прихода, поставщика....) данные, (например:
наименование, количество, цена) после каждой операции с движением по складу.
Вам не только легко будет посмотреть остатки на начало месяца, но и вывести или откорректировать текущее наличие.
Удачи.
Евгений.
Ответ отправил: Тесленко Евгений Алексеевич (статус: 3-ий класс)
Ответ отправлен: 29.01.2007, 22:58
Оценка за ответ: 4
Комментарий оценки:
Спасибо. Немного не ясно с датой. Если в таблице Остатки хранить только наименование, количество и цену, то как посмотреть остаток на начало месяца? Нужно добавить дату, склад. Если цена может меняться, то лучше сумму (кол*цену).


Вопрос № 73.128
Здраствуйте, эксперты.

Подскажите, как заставить VBasic 6 читать по слову из Text1 и анализировать этот текст.
Отправлен: 29.01.2007, 15:09
Вопрос задал: Alxx (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Dimm77
Здравствуйте, Alxx!
Не совсем понятно, что такое "анализировать".
А читать просто: перебирать побуквенно, когда встретился пробел - слово закончилось. См. в приложении - демонстрирует, как можно получить массив слов, разделённых пробелами. Если надо, можно вообще парсер (т.е. программа-разделитель на элементы) написать, используя нужные разделители разного типа, "." "," "/" и т.п.

Приложение:

---------
Цель жизни - жизнь.

Ответ отправил: Dimm77 (статус: 2-ой класс)
Ответ отправлен: 29.01.2007, 17:39

Отвечает: Alec Perle
Здравствуйте, Alxx!
В принципе (только в принципе) согласен с Dimm77, однако можно воспользоваться функцией Split(). См. пример

Приложение:

---------
Пессимист - это хорошо информированный оптимист (а оптимист - хорошо проинструктированный пессимист)

Ответ отправил: Alec Perle (статус: 3-ий класс)
Ответ отправлен: 29.01.2007, 21:39

Отвечает: PsySex
Здравствуйте, Alxx!
Другой вариант решения:
================================================
Private Sub Command1_Click()
Dim vWord As Variant
Dim sWord As String
Dim vWords As Variant
Dim sString As String

sString = Text1.Text
'если нужно то удалим сначала из строки запятые и точки
sString = Replace(sString, ",", "")
sString = Replace(sString, ".", "")
vWords = Split(sString, " ")
For Each vWord In vWords
sWord = CStr(vWord)
MsgBox sWord 'sWord содержит слово
Next
End Sub
==============================================
---------
Bom Shankar!
Ответ отправил: PsySex (статус: Студент)
Ответ отправлен: 29.01.2007, 22:02


Вопрос № 73.179
У меня вопрос. Я хочу сделать эмулятор для джойстика, чтобы он посылал
нажатия клавиш в dos-программу.Я применил Public Sub, чтобы событие
распространялось на все окна,но программа
работала только в Windows.Как сделать так,чтобы DOS воспринимал
джойстик.(У меня USB-джойстик(MaxFighter F-16U),с 4 клавишами)
Отправлен: 29.01.2007, 20:57
Вопрос задал: Мамедов Ильяс/ILLIOS (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: VLK
Здравствуйте, Мамедов Ильяс/ILLIOS!

Ответ - никак! Дисковая операционная система просто не "увидит" ваш джойстик (USB он там, или не USB). DOS воспринимает исключительно стандартную мышь и клавиатуру. Просто когда эта самая дисковая операционная система была создана, иных манипуляторов в природе не существовало.
Ответ отправил: VLK (статус: 9-ый класс)
Ответ отправлен: 29.01.2007, 21:36

Отвечает: Dimm77
Здравствуйте, Мамедов Ильяс/ILLIOS!
Я не согласен с VLK - можно перехватывать прерывания от джойстика, транслировать их в клавиатурные, и посылать окнам (т.е. размещать в буфере клавиатуры). Всё равно сессии ДОС, по крайней мере в NT и старше работают в эмуляторе, т.е. не напрямую с железом. К сожалению у меня нет сейчас времени на пример, но ;) практически уверен что это реально.
---------
Цель жизни - жизнь.
Ответ отправил: Dimm77 (статус: 2-ой класс)
Ответ отправлен: 30.01.2007, 10:43
Оценка за ответ: 3


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.43 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное