Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 08:51 28.09.24 
Клубове/ Компютри и Интернет / Visual Basic Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Re: Печат [re: ActronB]
Автор ЩиpлицМодератор (разузнавач)
Публикувано24.07.06 15:17  



Ами, понеже извеждаш данните в последователен текстов файл, аз лично бих препоръчал да вадиш данните от ФлексГрид като чисти стрингове, и да пишеш във файла с Print #1, String. Колкото до позицията на стринговете във файла - ще трябва на ръка да определяш броя интервали, с които да се запълва всяка "колона" с данни, за да се подредят. Не зная дали ще стане с табулатори, затова ти казвам с интервали, щото и без това не си уточнил за какъв принтер ще става дума. Ккато и да е. Да пробваме да видим какво ще получим...

Ще драсна примерен код с директно въведени данни, но ти просто ги вземай от ФлексГрид. ... Имайки от ФлексГрид чисти стрингове, без кавички и запетаи - можем да записваме във файла така:

Private Sub command2_click()

Dim i As Long, j As Long
Dim col(7) As Long

'Това са ширините на колоните
col(1) = 4
col(2) = 6
col(3) = 50
col(4) = 6
col(5) = 5
col(6) = 5
col(7) = 5

'Отваряме файла
Open "C:\Testfile.PRN" For Output As #1

For i = 0 To MSFlexGrid1.Rows - 1
For j = 0 To MSFlexGrid1.Cols - 1

'Записваме данните във файла
Print #1, MSFlexGrid1.TextMatrix(i, j) & Space(col(j) - Len(MSFlexGrid1.TextMatrix(i, j)));

Next j

Print #1, vbCrLf;

Next i

'Затваряме файла
Close

End Sub


Т.е. обърни внимание, че в реда, където се записва стринга във файла, съм "залепил" след стринга и интервали с функцията Space(), на която като параметър се подава число - брой интервали. За брой интервали съм изчислил от масива Col(), според предварително настроената ширина на конкретната колона минус броя на знаците, които се съдържат в дадения стринг. Т.е. ако ширината на колоната сме я указали 50 знака, а текста в нея е 23 - ще бъде изчислено число 27 - т.е. още 27 интервала, които ще бъдат добавени във файла във вид на стринг, за да се подравнят текстовете. Според вида на колоната - тези интервали може да се добавят преди или след стринга, за да се получи Left или Right подравняване. Когато се работи с принтери - може да се ползва и "Tab", но понеже си постнал само малка част от сорса - нямам представа къде и какво трябва да се получи. опитай така. Ако има разминаване - ще мислим пак.


Щирлиц

Цялата тема
ТемаАвторПубликувано
* Печат ActronB   24.07.06 13:05
. * Re: Печат Щиpлиц   24.07.06 15:17
. * Re: Печат ActronB   25.07.06 08:48
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.