ελα george δεν ξερω αν εκανες κατι πανω σε αυτο που λεγαμε στο msn αλλα δεν βλεπω εδω να περνεις απαντηση διοτι και θες εκτυπωτη φυσικα και ειναι μεγαλη κουβεντα, οποτε δες αν αυτο πού εχω κανει μπορει να σε βολεψει, μπορεις να το φερεις στα μετρα σου φυσικα.
γενικα τι κανει? στελνεις ενα devexpressgridviewcontrol και ενα filepath c:\mytextfile.txt, και αυτο θα υπολογισει αναλογα το πλατος καθε στηλης και το οριο που εχεις θεσει ως μεγιστο αριθμο χαρακτηρων (διοτι αυτο ειναι σημαντικο για dotmatrix) και θα σου βγαλει σε txt αυτο που θες, ωστε μετα να το προοθησεις σε εναν εκτυπωτη μεσω printdialog ή οπως θες.
δεν ειναι φορμα εκτυπωσεις-τιμολογιο, απλα ενα report μια λιστα που μπορει να θελει να τυπωσει σε dotmatrix, τωρα κατι παρομοι μπορεις να παρεις ιδεες και να φτιαξεις για xtrareportdesigner.
ξαναλεω δεν ξερω αν ειναι αυτο που θες αλλα μπορει να παρεις μια ιδεα.

VB.net
Public OptionsDOS_MaxRowCharacters As Integer = 100
Public OptionsDOS_Encoding As System.Text.Encoding = System.Text.Encoding.Default
Public Function GRID2DOS(ByRef GV As Views.Grid.GridView, ByVal FilePath As String)
Dim TotalColumns As Integer = GV.Columns.Count
Dim TotalColumnsWidth As Integer
For c As Integer = 0 To GV.Columns.Count - 1
TotalColumnsWidth += GV.Columns(c).Width
Next
OptionsDOS_MaxRowCharacters = OptionsDOS_MaxRowCharacters - (GV.Columns.Count - 1)
Dim MyText As String = ""
'one for the Captions
For i1 As Integer = 0 To GV.Columns.Count - 1
If GetColChars(GV.Columns(i1).Width, TotalColumnsWidth, OptionsDOS_MaxRowCharacters) < 1 Then
MsgBox("Προσοχή! Βρέθηκαν στήλες με μέγεθος μηδενικό. Η εξαγωγή θα τερματιστεί.", MsgBoxStyle.Exclamation, "Σφάλμα")
Return False
Exit Function
End If
MyText &= LSet(GV.Columns(i1).Caption & " ", GetColChars(GV.Columns(i1).Width, TotalColumnsWidth, OptionsDOS_MaxRowCharacters))
Next
'loop for the values
For i1 As Integer = 0 To GV.DataRowCount - 1
For i2 As Integer = 0 To GV.Columns.Count - 1
MyText &= GV.Columns(i2).Caption & " "
MyText &= LSet(GV.GetRowCellValue(i1, GV.Columns(i2).FieldName) & " ", GetColChars(GV.Columns(i2).Width, TotalColumnsWidth, OptionsDOS_MaxRowCharacters))
Next
MyText &= Environment.NewLine
Next
'write the collected text as a file with a specific encoding
IO.File.WriteAllText(FilePath, MyText, OptionsDOS_Encoding)
Return True
End Function
Private Function GetColChars(ByVal ColWidth As Integer, ByVal TotalColumnsWidth As Integer, ByVal MaxRowCharacters As Integer) As Integer
'find how many characters are needed by the column's width percent %
Dim ColChars As Integer
Dim colPerc As Double = ((ColWidth * 100) / TotalColumnsWidth)
ColChars = Int((colPerc * MaxRowCharacters) / 100)
Return ColChars
End Function
C# conversion
public int OptionsDOS_MaxRowCharacters = 100;
public System.Text.Encoding OptionsDOS_Encoding = System.Text.Encoding.Default;
public object GRID2DOS(ref Views.Grid.GridView GV, string FilePath)
{
int TotalColumns = GV.Columns.Count;
int TotalColumnsWidth = 0;
for (int c = 0; c <= GV.Columns.Count - 1; c++) {
TotalColumnsWidth += GV.Columns(c).Width;
}
OptionsDOS_MaxRowCharacters = OptionsDOS_MaxRowCharacters - (GV.Columns.Count - 1);
string MyText = "";
//one for the Captions
for (int i1 = 0; i1 <= GV.Columns.Count - 1; i1++) {
if (GetColChars(GV.Columns(i1).Width, TotalColumnsWidth, OptionsDOS_MaxRowCharacters) < 1) {
Interaction.MsgBox("Προσοχή! Βρέθηκαν στήλες με μέγεθος μηδενικό. Η εξαγωγή θα τερματιστεί.", MsgBoxStyle.Exclamation, "Σφάλμα");
return false;
return;
}
MyText += Strings.LSet(GV.Columns(i1).Caption + " ", GetColChars(GV.Columns(i1).Width, TotalColumnsWidth, OptionsDOS_MaxRowCharacters));
}
//loop for the values
for (int i1 = 0; i1 <= GV.DataRowCount - 1; i1++) {
for (int i2 = 0; i2 <= GV.Columns.Count - 1; i2++) {
MyText += GV.Columns(i2).Caption + " ";
MyText += Strings.LSet(GV.GetRowCellValue(i1, GV.Columns(i2).FieldName) + " ", GetColChars(GV.Columns(i2).Width, TotalColumnsWidth, OptionsDOS_MaxRowCharacters));
}
MyText += Environment.NewLine;
}
//write the collected text as a file with a specific encoding
IO.File.WriteAllText(FilePath, MyText, OptionsDOS_Encoding);
return true;
}
private int GetColChars(int ColWidth, int TotalColumnsWidth, int MaxRowCharacters)
{
//find how many characters are needed by the column's width percent %
int ColChars = 0;
double colPerc = ((ColWidth * 100) / TotalColumnsWidth);
ColChars = Conversion.Int((colPerc * MaxRowCharacters) / 100);
return ColChars;
}
This Business Is Binary. You are a 1 or a 0. Alive or Dead.-